Other ERPsFree generatorPDF, Excel, Word exportSage X3All Sage X3 and Sage 100 tools

Sage X3 SOAP Web Service Request Generator for run, read and save

This generator builds SOAP envelopes for the Sage X3 V7+ generic web service CAdxWebServiceXmlCC: run for a published subprogram, read for an object by key, and save to create an object. It also gives the endpoint and WSDL URLs for an on-premises Syracuse server.

Fill in

Generated code
Download:

Endpoint

POST http://x3web01:8124/soap-generic/syracuse/collaboration/syracuse/CAdxWebServiceXmlCC
Content-Type: text/xml; charset=utf-8
SOAPAction: ""
Authorization: Basic <base64 of user:password>

<!-- WSDL: http://x3web01:8124/soap-wsdl/syracuse/collaboration/syracuse/CAdxWebServiceXmlCC?wsdl -->

run: call a published subprogram

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wss="http://www.adonix.com/WSS">
  <soapenv:Header/>
  <soapenv:Body>
    <wss:run soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <callContext xsi:type="wss:CAdxCallContext">
        <codeLang xsi:type="xsd:string">ENG</codeLang>
        <poolAlias xsi:type="xsd:string">WSDEMO</poolAlias>
        <poolId xsi:type="xsd:string"></poolId>
        <requestConfig xsi:type="xsd:string"><![CDATA[adxwss.optreturn=JSON&adxwss.beautify=true]]></requestConfig>
      </callContext>
      <publicName xsi:type="xsd:string">YGETSTOCK</publicName>
      <inputXml xsi:type="xsd:string"><![CDATA[<PARAM><GRP ID="GRP1"><FLD NAME="ITMREF">A100</FLD><FLD NAME="STOFCY">FR011</FLD></GRP></PARAM>]]></inputXml>
    </wss:run>
  </soapenv:Body>
</soapenv:Envelope>

read: one object by key

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wss="http://www.adonix.com/WSS">
  <soapenv:Header/>
  <soapenv:Body>
    <wss:read soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <callContext xsi:type="wss:CAdxCallContext">
        <codeLang xsi:type="xsd:string">ENG</codeLang>
        <poolAlias xsi:type="xsd:string">WSDEMO</poolAlias>
        <poolId xsi:type="xsd:string"></poolId>
        <requestConfig xsi:type="xsd:string"><![CDATA[adxwss.optreturn=JSON&adxwss.beautify=true]]></requestConfig>
      </callContext>
      <publicName xsi:type="xsd:string">YSOH</publicName>
      <objectKeys xsi:type="wss:ArrayOfCAdxParamKeyValue" soapenc:arrayType="wss:CAdxParamKeyValue[]">
        <key xsi:type="wss:CAdxParamKeyValue">
          <key xsi:type="xsd:string">SOHNUM</key>
          <value xsi:type="xsd:string">SO-00012</value>
        </key>
      </objectKeys>
    </wss:read>
  </soapenv:Body>
</soapenv:Envelope>

save: create an object

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wss="http://www.adonix.com/WSS">
  <soapenv:Header/>
  <soapenv:Body>
    <wss:save soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <callContext xsi:type="wss:CAdxCallContext">
        <codeLang xsi:type="xsd:string">ENG</codeLang>
        <poolAlias xsi:type="xsd:string">WSDEMO</poolAlias>
        <poolId xsi:type="xsd:string"></poolId>
        <requestConfig xsi:type="xsd:string"><![CDATA[adxwss.optreturn=JSON&adxwss.beautify=true]]></requestConfig>
      </callContext>
      <publicName xsi:type="xsd:string">YSOH</publicName>
      <objectXml xsi:type="xsd:string"><![CDATA[<PARAM><GRP ID="SOH0_1"><FLD NAME="SALFCY">FR011</FLD><FLD NAME="SOHTYP">SON</FLD><FLD NAME="BPCORD">C001</FLD></GRP><TAB ID="SOH4_1"><LIN><FLD NAME="ITMREF">A100</FLD><FLD NAME="QTY">5</FLD></LIN></TAB></PARAM>]]></objectXml>
    </wss:save>
  </soapenv:Body>
</soapenv:Envelope>

Operation names and parameter order (run: callContext, publicName, inputXml; read: callContext, publicName, objectKeys; save: callContext, publicName, objectXml), the http://www.adonix.com/WSS namespace and the soap-generic endpoint match the CAdxWebServiceXmlCC WSDL and the V12 SOAP help. The GRP, TAB and FLD names in the sample payloads are placeholders: take the real ones from getDescription or the publication in GESAWE. codeUser and password in callContext are deprecated; the user comes from the Syracuse login and the endpoint login map.

Have your web service setup reviewed

Send us your publication, pool settings and a failing request and we will tell you what to change.

Optional. The tool and every export work without this. No spam.

Was this tool useful?

How to use it

Enter the Syracuse host and port, the pool alias of a started web service pool, the language and the publication names. Paste the run, read or save envelope into SoapUI, Postman or your integration code and post it to the endpoint with basic authentication. Start with read on a known key: if that works, pool, user and publication are all correct, and any later problem is in your payload.

  • requestConfig adxwss.optreturn=JSON returns resultXml as JSON.
  • adxwss.trace.on=on gives verbose traces while you debug.
  • Keep the payload inside CDATA so it is not parsed as SOAP.

Where this lives in Sage X3

Publications are created in Development > Utilities > Web services (GESAWE) for objects, subprograms and import templates, and each must be published before it can be called. Pools are configured in Syracuse Administration > Web services; poolAlias in the callContext must match the alias of a started pool. The WSDL at /soap-wsdl/syracuse/collaboration/syracuse/CAdxWebServiceXmlCC?wsdl lists all operations: run, save, delete, read, query, getDescription, modify, actionObject and the line operations.

Worked example

A publication YSOH of the sales order object, read with key SOHNUM = SO-00012, returns status 1 and the order in resultXml, grouped by the publication's GRP and TAB IDs. To create an order, call getDescription on YSOH first to see the exact group and field names, then fill the save payload: header fields in a GRP, lines in a TAB with one LIN per line. A status of 0 means failure; read the messages array for the reason, which is usually a mandatory field or a control in the entry transaction.

Version differences and gotchas

In V6 the callContext carried codeUser and password; from V7 these are ignored and the user comes from the HTTP authentication and the endpoint login map. Send codeLang with a language code that exists in the folder, such as ENG. Pools have a fixed number of channels, so bulk loads should be throttled or the pool sized up. Republish the web service after any change to the object, screen or subprogram, especially after a patch or update.

Frequently Asked Questions

What is CAdxWebServiceXmlCC in Sage X3?

It is the generic SOAP web service of Sage X3 V7 and later, served by Syracuse at /soap-generic/syracuse/collaboration/syracuse/CAdxWebServiceXmlCC. One endpoint handles every publication: you name the publication in publicName and choose the operation, such as run, read, query or save.

What is poolAlias in a Sage X3 SOAP call?

poolAlias is mandatory and must equal the alias of a web service pool configured and started in Syracuse Administration > Web services. The pool holds pre-started X3 sessions for one endpoint, which is how the call reaches the right folder. A wrong or stopped pool gives an error before your publication runs.

How do I pass a key to the Sage X3 read operation?

Use objectKeys, an array of CAdxParamKeyValue items, each with a key element holding the field name and a value element holding its value, for example SOHNUM and SO-00012. For objects with composite keys, add one item per key field in key order.

Can Salesforce integrate with Sage X3 through SOAP?

Yes, usually through middleware that calls CAdxWebServiceXmlCC: read and query publications to sync customers, items and prices, and save on the sales order publication to create orders. Keep Syracuse inside your network, give the integration its own user and pool, and log every request and resultXml.

If you want SOAP and REST calls to Sage X3 wrapped as safe, approved actions for a private AI assistant on your servers, we can set that up.

ArchRay builder
Design the on-prem AI stack for Sage X3 and Sage 100: model, GPUs, RAG pipeline, guardrails
See memory, speed and cost as you swap parts, then export the diagram. Free, in your browser.
Open the builder

Keep exploring

Free tools

ERP fixes and how-tos

AI on your ERP

Integrations

Software

TermsSOAP