Figure 2: Sample RPG program that uses PEX001 |
|
H BndDir( 'PEX001' )
/COPY PEX001_H
|
A |
**-- System information:
D PgmSts SDs Qualified
D UsrPrf 10a Overlay( PgmSts: 254 )
D CurUsr 10a Overlay( PgmSts: 358 )
**-- Global constants:
D PEX_CNT_ID c 'PEX_APP_01'
D PEX_APP_ID c 'FinanceApp'
**-- Global variables:
D AppTrcDta s 3032a Varying
D TrnStrTim s 8a
D TrnId s 10u 0
D pTrnId s *
**-- Performance counters:
D AppPfrCnt Ds Qualified
D PfrCnt 20u 0 Dim( 16 )
/Free
|
|
//-- Initialize PEX transaction ID
pTrnId = InzTrnId( PEX_CNT_ID );
|
B |
-- Application initialization code goes here...
|
|
TrnId = GetTrnId( pTrnId );
AppTrcDta = PgmSts.CurUsr + PgmSts.JobUsr;
TrnStrTim = StrTrnPex( PEX_APP_ID: TrnId: AppTrcDta );
|
C |
//-- Transaction unit of work begin --
//-- Application code goes here...
//-- Transaction unit of work end --
AppTrcDta = PgmSts.CurUsr + PgmSts.JobUsr;
AppPfrCnt.PfrCnt(1) = *Zero;
|
|
EndTrnPex( PEX_APP_ID
: TrnId
: AppTrcDta
: TrnStrTim
: *Zero
: AppPfrCnt.PfrCnt
);
|
A |
.
.
.
*InLr = *On;
Return;
/End-Free
|