Skip to content

Instantly share code, notes, and snippets.

@trsqxyz
Last active December 20, 2015 11:19
Show Gist options
  • Save trsqxyz/6121818 to your computer and use it in GitHub Desktop.
Save trsqxyz/6121818 to your computer and use it in GitHub Desktop.
ILERPG PDM AS/400 での diff の保管 差分のみの更新について

cmppfm

受入ファイルの作成

CRTPF FILE(*LIB/QDIFF) RCDLEN(144) FILETYPE(*SRC) MBR(*NONE) IGCDTA(*YES) MAXMBRS(*NOMAX) CCSID(5035) AUT(*ALL)

頭の 12 バイトはヘッダの情報なので 144 = 132 + 12 としておかないと変更行の情報が削除される

diff の吐き出し

CMPPFM NEWFILE(*LIB/AFILE)NEWMBR(*MBR) OLDFILE(*LIB/BFILE)
OUTPUT(*OUTFILE) OUTFILE(QTEMP/QTEMP)OUTMBR(*MBR)

cpyf

CPYF FROMFILE(QTEMP/QTEMP) TOFILE(*LIB/AFILE) FROMMBR(*MBR) TOMBR(*MBR) MBROPT(*REPLACE)CRTFILE(*YES) FMTOPT(*CVTSRC)

差分を保管しておくときは上記で作成したファイルへ

mrgsrc

MRGSRC TGTFILE(*LIB/AFILE) TGTMBR(*MBR) MAINTFILE(*LIB/BFILE) MAINTMBR(*MBR) ROOTFILE(*LIB/CFILE) ROOTMBR(*MBR)

  • TGTFILE
    • 更新結果を反映させたいファイル
  • MAINTFILE
    • 修正作業を行ったファイル
  • ROOTFILE
    • MAINTFILE と比較を行いたいファイル
      ROOTFILE と MAINTFILE の差分が TGTFILE に反映される
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment