zoukankan      html  css  js  c++  java
  • 如何在CL程序自动回复询问类消息(Inquiry Message)

    一 如何在CL程序自动回复询问类消息(Inquiry Message)

    在AS/400系统开发中,经 常要与各种各样的消息打交道。有一类叫“Escape Message”的消息,是当程序出现错误后,会强迫程序异常结束,并告诉错误类型和原因。但经常时候我们不希望因为这些错误而使程序异常停止,在CL程 序中,通常做法是用MONMSG命令来监视这些消息,而后采取相应的正确动作,或者引导程序结束。MONMSG一样还可以监视“Status Message”和“Notify Message”。

    但是有一类“Inquiry Message”,MONMSG还是无法监视,这类消息通常有多个回复选择项,要求用户必须给一个选择答复,因而通常会暂停程序运行,而显示一个要求用户 给消息进行回复的画面。那么如何在程序中让程序自动选择一个正确的回复项回复呢?如能自动答复,就不需要手工再回复了。

    在作业JOBD 里,有INQMSGRPY选择项,有三个选择:*RQD,*DFT,*SYSRPYL,这个INQMSGRPY就是表示指定Inquiry Message的答复方式,通常创建JOBD的时候INQMSGRPY项缺省是*RQD,这就表示需要操作员手工答复方式。而*DFT和*SYSRPYL 就表示了两种程序可以自动答复的方式。

    1. 消息答复缺省值法

    如果在作业JOBD里INQMSGRPY选项指定为*DFT方式,则程序会自动使用消息的缺省答复项,询问消息就不会再在屏幕上显示。消息的缺省答复项,可以用CHGMSGD命令事先手工改好,也可以在程序中加入。比如下面的命令可以先在程序中设定:

    CHGMSGD MSGID(CPA3E01) MSGF(QCPFMSG) DFT(G)

    此语句表示修改QCPFMSG消息文件中的CPA3E01消息的缺省答复为’G’(表示继续执行)。

    2. 系统答复列表法

    如 果在作业JOBD里INQMSGRPY选项指定为*SYSRPYL方式,则程序会自动使用系统答复列表中定义的答复项。AS/400系统有一系统答复列表 (System Reply List)。System Reply List允许用户指定某已定义在列表中消息的答复方式。System Reply List包含有序号、消息表示符、答复值、选择比较数据等。可以用WRKRPYLE命令查看System Reply List的所有内容。下面就是用WRKRPYLE命令查看到的内容:

    2=Change 4=Delete

    Sequence Message
    Opt Number ID Reply Compare Value
    - 10 CPA0700 D *NONE
    - 20 RPG0000 D *NONE
    - 30 CBE0000 D *NONE
    - 40 PLI0000 D *NONE
    - 50 CPF7025 I *NONE
    - 60 CPA3E01 G *NONE
    - 1111 CPA3708 G *NONE

    可以用ADDRPYLE命令把你自己要定义的消息及缺省答复值加入。注意加入的时候Sequence Number项不能跟System Reply List已存在的重复。

    但 是用系统答复列表法有个缺陷,那就是把ADDRPYLE命令加入到程序中不方便,因为System Reply List里的Sequence Number要求唯一,所以不能重复加入。而且当程序移到不同机器运行时,还必须把消息缺省答复重新加入 System Reply List。

    除 了在JOBD可以指定消息答复方式外,还可以用BCHJOB和SBMJOB提交作业时在INQMSGRPY选择项里指定消息回复类别。BCHJOB和 SBMJOB命令将会覆盖JOBD的答复方式。如果使用缺省答复方式和SBMJOB命令结合,可以先编一CL程序,就可以做到自动回复与机器和JOBD无 关性,例子如下:

    CHGMSGD MSGID(CPA3E01) MSGF(QCPFMSG) DFT(G)
    SBMJOB CMD(CALL PGM(SMCRTRDBCL)) JOB(SMCRTRDBCL) +
    INQMSGRPY(*DFT)

  • 相关阅读:
    方法的调用,管道的演示,返回多个值,包的概念
    GO的安装
    React--后台管理系统--项目框架的搭建
    将字符串转换为整数--在处理-保留任意小数
    安装react-app脚手架
    git参考手册
    Python切片
    python字符串常用方法、分割字符串等
    python-字符串格式化
    python-列表增删改查、排序、两个list合并、多维数组等
  • 原文地址:https://www.cnblogs.com/wildfish/p/1031876.html
Copyright © 2011-2022 走看看