WRKACTJOB
这个使用的频率应该是最高的吧,在这里只提一个比较有用的用法:Coding的时候断线异常退出时,再登录之后,用2进入刚才编辑的程序,不是会报错“正在被使用”嘛。除了等一会,一直等到它自动退出之外,还可以用WRKACTJOB + 10,来查找刚才自己的那个进程(显示出来的命令应该是STRSEU),然后把它KILL掉就行了。
DSPFD
DSPFD + PF名,查看文件的信息,包括文件的MEMBER数,总记录数,被删除的记录数,CCSID等等。
DSPFD + LF名,查看逻辑文件的键值,结合DSPDBR,可以找出一个PF文件对应的所有LF文件的键值。
DSPFD + 库名 + *MBRLIST,可以看到该库之下所有的文件名。
这个命令可以使用*OUTFILE,将输出变成一个文件。灵活运用,将会是很多自行编写的工具的基础之一。
DSPFFD
注意,和上面的命令相差一个“F”,表示查看PF文件的字段信息。比如该PF文件共有多少个字段,每个字段的类型如何。
与DSPFD相似,DSPFFD也可以使用*OUTFILE,将输出变成一个文件。同理,灵活运用,也是众多自行编写工具的基础。
MRGSRC
比较两个程序的差异。按照A、B、A的顺序,MRGSRC时,A程序在上面,B程序在下面,白色的地方,即表示两个程序的差异。
F13表示接受当前差异,F17表示接受所有差异,F16表示继续查找下一处差异。
在接受差异时,表示按照B程序,更改A程序。(即B程序不变)
把SPLF变成MEMBER(源文件)
必须知道SPLF名,以及生成SPLF的JOB、USR、NUMBER名
CRTSRCPF FILE(库名/SRCPF) RCDLEN(212) IGCDTA(*YES)
CHGPF FILE(库名/SRCPF) CCSID(935)
CRTPF FILE(库名/PF) RCDLEN(200) IGCDTA(*YES)
CPYSPLF FILE(SPLF名) TOFILE(库名/PF) +
JOB(NUMBER名 / USER名 / JOB名) SPLNBR(*LAST)
CPYF FROMFILE(库名/PF) TOFILE(库名/SRCPF) +
TOMBR(MBR0001) MBROPT(*ADD) FMTOPT(*CVTSRC)
最后,SRCPF下的MBR001就是SPLF转成的MEMBER
当然,做为中间转换的临时文件,PF文件会保留SPLF的信息。
把MSGF变成SPLF
CHGSYSLIBL LIB(QSYS2989)
DSPMSGD RANGE(*FIRST *LAST) MSGF(MSGF所在库名/MSGF名) +
DETAIL(*BASIC) OUTPUT(*PRINT)
CHGSYSLIBL LIB(QSYS2989) OPTION(*REMOVE)
这个命令,再结合上面的“把SPLF变成MEMBER”,就可以把MSGF搞成MEMBER,然后再FTP到WINDOWS上,就可以很方便地查找已定义的MSG信息了。
不过必须要有权限执行CHGSYSLIBL这个命令。
DSPOBJD
根据程序名,查找编译时源代码所在的库名、SRCFILE名。
DETAIL参数用“*SERVICE”,OBJTYPE选项用“*PGM”
不过好象RPGLE的程序用这个命令查不出来,要用DSPPGM命令。
DSPPGM
根据目标
DSPPGM + RPGLE程序名,参数用“*MODULE”,然后再选择5,就可以看到编译时RPGLE程序时,源代码所在的库名,SRCFILE名。
DSPDBR
根据物理文件查其对应的所有逻辑文件
DSPPGMREF
查找程序与PF、LF的关系。
PGM参数用“*ALL”,OUTPUT参数用“*OUTFILE”,OBJTYPE参数用“*ALL”,然后执行,再输入输出文件名与所在库就可以了。然之后,就可以SQL在这个生成的文件中查找(生成的过程可能会有点慢,要耐心)。
在生成的文件中,字段WHRFNM,表示记录格式名。举例来说,如果物理文件更改过,那么物理文件与逻辑文件就都重新编译过了,所以它们对应的的所有的程序都要重新编译,通常物理文件与逻辑文件使用相同的记录格式名(当然,如果不同就算了)这时就需要按记录格式名来查找。比如SELECT * FROM 刚生成的文件 WHERE WHRFNM = “记录格式名”,找出所有涉及到这个记录格式名的程序。
在生成的文件中,字段WHFNAM,表示文件名,包括物理文件与逻辑文件。比如说当我们只修改了某个逻辑文件时,那么当然是只需要重新编译与该逻辑文件有关的程序,也就是说只根据文件名来查找就足够了。
RTVCLSRC
如果编译CL程序时,不是刻意带*NONE参数,那么一般来说CL程序都可以使用这个命令来反编译。具体用途试试便知
RGZPFM
重整文件,即回收已删除记录的空间。不过这个命令我没实际用过。
WRKMSGQ QSYSOPR
显示错误信息
CHGCMGDFT
更改某些命令的默认参数,如更改CRTPF的WAITRCD参数:
CHGCMDDFT CMD(QSYS/CRTPF) NEWDFT(‘WAITRCD(*IMMED)’)
DSPDBR + 物理文件名,查看该物理文件对应的逻辑文件
CLRPFM 清空文件
wrksplf 显示工作池
StrDBG 进入调试状态
EndDBG 终止调试
Go LICPGM 安装程序菜单
Go ASSIST 辅助菜单
DspWSUsr 显示用户信息
Go CMDFile 命令菜单
Go Major 主菜单
SNDMSG 发送消息
SNDBRKMSG 发送中断消息
DSPMSG 显示消息
WRKMSG 处理消息
WRKMSGQ 处理消息队列
CRTMSGQ 创建消息队列
DLTMSGQ 删除消息队列
CHGMSGQ 修改消息队列
CLRMSGQ 清除消息队列
DSPOBJD 显示对象描述符
WRKOBJ 管理对象
MOVOBJ 移动对象
RNMOBJ 重命名对象
CRTDUPOBJ 创建对象副本
WRKOBJPDM 进入程序开发对象管理器
CPYF 复制文件
CHKOBJ 检查对象
ALCOBJ 分配对象
DLCOBJ 收回对象
WRKOBJLCK 进入锁定对象
CLRLIB 清除库
CRTLIB 创建库
CPYLIB 复制库
DLTLIB 删除库
DSPLIB 显示库
DSPLIBD 显示库描述符
WRKLIB 管理库
CHGCURLIB 改变当前库
ADDLIBLE 加入库列表节点
CHGLIBL 改变库列表
RMVLIBLE 删除库列表节点
EDTLIBL 编辑库列表
CHGSYSLIBL 改变系统库列表
WRKFLR 管理文件夹
WRKLNK 管理对象链接
与子系统描述相关的命令:
STRSBS 启动子系统
ENDSBS 终止子系统
WRKSBS 管理子系统
WRKSBSJOB 管理子系统作业
CHGSBSD 改变子系统描述
CRTSBSD 创建子系统描述
DLTSBSD 删除子系统描述
DSPSBSD 查看子系统描述
PRTSBSDAUT 打印子系统描述
WRKSBSD 可对子系统描述进行创建、修改、删除等操作