AS400编码规范文档(8)

2019-02-17 10:41

错误!未指定书签。

3.2.12. 调用API程序操作

1. 注意事项 API程序名 参数取值 QSNDDTAQ 数据队列名:是长度为10的字符型。 库名:是长度为10的字符型,数据队列所在的库,一般为*LIBL。 发送长度:是长度为5的数字型,必须为发送数据实际长度,且不能超过数据队列定义的最大长度。 发送数据队列数据:是长度为发送长度的字符型,它包含了具体发送给数据队列的数据。 关键字长度:是长度为3的数字型,它说明了传送给数据队列的关键字长度。 关键字数据:是长度为关键字长度的字符型,它包含了传送给数据队列的关键字数据。 注:后两个参数可以自选,如果说明了一个,则必须说明另一个。 QRCVDTAQ 数据队列名:是长度为10的字符型。 库名:是长度为10的字符型,数据队列所在的库,一般为*LIBL。 接收长度:是长度为5的数字型,接收数据队列的长度。除非要求设定具体值,否则默认为0。 关键字长度:是长度为接收长度的字符型,它包含了从数据队列中接收到的具体数据。 等待时间:是长度为5的数字型,它说明了等待接收数据的时间。负数表示无限制的等待;零表示不等待;正数示要等待的秒数,最大值是9999。这个参数只有在数据队列中无满足条件的数据时,才起作用。除非要求设定具体值,否则默认为-1。 关键字接收数据的条件:是长度为2的字符型,可用的字符值是:GT、LT、EQ、GE、LE。 关键字长度:是长度为3的数字型,它说明了接收数据队列的关键字长度。 关键字数据:是长度为关键字长度的字符型,它标识了用于从数据队列中接收数据的关键字变量。 发送者标识的长度:是长度为3的数字型。 发送者标识的数据:是长度为发送者标识的长度的字符型。 注:如果建立 DTAQ 时,如果是不带KEY 值的DTAQ,那么后五个参数都不加,否则后五个参数都要加。 QCLRDTAQ 数据队列名:是长度为10的字符型。 库名:是长度为10的字符型,数据队列所在的库,一般为*LIBL。 第 36 页 共 41 页

错误!未指定书签。 QMHQRDQD 数据队列属性:是长度为数据队列属性长度的字符型,它标识了含有数据队列性的变量。一般为80位字符型。 数据队列属性长度:是长度为4的二进制型。一般为X'00000050'。 接收模版格式:是长度为8的字符型,一般为“RDQD0100”。 数据队列和所在库:是长度为20的字符型,前十个字符是队列名,后十个字符是库名。 QCMDEXC 命令内容:是长度为命令长度的字符型。 命令长度:是长度15的数字型,有两位小数位。

3.2.13. 数据维护程序的选项规则

数据维护时输入功能选项只能是‘1’、‘2’、‘3’,‘4’,‘5’中的一个。 其中 ‘1’—新增 ‘2’—修改 ‘3’—拷贝 ‘4’—删除 ‘5’—显示

3.3. CLP代码规范

3.3.1. 注意事项

1. 在程序中,禁止指定库名和更改库列表。例外情况:使用临时库时,需指定库名QTEMP。 2. 程序、目标名、字段名及变量名中不能出现“¥”。

3. 主机PF文件与DOC文件转换标准(CPYFRMPCD、CPYTOPCD):TRNTBL为*DFT,TRNIGC为*DFT。 4. 关于CL命令参数的使用:一般情况下,除了必须要填写的参数以外,其它的参数都使用默认值。 5. 由于通过命令OPNQRYF有条件地打开物理文件的效率比通过RPGLE直接打开逻辑文件进行条件判

断的效率低,且数据量越大差距越明显,所以尽量不用命令OPNQRYF有条件地打开文件。 6. 先通过CPYF命令将物理文件中符合条件记录拷贝临时文件,然后通过命令OPNQRYF打开临时文

件进行处理的效率比通过RPGLE直接打开逻辑文件进行条件判断的效率低,且数据量越大差距越明显,尽量采用第二种方法。

第 37 页 共 41 页

错误!未指定书签。

3.3.2. 代码结构化

为了CLP源代码的方便阅读,语句的书写应有层次感,有必要的缩进,每个语句的命令操作符要对齐,第一个关键字也对齐,不能一行写完的代码,换行后的代码应该缩进书写。标签从第3列开始书写,命令操作符从第14列开始书写,关键字从25列开始书写,一行代码不能超过70列,多于一行显示时,在上一语句一个参数结束后用“+”号,剩余的语句在下一行27列开始。

程序结构: 程序开始 变量定义 CL处理命令 逻辑控制命令 内部函数 程序控制命令 程序结束 例如:

*.....1 ....+.... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... *

PGM PARM(&CUSER &COBJ)

DCL VAR(&CUSER) TYPE(*CHAR) LEN(10)

??

CRTDTAARA DTAARA(CUST) TYPE(*DEC) LEN(5 0) +

TEXT('Next customer number')

RTVDTAARA DTAARA(CUST (1 1)) RTNVAR(&TYPE)

START: ??

ENDPGM

3.3.3. 条件语句结构化

1) 多个IF条件语句嵌套时,内IF语句要缩进书写;

2) 符合条件的执行语句要写在DO-ENDDO语句内,ENDDO与相对的IF对齐,DO组内的命令相对于关

键字缩进两位书写。 例如:

*.. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... * START: SNDRCVF RCDFMT(MENU)

IF (&CRESP=1) THEN(DO)

IF (&CRESP=2) THEN(DO)

第 38 页 共 41 页

错误!未指定书签。

CALL PGMA

CHGVAR &CA &CB ENDDO ENDDO

3.3.4. 程序运行环境设置

在调用某些程序前,CLP对程序运行的环境做了改变,要求在调用程序后,对改变的环境进行恢复,以免不可预知错误的发生。

1. 使用OVR*命令去约束文件,完成后须使用DLTOVR命令。 2. 使用OPN*命令去打开文件,完成后须使用CLOF命令。 3. 使用ALCOBJ命令加锁,完成后须使用DLCOBJ命令。 例如:

正确写法:

PGM

??

OVRDBF FILE(XXUSRPF) TOFILE(&FLIB/XXUSRPF) MBR(MBR2) CALL XXRPG

DLTOVR FILE(XXUSRPF) ?? ENDPGM 不正确写法:

PGM

??

OVRDBF FILE(XXUSRPF) TOFILE(&FLIB/XXUSRPF) MBR(MBR2) CALL XXRPG ?? ENDPGM

3.4. 指示器定义规范

01—24 :功能键指示器;

01:帮助;

03:退出; 04:提示; 05:刷新;

06:新增;

第 39 页 共 41 页

错误!未指定书签。

07:向上翻页; 08:向下翻页; 09:查找; 12:返回; 24:统计;

30—49 :显示文件覆盖字段控制;

50—59 :字段信息指示器;

60—69 :子文件指示器;

60:子文件显示指示器; 61:子文件清除指示器; 62:子文件控制记录显示指示器; 63:子文件结束指示器;

70—79 :打印文件指示器;

70:打印文件溢出指示器;

80—89 :程序内部控制使用指示器; 90—99 :文件指示器。

4. 效率原则

程序效率三个原则:

1. 效率是性能的要求,需求分析时就应确定。 2. 效率是靠设计提高的。

3. 程序的效率和程序的简单是一致的。

4. 在程序运行效率方面,程序代码写得越简单效率就越高;相反,越参数化、兼容性越强、控制越

严、判断越多,效率就越低。所以在写程序时,要考虑程序的功能、目的及实际情况,在效率与其它方面去衡量。一般交易处理程序,运行压力就相对大,效率要求高,这类程序就尽量少读档案;对与维护程序,效率要求不高,但控制、条件要求严密,这类程序在控制方面的要求比运行效率、速度更重要。

第 40 页 共 41 页

错误!未指定书签。

减少运行时间:

1. 写程序前先简化算术和逻辑表达式。

2. 仔细研究嵌套的循环,以确定是否有语句从内层移到外层。 3. 尽量避免使用多维数组。 4. 尽量避免使用复杂的表。 5. 使用执行时间短的算术运算。 6. 不要混合使用不同的数据类型。 7. 尽量使用整数运算和布尔表达式。

第 41 页 共 41 页


AS400编码规范文档(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中心的生物化学复习题及答案(open)-1

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: