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