In this blog, I like to show an example of how you can call an External/Outgoing REST web services in a classic function.
Before we get to the example , the API used for this is called ASYRRESTCLI and the function used is EXEC_REST _WS.
So if you search our online help for ASYRRESTCLI you will see below.
Please note that this is just a simple example(there might be other ways to accomplish this). The external API call is going to a free JSON API http://fixer.io/ ( you can read more about this API by visiting their website)
The requirement presented for this example is that we like to have a button in Purchase order entry that shows the current exchange rates.
- Open Administration, Administration, Web Services, Rest web services.
- Click on New REST web service to create a new REST web service connection.
- Enter the information like below ( for information on each field review online help)
- Open Development, Script Dictionary, Windows.
- Select OPOH windows.
- Click on Buttons/menus Tab.
- Enter a new line like below.
- Click Save and Validate.
- Open Setup, Purchasing, Entry transactions, Orders.
- Select your entry transaction and click Validate.
- Open Development, Script Dictionary, Scripts, Script editor.
- Enter SPEPOH for the file name.
- Enter below code.
$ACTION
Case ACTION
When "EXEBOUT" : Gosub BOUTON
Endcase
Return##############
$BOUTON
If BOUT="3" ###### this is the code of our button in Window dictionary
# Contains the result header and body
Local Clbfile RESHEAD(0),RESBODY(0)
Local Integer RETVAL
# No additional parameter nor additional header value are given here (only the values given in ORDER definition are used)
Local Char PCOD(100)(1..10),PVAL(100)(1..10),HCOD(100)(1..10),HVAL(100)(1..10)
RETVAL=func ASYRRESTCLI.EXEC_REST_WS("ExchangeRate","GET","/latest",PCOD,PVAL,HCOD,HVAL,"{}", 0,"",RESHEAD, RESBODY)If RETVAL=200 : infbox(RESBODY) : Else infbox("somwthing Went wrong") : Endif
Endif
Return - Click Save and Compile.
- Now open Purchasing, Orders, Orders.
- Select an existing Purchase order.
- Click on your newly created button.
- Clicking on the button will produce below.
Conclusion: You can use ASYRRESTCLI and function EXEC_REST_WS to execute an outgoing web service call
- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones
- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones