SlideShare a Scribd company logo
CA Easytrieve    ®



活用セミナー
Easytrieve 活用例

                           2012 年 6 月 5 日
                            CA Technologies
                     メインフレーム・ソリューション事業部
                               丸川 隆司
アジェンダ



 — INDEX フィールドの活用
 — マクロ機能の活用
 — CSV ファイルの作成方法
 — HTML レポートの作成方法
 — Easytrieve EXIT の活用
 — R11 ご紹介
 — Q&A




            Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
INDEX フィールドの活用



— Easytrieve のフィールド定義は、レコード中の開始位置を
  固定値で指定しますが、 INDEX フィールドを使うことで
  可変にできます。




         Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
INDEX を使用した文字列サーチ


 ログファイル (80 バイト ) より、“ ABEND” の 5 文字をサーチする




                                                                  INDEX フィールド
            FILE INFILE F(80)
               MOJI    1 5 A INDEX IDX1
            *
            FILE ERRFL F(80)
                                        MOJI フィールドの開始位置
開始位置初期値設定   *
            JOB INPUT INFILE               = 1 + IDX1 の値
              IDX1 = 0
              DO WHILE IDX1 <= 75
                IF MOJI = ‘ABEND’             IDX1 の最大値は 75 ( 80 - 5 )
                  PUT ERRFL FROM INFILE
                END-IF
                IDX1 = IDX1 + 1
              END-DO                            開始位置を 1 バイトずらす



               Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
INDEX を使用した可変セグメントレコード処理


                              可変                                                        可変

                                               セグメント
   セグメント   セグメント A      セグメント A                             セグメント         セグメント B               セグメント B
                                          ~      A                                          ~
    A の数    (1)          (2)                                 B の数          (1)                   (n)
                                                (n)

            固定長                                                              固定長




セグメントの数は可変なので、固定の OCCURS 指定では処
理できない・・・・
    FILE INFILE V(360)
       SEG-A-COUNT   5          3     N
       SEG-A-DATA    8          5     A       OCCURS???
    *
       SEG-B-COUNT ????
       SEG-B-DATA   ????
    *




             Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
INDEX を使用した可変セグメントレコード処理
 -続き

このようなレコードは INDEX を使用して開始位置を指定
することができます。
                               3 + SEG-A-CNT * 5

                      SEG-A-DATA      SEG-A-DATA             SEG-A-DATA                 SEG-B-DATA           SEG-B-DATA
      SEG-A-CNT                                        ~                  SEG-B-CNT                      ~
                           1               2                      n                         1                    n


            3              5               5                     5            3              4                   4
  IDXB1=0        IDXA=0
  IDXB2=0


                FILE INFILE
                  SEG-A-CNT            5       3   N
                  SEG-A-DATA           8       5   A       INDEX IDXA
                *
                  SEG-B-CNT            5       3   N       INDEX IDXB1
                  SEG-B-DATA           8       4   A       INDEX IDXB2
            *
                JOB INPUT      INFILE
                  IDXA =       0
                  IDXB1 =      3 + SEG-A-CNT * 5
                  IDXB2 =      IDXB1




                          Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
INDEX を使用した可変セグメントレコード処理
 -続き
   FILE INFILE
     SEG-A-CNT      5  3   N
     SEG-A-DATA     8  5   A INDEX IDXA
   *
     SEG-B-CNT      5  3   N INDEX IDXB1
     SEG-B-DATA     8  4   A INDEX IDXB2
   *
     WK-CNTR        W  3   N
   *
   JOB INPUT INFILE
     IDXA = 0
     IDXB1 = 3 + SEG-A-CNT * 5
     IDXB2 = IDXB1
     *                                                     SEG-A の処理
     WK-CNTR = 1
     DO WHILE WK-CNTR <= SEG-A-CNT
       DISPLAY '*** SEGA : ' SEG-A-DATA
       IDXA = IDXA + 5
       WK-CNTR = WK-CNTR + 1
     END-DO
     *                                                     SEG-B の処理
     WK-CNTR = 1
     DO WHILE WK-CNTR <= SEG-B-CNT
       DISPLAY '*** SEGB : ' SEG-B-DATA
       IDXB2 = IDXB2 + 4
       WK-CNTR = WK-CNTR + 1
     END-DO


               Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
INDEX フィールドまとめ



— フィールド定義に INDEX を指定することにより、フィー
  ルドの開始位置を動的に変更することができます。
— INDEX 指定は、ファイルフィールド、ワークフィールド
  共に指定できます。
   WK-FLD       W      80                 A
     WK-FLD2    WK-FLD 2                  A      INDEX IDX1
     WK-FLD3    WK-FLD 3                  A      INDEX IDX2


— INDEX 値の変更により、レコードまたはワークエリアの
  範囲を超えないように注意が必要です。



               Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
マクロ機能の活用



— ファイルフィールド定義( COPY 句定義)
  FILE   INFILE

   %INFILE



— 共通ロジック定義(部品化)




                  Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
マクロ機能の活用(共通ロジック定義)



— Easytrieve のマクロ機能は、 COPY 句を登録するだけでな
  く、ロジックを登録しておくこともできます。
— ロジックの場合にも、 COPY 句と同様に、 Easytrieve マク
  ロライブラリ( PDS 、 Panvalet 、 Librarian 、 VSAM のい
  ずれか)に、マクロメンバー名で登録しておきます。
— マクロ呼び出し命令は、 % マクロ名を指定します。
    %macro-name    parm1        parm2 ....




                  Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
マクロ機能の活用(呼び出しサンプル)


— SUBSTRING 的な処理のサンプル

                                                   文字列                           文字列
   START1   LENGTH1   START2    LENGTH2                              INDATA
                                                    ①                             ②




   FILE FILEA         F(100)

       START1           1       2       P   0
       LENGTH1          3       2       P   0
       START2           5       2       P   0
       LENGTH2          7       2       P   0
       INDATA          20      80       A

       WK-MOJI        W     5       A

   JOB INPUT FILEA

   *  文字列①の抽出
      %SUBSTR INDATA                START1      LENGTH1       WK-MOJI

        DISPLAY WK-MOJI 2012 CA. All rights reserved.
                 Copyright ©                            Easytrieve 活用セミナ 2012 年 6 月 5 日  .
マクロ機能の活用(マクロサンプル)

呼び出し側の
コーディング       %SUBSTR     INDATA        START1         LENGTH1          WK-MOJI


                  MACRO         4    P1      P2    P3     P4

                       * DEFINE INPUT AREA

                       DEFINE       WK-IN         W     1000       A
呼び出されるマクロ
                       DEFINE       WK-IN1    WK-IN            1   A INDEX WK-IDXIN
  右の内容を
                       DEFINE       WK-CNT        W            5   P 0
  SUBSTR の
                       * DEFINE OUTPUT AREA
メンバー名でマクロ
ライブラリに登録し              DEFINE       WK-OUT        W     1000       A
   ておく。
                       DEFINE       WK-OUT1 WK-OUT             1   A INDEX WK-IDXOUT

                     WK-IDXIN          = &P2 - 1.                      * SET START INDEX

                     WK-CNT            = WK-IDXIN + &P3.               * SET MAXIMUM LENGTH

                       IF WK-CNT       > 1000.                     * CHECK IF AREA EXCEEDS MAX LEN

                          &P4 = 'ERROR'.                           * MAX LENGTH ERROR

                       ELSE
                         Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
                          WK-IN       = &P1.                              * INPUT AREA
マクロ機能の活用まとめ



— Easytrieve のマクロ機能は、ファイルフィールド定義、共
  通ロジック定義で利用できます。
— フィールド定義同様に、良く利用される処理はマクロメ
  ンバーとして登録し、共通に利用することでより生産性
  を向上させることが可能になります。
— マクロソースの前後に MSTART 、 MEND の指定を行うこ
  とで、プログラム中にマクロソースを組み込んで実行す
  ることができます。これによって外部ファイルにマクロ
  メンバーを作成する前のテストが可能になります。



         Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
CSV ファイルの作成方法



— Easytrieve を使って簡単に CSV ファイルを作成することが
  できます。
— REPORT 機能と DISPLAY 機能の、 2 つの作成方法をご紹介
  します。




          Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
CSV ファイルについて



— CSV ( Comma-Separated Values )カンマ区切りデータ
— スプレッドシート用データ(表形式データ)
 − 可変長
 − テキストデータ
 − 区切り文字

— データのインポート / エキスポートで利用




           Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
REPORT 機能を使った CSV ファイル作成



  FILE PERSNL F(80)
    REGION      1    6    N MASK('ZZZZ99')
    BRANCH      8    6    N MASK('ZZZ999')
    NAME-LAST 15    10    M
    NAME-FIRST 25   10    M
    DEPT       36    4    A
    GROSS      41    5    N 1 MASK('ZZZ9.9')
  *
  FILE CSVOUT V(360) PRINTER   EXTENDED CSVIBM

  *                                       拡張プリンター名の指定
  JOB INPUT PERSNL
    PRINT RPT1
  *                                                                                           見出し文字
  REPORT RPT1 PRINTER CSVOUT LINESIZE 80 SPACE 0 TITLESKIP 0 +
         NOADJUST NODATE NOHEADING NOPAGE PAGESIZE 32767
  SEQUENCE REGION BRANCH
  TITLE ' 地区番号 , 支店番号 , 姓 , 名 , 部門番号 , 支払額 '
  LINE REGION ',' BRANCH ',' NAME-LAST ',' NAME-FIRST ',' +
                                                  明細項目
    DEPT ',' GROSS

               Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
REPORT 機能を使った CSV ファイル作成(出力例)


 BROWSE    CAJAPAN.MARTA02.CSVFL1                     LINE 00000000 CO
 COMMAND ===>                                                  SCROLL
----+----1----+----2----+----3----+----4----+----5----+----6----+----7
********************************* Top of Data ************************
 地区番号 , 支店番号 , 姓 , 名 , 部門番号 , 支払額
    01,   001, 小山   , 正明   ,0903, 373.6
    01,   001, 戸田   , 健志   ,0918,8046.4
    01,   002, 表山   , 友義   ,0943, 759.2
    01,   002, 新石   , 和広   ,0935,1461.6
    01,   003, 短田   , 育弘   ,0915, 344.8
    01,   003, 柊木   , 吉則   ,0914, 445.5
    01,   003, 羽田   , 友幸   ,0911,4922.6
    01,   004, 川中   , 満    ,0917,2839.2
    01,   004, 丸海   , 智之   ,0911,3966.8
    02,   001, 山畑   , 茂幸   ,0932, 360.8
    02,   001, 豊田   , 一博   ,0921, 243.2
    02,   002, 小泉   , 仁    ,0911, 242.4
    02,   002, 白部   , 弘昌   ,0911, 386.4
    02,   003, 木ノ上  , 貴司   ,0943,2385.2




                   Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
DISPLAY 機能を使った CSV ファイル作成




 FILE PERSNL F(80)
   REGION      1    6    N MASK('ZZZZ99')
   BRANCH      8    6    N MASK('ZZZ999')
   NAME-LAST 15    10    M
   NAME-FIRST 25   10    M
   DEPT       36    4    A
   GROSS      41    5    N 1 MASK('ZZZ9.9')
 *                                            拡張プリンター名の指定
 FILE CSVOUT V(360) PRINTER   EXTENDED CSVIBM
 *                                                見出し文字
 JOB INPUT PERSNL
   IF PERSNL:RECORD-COUNT = 1
     DISPLAY CSVOUT ' 地区番号 , 支店番号 , 姓 , 名 , 部門番号 , 支払額
 '
   END-IF

                                                         明細項目
  DISPLAY CSVOUT REGION ',' BRANCH ',' NAME-LAST ',' NAME-FIRST +
                 ','   DEPT ',‘ GROSS




                Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
DISPLAY 機能を使った CSV ファイル作成(出力例)


 BROWSE    CAJAPAN.MARTA02.CSVFL2                     LINE 00000000 COL
 COMMAND ===>                                                  SCROLL =
----+----1----+----2----+----3----+----4----+----5----+----6----+----7-
********************************* Top of Data *************************
 地区番号 , 支店番号 , 姓 , 名 , 部門番号 , 支払額
    01,   001, 小山   , 正明   ,0903, 373.6
    01,   001, 戸田   , 健志   ,0918,8046.4
    01,   002, 表山   , 友義   ,0943, 759.2
    01,   002, 新石   , 和広   ,0935,1461.6
    01,   003, 短田   , 育弘   ,0915, 344.8
    01,   003, 柊木   , 吉則   ,0914, 445.5
    01,   003, 羽田   , 友幸   ,0911,4922.6
    01,   004, 川中   , 満    ,0917,2839.2
    01,   004, 丸海   , 智之   ,0911,3966.8
    02,   001, 山畑   , 茂幸   ,0932, 360.8
    02,   001, 豊田   , 一博   ,0921, 243.2
    02,   002, 小泉   , 仁    ,0911, 242.4
    02,   002, 白部   , 弘昌   ,0911, 386.4
    02,   003, 木ノ上  , 貴司   ,0943,2385.2




                   Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
CSV ファイル出力結果




       Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
CSV ファイル用拡張プリンター定義



— CSV ファイルを作成する処理で漢字文字、漢字フィール
  ドを扱う場合には、出力ファイルに拡張プリンター指定
  が必要です。
— CSV ファイル専用の拡張プリンターを定義しておくと便
  利です。
— 既存の拡張プリンター設定を使用することも可能です。




       Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
CSV ファイル用拡張プリンター定義サンプル


 ****************************************************************
 *    CSVIBM
 ****************************************************************
   PRINTER NAME             ( CSVIBM )                       -
            TERMINAL        ( 0E 0F )                        -
            DBCS-CODE       ( IBM )
 ****************************************************************
 *    CSVFJ
 ****************************************************************
   PRINTER NAME             ( CSVFJ )                        -
            TERMINAL        ( 28 29 )                        -
            DBCS-CODE       ( JEF4040 )
 ****************************************************************
 *    CSVH
 ****************************************************************
   PRINTER NAME             ( CSVH    )                      -
            TERMINAL        ( 0AE2 0A41 )                    -
            DBCS-CODE       ( KEIS )




                Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
CSV ファイル作成まとめ



— REPORT 機能、または DISPLAY 機能で CSV ファイルを簡
  単に作成することができます。
— パック 10 進数等、数値データ編集処理や漢字データのシ
  フトコード編集処理が不要です。
— Easy の仕様で仕様で先頭 1 バイトにブランクが入ります
  。
— CSV ファイルの入出力機能拡張を計画中です。




          Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
HTML レポートの作成方法



— Easytrieve の拡張プリンタ機能を応用して、従来のレポー
  トを HTML 形式のデータとして出力することができます
  。




         Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
HTML レポートの利点



— ビジュアルなアピール
 − フォント
 − カラー
 − フォーマット
— 配布が容易
 − 集中保管
 − リンクで配布




          Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
HTML レポートプログラムの例


       変更点はわずか 2 か所のみ!
  FILE PERSNL F(80)
    REGION      1    6    N MASK('ZZZZ99') HEADING(' 地区番号 ')
    BRANCH      8    6    N MASK('ZZZ999') HEADING(' 支店番号 ')
    NAME-LAST 16     8    K HEADING(' 姓 ')
    NAME-FIRST 26    8    K HEADING(' 名 ')
    DEPT       36    4    A HEADING(' 部門 ')
    GROSS      41    5    N 1 MASK('ZZZ9.9') HEADING(' 支給額 ')
    LAST_KANA 47    10    A
    FIRST_KANA 57   10    A           HTML 拡張プリンター定義名の指定
  *
  FILE HTMLFL PRINTER EXTENDED HTML
  *
  JOB INPUT PERSNL
    PRINT RPT1
  *
                                            REPORT に出力先を指定
  REPORT RPT1 LINESIZE 80   PRINTER HTMLFL
  SEQUENCE REGION D BRANCH D
  TITLE '***** HTML サンプルレポート *****'
  LINE REGION BRANCH NAME-LAST NAME-FIRST DEPT GROSS




              Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
HTML レポートサンプル




       Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
拡張プリンター定義とは?



— MF 環境で、日本語プリンターにレポートを印刷するた
  めの機能です。
— 各種日本語プリンターに対応した定義が行えます。
 − フォント設定
 − 漢字コード、シフトコード設定
 − 改ページ、改行設定・・・・等々

— レポート出力するファイルや文字データへのヘッダー情
  報、トレーラー情報を付加します。




            Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
HTML レポート用拡張プリンタ定義例


 PRINTER   NAME               (
                         HTML )                    -
           DEFAULT-SIZE  1 1 )(                    -
           DEFAULT-FONT       (
                         1 2 3 )                   -
           FCB           N )  (                    -
           DBCS-CODE     IBM )(                    -
           DEVICE             (
                         DISK DISK )               -
           RECORD             (
                         V 20600 )                 -
           POINT-SKIP         (
                         40 4C82996E-
                             4CA283998997A34093819587A48187857E7F-
                             9181A581A283998997A37F6E9585A6938995-
                             854DF&S15D4C61A283998997A36E ) -
      CONCATENATE      ( Y ) -
      FILE-HEADER      ( -
                   ' <html><head><meta http-equiv=-
                     "Content-Type" content="charset=SJIS" />-
 プリントレコー             <script language="javascript">-
 ドの最初に出力              function newline(n)-
                     {for( var i=0;i<n; i++ ) document.write("¥n")}-
   される情報             </script>-
                     <title>Easytrieve HTML</title>-
                     </head><body><pre>' ) -
      FILE-TRAILER     ( ' </pre></body></html>' )

                                      プリントレコード
                                      の最後に出力され
                                      る情報
                  Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
HTML レポート用拡張プリンタ定義例-続き

         FONT   NUMBER ( 1 ) -
                WIDTH                (
                                   3 )                         -
                DATA-TYPE            (
                                   EBCDIC )                    -
                HEIGHT               (
                                   01 )                        -
                FUNCTION-HEADER      (
                                   4CA297819540A2A3A893857E7F869695A3608681-
文字列の前                              948993A87A0E42D442E20F400E43C4438D435643-
                                   880F5E869695A360A289A9857AF2F497A75E7F6E ) -
に付加され           FUNCTION-TRAILER ( 4C61A29781956E )
  る情報   *
                                                                             文字列の後に付
         FONT   NUMBER ( 2 ) -                                               加される情報
                WIDTH                (
                                   4 )      -
                DATA-TYPE            (
                                   DBCS )   -
                HEIGHT             01(    ) -
                FUNCTION-HEADER      (
                                   4CA297819540A2A3A893857E7F869695A3608681-
                                   948993A87A0E42D442E20F400E43C4438D435643-
                                   880F5E869695A360A289A9857AF1F697A75E7F6E-
                                   0E ) -
                FUNCTION-TRAILER ( 0F-
                                   4C61A29781956E )
        *
         FONT     NUMBER                  ( 3 )                                            -
                  DATA-TYPE               ( 1 2 )
                                                          <span style="font-family: MS ゴシック ;font-
                           </span>                                         size:16px;">



                      Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
拡張プリンター定義ツール(計画中)




      Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
HTML レポート作成まとめ



— 拡張プリンタに HTML タグ設定カスタマイズを追加しま
  す。
— 通常のレポート機能に、 HTML 設定を行った拡張プリン
  タ名を指定します。
— 拡張プリンタの HTML カスタマイズは、今回のサンプル
  以外にも様々な設定を行うことができます。
— 詳細はご相談ください。




        Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
Easytrieve EXIT の活用



— FILE EXIT
— SYSIN EXIT




               Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
FILE EXIT とは ?



— Easytrieve のファイルアクセスタイミングで実行される外
  部ルーチン呼び出しポイント。
— Easytrieve がサポートしていないファイルのアクセスや、
  特定の処理を追加したい場合に利用します。
  − 圧縮ファイルの入出力
  − 暗号化ファイルの入出力
  − ファイル内の特定情報マスキング処理




             Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
FILE EXIT の動作(入力処理の場合)


 FILE INFILE   EXIT(SUBPGM USING(PARM1))                             WORKAREA(100)

               P1 : WORKAREA アドレ
                                                          制御コードの                              内容
               ス                                             値
               P2 : 制御コードアドレ                                X’00’              入力要求

               ス                                                X’08’          EOF 要求( EXIT 側で設定)
               P3 : PARM1 のアドレス
       JOB
      INPUT                                         SUBPGM
      INFILE



— EXIT でファイルの入力を行い、 WORKAREA にデータを移送
— EOF 時には、制御コードに X’08’ を書き込んで、 Easy に通知




               Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
FILE EXIT の動作(出力処理の場合)


 FILE OUFTL   EXIT(SUBPGM USING(PARM1))                            WORKAREA(100)

               P1 : WORKAREA アドレ
                                                          制御コードの                              内容
               ス                                             値
               P2 : 制御コードアドレ                                X’04’              出力要求

               ス                                                X’08’          クローズ要求( Easy 側で設
                                                                               定)
               P3 : PARM1 のアドレス

       PUT
                                                    SUBPGM
      OUTFL



— WORKAREA の内容を EXIT で読み取り、ファイルに出力
— 制御コード値が X’08’ の場合は Easy の終了処理要求なので、ファイ
  ルのクローズ処理を行う


               Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
SYSIN EXIT とは ?



— Easytrieve コンパイラがソースコードを読み込むタイミン
  グで実行される外部ルーチン呼び出しポイント。
— SYSIN EXIT を使用する場合には、外部ルーチン側でソー
  スコードを読み込んでから、 Easytrieve コンパイラに渡
  します。
— コンパイル直前のソースコードを処理することができま
  す。
  − ユーザー独自コマンドの解析(プリコンパイラ処理)
  − 管理情報の作成(コンパイル、実行日時の記録等)




            Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
SYSIN EXIT の動作


              P1 : Easytrieve コンパイラ入力
              アドレス
                                        制御コードの          内容
              P2 : 制御コードアドレス               値
                                          X’08’   ソースの終了( EXIT 側で設
                                                  定)
                                                     ソース
      Easytrieve                      SYSIN          ステー
      コンパイラ                         EXIT PGM         トメン
                                                      ト

— Easytrieve のコンパイラが 1 行分のソースステートメントを入力する
  タイミングで、 EXIT に処理が渡されます。( Easy 自身はソースを読
  み込みません)
— EXIT 側でソースファイル( SYSIN )を読み込み、必要な処理を行っ
  た後にコンパイラ入力アドレスにソースステートメントを設定して
  、 Easytrieve に処理を戻します。
— ソースファイルの終了時には、制御コードに X’08’ を設定し
  て、 Easytrieve に処理を戻します。Easytrieve 活用セミナ 2012 年 6 月 5 日  .
                Copyright © 2012 CA. All rights reserved.
Easytrieve EXIT まとめ



— FILE EXIT により、サポートしていないファイルアクセス
  が可能になります。(暗号化、圧縮ファイルの I/O 等)
— SYSIN EXIT により、ユーザーコマンドの追加等、独自の
  機能拡張が可能になります。
— 設定方法等の詳細はご相談くださいませ。




            Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
R11 ご紹介



— Easytrieve リリース R11 より、 MF 環境だけでなく
  UNIX 、 Linux 、 Windows などのオープン環境もサポート
  します。
— 各プラットフォーム共通のソース、共通のユーティリテ
  ィプログラムを使用します。
— 一部トピックのご紹介
 − XML データ出力
 − パフォーマンス改善
 − Easytrieve Workbench




                Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
XML データ出力


— Easytrive の自動レポート機能に XML ファイルを出力する
  機能が追加されます。




         Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
XML とは?



— XML は eXtensible Markup Language の略
— テキストデータの共通フォーマット
  − 自己定義データ
  − テキストベース
  − マークアップ・タグと文字列

— プログラム間のデータ交換で使用




             Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
XML データ出力サンプル

  FILE PERSNL V(80) SYSNAME(‘/EZT/SRC/TESTDATA.txt')

     REGION        1       6        N
     BRANCH        8       6        N
     LAST_NAME    15       8        A
     FIRST_NAME   23       8        A
     DEPT         32       4        A
     GROSS        37       5        N 1 MASK('ZZZ9.9')
 *

  FILE XMLFL   PRINTER SYSNAME(‘/EZT/SRC/EZTPERSNL.xml')
 *

  JOB INPUT PERSNL       START SPROC

     PRINT RPT1
 *
 SPROC. PROC
    DISPLAY XMLFL '<?xml-stylesheet type="text/xsl"' +   XML パラメータ
              ' href="EZTPERSNL.xsl"?>' +
              '<?xml version="1.0" encoding="Shift_JIS" ?>'
 END-PROC
 *
 REPORT RPT1 PRINTER XMLFL LINESIZE 80 XML
 LINE REGION BRANCH LAST_NAME FIRST_NAME DEPT GROSS
                   Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
XML データ出力結果




       Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
IE 用スタイルシートでの編集レポート




      Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
XML データ出力まとめ



— 自動レポート機能を使った、簡単な XML ファイル出力が
  可能です。
— ネイティブ XML ファイルタイプのサポートを計画中です
  。




        Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
パフォーマンス改善



— VMF の代わりに WORKFILE を使用することにより、実行
  時のパフォーマンスを向上させることができます。




         Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
VFM とは?



  Virtual File Manager (仮想ワークファイル)


          1 つの物理ファイル定義で、様々なワー
          クエリアをサポート


          複数 JOB 間の受け渡しデータセット


          複数レポートの中間ファイル



          実行パフォーマンス的には不利



           Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
WORKFILE 機能



— WORKFILE オプションを PARM ステートメントに指定し
  ます。   WORKFILE ( {YES|NO} [number-of-cylinders]
    PARM



— レポート用ワークファイルがダイナミックにアロケート
  されます。




             Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
WORKFILE の利用結果



— パフォーマンスが最大で 8.5 倍改善されたケースあり。
— 例えば、 EXCP が 136,000 (R6.4 VFM) から 16,000 (R11 WF)
  に減少など。
— 多数のデータを扱う複数レポート処理で効果があります
  。




             Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
パフォーマンス改善まとめ



— VFM は物理ファイルを意識する必要が無く非常に便利で
  す。
— 特にパフォーマンスが必要な、大量データの複数レポー
  ト処理に WORKFILE の使用を推奨します。




       Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
Easytrieve Workbench


— Easytrieve Windows 開発環境




               Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
Easytrieve Workbench


— コンパイル画面




             Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
Easytrieve Workbench


— デバック画面・条件ブレークポイントの設定




             Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
Easytrieve Workbench


— デバック画面、プログラム変数の表示、変更




             Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
Q& A




                            ?

       Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
プレゼンテーション条件


このプレゼンテーションは、 2012 年 2 月 22 日時点での最新の情報およびリソース配分に基
づいて作成されています。 CA は本書の内容を予告なく変更、撤回することがあります。この
プレゼンテーションに相反する記載があったとしても、このプレゼンテーションは、
( i ) CA ソフトウェア製品に関する既存または将来の使用許諾契約書またはサービス契約書
に基づく CA またはそのライセンシーの権利、義務、またはその双方に影響を及ぼす、または
( ii ) CA ソフトウェア製品の文書または仕様を変更することはありません。このプレゼンテ
ーションに記載されている機能の開発、リリース、およびその時期については、 CA が自己
の裁量で決定できるものとします。本書にこれと異なる記述があっても、本書で参照されて
いる任意の CA 製品の将来のリリース出荷時に、 CA はそのリリースを( i )これらの製品の
新規ライセンス契約者への販売のために提供し、( ii ) CA の保守およびサポートの一環とし
て、提供可能になり次第、これらの製品の既存のライセンス契約者に定期的なメジャー製品
リリースとして提供します。 このようなリリースは、現在 CA の保守およびサポートを利用
するこれらの製品の現在のライセンス契約者に、提供可能になり次第提供されることがあり
ます。この項の規定とこのプレゼンテーションに含まれるその他の情報に矛盾がある場合は
、この項が適用されるものとします。




            Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
情報提供のみを目的としています

このプレゼンテーションには、 CA の製品の一般的な方向性を示す情報が含まれている場合があり
ます。このプレゼンテーションのすべての情報は、参考のために提供されているものであり、契
約に盛り込まれるべきものではありません。本情報の正確性または完全性について、 CA は一切の
責任を負いません。この文書は、当該の法律で認められる範囲で CA が「現状のまま」提供するも
のであり、いかなる種類の保証も伴いません。これには、特定の目的に対する市場性または適合
性、非違法性についての黙示の保証が含まれますが、これに限定されるものではありません。 CA
は、この文書の使用によって直接的または間接的に生じた損害について、たとえ CA がかかる損害
の可能性について明確な通知を受けた場合でも、一切責任を負いません。これには、利益の損失
、投資の損失、事業の中断、営業権、データの損失が含まれますが、これに限定されるものでは
ありません。




            Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
お問い合わせ窓口
  CA ジャパン・ダイレクト : 01 20-702-600
                                J pa irect@ .com
                                 a nD      ca
  www.ca.com/j
             p
  www.ca.com/j
             p/solutions/ma me.a
                           infra spx

More Related Content

What's hot

Git Flowを運用するために
Git Flowを運用するためにGit Flowを運用するために
Git Flowを運用するために
Shun Tsunoda
 
5分で出来る!イケてるconfluenceページ
5分で出来る!イケてるconfluenceページ5分で出来る!イケてるconfluenceページ
5分で出来る!イケてるconfluenceページ
CLARA ONLINE, Inc.
 
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
AdvancedTechNight
 
OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理
Tadashi Miyazato
 
次世代 IDaaS のポイントは本人確認 NIST と、サプライチェーンセキュリティと、みなしご ID - OpenID Summit 2020
次世代 IDaaS のポイントは本人確認 NIST と、サプライチェーンセキュリティと、みなしご ID  - OpenID Summit 2020次世代 IDaaS のポイントは本人確認 NIST と、サプライチェーンセキュリティと、みなしご ID  - OpenID Summit 2020
次世代 IDaaS のポイントは本人確認 NIST と、サプライチェーンセキュリティと、みなしご ID - OpenID Summit 2020
OpenID Foundation Japan
 
Ormとの付き合い方
Ormとの付き合い方Ormとの付き合い方
Ormとの付き合い方
豊明 尾古
 
webエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのrediswebエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのredis
nasa9084
 
Discordから バーチャルオフィス「Teamflow」 に乗り換えてみた 雑談を生む工夫
Discordから バーチャルオフィス「Teamflow」 に乗り換えてみた 雑談を生む工夫Discordから バーチャルオフィス「Teamflow」 に乗り換えてみた 雑談を生む工夫
Discordから バーチャルオフィス「Teamflow」 に乗り換えてみた 雑談を生む工夫
Koichiro Matsuoka
 
GUI アプリケーションにおける MVC
GUI アプリケーションにおける MVCGUI アプリケーションにおける MVC
GUI アプリケーションにおける MVC
Yu Nobuoka
 
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
DeNA
 
Head First Inception Deck
Head First Inception DeckHead First Inception Deck
Head First Inception Deck
Naoto Nishimura
 
WayOfNoTrouble.pptx
WayOfNoTrouble.pptxWayOfNoTrouble.pptx
WayOfNoTrouble.pptx
Daisuke Yamazaki
 
アクセスプラン(実行計画)の読み方入門
アクセスプラン(実行計画)の読み方入門アクセスプラン(実行計画)の読み方入門
アクセスプラン(実行計画)の読み方入門
Akira Shimosako
 
クソコード動画「Managerクラス」解説
クソコード動画「Managerクラス」解説クソコード動画「Managerクラス」解説
クソコード動画「Managerクラス」解説
MinoDriven
 
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
Yusuke Suzuki
 
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Satoshi Kubo
 
Oss貢献超入門
Oss貢献超入門Oss貢献超入門
Oss貢献超入門
Michihito Shigemura
 
nginxの紹介
nginxの紹介nginxの紹介
nginxの紹介
Takashi Takizawa
 

What's hot (20)

Git Flowを運用するために
Git Flowを運用するためにGit Flowを運用するために
Git Flowを運用するために
 
5分で出来る!イケてるconfluenceページ
5分で出来る!イケてるconfluenceページ5分で出来る!イケてるconfluenceページ
5分で出来る!イケてるconfluenceページ
 
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
 
OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理
 
次世代 IDaaS のポイントは本人確認 NIST と、サプライチェーンセキュリティと、みなしご ID - OpenID Summit 2020
次世代 IDaaS のポイントは本人確認 NIST と、サプライチェーンセキュリティと、みなしご ID  - OpenID Summit 2020次世代 IDaaS のポイントは本人確認 NIST と、サプライチェーンセキュリティと、みなしご ID  - OpenID Summit 2020
次世代 IDaaS のポイントは本人確認 NIST と、サプライチェーンセキュリティと、みなしご ID - OpenID Summit 2020
 
Ormとの付き合い方
Ormとの付き合い方Ormとの付き合い方
Ormとの付き合い方
 
Java8でRDBMS作ったよ
Java8でRDBMS作ったよJava8でRDBMS作ったよ
Java8でRDBMS作ったよ
 
webエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのrediswebエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのredis
 
Discordから バーチャルオフィス「Teamflow」 に乗り換えてみた 雑談を生む工夫
Discordから バーチャルオフィス「Teamflow」 に乗り換えてみた 雑談を生む工夫Discordから バーチャルオフィス「Teamflow」 に乗り換えてみた 雑談を生む工夫
Discordから バーチャルオフィス「Teamflow」 に乗り換えてみた 雑談を生む工夫
 
GUI アプリケーションにおける MVC
GUI アプリケーションにおける MVCGUI アプリケーションにおける MVC
GUI アプリケーションにおける MVC
 
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
 
Head First Inception Deck
Head First Inception DeckHead First Inception Deck
Head First Inception Deck
 
WayOfNoTrouble.pptx
WayOfNoTrouble.pptxWayOfNoTrouble.pptx
WayOfNoTrouble.pptx
 
Google Cloud で実践する SRE
Google Cloud で実践する SRE  Google Cloud で実践する SRE
Google Cloud で実践する SRE
 
アクセスプラン(実行計画)の読み方入門
アクセスプラン(実行計画)の読み方入門アクセスプラン(実行計画)の読み方入門
アクセスプラン(実行計画)の読み方入門
 
クソコード動画「Managerクラス」解説
クソコード動画「Managerクラス」解説クソコード動画「Managerクラス」解説
クソコード動画「Managerクラス」解説
 
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
 
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門
 
Oss貢献超入門
Oss貢献超入門Oss貢献超入門
Oss貢献超入門
 
nginxの紹介
nginxの紹介nginxの紹介
nginxの紹介
 

CA Japan seminar CA Easytrieve updates 2012/6/5

  • 1. CA Easytrieve ® 活用セミナー Easytrieve 活用例 2012 年 6 月 5 日 CA Technologies メインフレーム・ソリューション事業部 丸川 隆司
  • 2. アジェンダ — INDEX フィールドの活用 — マクロ機能の活用 — CSV ファイルの作成方法 — HTML レポートの作成方法 — Easytrieve EXIT の活用 — R11 ご紹介 — Q&A Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 3. INDEX フィールドの活用 — Easytrieve のフィールド定義は、レコード中の開始位置を 固定値で指定しますが、 INDEX フィールドを使うことで 可変にできます。 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 4. INDEX を使用した文字列サーチ ログファイル (80 バイト ) より、“ ABEND” の 5 文字をサーチする INDEX フィールド FILE INFILE F(80) MOJI 1 5 A INDEX IDX1 * FILE ERRFL F(80) MOJI フィールドの開始位置 開始位置初期値設定 * JOB INPUT INFILE    = 1 + IDX1 の値 IDX1 = 0 DO WHILE IDX1 <= 75 IF MOJI = ‘ABEND’ IDX1 の最大値は 75 ( 80 - 5 ) PUT ERRFL FROM INFILE END-IF IDX1 = IDX1 + 1 END-DO 開始位置を 1 バイトずらす Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 5. INDEX を使用した可変セグメントレコード処理 可変 可変 セグメント セグメント セグメント A セグメント A セグメント セグメント B セグメント B ~ A ~ A の数 (1) (2) B の数 (1) (n) (n) 固定長 固定長 セグメントの数は可変なので、固定の OCCURS 指定では処 理できない・・・・ FILE INFILE V(360) SEG-A-COUNT 5 3 N SEG-A-DATA 8 5 A OCCURS??? * SEG-B-COUNT ???? SEG-B-DATA ???? * Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 6. INDEX を使用した可変セグメントレコード処理  -続き このようなレコードは INDEX を使用して開始位置を指定 することができます。 3 + SEG-A-CNT * 5 SEG-A-DATA SEG-A-DATA SEG-A-DATA SEG-B-DATA SEG-B-DATA SEG-A-CNT ~ SEG-B-CNT ~ 1 2 n 1 n 3 5 5 5 3 4 4 IDXB1=0 IDXA=0 IDXB2=0 FILE INFILE SEG-A-CNT 5 3 N SEG-A-DATA 8 5 A INDEX IDXA * SEG-B-CNT 5 3 N INDEX IDXB1 SEG-B-DATA 8 4 A INDEX IDXB2 * JOB INPUT INFILE IDXA = 0 IDXB1 = 3 + SEG-A-CNT * 5 IDXB2 = IDXB1 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 7. INDEX を使用した可変セグメントレコード処理  -続き FILE INFILE SEG-A-CNT 5 3 N SEG-A-DATA 8 5 A INDEX IDXA * SEG-B-CNT 5 3 N INDEX IDXB1 SEG-B-DATA 8 4 A INDEX IDXB2 * WK-CNTR W 3 N * JOB INPUT INFILE IDXA = 0 IDXB1 = 3 + SEG-A-CNT * 5 IDXB2 = IDXB1 * SEG-A の処理 WK-CNTR = 1 DO WHILE WK-CNTR <= SEG-A-CNT DISPLAY '*** SEGA : ' SEG-A-DATA IDXA = IDXA + 5 WK-CNTR = WK-CNTR + 1 END-DO * SEG-B の処理 WK-CNTR = 1 DO WHILE WK-CNTR <= SEG-B-CNT DISPLAY '*** SEGB : ' SEG-B-DATA IDXB2 = IDXB2 + 4 WK-CNTR = WK-CNTR + 1 END-DO Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 8. INDEX フィールドまとめ — フィールド定義に INDEX を指定することにより、フィー ルドの開始位置を動的に変更することができます。 — INDEX 指定は、ファイルフィールド、ワークフィールド 共に指定できます。 WK-FLD W 80 A WK-FLD2 WK-FLD 2 A INDEX IDX1 WK-FLD3 WK-FLD 3 A INDEX IDX2 — INDEX 値の変更により、レコードまたはワークエリアの 範囲を超えないように注意が必要です。 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 9. マクロ機能の活用 — ファイルフィールド定義( COPY 句定義)   FILE   INFILE    %INFILE — 共通ロジック定義(部品化) Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 10. マクロ機能の活用(共通ロジック定義) — Easytrieve のマクロ機能は、 COPY 句を登録するだけでな く、ロジックを登録しておくこともできます。 — ロジックの場合にも、 COPY 句と同様に、 Easytrieve マク ロライブラリ( PDS 、 Panvalet 、 Librarian 、 VSAM のい ずれか)に、マクロメンバー名で登録しておきます。 — マクロ呼び出し命令は、 % マクロ名を指定します。 %macro-name parm1 parm2 .... Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 11. マクロ機能の活用(呼び出しサンプル) — SUBSTRING 的な処理のサンプル 文字列 文字列 START1 LENGTH1 START2 LENGTH2 INDATA ① ② FILE FILEA F(100) START1 1 2 P 0 LENGTH1 3 2 P 0 START2 5 2 P 0 LENGTH2 7 2 P 0 INDATA 20 80 A WK-MOJI W 5 A JOB INPUT FILEA *  文字列①の抽出 %SUBSTR INDATA START1 LENGTH1 WK-MOJI DISPLAY WK-MOJI 2012 CA. All rights reserved. Copyright © Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 12. マクロ機能の活用(マクロサンプル) 呼び出し側の コーディング %SUBSTR INDATA START1 LENGTH1 WK-MOJI MACRO 4 P1 P2 P3 P4 * DEFINE INPUT AREA DEFINE WK-IN W 1000 A 呼び出されるマクロ DEFINE WK-IN1 WK-IN 1 A INDEX WK-IDXIN 右の内容を DEFINE WK-CNT W 5 P 0 SUBSTR の * DEFINE OUTPUT AREA メンバー名でマクロ ライブラリに登録し DEFINE WK-OUT W 1000 A ておく。 DEFINE WK-OUT1 WK-OUT 1 A INDEX WK-IDXOUT    WK-IDXIN = &P2 - 1. * SET START INDEX    WK-CNT = WK-IDXIN + &P3. * SET MAXIMUM LENGTH IF WK-CNT > 1000. * CHECK IF AREA EXCEEDS MAX LEN &P4 = 'ERROR'. * MAX LENGTH ERROR ELSE Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  . WK-IN = &P1. * INPUT AREA
  • 13. マクロ機能の活用まとめ — Easytrieve のマクロ機能は、ファイルフィールド定義、共 通ロジック定義で利用できます。 — フィールド定義同様に、良く利用される処理はマクロメ ンバーとして登録し、共通に利用することでより生産性 を向上させることが可能になります。 — マクロソースの前後に MSTART 、 MEND の指定を行うこ とで、プログラム中にマクロソースを組み込んで実行す ることができます。これによって外部ファイルにマクロ メンバーを作成する前のテストが可能になります。 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 14. CSV ファイルの作成方法 — Easytrieve を使って簡単に CSV ファイルを作成することが できます。 — REPORT 機能と DISPLAY 機能の、 2 つの作成方法をご紹介 します。 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 15. CSV ファイルについて — CSV ( Comma-Separated Values )カンマ区切りデータ — スプレッドシート用データ(表形式データ) − 可変長 − テキストデータ − 区切り文字 — データのインポート / エキスポートで利用 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 16. REPORT 機能を使った CSV ファイル作成 FILE PERSNL F(80) REGION 1 6 N MASK('ZZZZ99') BRANCH 8 6 N MASK('ZZZ999') NAME-LAST 15 10 M NAME-FIRST 25 10 M DEPT 36 4 A GROSS 41 5 N 1 MASK('ZZZ9.9') * FILE CSVOUT V(360) PRINTER   EXTENDED CSVIBM * 拡張プリンター名の指定 JOB INPUT PERSNL PRINT RPT1 * 見出し文字 REPORT RPT1 PRINTER CSVOUT LINESIZE 80 SPACE 0 TITLESKIP 0 + NOADJUST NODATE NOHEADING NOPAGE PAGESIZE 32767 SEQUENCE REGION BRANCH TITLE ' 地区番号 , 支店番号 , 姓 , 名 , 部門番号 , 支払額 ' LINE REGION ',' BRANCH ',' NAME-LAST ',' NAME-FIRST ',' + 明細項目 DEPT ',' GROSS Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 17. REPORT 機能を使った CSV ファイル作成(出力例) BROWSE CAJAPAN.MARTA02.CSVFL1 LINE 00000000 CO COMMAND ===> SCROLL ----+----1----+----2----+----3----+----4----+----5----+----6----+----7 ********************************* Top of Data ************************ 地区番号 , 支店番号 , 姓 , 名 , 部門番号 , 支払額 01, 001, 小山   , 正明   ,0903, 373.6 01, 001, 戸田   , 健志   ,0918,8046.4 01, 002, 表山   , 友義   ,0943, 759.2 01, 002, 新石   , 和広   ,0935,1461.6 01, 003, 短田   , 育弘   ,0915, 344.8 01, 003, 柊木   , 吉則   ,0914, 445.5 01, 003, 羽田   , 友幸   ,0911,4922.6 01, 004, 川中   , 満    ,0917,2839.2 01, 004, 丸海   , 智之   ,0911,3966.8 02, 001, 山畑   , 茂幸   ,0932, 360.8 02, 001, 豊田   , 一博   ,0921, 243.2 02, 002, 小泉   , 仁    ,0911, 242.4 02, 002, 白部   , 弘昌   ,0911, 386.4 02, 003, 木ノ上  , 貴司   ,0943,2385.2 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 18. DISPLAY 機能を使った CSV ファイル作成 FILE PERSNL F(80) REGION 1 6 N MASK('ZZZZ99') BRANCH 8 6 N MASK('ZZZ999') NAME-LAST 15 10 M NAME-FIRST 25 10 M DEPT 36 4 A GROSS 41 5 N 1 MASK('ZZZ9.9') * 拡張プリンター名の指定 FILE CSVOUT V(360) PRINTER   EXTENDED CSVIBM * 見出し文字 JOB INPUT PERSNL IF PERSNL:RECORD-COUNT = 1 DISPLAY CSVOUT ' 地区番号 , 支店番号 , 姓 , 名 , 部門番号 , 支払額 ' END-IF 明細項目 DISPLAY CSVOUT REGION ',' BRANCH ',' NAME-LAST ',' NAME-FIRST + ',' DEPT ',‘ GROSS Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 19. DISPLAY 機能を使った CSV ファイル作成(出力例) BROWSE CAJAPAN.MARTA02.CSVFL2 LINE 00000000 COL COMMAND ===> SCROLL = ----+----1----+----2----+----3----+----4----+----5----+----6----+----7- ********************************* Top of Data ************************* 地区番号 , 支店番号 , 姓 , 名 , 部門番号 , 支払額 01, 001, 小山   , 正明   ,0903, 373.6 01, 001, 戸田   , 健志   ,0918,8046.4 01, 002, 表山   , 友義   ,0943, 759.2 01, 002, 新石   , 和広   ,0935,1461.6 01, 003, 短田   , 育弘   ,0915, 344.8 01, 003, 柊木   , 吉則   ,0914, 445.5 01, 003, 羽田   , 友幸   ,0911,4922.6 01, 004, 川中   , 満    ,0917,2839.2 01, 004, 丸海   , 智之   ,0911,3966.8 02, 001, 山畑   , 茂幸   ,0932, 360.8 02, 001, 豊田   , 一博   ,0921, 243.2 02, 002, 小泉   , 仁    ,0911, 242.4 02, 002, 白部   , 弘昌   ,0911, 386.4 02, 003, 木ノ上  , 貴司   ,0943,2385.2 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 20. CSV ファイル出力結果 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 21. CSV ファイル用拡張プリンター定義 — CSV ファイルを作成する処理で漢字文字、漢字フィール ドを扱う場合には、出力ファイルに拡張プリンター指定 が必要です。 — CSV ファイル専用の拡張プリンターを定義しておくと便 利です。 — 既存の拡張プリンター設定を使用することも可能です。 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 22. CSV ファイル用拡張プリンター定義サンプル **************************************************************** * CSVIBM **************************************************************** PRINTER NAME ( CSVIBM ) - TERMINAL ( 0E 0F ) - DBCS-CODE ( IBM ) **************************************************************** * CSVFJ **************************************************************** PRINTER NAME ( CSVFJ ) - TERMINAL ( 28 29 ) - DBCS-CODE ( JEF4040 ) **************************************************************** * CSVH **************************************************************** PRINTER NAME ( CSVH ) - TERMINAL ( 0AE2 0A41 ) - DBCS-CODE ( KEIS ) Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 23. CSV ファイル作成まとめ — REPORT 機能、または DISPLAY 機能で CSV ファイルを簡 単に作成することができます。 — パック 10 進数等、数値データ編集処理や漢字データのシ フトコード編集処理が不要です。 — Easy の仕様で仕様で先頭 1 バイトにブランクが入ります 。 — CSV ファイルの入出力機能拡張を計画中です。 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 24. HTML レポートの作成方法 — Easytrieve の拡張プリンタ機能を応用して、従来のレポー トを HTML 形式のデータとして出力することができます 。 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 25. HTML レポートの利点 — ビジュアルなアピール − フォント − カラー − フォーマット — 配布が容易 − 集中保管 − リンクで配布 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 26. HTML レポートプログラムの例 変更点はわずか 2 か所のみ! FILE PERSNL F(80) REGION 1 6 N MASK('ZZZZ99') HEADING(' 地区番号 ') BRANCH 8 6 N MASK('ZZZ999') HEADING(' 支店番号 ') NAME-LAST 16 8 K HEADING(' 姓 ') NAME-FIRST 26 8 K HEADING(' 名 ') DEPT 36 4 A HEADING(' 部門 ') GROSS 41 5 N 1 MASK('ZZZ9.9') HEADING(' 支給額 ') LAST_KANA 47 10 A FIRST_KANA 57 10 A HTML 拡張プリンター定義名の指定 * FILE HTMLFL PRINTER EXTENDED HTML * JOB INPUT PERSNL PRINT RPT1 * REPORT に出力先を指定 REPORT RPT1 LINESIZE 80 PRINTER HTMLFL SEQUENCE REGION D BRANCH D TITLE '***** HTML サンプルレポート *****' LINE REGION BRANCH NAME-LAST NAME-FIRST DEPT GROSS Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 27. HTML レポートサンプル Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 28. 拡張プリンター定義とは? — MF 環境で、日本語プリンターにレポートを印刷するた めの機能です。 — 各種日本語プリンターに対応した定義が行えます。 − フォント設定 − 漢字コード、シフトコード設定 − 改ページ、改行設定・・・・等々 — レポート出力するファイルや文字データへのヘッダー情 報、トレーラー情報を付加します。 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 29. HTML レポート用拡張プリンタ定義例 PRINTER NAME ( HTML ) - DEFAULT-SIZE 1 1 )( - DEFAULT-FONT ( 1 2 3 ) - FCB N ) ( - DBCS-CODE IBM )( - DEVICE ( DISK DISK ) - RECORD ( V 20600 ) - POINT-SKIP ( 40 4C82996E- 4CA283998997A34093819587A48187857E7F- 9181A581A283998997A37F6E9585A6938995- 854DF&S15D4C61A283998997A36E ) - CONCATENATE ( Y ) - FILE-HEADER ( - ' <html><head><meta http-equiv=- "Content-Type" content="charset=SJIS" />- プリントレコー <script language="javascript">- ドの最初に出力 function newline(n)- {for( var i=0;i<n; i++ ) document.write("¥n")}- される情報 </script>- <title>Easytrieve HTML</title>- </head><body><pre>' ) - FILE-TRAILER ( ' </pre></body></html>' ) プリントレコード の最後に出力され る情報 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 30. HTML レポート用拡張プリンタ定義例-続き FONT NUMBER ( 1 ) - WIDTH ( 3 ) - DATA-TYPE ( EBCDIC ) - HEIGHT ( 01 ) - FUNCTION-HEADER ( 4CA297819540A2A3A893857E7F869695A3608681- 文字列の前 948993A87A0E42D442E20F400E43C4438D435643- 880F5E869695A360A289A9857AF2F497A75E7F6E ) - に付加され FUNCTION-TRAILER ( 4C61A29781956E ) る情報 * 文字列の後に付 FONT NUMBER ( 2 ) - 加される情報 WIDTH ( 4 ) - DATA-TYPE ( DBCS ) - HEIGHT 01( ) - FUNCTION-HEADER ( 4CA297819540A2A3A893857E7F869695A3608681- 948993A87A0E42D442E20F400E43C4438D435643- 880F5E869695A360A289A9857AF1F697A75E7F6E- 0E ) - FUNCTION-TRAILER ( 0F- 4C61A29781956E ) * FONT NUMBER ( 3 ) - DATA-TYPE ( 1 2 ) <span style="font-family: MS ゴシック ;font- </span> size:16px;"> Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 31. 拡張プリンター定義ツール(計画中) Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 32. HTML レポート作成まとめ — 拡張プリンタに HTML タグ設定カスタマイズを追加しま す。 — 通常のレポート機能に、 HTML 設定を行った拡張プリン タ名を指定します。 — 拡張プリンタの HTML カスタマイズは、今回のサンプル 以外にも様々な設定を行うことができます。 — 詳細はご相談ください。 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 33. Easytrieve EXIT の活用 — FILE EXIT — SYSIN EXIT Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 34. FILE EXIT とは ? — Easytrieve のファイルアクセスタイミングで実行される外 部ルーチン呼び出しポイント。 — Easytrieve がサポートしていないファイルのアクセスや、 特定の処理を追加したい場合に利用します。 − 圧縮ファイルの入出力 − 暗号化ファイルの入出力 − ファイル内の特定情報マスキング処理 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 35. FILE EXIT の動作(入力処理の場合) FILE INFILE EXIT(SUBPGM USING(PARM1)) WORKAREA(100) P1 : WORKAREA アドレ 制御コードの 内容 ス 値 P2 : 制御コードアドレ X’00’ 入力要求 ス X’08’ EOF 要求( EXIT 側で設定) P3 : PARM1 のアドレス JOB INPUT SUBPGM INFILE — EXIT でファイルの入力を行い、 WORKAREA にデータを移送 — EOF 時には、制御コードに X’08’ を書き込んで、 Easy に通知 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 36. FILE EXIT の動作(出力処理の場合) FILE OUFTL EXIT(SUBPGM USING(PARM1)) WORKAREA(100) P1 : WORKAREA アドレ 制御コードの 内容 ス 値 P2 : 制御コードアドレ X’04’ 出力要求 ス X’08’ クローズ要求( Easy 側で設 定) P3 : PARM1 のアドレス PUT SUBPGM OUTFL — WORKAREA の内容を EXIT で読み取り、ファイルに出力 — 制御コード値が X’08’ の場合は Easy の終了処理要求なので、ファイ ルのクローズ処理を行う Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 37. SYSIN EXIT とは ? — Easytrieve コンパイラがソースコードを読み込むタイミン グで実行される外部ルーチン呼び出しポイント。 — SYSIN EXIT を使用する場合には、外部ルーチン側でソー スコードを読み込んでから、 Easytrieve コンパイラに渡 します。 — コンパイル直前のソースコードを処理することができま す。 − ユーザー独自コマンドの解析(プリコンパイラ処理) − 管理情報の作成(コンパイル、実行日時の記録等) Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 38. SYSIN EXIT の動作 P1 : Easytrieve コンパイラ入力 アドレス 制御コードの 内容 P2 : 制御コードアドレス 値 X’08’ ソースの終了( EXIT 側で設 定) ソース Easytrieve SYSIN ステー コンパイラ EXIT PGM トメン ト — Easytrieve のコンパイラが 1 行分のソースステートメントを入力する タイミングで、 EXIT に処理が渡されます。( Easy 自身はソースを読 み込みません) — EXIT 側でソースファイル( SYSIN )を読み込み、必要な処理を行っ た後にコンパイラ入力アドレスにソースステートメントを設定して 、 Easytrieve に処理を戻します。 — ソースファイルの終了時には、制御コードに X’08’ を設定し て、 Easytrieve に処理を戻します。Easytrieve 活用セミナ 2012 年 6 月 5 日  . Copyright © 2012 CA. All rights reserved.
  • 39. Easytrieve EXIT まとめ — FILE EXIT により、サポートしていないファイルアクセス が可能になります。(暗号化、圧縮ファイルの I/O 等) — SYSIN EXIT により、ユーザーコマンドの追加等、独自の 機能拡張が可能になります。 — 設定方法等の詳細はご相談くださいませ。 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 40. R11 ご紹介 — Easytrieve リリース R11 より、 MF 環境だけでなく UNIX 、 Linux 、 Windows などのオープン環境もサポート します。 — 各プラットフォーム共通のソース、共通のユーティリテ ィプログラムを使用します。 — 一部トピックのご紹介 − XML データ出力 − パフォーマンス改善 − Easytrieve Workbench Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 41. XML データ出力 — Easytrive の自動レポート機能に XML ファイルを出力する 機能が追加されます。 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 42. XML とは? — XML は eXtensible Markup Language の略 — テキストデータの共通フォーマット − 自己定義データ − テキストベース − マークアップ・タグと文字列 — プログラム間のデータ交換で使用 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 43. XML データ出力サンプル FILE PERSNL V(80) SYSNAME(‘/EZT/SRC/TESTDATA.txt') REGION 1 6 N BRANCH 8 6 N LAST_NAME 15 8 A FIRST_NAME 23 8 A DEPT 32 4 A GROSS 37 5 N 1 MASK('ZZZ9.9') * FILE XMLFL PRINTER SYSNAME(‘/EZT/SRC/EZTPERSNL.xml') * JOB INPUT PERSNL START SPROC PRINT RPT1 * SPROC. PROC DISPLAY XMLFL '<?xml-stylesheet type="text/xsl"' + XML パラメータ ' href="EZTPERSNL.xsl"?>' + '<?xml version="1.0" encoding="Shift_JIS" ?>' END-PROC * REPORT RPT1 PRINTER XMLFL LINESIZE 80 XML LINE REGION BRANCH LAST_NAME FIRST_NAME DEPT GROSS Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 44. XML データ出力結果 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 45. IE 用スタイルシートでの編集レポート Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 46. XML データ出力まとめ — 自動レポート機能を使った、簡単な XML ファイル出力が 可能です。 — ネイティブ XML ファイルタイプのサポートを計画中です 。 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 47. パフォーマンス改善 — VMF の代わりに WORKFILE を使用することにより、実行 時のパフォーマンスを向上させることができます。 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 48. VFM とは? Virtual File Manager (仮想ワークファイル) 1 つの物理ファイル定義で、様々なワー クエリアをサポート 複数 JOB 間の受け渡しデータセット 複数レポートの中間ファイル 実行パフォーマンス的には不利 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 49. WORKFILE 機能 — WORKFILE オプションを PARM ステートメントに指定し ます。   WORKFILE ( {YES|NO} [number-of-cylinders] PARM — レポート用ワークファイルがダイナミックにアロケート されます。 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 50. WORKFILE の利用結果 — パフォーマンスが最大で 8.5 倍改善されたケースあり。 — 例えば、 EXCP が 136,000 (R6.4 VFM) から 16,000 (R11 WF) に減少など。 — 多数のデータを扱う複数レポート処理で効果があります 。 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 51. パフォーマンス改善まとめ — VFM は物理ファイルを意識する必要が無く非常に便利で す。 — 特にパフォーマンスが必要な、大量データの複数レポー ト処理に WORKFILE の使用を推奨します。 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 52. Easytrieve Workbench — Easytrieve Windows 開発環境 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 53. Easytrieve Workbench — コンパイル画面 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 54. Easytrieve Workbench — デバック画面・条件ブレークポイントの設定 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 55. Easytrieve Workbench — デバック画面、プログラム変数の表示、変更 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 56. Q& A ? Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 57. プレゼンテーション条件 このプレゼンテーションは、 2012 年 2 月 22 日時点での最新の情報およびリソース配分に基 づいて作成されています。 CA は本書の内容を予告なく変更、撤回することがあります。この プレゼンテーションに相反する記載があったとしても、このプレゼンテーションは、 ( i ) CA ソフトウェア製品に関する既存または将来の使用許諾契約書またはサービス契約書 に基づく CA またはそのライセンシーの権利、義務、またはその双方に影響を及ぼす、または ( ii ) CA ソフトウェア製品の文書または仕様を変更することはありません。このプレゼンテ ーションに記載されている機能の開発、リリース、およびその時期については、 CA が自己 の裁量で決定できるものとします。本書にこれと異なる記述があっても、本書で参照されて いる任意の CA 製品の将来のリリース出荷時に、 CA はそのリリースを( i )これらの製品の 新規ライセンス契約者への販売のために提供し、( ii ) CA の保守およびサポートの一環とし て、提供可能になり次第、これらの製品の既存のライセンス契約者に定期的なメジャー製品 リリースとして提供します。 このようなリリースは、現在 CA の保守およびサポートを利用 するこれらの製品の現在のライセンス契約者に、提供可能になり次第提供されることがあり ます。この項の規定とこのプレゼンテーションに含まれるその他の情報に矛盾がある場合は 、この項が適用されるものとします。 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 58. 情報提供のみを目的としています このプレゼンテーションには、 CA の製品の一般的な方向性を示す情報が含まれている場合があり ます。このプレゼンテーションのすべての情報は、参考のために提供されているものであり、契 約に盛り込まれるべきものではありません。本情報の正確性または完全性について、 CA は一切の 責任を負いません。この文書は、当該の法律で認められる範囲で CA が「現状のまま」提供するも のであり、いかなる種類の保証も伴いません。これには、特定の目的に対する市場性または適合 性、非違法性についての黙示の保証が含まれますが、これに限定されるものではありません。 CA は、この文書の使用によって直接的または間接的に生じた損害について、たとえ CA がかかる損害 の可能性について明確な通知を受けた場合でも、一切責任を負いません。これには、利益の損失 、投資の損失、事業の中断、営業権、データの損失が含まれますが、これに限定されるものでは ありません。 Copyright © 2012 CA. All rights reserved. Easytrieve 活用セミナ 2012 年 6 月 5 日  .
  • 59. お問い合わせ窓口 CA ジャパン・ダイレクト : 01 20-702-600 J pa irect@ .com a nD ca www.ca.com/j p www.ca.com/j p/solutions/ma me.a infra spx

Editor's Notes

  1. 本日はセミナーにご参加頂きましてありがとうございます。 私、 MF のプリセールスを担当しております。 皆様既にEasytrieveをご利用頂いていると思いますが、色々なお客様を訪問させて頂き、お話をお聞きすると、 意外と知られていない機能や、 MF データを OPEN 系データに加工する処理での応用などがあることがわかりました。 具体的な例をいくつかご紹介させていただきます。 アジェンダとしましては、 May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  2. Easy のフィールド定義は、何バイト目から始まるフールドであるかを指定します。 この方法のメリットは  ・処理に必要なフィールドだけ定義すればよい  ・フィールド定義の順番を意識しなくてもよい INDEX 指定を行うことで、開始位置を動的に変更できます。 May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  3. こちらのサンプルは、レコード中のどこかにある文字列をサーチする処理を INDEX を使って行うものです。 あるお客様では、このような文字列サーチ処理に 1 バイトのフィールドを OCCURS で定義して、サーチする文字の先頭文字が OCCURS の何番目にあるかを調べ、それ以降に目的の文字があるかどうかを 1 文字ずつチェックする処理を行われていました。 INDEX を利用すると、例えば 5 バイト分の文字列をサーチする場合には、 5 バイトのフィールドを定義して、開始位置を変更しながら目的の文字列を探し出すことが可能になります。 プログラム例  1)フィールド定義に「 INDEX   index フィールド名」を指定する  2) INDEX を指定したフィールドは、定義上の開始位置+ index フィールドの値が、処理される開始位置になります。  3)つまり、 index フィールドに1を足せば、フィールドの開始位置が 1 バイト分後に移動することになります。  4) index フィールドの加算をループ処理することで、サーチ処理が可能になります。  5) index フィールドの最大値は、レコード長- INDEX を指定したフィールドの長さ INDEX により、文字列サーチや、可変文字長のデータ埋め込み処理等に応用できます。 May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  4. セグメントレコード ご存じでしようか? 元々構造化 DB をフラットファイルにした物のようでして、ある固定長のデータの集まり(セグメント)が、いくつか連続して存在し、レコード毎にセグメントの数が異なるというものです。 例えば・・・ Easy ではこのようなレコードの処理には OCCURS 定義が思いつくのですが、オカレンス数を固定値で指定するため、オカレンス数が可変のレコードには使用できないことになります。 May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  5. このような場合、 INDEX を使用して処理を行うことができます。 この例にありますように、セグメント A の後にセグメント B がある場合、レコードの固定長部分にインデックスフィールドを定義します。 1) SEG-A-CNT は、元々固定の位置にありますので、 INDEX は必要ありません、。 2) SEG-A-DATA と、 SEG-B-CNT 、セグメント B に、それぞれ INDEX を定義します。 3) SEG-A-DATA は、 5 バイトですので、インデックスに 5 づつ加算することで、処理するセグメントを移動できます。 4) SEG-B の開始位置は、セグメント A の後にありますので、インデックスにセグメント A 全体の長さを加算すれば良い   3 +  SEG-A-CNT の値 * 5バイト 5)セグメント B は、インデックスに4づつ加算することで、処理するセグメントを移動できます。 May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  6. ・ INDEX の最大値は、レコード長 - インデックス指定フィールドの長さ ・減算処理でレコードの右から左に処理を行うことも可能 是非ご活用ください May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  7. May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  8. May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  9. May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  10. May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  11. May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  12. MFデータを OPEN 系処理に移送したり、エクセル等のデータとして CSV データが良く利用されます。 May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  13. CSV ファイルとは May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  14. REPORT 機能から CSV ファイルを出力する例 1)レポート出力を行うファイルを定義します。(通常は SYSPRINT   DD )、漢字フィールドを出力する場合には拡張プリンター定義を行います 2) REPORT 定義に出力ファイル名を PRINTER   FILE 名で定義します。 3) TITLE 、 LINE に、 CSV レコードに出力させるフィールドをカンマリテラルと共に指定します。 May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  15. REPORT 機能から CSV ファイルを出力する例 1)レポート出力を行うファイルを定義します。(通常は SYSPRINT   DD )、漢字フィールドを出力する場合には拡張プリンター定義を行います 2) REPORT 定義に出力ファイル名を PRINTER   FILE 名で定義します。 3) TITLE 、 LINE に、 CSV レコードに出力させるフィールドをカンマリテラルと共に指定します。 May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  16. DISPLAY を使った CSV ファイル作成サンプルです。 1)出力ファイルの設定 2) CSV レコード 1 件分を DISPLAY 命令で指定ファイルに出力します May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  17. DISPLAY を使った CSV ファイル作成サンプルです。 1)出力ファイルの設定 2) CSV レコード 1 件分を DISPLAY 命令で指定ファイルに出力します May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  18. CSV ファイルは文字データ Easy のレポート機能、 DISPLAY 機能により、パック 10 進数や、漢字文字のシフトコード編集が不要。 May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  19. May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  20. フィールド名がタグとして出力される データは文字形式 May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  21. 先ほどの XML データを、スタイルシートを用いてインターネットエキスプローラ上で表形式で表示させた例 May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  22. CSV 、 HTML 、 XML とご紹介しましたが、 Easy を MF のレポート機能として利用するだけでなく、 OPEN 環境用のデータ作成ツールとしてもご活用頂けます。 しかもプログラム変更が少なくてすみます。 May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  23. VFM is widely used but not well understood. JCL の EZTVFM というファイル定義が、 VFM 便利だが大量データレポートのパフォーマンス的には、あまり良くない。 May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  24. レポート処理で VFM を使用させない為の機能として、 WORKFILE 機能が追加されました May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  25. 大量のデータを複数のレポートで出力するプログラムで有効な機能 May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  26. 便利なので通常は VFM の機能をご利用ください。 May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  27. 現在、日本での出荷を検討中です。  ・ソース管理機能  ・プログラムエディタ  ・コンパイラ  ・デバッガ  ・MFや、 UNIX 、 LINUX サーバーへの接続機能等 May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  28. EASY は決して、枯れた言語ではありません。 簡単ですし、一度覚えるとなかなか忘れない言語です。 今後も機能拡張を予定しておりますので、どうぞご活用くださいませ。 May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA
  29. May 16, 2010 [Presentation Name via Insert tab &gt; Header &amp; Footer] Copyright © 2010 CA