機械翻訳について

F 管理ユーティリティのサンプル

Procedural Gateway Administration Utilityの次のサンプル入力文とレポート出力を使用して、独自のPGAU文の設計をガイドします。

サンプルPGAU文:

サンプルPGAU DEFINE DATA文

DEFINE DATA EMPNO
       PLSDNAME (EMPNO)
       USAGE (PASS)
       LANGUAGE (IBMVSCOBOLII)
       (
       01 EMP-NO PIC X(6).
       ); 

DEFINE DATA EMPREC
       PLSDNAME (DCLEMP)
       USAGE (PASS)
       LANGUAGE (IBMVSCOBOLII)
       INFILE("emp.cob");

ファイルemp.cobには次の内容が含まれています:

01 DCLEMP.
   10 EMPNO              PIC X(6).
   10 FIRSTNME.  
     49 FIRSTNME-LEN     PIC S9(4) USAGE COMP.
     49 FIRSTNME-TEXT    PIC X(12).
   10 MIDINIT            PIC X(1).
   10 LASTNAME.
     49 LASTNAME-LEN     PIC S9(4) USAGE COMP.
     49 LASTNAME-TEXT    PIC X(15).
   10 WORKDEPT           PIC X(3).
   10 PHONENO            PIC X(4).
   10 HIREDATE           PIC X(10).
   10 JOB                PIC X(8).
   10 EDLEVEL            PIC S9(4) USAGE COMP.
   10 SEX                PIC X(1)
   10 BIRTHDATE          PIC X(10).
   10 SALARY             PIC S9999999V99 USAGE COMP-3.
   10 BONUS              PIC S9999999V99 USAGE COMP-3.
   10 COMM               PIC S9999999V99 USAGE COMP-3.

DEFINE DATA DB2INFO
       PLSDNAME (DB2)
       USAGE (PASS)
       LANGUAGE (IBMVSCOBOLII)
       INFILE("db2.cob");

ファイルdb2.cobには次の内容が含まれています:

01  DB2.
    05 SQLCODE          PIC S9(9) COMP-4.
    05 SQLERRM.
      49 SQLERRML       PIC S9(4) COMP-4.
      49 SQLERRT        PIC X(70).
    05 DSNERRM.
      49 DSNERRML       PIC S9(4) COMP-4.
      49 DSNERRMT       PIC X(240) OCCURS 8 TIMES
                                       INDEXED BY ERROR-INDEX

サンプルPGAU DEFINE CALL文

DEFINE CALL DB2IMAIN
       PKGCALL (PGADB2I_MAIN)
       PARMS ( (EMPNO      IN ),
               (EMPREC     OUT)  );
DEFINE CALL DB2IDIAG
       PKGCALL (PGADB2I_DIAG)
       PARMS ( (DB2INFO    OUT)  );

サンプルPGAU DEFINE TRANSACTION文

DEFINE TRANSACTION DB2I
   CALL (   DB2IMAIN,
            DB2IDIAG   )
   SIDEPROFILE(CICSPROD)
   TPNAME(DB2I)
   LOGMODE(ORAPLU62)
   SYNCLEVEL(0)
   NLS_LANGUAGE("AMERICAN_AMERICA.WE8EBCDIC37C");

サンプルPGAU GENERATE文

GENERATE DB2I
   PKGNAME(PGADB2I)
   OUTFILE("pgadb2i");

ユーザーの上位レベルのアプリケーションは、このTIPを使用して、渡されて戻されたPL/SQLデータ型を参照します。

表F-1は、パッケージ名PGADB2IのTIPユーザー・トランザクション・データ型の説明を提供します:

表F-1パッケージ名で使用されるTIPユーザー・トランザクションのデータ型PGADB2I

データ型 説明

PGADB2I.EMPNO

COBOL EMPNOに対応するPL/SQL変数です。

PGADB2I.DCLEMP

これはCOBOL DCLEMPに対応するPL/SQL RECORDです。

PGADB2I.DB2

これはCOBOL DB2INFOに対応するPL/SQL RECORDです。

アプリケーション呼び出し:

PGADB2I.PGADB2I_INIT(trannum);
PGADB2I.PGADB2I_MAIN( trannum, empno, emprec );
PGADB2I.PGADB2I_DIAG( trannum, db2 );
PGADB2I.PGADB2I_TERM(trannum, termtype);

暗黙のバージョニング定義のサンプル

例は、暗黙のバージョニングを伴うDATACALL、およびTRANSACTIONエントリのサンプル定義です。

この例では、'EMPREC' DATAが以前に定義されているため、'EMPREC'の新しいDATAバージョンを作成します:

DEFINE DATA EMPREC
       PLSDNAME (NEWEMP)
       USAGE (PASS)
       LANGUAGE (IBMVSCOBOLII)
       INFILE("emp2.cob");

ファイルemp2.cobには次の内容が含まれています:

01 NEWEMP.
    10 EMPNO                   PIC X(6).
    10 FIRSTNME.
      49 FIRSTNME-LEN          PIC S9(4) USAGE COMP.
      49 FIRSTNME-TEXT         PIC X(12).
    10 MIDINIT                 PIC X(1).
    10 LASTNAME.
      49 LASTNAME-LEN          PIC S9(4) USAGE COMP.
      49 LASTNAME-TEXT         PIC X(15).
    10 WORKDEPT                PIC X(3).
    10 PHONENO                 PIC X(3).
    10 HIREDATE                PIC X(10).
    10 JOB                     PIC X(8).
    10 EDLEVEL                 PIC S9(4) USAGE COMP.
    10 SEX                     PIC X(1).
    10 BIRTHDATE               PIC X(10).
    10 SALARY                  PIC S9999999V99 USAGE COMP-3.
    10 BONUS                   PIC S9999999V99 USAGE COMP-3.
    10 COMM                    PIC S9999999V99 USAGE COMP-3.
    10 YTD.
      15 SAL                   PIC S9(9)V99 USAGE COMP-3.
      15 BON                   PIC S9(9)V99 USAGE COMP-3.
      15 COM                   PIC S9(9)V99 USAGE COMP-3.

DATAのバージョン番号が割り当てられているかどうかを確認するには、次のSQL問合せを発行します:

SELECT MAX(pd.version)
       FROM pga_data pd
       WHERE pd.dname = 'EMPREC';

'EMPREC'の更新されたバージョンに関連する追加情報を確認するには、この問合せを使用できます:

SELECT *
       FROM pga_data pd
       WHERE pd.dname = 'EMPREC';

この例では、'DB2IMAIN' CALLが以前に定義されているため、新しいCALLバージョンの'DB2IMAIN'を作成します:

DEFINE CALL DB2IMAIN
       PKGCALL (PGADB2I_MAIN)
       PARMS ( (EMPNO      IN                   ),
               (EMPREC     OUT   VERSION(ddddd) )  );

ここで、dddddは、以前のDEFINE DATAが更新されたEMPRECの後に照会されたEMPREC DATA定義のバージョン番号です。

割り当てられているコール・バージョン番号を確認するには、次のSQL問合せを発行します:

SELECT MAX(pc.version)
       FROM pga_call pc
       WHERE pc.cname = 'DB2IMAIN';

'DB2IMAIN'の更新されたバージョンに関連する追加情報を確認するには、この問合せを使用できます:

 SELECT *
        FROM pga_call pc
        WHERE pc.cname = 'DB2IMAIN';

DEFINE TRANSACTIONの例では、'DB2I' TRANSACTIONが以前に定義されているため、新しいTRANSACTIONバージョンの'DB2I'が作成されます。 DB2Iトランザクションの新しいバージョンの本質的な違いは、最初の呼び出しで新しいPL/SQLレコード形式"NEWEMP" (COBOL NEWEMP形式に対応)を使用して従業員データを問合せすることです。

注意:

上記のようなレコード・フォーマットの変更は、リモート・トランザクション・プログラムの要件と同期させる必要があります。 PGA TIPのみを変更すると、エラーが発生します。 共通の変更を伴う新しいリモート・トランザクション・プログラムは、別個のCICSシステム上で実行され、以下のSIDEPROFILEパラメータのCICSPRODからCICSTESTへの変更を開始しました。

DEFINE TRANSACTION DB2I
       CALL (  DB2IMAIN   VERSION (ccccc),
               DB2IDIAG )
       SIDEPROFILE(CICSTEST)
       TPNAME(DB2I)
       LOGMODE(ORAPLU62)
       SYNCLEVEL(0)
       NLS_LANGUAGE("AMERICAN_AMERICA.WE8EBCDIC37C");

ここで、cccccは、前のDEFINE CALLが更新されたDB2IMAINの後に照会されたDB2IMAIN CALL定義のバージョン番号です。

PGA DDにはDB2Iトランザクション定義の2つのバージョンがあります。 オリジナルは古い"DCLEMP"レコード形式を使用し、本番CICSシステム上でトランザクション"DB2I"を開始します。 最新の"NEWEMP"レコード形式を使用し、テストCICSシステムでトランザクション"DB2I"を開始します。

どのトランザクション・バージョン番号が割り当てられているかを判別するために、このSQL問合せを出すことができます:

SELECT MAX(pt.version)
  FROM pga_trans pt
  WHERE pt.tname = 'DB2I';

'DB2I'の更新されたバージョンに関連する追加情報を確認するには、この問合せを使用できます:

SELECT *
  FROM pga_trans pt
  WHERE pt.tname = 'DB2I';

この例では、以前に定義されたTRANSACTIONCALL、およびDATAの新しいバージョンを使用して新しいパッケージを生成します:

GENERATE DB2I
VERSION(ttttt)
PKGNAME(NEWDB2I)
OUTFILE("pgadb2i");

ここで、tttttは、以前の DEFINE TRANSACTIONが更新されたDB2Iの後に照会されたDB2I TRANSACTION定義のバージョン番号です。

以前のPL/SQLパッケージ・ファイルpgadb2i.pkhpgadb2i.pkbは上書きされています。 新しいパッケージを別々に保つには、出力ファイルの指定を変更してください。 次に例を示します。

GENERATE DB2I
VERSION(ttttt)
PKGNAME(NEWDB2I)
OUTFILE("newdb2i");

ユーザーの上位アプリケーションは、渡されたPL/SQLデータ型を参照してこのTIPを使用するようになりました。

表F-2は、パッケージ名NEWDB2IのTIPユーザー・トランザクション・データ型の説明を提供します:

表F-2パッケージ名NEWDB2IのTIPユーザー・トランザクション・データ型

データ型 説明

NEWDB2I.EMPNO

PL/SQL変数はCOBOL EMPNOに対応しています。

NEWDB2I.NEWEMP

PL/SQL RECORDはCOBOL NEWEMPに対応しています。

NEWDB2I.DB2

PL/SQL RECORDはCOBOL DB2に対応しています。

アプリケーション呼び出し:

NEWDB2I.PGADB2I_INIT(trannum);
NEWDB2I.PGADB2I_MAIN( trannum, empno, newemp );
NEWDB2I.PGADB2I_DIAG( trannum, db2 );
NEWDB2I.PGADB2I_TERM(trannum, termtype);

サンプルPGAU REDEFINE DATA文

EDLEVEL USAGECOMP-3になる単一フィールドの再定義:

REDEFINE DATA EMPREC
         PLSDNAME(DCLEMP)
         LANGUAGE(IBMVSCOBOLII)
         FIELD(EDLEVEL)
         PLSFNAME(PLSRECTYPE)
       (
       10 EDLEVEL  PIC S9(4) USAGE IS COMP-3.
       );

デフォルトでは、最新の呼び出しに暗黙的に影響を与えるEMPRECの最新バージョンとそれを参照するトランザクション定義が再定義されます。

従業員の姓フィールドと姓フィールドが展開され、従業員のミドル・イニシャルが削除される、複数フィールドの再定義のサンプル。

REDEFINE DATA EMPREC
         VERSION(1)
         PLSDNAME(DCLEMP)
         LANGUAGE(IBMVSCOBOLII)
         INFILE("emp1.cob");

ファイルemp1.cobには次の内容が含まれています:

01 DCLEMP.
  10 EMPNO                     PIC X(6).
  10 FIRSTNME.
       49 FIRSTNME-LEN         PIC S9(4) USAGE COMP.
       49 FIRSTNME-TEXT        PIC X(15).
  10 LASTNAME.
       49 LASTNAME-LEN         PIC S9(4) USAGE COMP.
       49 LASTNAME-TEXT        PIC X(20).
  10 WORKDEPT                  PIC X(3).
  10 PHONENO                   PIC X(4).
  10 HIREDATE                  PIC X(10).
  10 JOB                       PIC X(8).
  10 EDLEVEL                   PIC S9(4) USAGE COMP.
  10 SEX                       PIC X(1).
  10 BIRTHDATE                 PIC X(10).
  10 SALARY                    PIC S9999999V99 USAGE COMP-3.
  10 BONUS                     PIC S9999999V99 USAGE COMP-3.
  10 COMM                      PIC S9999999V99 USAGE COMP-3.
    

EMPRECのデータ定義のバージョン1が再定義されるという前提があります。 これにより、バージョン番号を変更することなく、最初の'EMPREC'サンプル・データ定義の再定義が行われます。 したがって、'EMPREC'のバージョン1を参照する既存のコールおよびトランザクション定義は、変更された'EMPREC'を自動的に反映します。 この変更は、バージョン1の'EMPREC'を参照しているコールを参照するトランザクションに対して、次にTIPが生成されたときに有効になります。

これは暗黙的に両方のバージョンのトランザクションに影響します。これは、従業員データを更新するための2番目の呼び出しで両方がEMPRECを参照するためです。

サンプルPGAU UNDEFINE文

このサンプルは、複数のバージョンを持つ特定のバージョンの定義を削除した後、特定の名前付き定義のすべてのバージョンを削除する方法を示しています。

UNDEFINE DATA EMPREC VERSION (ddddd);
UNDEFINE DATA EMPREC VERSION (ALL);
UNDEFINE CALL DB2IMAIN VERSION (ccccc);
UNDEFINE CALL DB2IMAIN VERS (all);
UNDEFINE TRANSACTION DB2I vers (ttttt);
UNDEFINE TRANSACTION DB2I vers (all);

以前のUNDEFINE文は、EMPNODATA定義と、PGA DDのDB2IDIAGCALL定義を残しています。