R TRG01R
T01F 10 TEXT('text')
T02F 4 0 TEXT('num')
TRG01F@.txt
REF(TRG01F)
R TRG01R1
TRDATE 14 TEXT('Trigger Date')
COLHDG('Trg Date')
TRUSER 10 TEXT('Trigger User')
COLHDG('Trg User')
TRSEQ 3 TEXT('Trigger Seq')
COLHDG('Trg' 'Seq')
TRACT 1 TEXT('Trigger Action;A/C/D')
COLHDG('Trg' 'Act')
T01F R
T02F R
TRGCTL@.txt
HDATFMT(*YMD) DATEDIT(*YMD)
D*
D* PROGRAM STATUS DATA STRUCTURE
D SDS SDS
D WSID 244 253
D USER 254 263
D*
D Buffer DS 32767
D FileName 1 10
D LibraryName 11 20
D MemberName 21 30
D TrgEvent 31 31
D TrgTime 32 32
D CommitLckLvl 33 33
D Filler1 34 36
D CCSID 37 40B 0
D Filler2 41 48
D OldOff 49 52B 0
D OldLen 53 56B 0
D OldNullOffset 57 60B 0
D OldNullLength 61 64B 0
D NewOff 65 68B 0
D NewLen 69 72B 0
D NewNullOffset 73 76B 0
D NewNullLength 77 80B 0
D Resv3 81 96
*----------------------------------------------------------------
* Total Buffer length
D BufLen DS
D Leng 1 4B 0
*----------------------------------------------------------------
* Date and Time
D TimeDate DS
D TimeDate14 1 14 0
D CurrTime 1 6 0
D CurrDate 7 14 0
D CurrMonth 7 8 0
D CurrDay 9 10 0
D CurrYear 11 14 0
D CYMD DS
D CYMDDate 1 8 0
D CYMDYear 1 4 0
D CYMDMonth 5 6 0
D CYMDDay 7 8 0
*----------------------------------------------------------------
* Map the fields from the DB file
* to take the before/after images apart.
*----------------------------------------------------------------
* Work fields
C*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
C* M A I N L I N E
C*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
C*
C* Trigger Selection
C*
C CALL 'TRGCTP@'
C PARM FileName
C PARM '0' TrgSts 1
C PARM Buffer
C PARM BufLen
C*
C Eval *Inlr = *On
C*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
C* *INZSR - Initial one time run subroutine
C*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
C*
CSR *Inzsr Begsr
C*
C *Entry Plist
C Buffer Parm Buffer
C BufLen Parm BufLen
C*
C Endsr
TRGCTP@.txt
HDATFMT(*YMD) DATEDIT(*YMD)
D*
D* PROGRAM STATUS DATA STRUCTURE
D SDS SDS
D WSID 244 253
D USER 254 263
D*
D Buffer DS 32767
D FileName 1 10
D LibraryName 11 20
D MemberName 21 30
D TrgEvent 31 31
D TrgTime 32 32
D CommitLckLvl 33 33
D Filler1 34 36
D CCSID 37 40B 0
D Filler2 41 48
D OldOff 49 52B 0
D OldLen 53 56B 0
D OldNullOffset 57 60B 0
D OldNullLength 61 64B 0
D NewOff 65 68B 0
D NewLen 69 72B 0
D NewNullOffset 73 76B 0
D NewNullLength 77 80B 0
D Resv3 81 96
*----------------------------------------------------------------
* Total Buffer length
D BufLen DS
D Leng 1 4B 0
*----------------------------------------------------------------
* Date and Time
D TimeDate DS
D TimeDate14 1 14 0
D CurrTime 1 6 0
D CurrDate 7 14 0
D CurrMonth 7 8 0
D CurrDay 9 10 0
D CurrYear 11 14 0
D CYMD DS
D CYMDDate 1 8 0
D CYMDYear 1 4 0
D CYMDMonth 5 6 0
D CYMDDay 7 8 0
*----------------------------------------------------------------
*----------------------------------------------------------------
* Work fields
D Start s 5P 0
C*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
C* M A I N L I N E
C*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
C
C *ENTRY PLIST
C PARM FName 10
C PARM TrgSts 1
C PARM Buffer
C PARM BufLen
C*
C* '0' - Normal Operation
C If TrgSts = '0'
C IF FILENAME = 'TRG01F'
C CALL 'TRG01R'
C PARM Buffer
C PARM BufLen
C ENDIF
C endif
C*
C*
C Eval *Inlr = *On
C*
C*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
TRG01R.txt
HDATFMT(*YMD) DATEDIT(*YMD)
FTRG01F@ O E DISK
D*
D* PROGRAM STATUS DATA STRUCTURE
D SDS SDS
D WSID 244 253
D USER 254 263
D*
D Buffer DS 32767
D FileName 1 10
D LibraryName 11 20
D MemberName 21 30
D TrgEvent 31 31
D TrgTime 32 32
D CommitLckLvl 33 33
D Filler1 34 36
D CCSID 37 40B 0
D Filler2 41 48
D OldOff 49 52B 0
D OldLen 53 56B 0
D OldNullOffset 57 60B 0
D OldNullLength 61 64B 0
D NewOff 65 68B 0
D NewLen 69 72B 0
D NewNullOffset 73 76B 0
D NewNullLength 77 80B 0
D Resv3 81 96
*----------------------------------------------------------------
* Total Buffer length
D BufLen DS
D Leng 1 4B 0
*----------------------------------------------------------------
* Date and Time
D TimeDate DS
D TimeDate14 1 14 0
D CurrTime 1 6 0
D CurrDate 7 14 0
D CurrMonth 7 8 0
D CurrDay 9 10 0
D CurrYear 11 14 0
D CYMD DS
D CYMDDate 1 8 0
D CYMDYear 1 4 0
D CYMDMonth 5 6 0
D CYMDDay 7 8 0
*----------------------------------------------------------------
* Map the fields from the DB file
* to take the before/after images apart.
D RTRG01F E DS EXTNAME(TRG01F)
*----------------------------------------------------------------
* Work fields
D Start s 5P 0
D StartY s 5P 0
C*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
C* M A I N L I N E
C*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
C*
C* Trigger Date
C TIME HHMMSS 6 0
C MOVEL *DATE TRDATE
C MOVE HHMMSS TRDATE
C MOVEL USER TRUSER
C*
C Exsr S100
C*
C S0End TAG
C Eval *Inlr = *On
C*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
C* S100 - Write Records
C*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
C*
CSR S100 Begsr
C*
C Select
C* 1 = Add
C When TrgEvent = '1'
C Eval TRACT = 'A'
C Eval Start = NewOff + 1
C*
C Eval RTRG01F = %subst(Buffer:Start:NewLen)
C Write TRG01R1
C EXSR S200
C*
C* 2 = Delete
C*
C When TrgEvent = '2'
C Eval TRACT = 'D'
C*
C Eval Start = OldOff + 1
C Eval RTRG01F = %subst(Buffer:Start:OldLen)
C Write TRG01R1
C EXSR S200
C*
C* 3 = Update
C*
C When TrgEvent = '3'
C*
C* Original data
C*
C Eval StartY = OldOff + 1
C* Changed data
C*
C Eval TRACT = 'B'
C Eval Start = NewOff + 1
C* MOVEL SEQA TRSEQ
C Eval RTRG01F = %subst(Buffer:StartY:OldLen)
C Write TRG01R1
C*
C Eval TRACT = 'C'
C* MOVEL SEQB TRSEQ
C Eval RTRG01F = %subst(Buffer:Start:NewLen)
C Write TRG01R1
C EXSR S200
C*
C Endsl
C*
C Endsr
C*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
C* S200 - Update Files in Other Libraries
C*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
C S200 Begsr
C*
C Endsr
C*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
C* *INZSR - Initial one time run subroutine
C*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
C*
CSR *Inzsr Begsr
C*
C *Entry Plist
C Buffer Parm Buffer
C BufLen Parm BufLen
C*
C Endsr
ADDPFTRG FILE(DAVIDZHAO/TRG01F) TRGTIME(*AFTER) TRGEVENT(*INSERT) PGM(DAV
IDZHAO/TRGCTL@)
Trigger QSYS_TRIG_DAVIDZHAO__TRG01F_____000001 in library DAVIDZHAO was
added to file TRG01F in library DAVIDZHAO.
Trigger added to file.
ADDPFTRG FILE(DAVIDZHAO/TRG01F) TRGTIME(*BEFORE) TRGEVENT(*UPDATE) PGM(DA
VIDZHAO/TRGCTL@)
Trigger QSYS_TRIG_DAVIDZHAO__TRG01F_____000002 in library DAVIDZHAO was
added to file TRG01F in library DAVIDZHAO.
Trigger added to file.
ADDPFTRG FILE(DAVIDZHAO/TRG01F) TRGTIME(*AFTER) TRGEVENT(*DELETE) PGM(DAV
IDZHAO/TRGCTL@)
Trigger QSYS_TRIG_DAVIDZHAO__TRG01F_____000003 in library DAVIDZHAO was
added to file TRG01F in library DAVIDZHAO.
Trigger added to file.
RMVPFTRG FILE(DAVIDZHAO/TRG01F) TRGTIME(*AFTER) TRGEVENT(*DELETE)
Trigger QSYS_TRIG_DAVIDZHAO__TRG01F_____000003 in library DAVIDZHAO was
removed from file TRG01F in library DAVIDZHAO.
Trigger removed from file.
RMVPFTRG FILE(DAVIDZHAO/TRG01F) TRGTIME(*BEFORE) TRGEVENT(*UPDATE)
Trigger QSYS_TRIG_DAVIDZHAO__TRG01F_____000002 in library DAVIDZHAO was
removed from file TRG01F in library DAVIDZHAO.
Trigger removed from file.
RMVPFTRG FILE(DAVIDZHAO/TRG01F) TRGTIME(*AFTER) TRGEVENT(*INSERT)
Trigger QSYS_TRIG_DAVIDZHAO__TRG01F_____000001 in library DAVIDZHAO was
removed from file TRG01F in library DAVIDZHAO.
Trigger removed from file.