AS400初级培训课程_第1页
AS400初级培训课程_第2页
AS400初级培训课程_第3页
AS400初级培训课程_第4页
AS400初级培训课程_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

AS/400CL控制语言

AS/400初级培训课程

AS/400CL控制语言初步

课程大纲:

一概述

一CL编程

一程序间的通讯

四测试功能

AS/400初级培训课程

第一章概述

提要:

CL命令的作用

CL命令的分类

系统菜单

1.1CL命令的作用

CL(ControlLanguage)控制语言是用户与操作系统之间的

主要接口。可以说用户管理和操作AS/400系统,均可以通过CL

实现。用户在不同的工作站或客户端可以同时使用CL,其输入方

式有五种:

•在命令行输入

•在菜单画面选择

•在workwith菜单中,option选项

•在CL程序中执行

•远程调用

前三种输入方式给用户提供一种交互式的操作方法,只执行一

条命令;第四种方式给用户提供一种操作,并包含逻辑控制,可以完

整地实现一项功能;第五种方式给用户提供在客户端直接执行主机

操作的接口。

由于CL使用了统一的命名方法,提供prompt式的提示功

能和具体到域值的在线帮助,以及自动生成命令参数的缺省值,再

加上有效性检查,从而使得CL的使用变得非常简单、方便和灵

活。

1.2CL命令的参数

CL使用了一种很科学,较为成功的命名方法。每条命令由命

令名和一系列参数组成。命令名通常由动词加上接受动词的名词

(定义为目标Object)组成,单词通常缩写为三个字母。

例如:

CL命令命令名

SendMessageSNDMSG

CopyFileCPYF

WorkwithDeviceDesripyionsWRKDEVD

CL的参数由关键字和参数值组成,关键字通常和命令一

样缩写,它用于说明参数的作用,在命令输入屏,按F11键,

即可看到关键字。在命令行输入命令时,如果参数是按照固定

的顺序输入,则可以省略关键字。

例如:

SNDMSGMSG(HOLLEO)TOUSR(LENG)

命令名关键字参数值

大多数CL都是针对目标而言,目标是一个占据了一定

存储空间的实体,它包括自身属性及其数据特征的描述,系统

可以对它进行操作。目标的属性包括名字、类型、长度、建立

日期及其它属性。不同目标具有不同的属性描述,大部分属性

是可以修改的,而不需要重新建立。目标的数据值是储存于目

标中的信息集合,例如:程序的值是组成程序的执行码,文件

的值是组成文件的记录。

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

•LIB

•FILE文件

•MSGF信息文件

•PGM程序

CMD命令

JOBQ作业队列

DTAQ数据队列

MSGQ信息队列

OUTQ输出队列

DTAARA数据域

JRN日志

JRNRCV日志接受器

USRPRF用户简要表

SBSD子系统描述

JOBD作业描述

LIND线路描述

CTLD控制器描述

DEVD设备描述

一个具体目标是由目标名和目标类型来唯一标识的,不同的

目标类型可以使用同一个目标名。目标名由用户指定,目标类型由

生成它的命令决定。不同类型的目标具有不同的操作。例如:CALL

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

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

括:

w工

/R

cT建

D

AD增

H变

cG改

DT删

DSP显

E编

DT

cPY拷

MOV移

RNM变

AV

sST份

R复

T

V

R获取

授权

G

RT

转储

D

MP

第二章CL编程

提要:

CL程序的作用

CL程序的结构

CL程序中的命令

2.1CL程序的作用

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

的程序。使用CL程序的优点包括:

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

即运行的形式。

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

•参数可以传递给CL程序,CL程序内部也接收变量的定义,

以适应特殊需要的程序操作。

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

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

•通过GL程序完或单独输入CL命令所不能完成的功能,例

如,人工或者定时提交批作用完成一项工作,如启动子系统,

进行文件备份,整顿系统资源。

给交互式或批处理的应用程序提供一个接口,使得在应用程序中直

接进行系统操作或者获取系统参数。

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

2.2CL程序的结构

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变量的使用

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

准格式如下:

r*CHAR-i

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

_*LGL_

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

CL变量名必须以&开始,后跟字符不多于10个,&后的第一

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

CL变量值必须是:字符型最长为9999个字符;数值型为压缩

十进制数,最长为15位,其中小数位最长为9位;逻辑型

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

CL变量的缺省初值为:字符型为空,数值型为0,逻辑型为

“0”。

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

为初值长度。

•变量值中小写字符的限制

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

括起来的时候。例如:

DCLVAR(&LIB)TYPE(*CHAR)LEN(10)VALUETUBL')

DLTPGM&LIB/MYPROG

注意:如果VALUE参数不使用引号,则小写是正确的。因为

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

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

♦常量:CHGVARVAR(&A)VALUE(0)

♦变量:CHGVARVAR(&A)VALUE(&B)

♦计算量:CHGVARVAR(&A)VALUE(&A+1)

函数量:CHGVARVAR(&A)VALUE(%SST(&B15))

CHGVARVAR(%SST(&A15))VALUE(&B)

赋值时应注意以下几点:

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

对数值变量,只能赋予十进制数,或者数字字符变量(包括小

数点和正负号)。

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

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

CL程序中注解的书写,在命令的头尾使用一对符号:/*和*/。如果

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

2.3.2CL程序内部的逻辑控制

条件转移命令:

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

ELSECMD(一条命令)

或者IFCOND(条件)THEN(DO)

•■■■•••

ENDDO

ELSECMD(DO)

ENDDO

无条件转移命令:GOTOLABEL

•操作符:

逻辑的*AND*0R*NOT

算术的+-*/

字符的*CAT*TCAT

关系的*EQ*GT*LT*GE*LE*NE

监视信息命令: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键选择,如:系统当前日期的

系统值是QDATE0变量名必须和系统值的类型匹配,对字符型和

逻辑型系统值而言,变量名的长度必须相符,对数字型,则长度

不小于系统值长度。

检索配置源命令:RTVCFGSRC

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

酉己置4犬态检索命令:RTVCFGSTS

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

检索网络属性的命令:RTVNETA

用于获取系统的网络属性,放入相应的CL变量。如:系统名

SYSNAME,本地网络标识LCLNETID。

检索作业属性命令:RTVJOBA

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

JOB,用户名USERo

检索目标描述命令:RTVOBJD

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

检索用户档案命令:RTVUSRPRF

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

第三章程序间的通讯

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

种通讯可以出现在不同种类的程序中。如:RPG与C语言,也可

以出现在不同机器上,如:PC与AS/400o针对OS/400而言,通

常程序间的通讯具有三种方式:

•CALL、RETURN命令

•数据队列通讯

•数据域通讯

3.1CALL命令的使用

调用程序:CALLPGM(PGMA)PARM(&A&B)

被调用程序:PGMPARM(&C&D)

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

•参数值可以是字符常量、数值常量、逻辑常量或CL常量,最

多可达40个。

•参数值以CALL命令中出现的顺序传送,这必须与被调用程

序的参数顺序相匹配,变量名不一定相同。

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

值的影响。

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

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

传送。

3.2数据队列的程序通讯

数据队列(*DTAQ)是系统目标中的一种类型,当建立了这

种目标后,一个程序可以发送数据给它,另一个程序再从中接收数

据,从而达到程序之间的数据通讯。

3.2.1数据队列的优点

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

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

多个作业可以向相同的数据队列送数据和取数据,而数据队列的先

进先出、后进先出或关键字顺序排列属性,能够保证数据送取

的正确性。

在任何高级语言程序中,通过调用系统提供的程序,就可

以对数据队列进行操作,而且操作方法灵活方便。数据队列的操作

和使用包括两类:第一类使用CL命令;第二类调用系统程序。

CL命令:

CRTDTAQ建立数据队列

DLTDTAQ删除数据队列

WRKDTAQ工作数据队列

系统程序:

QSNDDTAQ发送数据队列

QRCVDTAQ接收数据队列

QCLRDTAQ清除数据队列

QMHQRDQD检索数据队列

3.2.2数据队列的发送

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

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

CALLPGM(QSNDDTAQ)PARM(&QNAME&LIB+

&FLDLEN&FIELD&KEYLEN&KEY)

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

如:

IN_QO

&LIB:是良度为10的字符型,它命名了数据队列所在的

库,如:*UBL。

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

字符数,如:100。

&FIELD:是长度为&FLDLEN的字符型,它包含了具体发送

给数据队列的数据。

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

关键字长度,如:6。

&KEY:是长度为&KEYLEN的字符型,它包含了传送给

数据队列的关键字数据。

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

个。

3.2.3数据队列的接收

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

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

CALLPGM(QRCVDTAQ)PARM(&QNAME&LIB&FLDLEN

+

&FIELD&WAIT&ORDERKEYLEN&KEY&SNDRLEN

&SNDR)

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

OUT_Qo

&LIB:是长版为10的字符型,它命名了数据队列所在

库。如:*UBL0

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

的字符数。

&FIELD:是长度为&FLDLEN的字符型,它包含了从数据

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

&WAIT:是长度为5的数字型,它说明了等待接收数据的

时间°负数表示无限制的等待:零表示不等待:

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

只有在数据队列中无满足条件的数据时,才起作

用。

&ORDER:是长度为2的字符型,它说明了按关键字接收数

据的条件。可用的字符值是:GT、LT、EQ、

GE、LEo

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

键字长度。

&KEY:是长度为&KEYLEN的字符型,它标识了用于从

数据队列中接收数据的关键字变量。

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

度。

&SNDR:是长度为&SNDRLEN的字符型,它包含了发送

者标识的数据。

注:后三个参数可以任选,但是&ORDER、&KEYLEN和&KEY

必须同时说明。

3.2.4数据队列的清除

需要从数据队列中清除数据,只要在程序中调用QCLRDTAQ

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

CALLPGM(QCLRDTAQ)PARMM(&QNAME&LIB)

3.2.5数据队列的检索

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

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

CALLPGM(QMHQRDQD)PARM(&RCVR&RCVRLEN+

&FORMAT&DQNAME)

&RCVR:是长度为&RCVRLEN的字符型,它标识了含有

数据队列性的变量。

&RCVRLEN:是长度为4的数字型,它说明了&RCVR长度。

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

式。

&DQNAME:是长度为20的字符型,它标识了数据队列和所

在库,前十个字符是队列名字,后十个字符是

库名。

3.3数据域的程序通讯

数据域LDTAARA)是系统目标中的一种类型。当建立了这

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

据域的典型用途如下:

•提供用于几个程序中的常数字段,易于共享和修改。如:标题、

说明等。

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

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

数据域的CL命令包括:

CRTDTAARA建立数据域,长度不超过2000

CHGDTAARA改变数据域,改变时数据域被锁定

DSPDTAARA

温馨提示

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

评论

0/150

提交评论