CL控制語言初步_第1頁
CL控制語言初步_第2頁
CL控制語言初步_第3頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、AS/400初級培訓課程AS/400CL控制語言初步課程大綱:第一章概述第二章CL編程第三章程序間的通訊第四章測試功能第一章概述提要:CL命令的作用1.1 CL命令的分類系統(tǒng)菜單CL命令的作用CL(ControlLanguage)控制語言是用戶與操作系統(tǒng)之間的主要接口??梢哉f用戶管理和操作AS/400系統(tǒng),均可以通過CL實現(xiàn)。用戶在不同的工作站或客戶端可以同時使用CL,其輸入方式有五種:在命令行輸入在菜單畫面選擇在workwith菜單中,option選項在CL程序中執(zhí)行-遠程調(diào)用前三種輸入方式給用戶提供一種交互式的操作方法,只執(zhí)行一條命令;第四種方式給用戶提供一種操作,并包含邏輯控制,可以完整

2、地實現(xiàn)一項功能;第五種方式給用戶提供在客戶端直接執(zhí)行主機操作的接口。由于CL使用了統(tǒng)一的命名方法,提供prompt式的提示功能和具體到域值的在線幫助,以及白動生成命令參數(shù)的缺省值,再加上有效性檢查,從而使得CL的使用變得非常簡單、方便和靈活。1.2 CL命令的參數(shù)CL使用了一種很科學,較為成功的命名方法。每條命令由命令名和一系列參數(shù)組成。命令名通常由動詞加上接受動詞的名詞(定義為目標Object)組成,單詞通??s寫為三個字母。例如:CL命令命令名SendMessageSNDMSGCopyFileCPYFWorkwithDeviceDesripyionsWRKDEVDCL的參數(shù)由關鍵字和參數(shù)值組

3、成,關鍵字通常和命令一樣縮寫,它用于說明參數(shù)的作用,在命令輸入屏,按F11鍵,即可看到關鍵字。在命令行輸入命令時,如果參數(shù)是按照固定的順序輸入,則可以省略關鍵字。例如:SNDMSGMSG(HOLLEO)TOUSR(LENG)命令名關鍵字參數(shù)值大多數(shù)CL都是針對目標而言,目標是一個占據(jù)了一定存儲空間的實體,它包括白身屬性及其數(shù)據(jù)特征的描述,系統(tǒng)可以對它進行操作。目標的屬性包括名字、類型、長度、建立日期及其它屬性。不同目標具有不同的屬性描述,大部分屬性是可以修改的,而不需要重新建立。目標的數(shù)據(jù)值是儲存于目標中的信息集合,例如:程序的值是組成程序的執(zhí)行碼,文件的值是組成文件的記錄。LIBFILEMS

4、GFPGMCMD目標的類型很多,常用的幾種包括:庫文件信息文件程序命令JOBQDTAQMSGQOUTQDTAARAJRNJRNRCVUSRPRF作業(yè)隊列數(shù)據(jù)隊列信息隊列輸出隊列數(shù)據(jù)域SBSDJOBDLINDCTLDDEVD日志日志接受器用戶簡要表子系統(tǒng)描述作業(yè)描述線路描述控制器描述設備描述一個具體目標是由目標名和目標類型來唯一標識的,不同的目標類型可以使用同一個目標名。目標名由用戶指定,目標類型由生成它的命令決定。不同類型的目標具有不同的操作。例如:CALL命令只針對*PGM目標進行操作。關于目標的操作,系統(tǒng)也進行了統(tǒng)一的規(guī)范,常用的幾種包括:WRK工作CRT建立ADD增加CHG改變DLT刪除

5、DSP顯示EDT編輯CPY拷貝,MOV移動RNM變名,SAV備份RST恢復RTV獲取GRT授權DMP轉(zhuǎn)儲第二章CL編程提要:2.1 CL程序的作用CL程序的結構CL程序中的命令CL程序的作用CL程序是由CL命令組成,這些命令被編譯成可供隨時調(diào)用的程序。使用CL程序的優(yōu)點包括: CL程序比單獨輸入和運行命令快,因為命令被編譯成能夠立即運行的形式。有些功能需要多條CL命令一起完成。參數(shù)可以傳遞給CL程序,CL程序內(nèi)部也接收變量的定義,以適應特殊需要的程序操作。 CL程序能夠像其它高級語言程序一樣被測試和監(jiān)控。CL程序可以應用到許多方面,包括:通過CL程序完成單獨輸入CL命令所不能完成的功能,例如,

6、人工或者定時提交批作用完成一項工作,如啟動子系統(tǒng),進行文件備份,整頓系統(tǒng)資源。給交互式或批處理的應用程序提供一個接口,使得在應用程序中直接進行系統(tǒng)操作或者獲取系統(tǒng)參數(shù)。在網(wǎng)絡通信方面,CL程序往往承擔應用主控程序的角色。2.2 CL程序的結構CL程序是借助于ADT工具中的SEU輸入的,在輸入過程中,鍵入一條命令并按F4鍵,就會顯示出這條命令的提示畫面,方便用戶輸入相應的參數(shù)值。CL源程序主要分為以下幾個部分:程序的開始和結束: PGMPARM(&A&B)開始CL程序ENDPGM結束程序變量定義: DCL定義變量DCLF定義文件CL處理命令:CHGVAR變量賦值MONMSG監(jiān)控錯誤信息SNDPG

7、MMSG傳送程序信息RTVJOBA獲取作業(yè)屬性值邏輯控制命令:IFTHENELSEDOENDDOGOTO內(nèi)部函數(shù):%SST取子串*CAT連接字符程序控制命令:CALL調(diào)用子程序2.3 RETURN返回調(diào)用程序CL程序的命令CL程序中僅可包含CL命令,由系統(tǒng)提供的大多數(shù)CL命令可用于CL程序,而有些CL命令是專門用在CL程序中的。下面是一張用在CL程序中的部分命令清單,其中帶有星號的表示該命令僅能用于CL程序內(nèi)部。2.3.1變量的使用變量說明,使用DCL命令來定義變量及其屬性、長度和初值標準格式如下:-*CHAR-DCLVAR(變量名)TYPE*DECLEN(長度)VALUE(初值)*LGL使用

8、DCL命令時,必須遵循的規(guī)則如下:CL變量名必須以&開始,后跟字符不多于10個,&后的第一個字符必須是字母,其余的可以是字母或數(shù)字。CL變量值必須是:字符型最長為9999個字符;數(shù)值型為壓縮十進制數(shù),最長為15位,其中小數(shù)位最長為9位;邏輯型為“0”或“1”,表示假或真。CL變量的缺省初值為:字符型為空,數(shù)值型為0,邏輯型為“0”。對于字符型和數(shù)值型,如果指定了初值而未指定長度,則缺省長度為初值長度。,變量值中小寫字符的限制用作變量的保留值必須用大寫字母表示,特別是當它們用引號括起來的時候。例如:DCLVAR(&LIB)TYPE(*CHAR)LEN(10)VALUE(*LIBL)DLTPGM&

9、LIB/MYPROG注意:如果VALUE參數(shù)不使用引號,則小寫是正確的。因為使用SEU編輯會白動轉(zhuǎn)換成大寫。,變量賦值,使用CHGVAR命令給變量賦值,其值可改變成:常量:變量:計算量:CHGVARCHGVARCHGVARVAR(&A)VALUE(0)VAR(&A)VALUE(&B)VAR(&A)VALUE(&A+1)函數(shù)量:CHGVARVAR(&A)VALUE(%SST(&B15)CHGVARVAR(%SST(&A15)VALUE(&B)賦值時應注意以下幾點:對邏輯變量,被改變的值必須是一個邏輯值。對數(shù)值變量,只能賦予十進制數(shù),或者數(shù)字字符變量(包括小數(shù)點和正負號)。對字符變量,既可接受字符

10、,也可接受十進制數(shù)。賦十進制數(shù)時,該字符變量的值是右對齊,前導補零,負號放在最左邊。CL程序中注解的書寫,在命令的頭尾使用一對符號:/*和*/。如果一行寫不下一條命令,使用+。2.3.2CL程序內(nèi)部的邏輯控制條件轉(zhuǎn)移命令:IFCOND(條件)THEN(一條命令)ELSECMD(一條命令)或者IFCOND(條件)THEN(DO).ENDDOELSECMD(DO).ENDDO無條件轉(zhuǎn)移命令:GOTOLABEL操作符:邏輯的*AND*OR*NOT算術的+-*/字符的*CAT*TCAT關系的*EQ*GT*LT*GE*LE*NE監(jiān)視信息命令:MONMSGMONMSGMSGID(信息標識1信息標識50)+

11、EXEC(CL命令)系統(tǒng)對于CL命令執(zhí)行錯誤所送出的信息都具有唯一的標識符,如果不進行監(jiān)視,則系統(tǒng)會終斷程序,白動顯示錯誤信息。2.3.3系統(tǒng)資源的獲取日期格式轉(zhuǎn)換命令:CVTDATCVTDATDATE(被轉(zhuǎn)換日期)TOVAR(轉(zhuǎn)換后日期)+FROMFMT(原格式)TOFMT(新格式)TOSEP(新分隔符)其中:轉(zhuǎn)換后日期的長度至少是:對儒略日期(如YMD,DMY或JUL格式),不使用分隔符為5個字符,使用分隔符為6個字符。對非儒略日期,不使用分隔符為6個字符,使用分隔符為8個字符。日期格式和分隔符可以通過按F4鍵選擇。,檢索系統(tǒng)值命令:RTVSYSVALRTVSYSVALSYSVAL(系統(tǒng)值

12、名)RTNVAR(CL變量名)其中:系統(tǒng)值名可以通過按F4鍵選擇,如:系統(tǒng)當前日期的系統(tǒng)值是QDATE。變量名必須和系統(tǒng)值的類型匹配,對字符型和邏輯型系統(tǒng)值而言,變量名的長度必須相符,對數(shù)字型,則長度不小于系統(tǒng)值長度。檢索配置源命令:RTVCFGSRC用于將現(xiàn)有配置的描述存放到源文件成員中配置狀態(tài)檢索命令:RTVCFGSTS用于獲取各類配置描述的現(xiàn)行狀態(tài),放入CL變量。檢索網(wǎng)絡屬性的命令:RTVNETA用于獲取系統(tǒng)的網(wǎng)絡屬性,放入相應的CL變量。如:系統(tǒng)名SYSNAME,本地網(wǎng)絡標識LCLNETID。檢索作業(yè)屬性命令:RTVJOBA用于獲取當前運行作業(yè)的屬性,放入相應的CL變量。如:作業(yè)名JO

13、B,用戶名USER。,檢索目標描述命令:RTVOBJD用于獲取指定目標的描述屬性,放入相應的CL變量。 檢索用戶檔案命令:RTVUSRPRF用于獲取指定用戶的檔案資料,放入相應的CL變量。第三章程序間的通訊程序間的通訊是指不同程序之間數(shù)據(jù)或參數(shù)的傳遞和交流。這種通訊可以出現(xiàn)在不同種類的程序中。如:RPG與C語言,也可以出現(xiàn)在不同機器上,如:PC與AS/400。針對OS/400而言,通常程序間的通訊具有三種方式:3.1 CALL、RETURN命令數(shù)據(jù)隊列通訊,數(shù)據(jù)域通訊CALL命令的使用調(diào)用程序:CALLPGM(PGMA)PARM(&A&B)被調(diào)用程序:PGMPARM(&C&D)有關CALL命令

14、使用的幾點說明:,參數(shù)值可以是字符常量、數(shù)值常量、邏輯常量或CL常量,最多可達40個。參數(shù)值以CALL命令中出現(xiàn)的順序傳送,這必須與被調(diào)用程序的參數(shù)順序相匹配,變量名不一定相同。被調(diào)程序中的接收參數(shù)必須說明,但接收值不受變量說明中初值的影響。接收參數(shù)值的改變會反映到調(diào)用程序中,但常量傳送不會改變。,字符常量通常以32個字節(jié)傳送,數(shù)字常量以15.5長度壓縮格式傳送。3.2數(shù)據(jù)隊列的程序通訊數(shù)據(jù)隊列(*DTAQ)是系統(tǒng)目標中的一種類型,當建立了這種目標后,一個程序可以發(fā)送數(shù)據(jù)給它,另一個程序再從中接收數(shù)據(jù),從而達到程序之間的數(shù)據(jù)通訊。3.2.1數(shù)據(jù)隊列的優(yōu)點,數(shù)據(jù)隊列是兩個作業(yè)之間進行異步通訊的最

15、快方法。相對數(shù)據(jù)庫文件、消息隊列或數(shù)據(jù)域而言,它需要較少的額外開銷。多個作業(yè)可以向相同的數(shù)據(jù)隊列送數(shù)據(jù)和取數(shù)據(jù),而數(shù)據(jù)隊列的先進先出、后進先出或關鍵字順序排列屬性,能夠保證數(shù)據(jù)送取的正確性。在任何高級語言程序中,通過調(diào)用系統(tǒng)提供的程序,就可以對數(shù)據(jù)隊列進行操作,而且操作方法靈活方便。數(shù)據(jù)隊列的操作和使用包括兩類:第一類使用CL命令;第二類調(diào)用系統(tǒng)程序。CL命令:CRTDTAQ建立數(shù)據(jù)隊列DLTDTAQ刪除數(shù)據(jù)隊列WRKDTAQ工作數(shù)據(jù)隊列系統(tǒng)程序:QSNDDTAQ發(fā)送數(shù)據(jù)隊列QRCVDTAQ接收數(shù)據(jù)隊列QCLRDTAQ清除數(shù)據(jù)隊列QMHQRDQD檢索數(shù)據(jù)隊列3.2.2數(shù)據(jù)隊列的發(fā)送需要將數(shù)據(jù)發(fā)

16、送給數(shù)據(jù)隊列,只要在程序中調(diào)用QSNDDTAQ。在CL程序中,調(diào)用的格式如下:CALLPGM(QSNDDTAQ)PARM(&QNAME&LIB+&FLDLEN&FIELD&KEYLEN&KEY)&QNAME:是長度為10的字符型,它命名了數(shù)據(jù)隊列,如:IN_Q。&LIB:是血為10的字符型,它命名了數(shù)據(jù)隊列所在的庫,如:*LIBL。&FLDLEN:是長度為5的數(shù)字型,它規(guī)定了發(fā)送給數(shù)據(jù)隊列的字符數(shù),如:100。&FIELD:是長度為&FLDLEN的字符型,它包含了具體發(fā)送給數(shù)據(jù)隊列的數(shù)據(jù)。&KEYLEN:是長度為3的數(shù)字型,它說明了傳送給數(shù)據(jù)隊列的關鍵字長度,如:6。&KEY:是長度為&KEY

17、LEN的字符型,它包含了傳送給數(shù)據(jù)隊列的關鍵字數(shù)據(jù)。注:后兩個參數(shù)可以白選,如果說明了一個,則必須說明另一3.2.3數(shù)據(jù)隊列的接收需要從數(shù)據(jù)隊列中接收數(shù)據(jù),只要在程序中調(diào)用QRCVDTAQ,在CL程序中,調(diào)用的格式如下:CALLPGM(QRCVDTAQ)PARM(&QNAME&LIB&FLDLEN+&FIELD&WAIT&ORDERKEYLEN&KEY&SNDRLEN&SNDR)&QNAME:是長度為10的字符型,它命名了數(shù)據(jù)隊列。如:OUT_Q。&LIB:是長度為10的字符型,它命名了數(shù)據(jù)隊列所在的庫。如:*LIBL。&FLDLEN:是長度為5的數(shù)字型,它規(guī)定了發(fā)送給數(shù)據(jù)隊列的字符數(shù)。&FI

18、ELD:是長度為&FLDLEN的字符型,它包含了從數(shù)據(jù)隊列中接收到的具體數(shù)據(jù)。&WAIT:是長度為5的數(shù)字型,它說明了等待接收數(shù)據(jù)的時間。負數(shù)表示無限制的等待;零表示不等待;正數(shù)示要等待的秒數(shù),最大值是9999。這個參數(shù)只有在數(shù)據(jù)隊列中無滿足條件的數(shù)據(jù)時,才起作用。&ORDER:是長度為2的字符型,它說明了按關鍵字接收數(shù)據(jù)的條件。可用的字符值是:GT、LT、EQ、GE、LE。&KEYLEN:是長度為3的數(shù)字型,它說明了接收數(shù)據(jù)隊列的關鍵字長度。&KEY:是長度為&KEYLEN的字符型,它標識了用于從數(shù)據(jù)隊列中接收數(shù)據(jù)的關鍵字變量。&SNDRLEN:是長度為3的數(shù)字型,它規(guī)定了發(fā)送者標識的長&S

19、NDR:是長度為&SNDRLEN的字符型,它包含了發(fā)送者標識的數(shù)據(jù)。注:后三個參數(shù)可以任選,但是&ORDER、&KEYLEN和&KEY必須同時說明。3.2.4數(shù)據(jù)隊列的清除需要從數(shù)據(jù)隊列中清除數(shù)據(jù),只要在程序中調(diào)用QCLRDTAQ在CL程序中,調(diào)用的格式如下:CALLPGM(QCLRDTAQ)PARMM(&QNAME&LIB)3.2.5數(shù)據(jù)隊列的檢索需要檢索一個數(shù)據(jù)隊列的描述項,只要在程序中調(diào)用QMHQRDQD。在CL程序中,調(diào)用的格式如下:CALLPGM(QMHQRDQD)PARM(&RCVR&RCVRLEN+&FORMAT&DQNAME)&RCVR:是長度為&RCVRLEN的字符型,它標識

20、了含有數(shù)據(jù)隊列性的變量。&RCVRLEN:是長度為4的數(shù)字型,它說明了&RCVR長度。&FORMAT:是長度為8的字符型,它定義了接收模板的格式。&DQNAME:是長度為20的字符型,它標識了數(shù)據(jù)隊列和所在庫,前十個字符是隊列名字,后十個字符是庫名。3.3數(shù)據(jù)域的程序通訊數(shù)據(jù)域(*DTAARA)是系統(tǒng)目標中的一種類型。當建立了這種目標后,可以用來存入數(shù)據(jù),以便任何程序進行讀取和修改。數(shù)據(jù)域的典型用途如下:提供用于幾個程序中的常數(shù)字段,易于共享和修改。如:標題、說明等。在一個作業(yè)中提供一個傳遞信息的區(qū)域。在一個作業(yè)中提供一個字段作為控制參數(shù),以便容易地得到修改。數(shù)據(jù)域的CL命令包括:CRTDTAARACHGDTAARADSPDTAARARTVDTAARADLTDTAARAWRKDTAARA建立數(shù)據(jù)域,長度不超過2000改變數(shù)據(jù)域,改變時數(shù)據(jù)域被鎖定顯示數(shù)據(jù)域,可以以十六進制方式顯示檢索數(shù)據(jù)域,檢索值需要存入CL變量刪除數(shù)據(jù)域工作數(shù)據(jù)域第四章測試功能提要:4.1 CL程序的編譯

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論