非 DPL 環境中的 TI
非連結的環境 (,也就是非 DPL 環境) 不是使用 IBM Distributed Program Link (DPL) 。 您可以使用 TI 來叫用使用 EXEC CICS RECEIVE INTO 和 EXEC CICS SEND FROM COBOL 命令 (TP) 大型主機交易程式。 當您希望 CICS TP 採用 SNA (APPC/LU 6.2) 交談責任時,這兩個 COBOL 命令很有用,因此略過鏡像 TP。 換句話說, EXEC CICS RECEIVE INTO 和 EXEC CICS SEND FROM COBOL 命令最常用於非連結環境中,將資料傳送至 6.2 (APPC) 的 LU。
TI 支援連結和非連結環境的 LU 6.2 模型。 您可以建立下列遠端環境, (RE) 類型來支援每個模型:
使用 LU 6.2 的 CICS 連結
在使用鏡像 TP 的 IBM DPL 環境中使用此專案。
使用 LU 6.2 的 CICS
在略過鏡像 TP 的非 DPL 環境中使用此專案。
許多客戶會在非 DPL 環境中使用 TI。 唯一的考慮是終端機邏輯是否內嵌在商務邏輯中。 當 COBOL TP 支援 IBM DPL 時,表示邏輯已經與商務邏輯分開,因此您可能不需要修改 COBOL。 不過,如果 TP 是撰寫來與終端機通訊,您可能需要修改 COBOL 程式碼,以將商務邏輯與簡報邏輯分開。
例如,下列範例 COBOL 程式碼示範如何使用 EXEC CICS RECEIVE INTO 和 EXEC CICS SEND FROM COBOL 命令來處理未系結的記錄集:
*****************************************************
* Example showing how to send unbounded recordsets
* to a client application.
*****************************************************
IDENTIFICATION DIVISION.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
* INPUT AREA
01 CUSTOMER-INPUT-NUMBER PIC 9(9).
* OUTPUT AREA
01 CUSTOMER-DATA.
05 LAST-NAME PIC X(20).
05 FIRST-NAME PIC X(20).
* ONE ROW IN A DATABASE TABLE
01 INVOICES.
05 INVOICE-NUMBER PIC 9(10).
05 INVOICE-DATE PIC 9(7) COMP-3.
05 INVOICE-AMOUNT PIC S9(13)V9(2) COMP-3.
05 INVOICE-DESCRIPTION PIC X(40).
LINKAGE SECTION.
PROCEDURE DIVISION.
*
* Get the input customer account number from the
* client applicaton:
*
MOVE LENGTH OF CUSTOMER-INPUT-NUMBER TO RECEIVE-LENGTH
EXEC-CICS RECEIVE INTO(CUSTOMER-INPUT-NUMBER)
LENGTH(RECEIVE-LENGTH)
END-EXEC.
*
* Do some work; then send the first and last name back:
*
MOVE LENGTH OF CUSTOMER-DATA TO SEND-LENGTH
EXEC-CICS SEND FROM(CUSTOMER-DATA)
LENGTH(SEND-LENGTH)
END-EXEC.
*
* Follow regular data with unbounded table data that
* the client application sees as a recordset:
*
MOVE LENGTH OF INVOICES TO SEND-LENGTH
PERFORM UNTIL NO-MORE-INVOICES
*
* Do some work to get the next row:
*
MOVE DB-INVOICE-NUMBER TO INVOICE-NUMBER
MOVE DB-INVOICE-DATE TO INVOICE-DATE
MOVE DB-INVOICE-AMOUNT TO INVOICE-AMOUNT
MOVE DB-INVOICE-DESC TO INVOICE-DESCRIPTION
*
* Send the row:
*
EXEC-CICS SEND FROM(INVOICES)
LENGTH(SEND-LENGTH)
END-EXEC.
END-PERFORM.