In Sage X3, User have option to close Purchase order manually by using “close order” button on Purchase order screen. But one of our client has requested to automate this process on certain event so that user doesn’t have to take of this manually. To achieve this we have come up with some customization on PO screen where we did the 4GL code. Using the standard subprogram from standard script, we able to do it successfully. Lets look at the subprogram code.
New stuff: Restriction on Purchase Invoice Creation
Syntax:
Call TRTPOHCLE (WPOHNUM, WMSGFLG, WRET) From TRTACHDIV1
Here is the meaning of each parameter value,
WPOHNUM: Purchase order number
WMSGFLG: It is Integer value which indicates error message
0: No error Message
1: error on screen (Call ERROR)
2: GMESSAGE+GERROR
3: Message in trace
WRET: (Return Code) It Contains an integer value.
By calling above subprogram we can close the Purchase order.
Through above syntax we can close the purchase order by calling TRTPOHCLE subprogram from standard script with proper parameters.
Example:
Here we have created one Purchase order as shown in below screenshot which is showing closed order status “No” means PO is not closed yet.

Now, call the Subprogram with appropriate parameter as mentioned in below script screenshot to close PO.

After execution of script, Purchase order got closed as shown in below screenshot.

In this way, any programmer who knows the 4GL scripting can do this customization easily.