現在オフラインです。再接続するためにインターネットの接続を待っています

[COMTI]PL/I プログラムを使用する方法

この記事は、以前は次の ID で公開されていました: JP183179
概要
PL/I は、コンポーネント ビルダにサポートされていません。しかし、COMTI を CICS または IMS で動いている PL/I プログラムで使うことができます。これを行うためには、メモリ定義をするデータ宣言を、COBOL 宣言がするのと同じになるようにプログラムを作成します。

たとえば、CICS プログラムは、PL/I プログラムでも COBOL プログラムでも、DFHCOMMAREA を定義している構造が同じならば、どちらに対しても EXEC CICS LINK を行うことができます。同様に、COMTI コンポーネントは CICS LINK リモート環境 (RE) を使ってどちらのプログラムでも使うことができます。CICS および IMS の RE に対する場合でも同じメカニズムです。

PL/I および COBOL で同じメモリ マッピングを行う方法を知る必要があります。この資料では二つの言語についてのデータ型の比較を示します。
詳細
PL/I トランザクション プログラム (TP) 用にコンポーネントをつくる開発者は両方の言語をよく知っている必要があります。

データの整列は重要な問題です。PL/I はデフォルトで ALIGNED になっています。たとえば、構造内のフルワード Integer (4 バイト) はメインフレームのフルワード境界で ALIGNED になっています。これは同様の COBOL ステートメントで矛盾の原因となり、PL/I 構造は、UNALIGNED と宣言する必要がでてくるかもしれません。このことは特に DFHCOMMAREA 宣言にとって重要です。このデータ構造は、UNALIGNED でなければなりません。ですから、構造宣言では、UNALIGNED キーワードを指定しなければならないということです。

COBOL の "OCCURS DEPENDING ON" 句を扱うときは気を付けてください。次の例は、COBOL 構造と類似の PL/I 構造の比較です。

COBOL 例

  01   STRUCT1.  02   X   PIC S9(4) COMP.  02   Y OCCURS 1 TO 100 TIMES DEPENDING ON X PIC X(10).

PL/I 例

  DCL   1   STRUCT1,        2   X   FIXED BIN(15),        2   Y (1:100 REFER(X)) CHAR(10);

COMTI データ変換言語マッピング リスト

  自動型         Visual Basic 型  ------                ---------------  VT_I2                      Integer  VT_I4                      Long  VT_R4                      Single  VT_R8                      Double  VT_CY                      Currency  VT_DECIMAL                 Decimal  VT_DATE                    Date  (Date と time の両方 )  VT_BSTR                    String  VT_BOOL                    Boolean  VT_UI1                     Byte

Visual Basic 型と COBOL 型

次の表は、デフォルトの COBOL 型が最初にあり、各 Visual Basic 型に対するオプショナル COBOL 型が続いています。
  VB type          COBOL type                      PL/I type  -------     --------------------              ---------------  Integer        PIC S9(n) COMP                   FIXED BIN(15)                 (n <= 4)                 (注意参照)                 PIC S9(n) COMP-3                 FIXED DEC(n)                 (n <= 4)                         (n <= 4)                 PIC S9(n)                        PIC '9(n-1)T'                 (n <= 4)                         (n <= 4)                 PIC S9(n) LEADING                PIC 'T9(n-1)'                 (n <= 4)                         (n <= 4)                 PIC S9(n) SIGN SEPARATE          PIC '9(n)S'                 (n <= 4)                         (n <= 4)                 PIC S9(n)                        PIC 'S9(n)'                 SIGN SEPARATE LEADING            (n <= 4)                 (n <= 4)  Long           PIC S9(n) COMP                   FIXED BIN(31)                 (n <= 9)                 PIC S9(n) COMP-3                 FIXED DEC(n)                 (n <= 9)                         (n <= 9)                 PIC S9(n)                        PIC '9(n-1)T'                 (n <= 9)                         (n <= 9)                 PIC S9(n) LEADING                PIC 'T9(n-1)'                 (n <= 9)                         (n <= 9)                 PIC S9(n) SIGN SEPARATE          PIC '9(n)S'                 (n <= 9)                         (n <= 9)                 PIC S9(n)                        PIC 'S9(n)'                 SIGN SEPARATE LEADING            (n <= 9)                 (n <= 9)  Single         COMP-1                           FLOAT BIN(21)                 PIC S9(m)V9(n) COMP-3            FIXED DEC(m+n,n)                 PIC S9(m)V9(n) COMP              FIXED BIN(15,n)                 (m+n <= 4)                 (注意参照)                 PIC S9(m)V9(n) COMP              FIXED BIN(31,n)                 (m+n <= 9)                 PIC S9(m)V9(n)                   PIC '9(m)V9(n-1)T'                 PIC S9(m)V9(n) LEADING           PIC 'T9(m-1)V9(n)'                 PIC S9(m)V9(n)                   PIC '9(m)V9(n)S'                 SIGN SEPARATE                 PIC S9(m)V9(n)                   PIC 'S9(m)V9(n)'                 SIGN SEPARATE LEADING  Double         COMP-2                           FLOAT BIN(53)                 PIC S9(m)V9(n) COMP-3            FIXED DEC(m+n,n)                 PIC S9(m)V9(n) COMP              FIXED BIN(15,n)                 (m+n <= 4)                 (注意参照)                 PIC S9(m)V9(n) COMP              FIXED BIN(31,n)                 (m+n <= 9)                 PIC S9(m)V9(n)                   PIC '9(m)V9(n-1)T'                 PIC S9(m)V9(n) LEADING           PIC 'T9(m-1)V9(n)'                 PIC S9(m)V9(n)                   PIC '9(m)V9(n)S'                 SIGN SEPARATE                 PIC S9(m)V9(n)                   PIC 'S9(m)V9(n)'                 SIGN SEPARATE LEADING  Currency       PIC S9(13)V99 COMP-3             FIXED DEC(15,2)                 PIC S9(m)V9(n) COMP-3            FIXED DEC(m+n,n)                 (n <= 4)                         (m+n < 16)                 PIC S9(m)V9(n) COMP              FIXED BIN(15,n)                 (m+n <= 4 and n <= 4)                 (注意参照)                 PIC S9(m)V9(n) COMP              FIXED BIN(31,n)                 (m+n <= 9, n <= 4)                 PIC S9(m)V9(n)                   PIC '9(m)V9(n-1)T'                 (n <= 4)                 PIC S9(m)V9(n) LEADING           PIC 'T9(m-1)V9(n)'                 (n <= 4)                 PIC S9(m)V9(n)                   PIC '9(m)V9(n)S'                 SIGN SEPARATE                 (n <= 4)                 PIC S9(m)V9(n)                   PIC 'S9(m)V9(n)'                 SIGN SEPARATE LEADING                 (n <= 4)  Decimal        PIC S9(m)V9(n) COMP-3            FIXED DEC(m+n,n)                                                  (m+n < 16)                 PIC S9(m)V9(n) COMP              FIXED BIN(15,n)                 (m+n <= 5)                 (注意参照)                 PIC S9(m)V9(n) COMP              FIXED BIN(31,n)                 (m+n <= 9)                 PIC S9(m)V9(n) COMP              Not Supported                 (m+n <= 18)                 PIC S9(m)V9(n)                   PIC '9(m)V9(n-1)T'                 PIC S9(m)V9(n) LEADING           PIC 'T9(m-1)V9(n)'                 PIC S9(m)V9(n)                   PIC '9(m)V9(n)S'                 SIGN SEPARATE                 PIC S9(m)V9(n)                    PIC 'S9(m)V9(n)'                 SIGN SEPARATE LEADING  Date           PIC S9(7) COMP-3                 FIXED DEC(7)                 date in YYYYDDD format                 PIC S9(7) COMP-3                 FIXED DEC(7)                 time in HHMMSST format                 PIC S9(7) COMP-3                 FIXED DEC(7)                 date in YYYYDDD format                 PIC S9(7) COMP-3                 FIXED DEC(7)                 time in HHMMSST format  String         PIC X(n)                         CHAR(n)                 padded with spaces to n bytes                 PIC X(n)                         CHAR(n)                 padded with LOW-VALUE to n bytes  Boolean        PIC S9(4) COMP                   FIXED BIN(15)                 (1 = true, 0 = false)                 PIC S9(9) COMP                   FIXED BIN(31)                 (1 = true, 0 = false)                 PIC  S9(n) COMP-3                FIXED DEC(n)                 (1 = true, 0 = false)  Byte           PIC X                            CHAR(1)                 (no translation performed)                 PIC 999 COMP                     FIXED BIN(15)                 (value between 0 and 255)                 PIC 999 COMP-3                   FIXED DEC(3)                 (value between 0 and 255)
注意: 適切な COBOL コンパイラ オプションを設定して、9,999 と 32,768 の間の数が PIC 9(4) COMP に収まるようにしなければなりません。
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID183179(最終更新日 1998-07-31) をもとに作成したものです。

COBOL PL/1 PL/I PL1 PLI
プロパティ

文書番号:183179 - 最終更新日: 08/20/2003 23:23:00 - リビジョン: 1.0

  • Microsoft COM Transaction Integrator for CICS and IMS 1.0
  • kbinfo pl/1 cobol pl/i KB183179
フィードバック