Chinaunix

标题: 各位大虾 请教一下如何创建一个命令 [打印本页]

作者: ivanma    时间: 2006-08-20 14:33
提示: 作者被禁止或删除 内容自动屏蔽
作者: leason    时间: 2006-08-20 18:58
你可以用RPG,或者CLP写一个程序,这个程序就是实现你想用的功能,把它编译到指定的LIB里,每次用的时候直接CALL CLP或者RPG,不就可以了么
作者: ivanma    时间: 2006-08-20 21:41
提示: 作者被禁止或删除 内容自动屏蔽
作者: fairyboy    时间: 2006-08-21 09:00
那是先建立一个CL程序,以后用CMD来指定
作者: 子樵    时间: 2006-08-21 10:13
有一种SOURCE的类型是CMD.就是用来定义CMD的.
写好PGM,然后编写CMD定义参数,最后用CRTCMD创建CMD.
作者: 居士    时间: 2006-08-21 15:20
创建自己的命令

   用户在日常管理中,经常会重复使用同一命令,但命令又很长,用户可以创建用CRTDUPOBJ; CHGCMDDFT创建自己的命令简化操作。



例如:命令WRKUSRJOB USER(*ALL) STATUS(*ACTIVE) JOBTYPE(*INTERACT) ASTLVL(*BASIC)



可以按以下步骤进行操作:



A.    输入命令CRTDUPOBJ(Create Duplicate Object)并按F4键。



                       Create Duplicate Object (CRTDUPOBJ)                     

                                                                                

Type choices, press Enter.                                                     

                                                                                

From object  . . . . . . . . . . > WRKUSRJOB     Name, generic*, *ALL         

From library . . . . . . . . . . > *LIBL         Name, *LIBL, *CURLIB         

Object type  . . . . . . . . . . > *CMD          *ALL, *ALRTBL, *AUTL...      

                + for more values                                               

To library . . . . . . . . . . . > YOURLIB       Name, *FROMLIB, *SAME...      

New object . . . . . . . . . . . > USERJOB       Name, *OBJ, *SAME            

From ASP device  . . . . . . . .   *             Name, *, *CURASPGRP, *SYSBAS  

To ASP device  . . . . . . . . .   *ASPDEV       Name, *ASPDEV, *...           

                                                                                

                                                                                

                                                                         Bottom

F3=Exit   F4=Prompt   F5=Refresh   F12=Cancel   F13=How to use this display   

F24=More keys                                                                  

                                                                                

在用户所在的库(yourlib)中创建WRKUSRJOB命令的副本userjob



B. .在AS/400命令行输入CHGCMDDFT(Change Command Default)命令,



                       Change Command Default (CHGCMDDFT)                       

                                                                                

Type choices, press Enter.                                                     

                                                                                

Command  . . . . . . . . . . . . > USERJOB       Name                          

Library  . . . . . . . . . . . >   yourlib     Name, *LIBL, *CURLIB         

New default parameter string . . > 'status(*active) jobtype(*interact)'        

                                                                                

                                                                                

                                                                              

                                                                                

                                                                         Bottom

F3=Exit   F4=Prompt   F5=Refresh   F12=Cancel   F13=How to use this display   

F24=More keys                                                                  

                                                                                

这样一条新的命令被定义成功。

可以在AS/400命令行输入yourlib/userjob 来执行你需要的功能。



(该篇文档原作者:JACKSU,编辑:王鹏程)
作者: aliceliu    时间: 2006-08-21 21:43
step 1:   CRTSRCPF   (QCLSRC)
CRTSRCPF (QCMDSRC)

Create two source code and you can set as the same name, and compile it. please compile the CLP/Rpg FIRST, Then compile the Command.
作者: pantierui    时间: 2006-08-22 09:01
WRKD command source CMD001.


  /*---------------------------------------------------------------*/
  /*  WRKCFGSTS ON A *DEVICE      CPP = CMD001CL                   */
  /*---------------------------------------------------------------*/

              CMD         PROMPT('WRKCFGSTS- Work with a device')
              PARM        KWD(DEV) TYPE (*CHAR) LEN (10) RSTD(*NO) +
                            DFT(*ALL) MIN(0) PROMPT('Device Name:')




WRKD command-processing program CMD001CL.


   PGM         PARM(&DEV)
                 DCL         &DEV *CHAR LEN(10)
                 DCL         &MESAGE *CHAR LEN(80)

                 IF          COND(&DEV *NE '*ALL') THEN(DO)
                 CHKOBJ      OBJ(QSYS/&DEV) OBJTYPE(*DEVD)
                 MONMSG      MSGID(CPF9801) EXEC(DO)
                 CHGVAR      VAR(&MESAGE) VALUE('DEVICE-' *CAT &DEV +
                             *BCAT ' NOT FOUND. CHECK EVICE NAME.')
                 SNDPGMMSG   MSG(&MESAGE) TOPGMQ (*EXT)
                 GOTO        END
                 ENDDO
                 ENDDO
                 WRKCFGSTS   CFGTYPE (*DEV) CFGD(&DEV)
   END:          ENDPGM

然后用下面的命令创建你想要的命令
CRTCMD CMD(MYLIB/WRKD) PGM(MYLIB/CMD001C) SRCFILE(MYLIB/QCMDSRC) SRCMBR(CMD001) ALLOW(*INTERACT)
作者: bicin    时间: 2011-04-11 16:26
看帖回复是必须的,我说咋权限这么少呢




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2