精通COBOL--16.3.5 获取CICS的终端信息
来源:互联网 发布:c语言例题 编辑:程序博客网 时间:2024/06/08 03:14
在第一节中曾讲到,每一个任务都有一个与之对应的EIB。CICS的终端信息正是通过EIB得到的。
需要注意的是,由于任务可以在不同的终端上启动,因此得到的终端信息也是不同的。也就是说,终端信息是基于任务而言的,这点同每一任务中EIB的惟一性是相对应的。
此处所说的终端信息,主要是指终端在CICS中的设备编号。终端编号是通过EIB中的信息EIBTRMID提供的。以下程序将直接通过EIBTRMID得到相应的终端设备编号,并从屏幕第二行的第一列开始将其输出:
IDENTIFICATION DIVISION.
PROGRAM-ID. TERMPGM1.
*
ENVIRONMENT DIVISION.
*
DATA DIVISION.
WORKING-STORAGE SECTION.
01 MSG1 PIC X(80).
*
PROCEDURE DIVISION.
STRING ‘TERMINAL ID IS: ‘ EIBTRMID /*此处通过EIBTRMID得到终端设备编号*/
DELIMITED BY SIZE INTO MSG1
EXEC CICS SEND CONTROL CURSOR(80)
END-EXEC
EXEC CICS SEND FROM(MSG1)
LENGTH(20)
END-EXEC
EXEC CICS RETURN END-EXEC.
GOBACK.
不过,以上这种直接输出结果信息的方式并不能体现出CICS的交互功能,在实际中较为少见。通常情况下,实际的CICS程序往往是根据用户输入的请求而执行相应操作的。例如,以下程序将只在用户输入“TERM”的请求之后,方获取并显示相应终端信息:
IDENTIFICATION DIVISION.
PROGRAM-ID. TERMPGM2.
*
ENVIRONMENT DIVISION.
*
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WKAREA.
05 LEN PIC S9(4) USAGE IS COMP.
05 ERR-CODE PIC S9(8) COMP.
01 INAREA.
05 TRANID PIC X(4).
05 FILLER PIC X.
05 REQUEST PIC X(4).
01 MSG2 PIC X(80).
*
PROCEDURE DIVISION.
MOVE 9 TO LEN.
EXEC CICS RECEIVE INTO(INAREA)
LENGTH(LEN)
RESP(ERR-CODE)
END-EXEC
IF ERR-CODE = DFHRESP(LENGERR)
MOVE ‘INPUT DATA TOO LONG: MAX IS 9 CHARS’
TO MSG2
EXEC CICS SEND CONTROL CURSOR(1760)
END-EXEC
EXEC CICS SEND FROM(MSG2)
LENGTH(40)
END-EXEC
EXEC CICS RETURN END-EXEC.
IF REQUEST = ‘TERM’
STRING ‘TERMINAL ID IS: ‘ EIBTRMID
DELIMITED BY SIZE INTO MSG2
EXEC CICS SEND CONTROL CURSOR(80)
END-EXEC
EXEC CICS SEND FROM(MSG2)
LENGTH(20)
END-EXEC
EXEC CICS RETURN END-EXEC.
GOBACK.
需要注意的是,将以上程序关联到交易中后,用户首先需要输入相应的交易编号以启动一个任务。因此,在以上代码定义的输入区域INAREA中包含两个输入变量。其中前一个变量TRANID对应输入的交易编号;后一个变量REQUEST对应输入的请求。
同时,在以上代码中存在两处RETURN命令。由于RETURN命令表示结束任务逻辑,将控制权移交CICS系统。因此,当以上程序运行时满足第一个条件,并执行第一个RETURN命令后,任务将直接结束。此时,程序将不会执行第一条RETURN命令之后的内容。
- 精通COBOL--16.3.5 获取CICS的终端信息
- 精通COBOL--16.3.6 获取CICS的时间信息
- 精通COBOL--16.3.7 获取CICS的日期信息
- 精通COBOL--16.1.3 CICS的基本操作
- 精通COBOL--16.7 CICS对于文件的操作
- 精通COBOL--16.3.2 使用CICS进行输入输出
- 精通COBOL--16.3 CICS在COBOL中的基本应用
- 精通COBOL--第16章 CICS扩展
- 精通COBOL--16.1.1 CICS简介
- 精通COBOL--16.2 CICS编译处理过程
- 精通COBOL--16.2.1 CICS程序编译流程
- 精通COBOL--16.5 CICS中的程序调用
- 精通COBOL--16.6 CICS中的MAP
- 精通COBOL--16.8 CICS中的队列
- 精通COBOL--16.1.2 CICS中的交易和任务
- CICS-COBOL的异常系统
- 精通cobol--9.1 表的简介
- 精通cobol--9.1.2 表的基本概念
- 精通COBOL--16.3.3 输入过程中的异常处理
- 内部类的访问
- 如何紧急恢复SQL Server主数据库
- 精通COBOL--16.3.4 输出过程中的光标定位
- Hibernate-HQL
- 精通COBOL--16.3.5 获取CICS的终端信息
- SQL Server数据导入导出工具BCP详解
- w32.looked.i病毒清除办法
- 精通COBOL--16.3.6 获取CICS的时间信息
- extern用法详解(转)
- hibernate中文参数检索问题
- 精通COBOL--16.3.7 获取CICS的日期信息
- 使用 Express Edition的三种场合
- 使用PsEXEC远程批量更新msdtc使用无安全认证方式