次の方法で共有


制限ありの最終フィールド

メソッドの最後の入力パラメーターまたは最後の出力パラメーターが配列またはレコードセットである場合、そのパラメーターをバインドできます。 そのサイズは、0 から指定された要素または行の最大数まで異なる場合があります。 配列またはレコードセットを最後にバインドする必要があります。 それ以外の場合、境界付き配列またはレコードセットの末尾とバッファー内の次のフィールドの先頭を特定する信頼性の高い方法はありません。 ホスト アプリケーションは、切り捨てられたテーブルの送信を処理する必要があります。

Automation クライアントは、このオプションを自動的に処理します。 トランザクション インテグレーター (TI) ランタイム環境では、Automation の境界に基づいて切り捨てられた量のデータが送信され、切り捨てられたデータが検出され、データの受信時に適切な Automation 型が作成されます。

COBOL インポート ウィザードでは、配列またはレコードセットの境界付きオプションは設定されません。 メソッド内の最後のパラメーターに対してこれを手動で設定するには、Designerを使用してプロパティの Maximum Occurrence に値を割り当てます。 このフィールドは、レコードセットに含まれる可能性のある行の最大数を定義します。 レコードセットを含むメソッドで、プロパティ Variable Size Final Field を方向によって true に設定して、レコードセットを境界付けします。

メソッドに無制限のレコードセットが含まれている場合は、その方向の境界付きまたは可変サイズの最終フィールドも指定できません。 たとえば、Parameter1 が出力パラメーターで、無制限のレコードセットである場合、最終的な出力パラメーターは、境界付き配列やレコードセット、または可変サイズの文字列にすることはできません。 戻り値が他のすべての出力パラメーターの後に配置されている場合、戻り値は境界付きの最終出力フィールドにすることができます。

次の COBOL の例では、レコードセット内の一部の行のみを送信します。

01  INVOICE-COUNT                        PIC S9(4) COMP.  
01  CUSTOMER-DATA.  
    05  CUSTOMER-NUMBER                  PIC 9(9).  
    05  LAST-NAME                        PIC X(20).  
    05 INVOICES OCCURS 50 TIMES.  
               10  INVOICE-NUMBER               PIC 9(10).  
               10  INVOICE-DATE                 PIC 9(7) COMP-3.  
               10  INVOICE-AMOUNT               PIC S9(13)V9(2) COMP-3.  
.  
.  
.  
            MOVE SIZE OF CUSTOMER-DATA TO SEND-LENGTH.  
            SUBTRACT LENGTH OF INVOICES FROM SEND-LENGTH.  
            EXEC-CICS SEND FROM(CUSTOMER-DATA)  
                           LENGTH(SEND-LENGTH)  
                           END-EXEC.  
            PERFORM VARYING I FROM 1 BY 1 UNTIL I = INVOICE-COUNT  
                COMPUTE SEND-LENGTH = LENGTH OF INVOICE-NUMBER +  
                                      LENGTH OF INVOICE-DATE +  
                                      LENGTH OF INVOICE-AMOUNT  
                EXEC-CICS SEND FROM(INVOICES(I))  
                               LENGTH(SEND-LENGTH)  
                               END-EXEC.  
            END-PERFORM.