In Sage X3 Version 7 and later, REST services are available to access various entities. These REST services return data in a JSON format, and can be consumed from .net. This post provide some .net examples of making REST requests to Sage X3, and parsing the data.
When you are asked to describe what is Sage ERP X3 Development Platform at a high level there is usually a long pause, then a few starts and stops, followed by various interpretations of what it is. I am not an expert on this subject in way, yet. We have other folks on our team who cover this area. I am however, on paper a Sage ERP X3 Certified Developer but just a beginner in terms of what I would consider to be a true veteran in the subject matter. Continue to Article…
In an attempt to get a better understanding of Sage ERP X3 Web Services, inlcuding X3 Web Channels and X3 Java Bridge Library, I found some useful information in the Sage ERP X3 Configurator, basically the price list. I thought I would share my findings related to the Sage ERP X3 Web Services Channels (“WS Channels”) and Java Bridge Library as I am sure there are others in the same category as me.
After obtaining this initial information I mentioned above I had some further questions that required research to gain a better understanding of how these components are made available to customers and sizing them for an implementation. I reached out to Sage, and a few of my colleagues and researched some documents I have obtained over the past few years. In this post I will cover the WS Channels. Continue to Article…
Sage ERP X3 Web Services
You have to install the necessary Patches for the version of Sage ERP X3 you are on to get the Web Services functionality. Once you these installed it will require configuration in the following areas.
- X3 Console
- X3 Client
- X3 Web Server
The order of these steps is important. The purpose of the steps is to publish the Web Services to the various X3 Folders. I am assuming that the Apache servers are already configured properly.
Installing the Patch containing Web Services (this may not be necessary depending on what version of Sage ERP X3 you are starting with)
As of this writing the Patch necessary for Sage ERP X3 v6.1 is A41. (NAV6-XA41.dat)
Login into the Client of Sage ERP X3 under Folder ‘X3’ and navigate to the Development -> Utilities -> Patches -> Patch Integration function.
Locate the patch file directory where you placed the dat file. Make sure you select Patch Integration and Comment Overwrite then click OK.
Publish the Web Services
Create an X3 User for the Web Services –
Parameters -> Users -> Users by copying from the User WEB.
Make sure to create a password for this new User. In order for the connection to work properly it needs a Password, plus it is just good practice to have a password on this user. Make sure this user has the checkbox for Web Services connection as shown above.
You need to logout of the current user and login as the User you are using above then go to Usage -> Users -> Password Change.
On the Server running the X3 Console – Launch the SAGE X3 V1 Management Console and click on Web Servers section.
You need to select the X3 Web Server from the Left List, then Click on the Solution Identifier in the Right Window. The Folders will be displayed in the bottom window pane. Check the Folders you wish to publish to. Then click the Apply to publish the Web Services to the selected Folders.
NOTE: If you are unable to open adxinstalls.xml verify that the Windows Service for ADXADMIN is running.
You can see the process running under the Details button as shown below during the Publication process.
Now select the Folder you wish to configure the Web Services for. You will need to do this for each Folder individually if you want to enable Web Services for more than one Folder.
You need to provide the following information for each Web Service pool.
Pool Alias: This must be unique. This is how you will call the Web Service for this Folder.
Pool Language: This relates to the
Pool Userid: This is the X3 user you configured in the previous step.
Pool Password: This is the password for the X3 user.
Operating System Userid: This is a valid user for the OS.
Operating System Password: This is the password for the OS user.
Autostart: This states if this Web Service pool should be auto-started.
See the following screen as a sample of a completed configuration.
Once you have this configured then click Apply. In the picture above once this is applied you will see the (0) switch to a (1) in the upper window pane, this being the first instance.
Then in the X3 client you should see you valid Web Services Pool in Development-> Utilities -> Miscellaneous -> Web Services Pool.
You can also verify that the Sage ERP X3 Web Service patch is installed at Development->Utilities->NA Utilities->System Inquiry.
Now to configure and test the Sage ERP X3 Webservice Server (this will provide the Website ID for the next steps)
NOTE: If you get this message it means that the latest web service is not published. You can try reinstalling the XA41 patch. If the patch is installed and you see the Web Services in Sage ERP X3 then you can just perform validation on the Web Services to republish them.
The pool tried to invoke subprogram XTDSOH but the XML service description file for XTDSOH did not match the program’s expectations. In .net’s world this would be like an out of date wsdl file.
If you need to verify and validate the Object go to Development->Processes->Object select the Object and click on Validation.
If you need to generate the Web Services go to Development->Processes->Processes->Web Services. The XA41 Patch contains the Web Services that begin with ‘X’.
If everything appears to be installed correctly to this point you may just need to publish the Web Services. You can do this by selecting the Web Service and click on Validation.
Additional Web Service Configuration
In order for the Web Services to process orders into Sage ERP X3 you will need to configure the following information for each Folder you wish to use.
This information at Website Web Services->Web Service Parameters is used to determine certain default values when submitting orders.
It is important that you fill in the Defaults values on the General tab. If you do not fill in these values you will receive errors when trying to process orders, especially the Sales Site and Shipping Site fields.
The Websites tab above should show the published Website ID for you to associate to this Folder.
Then create login id’s to be used by your Web Commerce solution. These login id’s will be linked with a Customer in Sage ERP X3.
For the Credit Card Customer field if you select No then this customer can create orders based on the Terms on their Customer account or they can use a Credit Card. If you choose Yes then they are only able to place orders with a Credit Card.
One additional area to verify that Web Services license is activated.
To Verify the Web Service using the WebService tester
Go to the Web Server that is hosting the Web Services. Click on the WebService tester link. You need to fill in the following information. After you have entered the information then click the Save Context button.
Pool entry Group: This is the Web Service Pool name you created earlier.
User id: The Sage ERP X3 user you created.
Password: The password for the user.
Language: Select the language you wish to use for this Web Service.
Click on the Sub program link, key in one of the Web Services to consume. I have entered XTDSOH below, click on the “WebService Description” button. This should contain valid information in the Reply as shown below.
The Sage ERP X3 Web Services are more like a mapping interface API. They are not what you might be used to in traditional SOAP development. They are a wrapper around the base Sage ERP X3 logic. I only point this out so you are aware of this before you start looking for traditional WSDL files.