機械翻訳について

F 管理ユーティリティの例

プロシージャ・ゲートウェイ管理ユーティリティの次のサンプル入力文およびレポート出力を使用して、独自のPGAU文の設計をガイドします。

サンプルPGAU文:

F.1 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

F.2 PGAU DEFINE CALL文の例

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

F.3 PGAU DEFINE TRANSACTION文の例

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

F.4 PGAU GENERATE文の例

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

ユーザーのハイ・レベル・アプリケーションでは、渡されて返された PL/SQLデータ型を参照することで、このヒントが使用されるようになりました。

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

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

データ型 説明

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);

F.5 暗黙的バージョニング定義の例

例は、暗黙的バージョニングを使用した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が以前に定義されているため、'DB2IMAIN'の新しいCALLバージョンを作成します:

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が以前に定義されているため、DB2Iの新しいTRANSACTIONバージョンが作成されます。 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には、2つのバージョンのDB2Iトランザクション定義があります。 オリジナルは、古い"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.pkhおよびpgadb2i.pkbが上書きされることに注意してください。 新しいパッケージを分離したままにするには、出力ファイルの指定を変更します。 たとえば:

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

ユーザーのハイ・レベル・アプリケーションでは、渡されて返された PL/SQLデータ型を参照することで、このヒントが使用されるようになりました。

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

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

データ型 説明

NEWDB2I.EMPNO

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

NEWDB2I.NEWEMP

COBOL NEWEMPに対応するPL/SQL RECORDです。

NEWDB2I.DB2

COBOL DB2に対応するPL/SQL RECORDです。

アプリケーションが次を呼び出します:

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

F.6 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'を自動的に反映します。 この変更は、'EMPREC'のバージョン1を参照するコールを参照するトランザクションに対してTIPが次に生成される場合に有効になります。

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

F.7 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定義が残ります。