精通COBOL--16.3.3 输入过程中的异常处理

本文介绍CICS中的异常处理方法,特别是在输入过程中如何使用RESP选项来捕获并处理各种异常,如数据过长、终端错误等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  CICS中的异常处理有很多种情况,此处主要只针对在输入过程中的异常处理。异常处理是通过在相应的CICS命令中使用RESP选项实现的。RESP选项后为一个8位长度的有符号数,用以表明异常的种类。例如,以下代码在输入数据大于指定长度时,将对所抛出的异常进行处理。处理方式为在屏幕上输出相应提示信息。代码如下:

IDENTIFICATION  DIVISION.

PROGRAM-ID.  RESPGM.

*

 ENVIRONMENT  DIVISION.

*

 DATA  DIVISION.

 WORKING-STORAGE  SECTION.

 01  WKFLDS.

     05   INLEN       PIC  S9(4)  USAGE  IS  COMP.

     05   ERR-CODE  PIC  S9(8)  COMP.

 01  INAREA.

     05   DATA-1   PIC X(5).

     05   FILLER   PIC XX.

     05   DATA-2   PIC X(5).

 ……

*

 PROCEDURE  DIVISION.

MOVE   12   TO  INLEN.

EXEC  CICS  RECEIVE  INTO(INAREA)

                         LENGTH(INLEN)

                         RESP(ERR-CODE)                            /*此处捕获异常*/

                         END-EXEC.

IF    ERR-CODE  =  DFHRESP(LENGERR)

     MOVE  ‘INPUT  DATA  TOO  LONG’  TO  MSG

EXEC  CICS  SEND     FROM(MSG)

                        LENGTH(20)

                        END-EXEC

……

    EXEC  CICS  RETURN  END-EXEC.

    GOBACK.

由以上代码可以看到,判断该异常的类型实际上是通过以下代码实现的:

IF    ERR-CODE  =  DFHRESP(LENGERR)

     ……

其中ERR-CODE是由用户定义的一个变量。该变量通过RESP选项可得到所抛出异常的编号。将该异常编号与CICS系统中的DFHRESP相应异常编号进行比较,便可判断出该异常的类型。除以上代码中出现的异常外,通常还有以下几种异常类型:

IF   ERR-CODE  =  DFHRESP(TERMERR)          /*终端错误异常*/

……

IF   ERR-CODE  =  DFHRESP(EOC)                     /*链结束(End of Chain)异常*/

     ……

IF   ERR-CODE  =  DFHRESP(ERROR)               /*错误异常*/

     ……

IF   ERR-CODE  =  DFHRESP(NORMAL)             /*无异常*/

     ……

需要注意的是,DFHRESPERROR)异常属于一种类型的异常,并不代表全部异常。判断一条CICS命令中存在任何异常,可以使用如下方式进行:

IF   ERR-CODE  NOT  EQUAL  DFHRESP(NORMAL)         /*当存在任何异常时,执行相关操作*/

     ……

内容概要:本文档定义了一个名为 `xxx_SCustSuplier_info` 的视图,用于整合和展示客户(Customer)和供应商(Supplier)的相关信息。视图通过连接多个表来获取组织单位、客户账户、站点使用、位置、财务代码组合等数据。对于客户部分,视图选择了与账单相关的记录,并提取了账单客户ID、账单站点ID、客户名称、账户名称、站点代码、状态、付款条款等信息;对于供应商部分,视图选择了有效的供应商及其站点信息,包括供应商ID、供应商名称、供应商编号、状态、付款条款、财务代码组合等。视图还通过外连接确保即使某些字段为空也能显示相关信息。 适合人群:熟悉Oracle ERP系统,尤其是应付账款(AP)和应收账款(AR)模块的数据库管理员或开发人员;需要查询和管理客户及供应商信息的业务分析师。 使用场景及目标:① 数据库管理员可以通过此视图快速查询客户和供应商的基本信息,包括账单信息、财务代码组合等;② 开发人员可以利用此视图进行报表开发或数据迁移;③ 业务分析师可以使用此视图进行数据分析,如信用评估、付款周期分析等。 阅读建议:由于该视图涉及多个表的复杂连接,建议读者先熟悉各个表的结构和关系,特别是 `hz_parties`、`hz_cust_accounts`、`ap_suppliers` 等核心表。此外,注意视图中使用的外连接(如 `gl_code_combinations_kfv` 表的连接),这可能会影响查询结果的完整性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值