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)’)

arrow
arrow
    全站熱搜

    狼翔月影 發表在 痞客邦 留言(0) 人氣()