繫結的最後一個欄位

當方法中的最後一個輸入或最後一個輸出參數是陣列或記錄集時,可以系結該參數。 其大小可能會從 0 到指定的專案或資料列數目上限。 陣列或記錄集必須最後一個系結。 否則,沒有可靠的方法可判斷限定陣列或記錄集的結尾,以及緩衝區中下一個欄位的開頭。 主應用程式必須負責傳送截斷的資料表。

自動化用戶端會自動處理此選項。 交易整合器 (TI) 執行時間環境會根據自動化界限傳送截斷的資料量,並偵測截斷的資料,並在收到資料時建立適當的自動化類型。

[匯入 COBOL 精靈] 永遠不會設定陣列或記錄集的限定選項。 若要手動為方法中的最後一個參數設定這個值,請使用 Designer,將值指派給屬性 Maximum Occurrence。 此欄位會定義記錄集可能包含的資料列數目上限。 在包含記錄集的方法上,依方向將 [可變大小最終欄位 ] 屬性設定為 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.