具有空参数的 EXCI CALL 示例

如果省略可选参数 (例如 DPL_Request 上的 userid ) ,那么必须确保使用空地址为缺少的参数构建参数列表。

下面的示例说明了如何在 COBOL 程序中省略 useriduowid 参数后发出 EXCI DPL_Request。

不带 userid 和 uowid 的 DPL 调用 ( COBOL ): 在本例中,调用时使用的 DPL 参数在工作存储段中定义如下:
DPL 参数 COBOL 可变因素 字段定义
版本数 01 VERSION-1 PIC S9(8) COMP VALUE 1。
返回区域 01 EXCI-RETURN-CODE。 (结构)
用户令牌 01 用户-令牌 PIC S9(8) COMP 值为零。
call_type 03 DPL-请求 PIC S9(8) COMP VALUE 6。
管道令牌 01 管道令牌 PIC S9(8) COMP 值为零。
     
PGMNAME 01 目标计划 PIC X (8) VALUE "DFHaXCS"。
通信区域 01 COMMAREA。 (结构)
社区区域长度 01 COMM-长度 PIC S9(8) COMP 值 98。
数据长度 01 数据-长度 PIC S9(8) COMP 值 18。
事务ID 01 目标-TRANSID PIC X (4) VALUE "EXCI"。
     
dpl_rerea 01 EXCI-DPL-REA。 (结构)
dpl_opts 01 同步返回 PIC X VALUE X'80 '。

用于空地址的变量在链路部分中定义:

Linkage section.
01 NULL-PTR 用法是指针。

使用 WORKING-STORAGE SECTION 中指定的数据名称和如链接 SECTION 中描述的 NULL-PTR 名称,以下对 DPL 函数的调用会省略 uowiduserid 参数,并将参数列表中的这些参数替换为 NULL-PTR 变量:
 DPL-SECTION.
*
SET ADDRESS OF NULL-PTR TO NULLS.
*
CALL 'DFHXCIS' USING VERSION-1 EXCI-RETURN-CODE USER-TOKEN
DPL-REQUEST PIPE-TOKEN TARGET-PROGRAM
COMMAREA COMM-LENGTH DATA-LENGTH
TARGET-TRANSID NULL-PTR NULL-PTR
EXCI-DPL-RETAREA SYNCONRETURN.
此示例取自 CICS® 提供的示例外部 CICS 接口程序 DFH0CXCC ,该程序在 CICSTS xx. CICS.SDFHSAMP 中提供,其中 xx 代表 CICS 版本。 有关如何在其他受支持语言的 DPL 调用中省略相同参数的示例,请参阅以下样本程序:
DFH$AXCC
汇编程序样本
DFH$PXCC
PL/I 样本
DFH$DXCC
C样本。