CL控制语言初步_第1页
CL控制语言初步_第2页
CL控制语言初步_第3页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、AS/400初级培训课程AS/400CL控制语言初步课程大纲:第一章概述第二章CL编程第三章程序间的通讯第四章测试功能第一章概述提要:CL命令的作用1.1 CL命令的分类系统菜单CL命令的作用CL(ControlLanguage)控制语言是用户与操作系统之间的主要接口。可以说用户管理和操作AS/400系统,均可以通过CL实现。用户在不同的工作站或客户端可以同时使用CL,其输入方式有五种:在命令行输入在菜单画面选择在workwith菜单中,option选项在CL程序中执行-远程调用前三种输入方式给用户提供一种交互式的操作方法,只执行一条命令;第四种方式给用户提供一种操作,并包含逻辑控制,可以完整

2、地实现一项功能;第五种方式给用户提供在客户端直接执行主机操作的接口。由于CL使用了统一的命名方法,提供prompt式的提示功能和具体到域值的在线帮助,以及白动生成命令参数的缺省值,再加上有效性检查,从而使得CL的使用变得非常简单、方便和灵活。1.2 CL命令的参数CL使用了一种很科学,较为成功的命名方法。每条命令由命令名和一系列参数组成。命令名通常由动词加上接受动词的名词(定义为目标Object)组成,单词通常缩写为三个字母。例如:CL命令命令名SendMessageSNDMSGCopyFileCPYFWorkwithDeviceDesripyionsWRKDEVDCL的参数由关键字和参数值组

3、成,关键字通常和命令一样缩写,它用于说明参数的作用,在命令输入屏,按F11键,即可看到关键字。在命令行输入命令时,如果参数是按照固定的顺序输入,则可以省略关键字。例如:SNDMSGMSG(HOLLEO)TOUSR(LENG)命令名关键字参数值大多数CL都是针对目标而言,目标是一个占据了一定存储空间的实体,它包括白身属性及其数据特征的描述,系统可以对它进行操作。目标的属性包括名字、类型、长度、建立日期及其它属性。不同目标具有不同的属性描述,大部分属性是可以修改的,而不需要重新建立。目标的数据值是储存于目标中的信息集合,例如:程序的值是组成程序的执行码,文件的值是组成文件的记录。LIBFILEMS

4、GFPGMCMD目标的类型很多,常用的几种包括:库文件信息文件程序命令JOBQDTAQMSGQOUTQDTAARAJRNJRNRCVUSRPRF作业队列数据队列信息队列输出队列数据域SBSDJOBDLINDCTLDDEVD日志日志接受器用户简要表子系统描述作业描述线路描述控制器描述设备描述一个具体目标是由目标名和目标类型来唯一标识的,不同的目标类型可以使用同一个目标名。目标名由用户指定,目标类型由生成它的命令决定。不同类型的目标具有不同的操作。例如:CALL命令只针对*PGM目标进行操作。关于目标的操作,系统也进行了统一的规范,常用的几种包括:WRK工作CRT建立ADD增加CHG改变DLT删除

5、DSP显示EDT编辑CPY拷贝,MOV移动RNM变名,SAV备份RST恢复RTV获取GRT授权DMP转储第二章CL编程提要:2.1 CL程序的作用CL程序的结构CL程序中的命令CL程序的作用CL程序是由CL命令组成,这些命令被编译成可供随时调用的程序。使用CL程序的优点包括: CL程序比单独输入和运行命令快,因为命令被编译成能够立即运行的形式。有些功能需要多条CL命令一起完成。参数可以传递给CL程序,CL程序内部也接收变量的定义,以适应特殊需要的程序操作。 CL程序能够像其它高级语言程序一样被测试和监控。CL程序可以应用到许多方面,包括:通过CL程序完成单独输入CL命令所不能完成的功能,例如,

6、人工或者定时提交批作用完成一项工作,如启动子系统,进行文件备份,整顿系统资源。给交互式或批处理的应用程序提供一个接口,使得在应用程序中直接进行系统操作或者获取系统参数。在网络通信方面,CL程序往往承担应用主控程序的角色。2.2 CL程序的结构CL程序是借助于ADT工具中的SEU输入的,在输入过程中,键入一条命令并按F4键,就会显示出这条命令的提示画面,方便用户输入相应的参数值。CL源程序主要分为以下几个部分:程序的开始和结束: PGMPARM(&A&B)开始CL程序ENDPGM结束程序变量定义: DCL定义变量DCLF定义文件CL处理命令:CHGVAR变量赋值MONMSG监控错误信息SNDPG

7、MMSG传送程序信息RTVJOBA获取作业属性值逻辑控制命令:IFTHENELSEDOENDDOGOTO内部函数:%SST取子串*CAT连接字符程序控制命令:CALL调用子程序2.3 RETURN返回调用程序CL程序的命令CL程序中仅可包含CL命令,由系统提供的大多数CL命令可用于CL程序,而有些CL命令是专门用在CL程序中的。下面是一张用在CL程序中的部分命令清单,其中带有星号的表示该命令仅能用于CL程序内部。2.3.1变量的使用变量说明,使用DCL命令来定义变量及其属性、长度和初值标准格式如下:-*CHAR-DCLVAR(变量名)TYPE*DECLEN(长度)VALUE(初值)*LGL使用

8、DCL命令时,必须遵循的规则如下:CL变量名必须以&开始,后跟字符不多于10个,&后的第一个字符必须是字母,其余的可以是字母或数字。CL变量值必须是:字符型最长为9999个字符;数值型为压缩十进制数,最长为15位,其中小数位最长为9位;逻辑型为“0”或“1”,表示假或真。CL变量的缺省初值为:字符型为空,数值型为0,逻辑型为“0”。对于字符型和数值型,如果指定了初值而未指定长度,则缺省长度为初值长度。,变量值中小写字符的限制用作变量的保留值必须用大写字母表示,特别是当它们用引号括起来的时候。例如:DCLVAR(&LIB)TYPE(*CHAR)LEN(10)VALUE(*LIBL)DLTPGM&

9、LIB/MYPROG注意:如果VALUE参数不使用引号,则小写是正确的。因为使用SEU编辑会白动转换成大写。,变量赋值,使用CHGVAR命令给变量赋值,其值可改变成:常量:变量:计算量:CHGVARCHGVARCHGVARVAR(&A)VALUE(0)VAR(&A)VALUE(&B)VAR(&A)VALUE(&A+1)函数量:CHGVARVAR(&A)VALUE(%SST(&B15)CHGVARVAR(%SST(&A15)VALUE(&B)赋值时应注意以下几点:对逻辑变量,被改变的值必须是一个逻辑值。对数值变量,只能赋予十进制数,或者数字字符变量(包括小数点和正负号)。对字符变量,既可接受字符

10、,也可接受十进制数。赋十进制数时,该字符变量的值是右对齐,前导补零,负号放在最左边。CL程序中注解的书写,在命令的头尾使用一对符号:/*和*/。如果一行写不下一条命令,使用+。2.3.2CL程序内部的逻辑控制条件转移命令:IFCOND(条件)THEN(一条命令)ELSECMD(一条命令)或者IFCOND(条件)THEN(DO).ENDDOELSECMD(DO).ENDDO无条件转移命令:GOTOLABEL操作符:逻辑的*AND*OR*NOT算术的+-*/字符的*CAT*TCAT关系的*EQ*GT*LT*GE*LE*NE监视信息命令:MONMSGMONMSGMSGID(信息标识1信息标识50)+

11、EXEC(CL命令)系统对于CL命令执行错误所送出的信息都具有唯一的标识符,如果不进行监视,则系统会终断程序,白动显示错误信息。2.3.3系统资源的获取日期格式转换命令:CVTDATCVTDATDATE(被转换日期)TOVAR(转换后日期)+FROMFMT(原格式)TOFMT(新格式)TOSEP(新分隔符)其中:转换后日期的长度至少是:对儒略日期(如YMD,DMY或JUL格式),不使用分隔符为5个字符,使用分隔符为6个字符。对非儒略日期,不使用分隔符为6个字符,使用分隔符为8个字符。日期格式和分隔符可以通过按F4键选择。,检索系统值命令:RTVSYSVALRTVSYSVALSYSVAL(系统值

12、名)RTNVAR(CL变量名)其中:系统值名可以通过按F4键选择,如:系统当前日期的系统值是QDATE。变量名必须和系统值的类型匹配,对字符型和逻辑型系统值而言,变量名的长度必须相符,对数字型,则长度不小于系统值长度。检索配置源命令:RTVCFGSRC用于将现有配置的描述存放到源文件成员中配置状态检索命令:RTVCFGSTS用于获取各类配置描述的现行状态,放入CL变量。检索网络属性的命令:RTVNETA用于获取系统的网络属性,放入相应的CL变量。如:系统名SYSNAME,本地网络标识LCLNETID。检索作业属性命令:RTVJOBA用于获取当前运行作业的属性,放入相应的CL变量。如:作业名JO

13、B,用户名USER。,检索目标描述命令:RTVOBJD用于获取指定目标的描述属性,放入相应的CL变量。 检索用户档案命令:RTVUSRPRF用于获取指定用户的档案资料,放入相应的CL变量。第三章程序间的通讯程序间的通讯是指不同程序之间数据或参数的传递和交流。这种通讯可以出现在不同种类的程序中。如:RPG与C语言,也可以出现在不同机器上,如:PC与AS/400。针对OS/400而言,通常程序间的通讯具有三种方式:3.1 CALL、RETURN命令数据队列通讯,数据域通讯CALL命令的使用调用程序:CALLPGM(PGMA)PARM(&A&B)被调用程序:PGMPARM(&C&D)有关CALL命令

14、使用的几点说明:,参数值可以是字符常量、数值常量、逻辑常量或CL常量,最多可达40个。参数值以CALL命令中出现的顺序传送,这必须与被调用程序的参数顺序相匹配,变量名不一定相同。被调程序中的接收参数必须说明,但接收值不受变量说明中初值的影响。接收参数值的改变会反映到调用程序中,但常量传送不会改变。,字符常量通常以32个字节传送,数字常量以15.5长度压缩格式传送。3.2数据队列的程序通讯数据队列(*DTAQ)是系统目标中的一种类型,当建立了这种目标后,一个程序可以发送数据给它,另一个程序再从中接收数据,从而达到程序之间的数据通讯。3.2.1数据队列的优点,数据队列是两个作业之间进行异步通讯的最

15、快方法。相对数据库文件、消息队列或数据域而言,它需要较少的额外开销。多个作业可以向相同的数据队列送数据和取数据,而数据队列的先进先出、后进先出或关键字顺序排列属性,能够保证数据送取的正确性。在任何高级语言程序中,通过调用系统提供的程序,就可以对数据队列进行操作,而且操作方法灵活方便。数据队列的操作和使用包括两类:第一类使用CL命令;第二类调用系统程序。CL命令:CRTDTAQ建立数据队列DLTDTAQ删除数据队列WRKDTAQ工作数据队列系统程序:QSNDDTAQ发送数据队列QRCVDTAQ接收数据队列QCLRDTAQ清除数据队列QMHQRDQD检索数据队列3.2.2数据队列的发送需要将数据发

16、送给数据队列,只要在程序中调用QSNDDTAQ。在CL程序中,调用的格式如下:CALLPGM(QSNDDTAQ)PARM(&QNAME&LIB+&FLDLEN&FIELD&KEYLEN&KEY)&QNAME:是长度为10的字符型,它命名了数据队列,如:IN_Q。&LIB:是血为10的字符型,它命名了数据队列所在的库,如:*LIBL。&FLDLEN:是长度为5的数字型,它规定了发送给数据队列的字符数,如:100。&FIELD:是长度为&FLDLEN的字符型,它包含了具体发送给数据队列的数据。&KEYLEN:是长度为3的数字型,它说明了传送给数据队列的关键字长度,如:6。&KEY:是长度为&KEY

17、LEN的字符型,它包含了传送给数据队列的关键字数据。注:后两个参数可以白选,如果说明了一个,则必须说明另一3.2.3数据队列的接收需要从数据队列中接收数据,只要在程序中调用QRCVDTAQ,在CL程序中,调用的格式如下:CALLPGM(QRCVDTAQ)PARM(&QNAME&LIB&FLDLEN+&FIELD&WAIT&ORDERKEYLEN&KEY&SNDRLEN&SNDR)&QNAME:是长度为10的字符型,它命名了数据队列。如:OUT_Q。&LIB:是长度为10的字符型,它命名了数据队列所在的库。如:*LIBL。&FLDLEN:是长度为5的数字型,它规定了发送给数据队列的字符数。&FI

18、ELD:是长度为&FLDLEN的字符型,它包含了从数据队列中接收到的具体数据。&WAIT:是长度为5的数字型,它说明了等待接收数据的时间。负数表示无限制的等待;零表示不等待;正数示要等待的秒数,最大值是9999。这个参数只有在数据队列中无满足条件的数据时,才起作用。&ORDER:是长度为2的字符型,它说明了按关键字接收数据的条件。可用的字符值是:GT、LT、EQ、GE、LE。&KEYLEN:是长度为3的数字型,它说明了接收数据队列的关键字长度。&KEY:是长度为&KEYLEN的字符型,它标识了用于从数据队列中接收数据的关键字变量。&SNDRLEN:是长度为3的数字型,它规定了发送者标识的长&S

19、NDR:是长度为&SNDRLEN的字符型,它包含了发送者标识的数据。注:后三个参数可以任选,但是&ORDER、&KEYLEN和&KEY必须同时说明。3.2.4数据队列的清除需要从数据队列中清除数据,只要在程序中调用QCLRDTAQ在CL程序中,调用的格式如下:CALLPGM(QCLRDTAQ)PARMM(&QNAME&LIB)3.2.5数据队列的检索需要检索一个数据队列的描述项,只要在程序中调用QMHQRDQD。在CL程序中,调用的格式如下:CALLPGM(QMHQRDQD)PARM(&RCVR&RCVRLEN+&FORMAT&DQNAME)&RCVR:是长度为&RCVRLEN的字符型,它标识

20、了含有数据队列性的变量。&RCVRLEN:是长度为4的数字型,它说明了&RCVR长度。&FORMAT:是长度为8的字符型,它定义了接收模板的格式。&DQNAME:是长度为20的字符型,它标识了数据队列和所在库,前十个字符是队列名字,后十个字符是库名。3.3数据域的程序通讯数据域(*DTAARA)是系统目标中的一种类型。当建立了这种目标后,可以用来存入数据,以便任何程序进行读取和修改。数据域的典型用途如下:提供用于几个程序中的常数字段,易于共享和修改。如:标题、说明等。在一个作业中提供一个传递信息的区域。在一个作业中提供一个字段作为控制参数,以便容易地得到修改。数据域的CL命令包括:CRTDTAARACHGDTAARADSPDTAARARTVDTAARADLTDTAARAWRKDTAARA建立数据域,长度不超过2000改变数据域,改变时数据域被锁定显示数据域,可以以十六进制方式显示检索数据域,检索值需要存入CL变量删除数据域工作数据域第四章测试功能提要:4.1 CL程序的编译

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论