CL控制语言初步Word文档格式.docx

上传人:b****6 文档编号:8461195 上传时间:2023-05-11 格式:DOCX 页数:20 大小:28.21KB
下载 相关 举报
CL控制语言初步Word文档格式.docx_第1页
第1页 / 共20页
CL控制语言初步Word文档格式.docx_第2页
第2页 / 共20页
CL控制语言初步Word文档格式.docx_第3页
第3页 / 共20页
CL控制语言初步Word文档格式.docx_第4页
第4页 / 共20页
CL控制语言初步Word文档格式.docx_第5页
第5页 / 共20页
CL控制语言初步Word文档格式.docx_第6页
第6页 / 共20页
CL控制语言初步Word文档格式.docx_第7页
第7页 / 共20页
CL控制语言初步Word文档格式.docx_第8页
第8页 / 共20页
CL控制语言初步Word文档格式.docx_第9页
第9页 / 共20页
CL控制语言初步Word文档格式.docx_第10页
第10页 / 共20页
CL控制语言初步Word文档格式.docx_第11页
第11页 / 共20页
CL控制语言初步Word文档格式.docx_第12页
第12页 / 共20页
CL控制语言初步Word文档格式.docx_第13页
第13页 / 共20页
CL控制语言初步Word文档格式.docx_第14页
第14页 / 共20页
CL控制语言初步Word文档格式.docx_第15页
第15页 / 共20页
CL控制语言初步Word文档格式.docx_第16页
第16页 / 共20页
CL控制语言初步Word文档格式.docx_第17页
第17页 / 共20页
CL控制语言初步Word文档格式.docx_第18页
第18页 / 共20页
CL控制语言初步Word文档格式.docx_第19页
第19页 / 共20页
CL控制语言初步Word文档格式.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

CL控制语言初步Word文档格式.docx

《CL控制语言初步Word文档格式.docx》由会员分享,可在线阅读,更多相关《CL控制语言初步Word文档格式.docx(20页珍藏版)》请在冰点文库上搜索。

CL控制语言初步Word文档格式.docx

SNDMSGMSG(HOLLEO)TOUSR(LENG)

关键字参数值

大多数CL都是针对目标而言,目标是一个占据了一定存储空间的实体,它包括自身属性及其数据特征的描述,系统可以对它进行操作。

目标的属性包括名字、类型、长度、建立日期及其它属性。

不同目标具有不同的属性描述,大部分属性是可以修改的,而不需要重新建立。

目标的数据值是储存于目标中的信息集合,例如:

程序的值是组成程序的执行码,文件的值是组成文件的记录。

目标的类型很多,常用的几种包括:

LIB

FILE

MSGF

PGM

CMD

文件

信息文件

程序

命令

2

JOBQ

DTAQ

MSGQ

OUTQ

DTAARA

JRN

JRNRCV

USRPRF

SBSD

JOBD

LIND

CTLD

DEVD

作业队列

数据队列

信息队列

输出队列

数据域

日志日志接受器用户简要表子系统描述作业描述

线路描述控制器描述设备描述

一个具体目标是由目标名和目标类型来唯一标识的,不同的目标类型可以使用同一个目标名。

目标名由用户指定,目标类型由生成它的命令决定。

不同类型的目标具有不同的操作。

CALL命令只针对*PGM目标进行操作。

关于目标的操作,系统也进行了统一的规范,常用的几种包括:

WRK

CRT

ADD

CCC

DDD

EEE

CPY

MOV

RRR

SSS

RST

RTV

GRT

工作

建立

增加

改变

删除

显示

编辑

拷贝

移动

变名

备份

恢复

获取

授权

3

DMP

转储

4

第二章

CL编程

CL程序的作用CL程序的结构CL程序中的命令

2.1CL程序的作用

CL程序是由CL命令组成,这些命令被编译成可供随时调用的程序。

使用CL程序的优点包括:

CL程序比单独输入和运行命令快,因为命令被编译成能够立即运行的形式。

有些功能需要多条CL命令一起完成。

参数可以传递给CL程序,CL程序内部也接收变量的定义,以适应特殊需要的程序操作。

CL程序能够像其它高级语言程序一样被测试和监控。

CL程序可以应用到许多方面,包括:

通过CL程序完成单独输入CL命令所不能完成的功能,例如,人工或者定时提交批作用完成一项工作,如启动子系统,进行文件备份,整顿系统资源。

给交互式或批处理的应用程序提供一个接口,使得在应用程序中直接进行系统操作或者获取系统参数。

在网络通信方面,CL程序往往承担应用主控程序的角色。

2.2CL程序的结构

5

CL程序是借助于ADT工具中的SEU输入的,在输入过程中,键入一条命令并按F4键,就会显示出这条命令的提示画面,方便用户输入相应的参数值。

CL源程序主要分为以下几个部分:

程序的开始和结束:

PGMPARM(&

A&

B)开始CL程序ENDPGM结束程序

变量定义:

DCL定义变量

DCLF定义文件

CL处理命令:

CHGVAR变量赋值

MONMSG监控错误信息SNDPGMMSG传送程序信息RTVJOBA获取作业属性值

逻辑控制命令:

IFTHENELSE

DOENDDO

GOTO

内部函数:

%SST取子串

*CAT连接字符

程序控制命令:

CALL调用子程序

RETURN返回调用程序

2.3CL程序的命令

CL程序中仅可包含CL命令,由系统提供的大多数CL命令可用于CL程序,而有些CL命令是专门用在CL程序中的。

下面是一张用在CL程序中的部分命令清单,其中带有星号的表示该命令仅能用于CL程序内部。

2.3.1变量的使用

6

变量说明,使用DCL命令来定义变量及其属性、长度和初值。

标准格式如下:

*CHAR

DCLVAR(变量名)TYPE*DECLEN(长度)VALUE(初值)

*LGL

使用DCL命令时,必须遵循的规则如下:

◆CL变量名必须以&

开始,后跟字符不多于10个,&

后的第一个字符必须是字母,其余的可以是字母或数字。

◆CL变量值必须是:

字符型最长为9999个字符;

数值型为压缩十进制数,最长为15位,其中小数位最长为9位;

逻辑型为“0”或“1”,表示假或真。

◆CL变量的缺省初值为:

字符型为空,数值型为0,逻辑型为“0”。

◆对于字符型和数值型,如果指定了初值而未指定长度,则缺省长度为初值长度。

变量值中小写字符的限制

用作变量的保留值必须用大写字母表示,特别是当它们用引号

括起来的时候。

DCLVAR(&

LIB)TYPE(*CHAR)LEN(10)VALUE(‘*LIBL’)DLTPGM&

LIB/MYPROG

注意:

如果VALUE参数不使用引号,则小写是正确的。

因为使用SEU编辑会自动转换成大写。

变量赋值,使用CHGVAR命令给变量赋值,其值可改变成:

◆常量:

CHGVARVAR(&

A)VALUE(0)

◆变量:

A)VALUE(&

B)

◆计算量:

CHGVARVAR(&

A+1)

7

◆函数量:

A)VALUE(%SST(&

B15))CHGVARVAR(%SST(&

A15))VALUE(&

赋值时应注意以下几点:

◆对逻辑变量,被改变的值必须是一个逻辑值。

◆对数值变量,只能赋予十进制数,或者数字字符变量(包括小数点和正负号)。

◆对字符变量,既可接受字符,也可接受十进制数。

赋十进制数时,该字符变量的值是右对齐,前导补零,负号放在最左边。

CL程序中注解的书写,在命令的头尾使用一对符号:

/**/。

如果一行写不下一条命令,使用+。

2.3.2CL程序内部的逻辑控制

条件转移命令:

IFCOND(条件)THEN(一条命令)ELSECMD(一条命令)

或者IFCOND(条件)THEN(DO).

ENDDO

ELSECMD(DO)

.

无条件转移命令:

GOTOLABEL

操作符:

逻辑的

算术的

字符的

关系的

*AND*OR*NOT

+-*/

*CAT*TCAT

*EQ*GT*LT*GE*LE*NE

8

监视信息命令:

MONMSG

MONMSGMSGID(信息标识1…信息标识50)+

EXEC(CL命令)

系统对于CL命令执行错误所送出的信息都具有唯一的标识符,

如果不进行监视,则系统会终断程序,自动显示错误信息。

2.3.3系统资源的获取

日期格式转换命令:

CVTDAT

CVTDATDATE(被转换日期)TOVAR(转换后日期)+FROMFMT(原格式)TOFMT(新格式)TOSEP(新分隔符)

其中:

转换后日期的长度至少是:

◆对儒略日期(如YMD,DMY或JUL格式),不使用分隔符为5个字符,使用分隔符为6个字符。

◆对非儒略日期,不使用分隔符为6个字符,使用分隔符为8个字符。

日期格式和分隔符可以通过按F4键选择。

检索系统值命令:

RTVSYSVAL

RTVSYSVALSYSVAL(系统值名)RTNVAR(CL变量名)

系统值名可以通过按F4键选择,如:

系统当前日期的

系统值是QDATE。

变量名必须和系统值的类型匹配,对字符型和逻辑型系统值而言,变量名的长度必须相符,对数字型,则长度不小于系统值长度。

检索配置源命令:

RTVCFGSRC

用于将现有配置的描述存放到源文件成员中

9

配置状态检索命令:

RTVCFGSTS

用于获取各类配置描述的现行状态,放入CL变量。

检索网络属性的命令:

RTVNETA

用于获取系统的网络属性,放入相应的CLSYSNAME,本地网络标识LCLNETID。

变量。

如:

系统名

检索作业属性命令:

RTVJOBA

用于获取当前运行作业的属性,放入相应的CL变量。

作业名JOB,用户名USER。

检索目标描述命令:

RTVOBJD

用于获取指定目标的描述属性,放入相应的CL变量。

检索用户档案命令:

RTVUSRPRF

用于获取指定用户的档案资料,放入相应的CL变量。

10

第三章程序间的通讯

程序间的通讯是指不同程序之间数据或参数的传递和交流。

这种通讯可以出现在不同种类的程序中。

RPG与C语言,也可以出现在不同机器上,如:

PC与AS/400。

针对OS/400而言,通常程序间的通讯具有三种方式:

CALL、RETURN命令数据队列通讯数据域通讯

3.1CALL命令的使用

调用程序:

CALLPGM(PGMA)PARM(&

B)被调用程序:

C&

D)

有关CALL命令使用的几点说明:

参数值可以是字符常量、数值常量、逻辑常量或CL常量,最多可达40个。

参数值以CALL命令中出现的顺序传送,这必须与被调用程序的参数顺序相匹配,变量名不一定相同。

被调程序中的接收参数必须说明,但接收值不受变量说明中初值的影响。

接收参数值的改变会反映到调用程序中,但常量传送不会改变。

字符常量通常以32个字节传送,数字常量以15.5长度压缩格式传送。

3.2数据队列的程序通讯

11

数据队列(*DTAQ)是系统目标中的一种类型,当建立了这种目标后,一个程序可以发送数据给它,另一个程序再从中接收数据,从而达到程序之间的数据通讯。

3.2.1数据队列的优点

数据队列是两个作业之间进行异步通讯的最快方法。

相对数据库文件、消息队列或数据域而言,它需要较少的额外开销。

多个作业可以向相同的数据队列送数据和取数据,而数据队列的先进先出、后进先出或关键字顺序排列属性,能够保证数据送取的正确性。

在任何高级语言程序中,通过调用系统提供的程序,就可以对数据队列进行操作,而且操作方法灵活方便。

数据队列的操作和使用包括两类:

第一类使用CL命令;

第二类调用系统程序。

CL命令:

CCCCCCC

DDDDDDD

WRKDTAQ

建立数据队列删除数据队列工作数据队列

系统程序:

QSNDDTAQ发送数据队列

QRCVDTAQ接收数据队列

QCLRDTAQ清除数据队列QMHQRDQD检索数据队列

3.2.2数据队列的发送

需要将数据发送给数据队列,只要在程序中调用QSNDDTAQ。

在CL程序中,调用的格式如下:

CALLPGM(QSNDDTAQ)PARM(&

QNAME&

LIB+

&

FLDLEN&

FIELD&

KEYLEN&

KEY)

12

QNAME:

是长度为10的字符型,它命名了数据队列,如:

IN_Q。

LIB:

是长度为10的字符型,它命名了数据队列所在的

库,如:

*LIBL。

FLDLEN:

是长度为5的数字型,它规定了发送给数据队列的

字符数,如:

100。

FIELD:

是长度为&

FLDLEN的字符型,它包含了具体发送

给数据队列的数据。

KEYLEN:

是长度为3的数字型,它说明了传送给数据队列的关键字长度,如:

6。

KEY:

KEYLEN的字符型,它包含了传送给数据队列的关键字数据。

注:

后两个参数可以自选,如果说明了一个,则必须说明另一个。

3.2.3数据队列的接收

需要从数据队列中接收数据,只要在程序中调用QRCVDTAQ。

CALLPGM(QRCVDTAQ)PARM(&

LIB&

FLDLEN+

WAIT&

ORDERKEYLEN&

KEY&

SNDRLEN&

SNDR)

是长度为10的字符型,它命名了数据队列。

OUT_Q。

是长度为10的字符型,它命名了数据队列所在

库。

是长度为5的数字型,它规定了发送给数据队列的字符数。

是长度为&

FLDLEN的字符型,它包含了从数据

13

队列中接收到的具体数据。

WAIT:

是长度为5的数字型,它说明了等待接收数据的时间。

负数表示无限制的等待;

零表示不等待;

正数示要等待的秒数,最大值是9999。

这个参数只有在数据队列中无满足条件的数据时,才起作用。

ORDER:

是长度为2的字符型,它说明了按关键字接收数据的条件。

可用的字符值是:

GT、LT、EQ、GE、LE。

是长度为3的数字型,它说明了接收数据队列的关键字长度。

KEYLEN的字符型,它标识了用于从数据队列中接收数据的关键字变量。

SNDRLEN:

是长度为3的数字型,它规定了发送者标识的长度。

SNDR:

SNDRLEN的字符型,它包含了发送者标识的数据。

后三个参数可以任选,但是&

ORDER、&

KEYLEN和&

KEY必须同时说明。

3.2.4数据队列的清除

需要从数据队列中清除数据,只要在程序中调用QCLRDTAQ在CL程序中,调用的格式如下:

CALLPGM(QCLRDTAQ)PARMM(&

LIB)3.2.5数据队列的检索

需要检索一个数据队列的描述项,只要在程序中调用QMHQRDQD。

CALLPGM(QMHQRDQD)PARM(&

RCVR&

RCVRLEN+

FORMAT&

DQNAME)

14

RCVR:

RCVRLEN的字符型,它标识了含有

数据队列性的变量。

RCVRLEN:

是长度为4的数字型,它说明了&

RCVR长度。

&

FORMAT:

是长度为8的字符型,它定义了接收模板的格

式。

DQNAME:

是长度为20的字符型,它标识了数据队列和所在库,前十个字符是队列名字,后十个字符是库名。

3.3数据域的程序通讯

数据域(*DTAARA)是系统目标中的一种类型。

当建立了这种目标后,可以用来存入数据,以便任何程序进行读取和修改。

数据域的典型用途如下:

提供用于几个程序中的常数字段,易于共享和修改。

标题、说明等。

在一个作业中提供一个传递信息的区域。

在一个作业中提供一个字段作为控制参数,以便容易地得到修改。

数据域的CL命令包括:

CRTDTAARA

CCCCCCCCC

DDDDDDDDD

RTVDTAARA

DLTDTAARA

WRKDTAARA

建立数据域,长度不超过2000改变数据域,改变时数据域被锁定显示数据域,可以以十六进制方式显示检索数据域,检索值需要存入CL变量删除数据域

工作数据域

15

测试功能

CL程序的编译CL程序的测试

4.1CL程序的编译

CL源程序必须经过编译,生成*PGM方可运行。

建立程序的方法有两种:

一是,使用CL命令CRTCLPGM,二是,使用PDM菜单选项14,按F4键即可对命令参数进行选择。

系统编译的情况全部记录在编译清单中,通过WRKSPLF即可看到。

编译过程中的错误被列在相应命令后面,以及文件的最后,方便用户查找。

下列类型的错误将停止程序的建立:

值错

句法错

命令内部与参数间不符

有效性检查有错

CL程序可以通过反编译命令RTVCLSRC,重新建立CL

源程序。

使用该命令时,必须满足建立编译程序的参数ALWRTVSRC为*YES。

当源程序被反编后,任何注释信息不再重新产生,以下程序序言将被建立:

所有者名

源程序的最终修改日期源程序的重建日期和时间最初编译时的许可程序级

4.2CL程序的测试

16

对于CL程序在编译和运行中的错误,系统提供以下几种测试功能:

程序转储。

在CL源程序中输入命令DMPCLPGM,运行后通过WRKSPLF即可看到转储内容。

包括程序信息队列的全部信息和全部变量的数值。

如果程序运行出错,出现提示画面时,输入D也可进行程序转储。

设置断点。

第一步,启动测试环境,使用命令STRDBGPGM(PGMA);

第二步,设置断点,使用命令ADDBKPSTMT(1500)PGMVAR(‘&

A’‘&

B’);

第三步,运行程序,显示断点信息;

第四步,结束测试环境,使用命令ENDDBG。

设置跟踪。

跟踪是记录程序中语句执行顺序的过程。

系统并不自动显示跟踪信息,而须使用命令DSPTRCDTA请求显示跟踪信息,信息包括语句执行的顺序和ADDTRC命令中指定的变量值。

17

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 考试认证 > 其它考试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2