User Exit Example
The following is an example of a middle user exit for GL40 (Journal Entry). After GL40 completes its normal editing, the program launches this user exit to restrict account numbers 6000-6500 to transaction amounts of $500.00 or less.
The source code file for the procedure in this example would
be named GL40MPD, in the \glsrc
directory.
No specific working storage is needed for this user exit, so an empty
file named GL40MWS was created.
GL40BS1-TRANSACTION SECTION.
GL40BS1-START.
PERFORM
VARYING I1 FROM 1 BY 1
UNTIL (I1 > 6)
OR (ERROR-FOUND)
IF (GL40F1-LINE-FC (I1) = "A" OR "C")
AND (GL40F1-GLT-ACCOUNT (I1) NOT < 6000)
AND (GL40F1-GLT-ACCOUNT (I1) NOT > 6500)
IF (GL40F1-GLT-TRAN-AMOUNT (I1) < -500.00)
OR (GL40F1-GLT-TRAN-AMOUNT (I1) > 500.00)
MOVE 888 TO CRT-ERROR-NBR
MOVE GL40F1-GLT-TRAN-AMOUNT-FN (I1)
TO CRT-FIELD-NBR
END-IF
END-IF
END-PERFORM.
**** This edit must occur on forms 1 and 3 of GL40, because
**** transactions are entered on both forms.
GL40BS1-TRANSACTION-END.
**** GL40 has nine forms; an empty form control section must
**** be defined for each of forms 2, 4, 5, 6, 7, 8 and 9.
GL40BS2-TRANSACTION SECTION.
GL40BS2-START.
GL40BS2-TRANSACTION-END.
GL40BS3-TRANSACTION SECTION.
GL40BS3-START.
PERFORM
VARYING I1 FROM 1 BY 1
UNTIL (I1 > 12)
OR (ERROR-FOUND)
IF (GL40F3-LINE-FC (I1) = "A" OR "C")
AND (GL40F3-GLT-ACCOUNT (I1) NOT < 6000)
AND (GL40F3-GLT-ACCOUNT (I1) NOT > 6500)
IF (GL40F3-GLT-TRAN-AMOUNT (I1) < -5000.00)
OR (GL40F3-GLT-TRAN-AMOUNT (I1) > 5000.00)
MOVE 888 TO CRT-ERROR-NBR
MOVE GL40F3-GLT-TRAN-AMOUNT-FN (I1)
TO CRT-FIELD-NBR
END-IF
END-IF
END-PERFORM.
GL40BS3-TRANSACTION-END.