How to retrieve message error if a funcion "modify" fails

Hello.

I try to use a Web service connected to Sage X3, using the method "modify" of CAdxResultXml object. It works fine if the modify process success.

But if the method fails (es an article blocked from another user) the resultXml property is null and I have no message in the messages array property.

How can I read the message? 

Thanks for advance for your help.

     Marco

<wsdl:definitions xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:wss="http://www.adonix.com/WSS" xmlns:intf="http://www.adonix.com/WSS" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.adonix.com/WSS">
<!-- WSDL created by Apache Axis version: 1.4 Built on Apr 22, 2006 (06:55:48 PDT)  -->
<wsdl:types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.adonix.com/WSS">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="CAdxCallContext">
<sequence>
<element name="codeLang" nillable="true" type="xsd:string"/>
<element name="poolAlias" nillable="true" type="xsd:string"/>
<element name="poolId" nillable="true" type="xsd:string"/>
<element name="requestConfig" nillable="true" type="xsd:string"/>
</sequence>
</complexType>
<complexType name="CAdxMessage">
<sequence>
<element name="message" nillable="true" type="xsd:string"/>
<element name="type" nillable="true" type="xsd:string"/>
</sequence>
</complexType>
<complexType name="ArrayOfCAdxMessage">
<complexContent>
<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="wss:CAdxMessage[]"/>
</restriction>
</complexContent>
</complexType>
<complexType name="CAdxTechnicalInfos">
<sequence>
<element name="busy" type="xsd:boolean"/>
<element name="changeLanguage" type="xsd:boolean"/>
<element name="changeUserId" type="xsd:boolean"/>
<element name="flushAdx" type="xsd:boolean"/>
<element name="loadWebsDuration" type="xsd:double"/>
<element name="nbDistributionCycle" type="xsd:int"/>
<element name="poolDistribDuration" type="xsd:double"/>
<element name="poolEntryIdx" type="xsd:int"/>
<element name="poolExecDuration" type="xsd:double"/>
<element name="poolRequestDuration" type="xsd:double"/>
<element name="poolWaitDuration" type="xsd:double"/>
<element name="processReport" nillable="true" type="xsd:string"/>
<element name="processReportSize" type="xsd:int"/>
<element name="reloadWebs" type="xsd:boolean"/>
<element name="resumitAfterDBOpen" type="xsd:boolean"/>
<element name="rowInDistribStack" type="xsd:int"/>
<element name="totalDuration" type="xsd:double"/>
<element name="traceRequest" nillable="true" type="xsd:string"/>
<element name="traceRequestSize" type="xsd:int"/>
</sequence>
</complexType>
<complexType name="CAdxResultXml">
<sequence>
<element name="messages" nillable="true" type="wss:ArrayOfCAdxMessage"/>
<element name="resultXml" nillable="true" type="xsd:string"/>
<element name="status" type="xsd:int"/>
<element name="technicalInfos" nillable="true" type="wss:CAdxTechnicalInfos"/>
</sequence>
</complexType>
<complexType name="CAdxParamKeyValue">
<sequence>
<element name="key" nillable="true" type="xsd:string"/>
<element name="value" nillable="true" type="xsd:string"/>
</sequence>
</complexType>
<complexType name="ArrayOfCAdxParamKeyValue">
<complexContent>
<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="wss:CAdxParamKeyValue[]"/>
</restriction>
</complexContent>
</complexType>
<complexType name="ArrayOf_xsd_string">
<complexContent>
<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:string[]"/>
</restriction>
</complexContent>
</complexType>
</schema>
</wsdl:types>
<wsdl:message name="queryRequest">
<wsdl:part name="callContext" type="wss:CAdxCallContext"/>
<wsdl:part name="publicName" type="xsd:string"/>
<wsdl:part name="objectKeys" type="wss:ArrayOfCAdxParamKeyValue"/>
<wsdl:part name="listSize" type="xsd:int"/>
</wsdl:message>
<wsdl:message name="insertLinesResponse">
<wsdl:part name="insertLinesReturn" type="wss:CAdxResultXml"/>
</wsdl:message>
<wsdl:message name="getDataXmlSchemaResponse">
<wsdl:part name="getDataXmlSchemaReturn" type="wss:CAdxResultXml"/>
</wsdl:message>
<wsdl:message name="actionObjectKeysResponse">
<wsdl:part name="actionObjectKeysReturn" type="wss:CAdxResultXml"/>
</wsdl:message>
<wsdl:message name="deleteRequest">
<wsdl:part name="callContext" type="wss:CAdxCallContext"/>
<wsdl:part name="publicName" type="xsd:string"/>
<wsdl:part name="objectKeys" type="wss:ArrayOfCAdxParamKeyValue"/>
</wsdl:message>
<wsdl:message name="runRequest">
<wsdl:part name="callContext" type="wss:CAdxCallContext"/>
<wsdl:part name="publicName" type="xsd:string"/>
<wsdl:part name="inputXml" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="runResponse">
<wsdl:part name="runReturn" type="wss:CAdxResultXml"/>
</wsdl:message>
<wsdl:message name="queryResponse">
<wsdl:part name="queryReturn" type="wss:CAdxResultXml"/>
</wsdl:message>
<wsdl:message name="insertLinesRequest">
<wsdl:part name="callContext" type="wss:CAdxCallContext"/>
<wsdl:part name="publicName" type="xsd:string"/>
<wsdl:part name="objectKeys" type="wss:ArrayOfCAdxParamKeyValue"/>
<wsdl:part name="blocKey" type="xsd:string"/>
<wsdl:part name="lineKey" type="xsd:string"/>
<wsdl:part name="lineXml" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="getDescriptionResponse">
<wsdl:part name="getDescriptionReturn" type="wss:CAdxResultXml"/>
</wsdl:message>
<wsdl:message name="deleteLinesRequest">
<wsdl:part name="callContext" type="wss:CAdxCallContext"/>
<wsdl:part name="publicName" type="xsd:string"/>
<wsdl:part name="objectKeys" type="wss:ArrayOfCAdxParamKeyValue"/>
<wsdl:part name="blocKey" type="xsd:string"/>
<wsdl:part name="lineKeys" type="wss:ArrayOf_xsd_string"/>
</wsdl:message>
<wsdl:message name="getDataXmlSchemaRequest">
<wsdl:part name="callContext" type="wss:CAdxCallContext"/>
<wsdl:part name="publicName" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="actionObjectRequest">
<wsdl:part name="callContext" type="wss:CAdxCallContext"/>
<wsdl:part name="publicName" type="xsd:string"/>
<wsdl:part name="actionCode" type="xsd:string"/>
<wsdl:part name="objectXml" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="modifyRequest">
<wsdl:part name="callContext" type="wss:CAdxCallContext"/>
<wsdl:part name="publicName" type="xsd:string"/>
<wsdl:part name="objectKeys" type="wss:ArrayOfCAdxParamKeyValue"/>
<wsdl:part name="objectXml" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="saveResponse">
<wsdl:part name="saveReturn" type="wss:CAdxResultXml"/>
</wsdl:message>
<wsdl:message name="getDescriptionRequest">
<wsdl:part name="callContext" type="wss:CAdxCallContext"/>
<wsdl:part name="publicName" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="actionObjectKeysRequest">
<wsdl:part name="callContext" type="wss:CAdxCallContext"/>
<wsdl:part name="publicName" type="xsd:string"/>
<wsdl:part name="actionCode" type="xsd:string"/>
<wsdl:part name="objectKeys" type="wss:ArrayOfCAdxParamKeyValue"/>
</wsdl:message>
<wsdl:message name="deleteLinesResponse">
<wsdl:part name="deleteLinesReturn" type="wss:CAdxResultXml"/>
</wsdl:message>
<wsdl:message name="actionObjectResponse">
<wsdl:part name="actionObjectReturn" type="wss:CAdxResultXml"/>
</wsdl:message>
<wsdl:message name="deleteResponse">
<wsdl:part name="deleteReturn" type="wss:CAdxResultXml"/>
</wsdl:message>
<wsdl:message name="saveRequest">
<wsdl:part name="callContext" type="wss:CAdxCallContext"/>
<wsdl:part name="publicName" type="xsd:string"/>
<wsdl:part name="objectXml" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="readRequest">
<wsdl:part name="callContext" type="wss:CAdxCallContext"/>
<wsdl:part name="publicName" type="xsd:string"/>
<wsdl:part name="objectKeys" type="wss:ArrayOfCAdxParamKeyValue"/>
</wsdl:message>
<wsdl:message name="readResponse">
<wsdl:part name="readReturn" type="wss:CAdxResultXml"/>
</wsdl:message>
<wsdl:message name="modifyResponse">
<wsdl:part name="modifyReturn" type="wss:CAdxResultXml"/>
</wsdl:message>
<wsdl:portType name="CAdxWebServiceXmlCC">
<wsdl:operation name="run" parameterOrder="callContext publicName inputXml">
<wsdl:input message="wss:runRequest" name="runRequest"/>
<wsdl:output message="wss:runResponse" name="runResponse"/>
<wsdl:documentation>Run X3 sub program</wsdl:documentation>
</wsdl:operation>
<wsdl:operation name="save" parameterOrder="callContext publicName objectXml">
<wsdl:input message="wss:saveRequest" name="saveRequest"/>
<wsdl:output message="wss:saveResponse" name="saveResponse"/>
<wsdl:documentation>Create X3 object</wsdl:documentation>
</wsdl:operation>
<wsdl:operation name="delete" parameterOrder="callContext publicName objectKeys">
<wsdl:input message="wss:deleteRequest" name="deleteRequest"/>
<wsdl:output message="wss:deleteResponse" name="deleteResponse"/>
<wsdl:documentation>Delete X3 object</wsdl:documentation>
</wsdl:operation>
<wsdl:operation name="read" parameterOrder="callContext publicName objectKeys">
<wsdl:input message="wss:readRequest" name="readRequest"/>
<wsdl:output message="wss:readResponse" name="readResponse"/>
<wsdl:documentation>Read X3 object</wsdl:documentation>
</wsdl:operation>
<wsdl:operation name="query" parameterOrder="callContext publicName objectKeys listSize">
<wsdl:input message="wss:queryRequest" name="queryRequest"/>
<wsdl:output message="wss:queryResponse" name="queryResponse"/>
<wsdl:documentation>Get X3 objects list</wsdl:documentation>
</wsdl:operation>
<wsdl:operation name="getDescription" parameterOrder="callContext publicName">
<wsdl:input message="wss:getDescriptionRequest" name="getDescriptionRequest"/>
<wsdl:output message="wss:getDescriptionResponse" name="getDescriptionResponse"/>
<wsdl:documentation>Get X3 web service description regarding publication done in GESAWE</wsdl:documentation>
</wsdl:operation>
<wsdl:operation name="modify" parameterOrder="callContext publicName objectKeys objectXml">
<wsdl:input message="wss:modifyRequest" name="modifyRequest"/>
<wsdl:output message="wss:modifyResponse" name="modifyResponse"/>
<wsdl:documentation>Update X3 object</wsdl:documentation>
</wsdl:operation>
<wsdl:operation name="actionObject" parameterOrder="callContext publicName actionCode objectXml">
<wsdl:input message="wss:actionObjectRequest" name="actionObjectRequest"/>
<wsdl:output message="wss:actionObjectResponse" name="actionObjectResponse"/>
<wsdl:documentation>Execute specific action on X3 object providing XML flow</wsdl:documentation>
</wsdl:operation>
<wsdl:operation name="actionObjectKeys" parameterOrder="callContext publicName actionCode objectKeys">
<wsdl:input message="wss:actionObjectKeysRequest" name="actionObjectKeysRequest"/>
<wsdl:output message="wss:actionObjectKeysResponse" name="actionObjectKeysResponse"/>
<wsdl:documentation>Execute specific action on X3 object providing keys</wsdl:documentation>
</wsdl:operation>
<wsdl:operation name="getDataXmlSchema" parameterOrder="callContext publicName">
<wsdl:input message="wss:getDataXmlSchemaRequest" name="getDataXmlSchemaRequest"/>
<wsdl:output message="wss:getDataXmlSchemaResponse" name="getDataXmlSchemaResponse"/>
<wsdl:documentation>Get X3 web service schema regarding publication done in GESAWE</wsdl:documentation>
</wsdl:operation>
<wsdl:operation name="insertLines" parameterOrder="callContext publicName objectKeys blocKey lineKey lineXml">
<wsdl:input message="wss:insertLinesRequest" name="insertLinesRequest"/>
<wsdl:output message="wss:insertLinesResponse" name="insertLinesResponse"/>
<wsdl:documentation>NOT YET IMPLEMENTED !!!</wsdl:documentation>
</wsdl:operation>
<wsdl:operation name="deleteLines" parameterOrder="callContext publicName objectKeys blocKey lineKeys">
<wsdl:input message="wss:deleteLinesRequest" name="deleteLinesRequest"/>
<wsdl:output message="wss:deleteLinesResponse" name="deleteLinesResponse"/>
<wsdl:documentation>Remove lines from X3 object table</wsdl:documentation>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="CAdxWebServiceXmlCCSoapBinding" type="wss:CAdxWebServiceXmlCC">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="run">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="runRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.adonix.com/WSS" use="encoded"/>
</wsdl:input>
<wsdl:output name="runResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.adonix.com/WSS" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="save">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="saveRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.adonix.com/WSS" use="encoded"/>
</wsdl:input>
<wsdl:output name="saveResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.adonix.com/WSS" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="delete">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="deleteRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.adonix.com/WSS" use="encoded"/>
</wsdl:input>
<wsdl:output name="deleteResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.adonix.com/WSS" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="read">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="readRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.adonix.com/WSS" use="encoded"/>
</wsdl:input>
<wsdl:output name="readResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.adonix.com/WSS" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="query">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="queryRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.adonix.com/WSS" use="encoded"/>
</wsdl:input>
<wsdl:output name="queryResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.adonix.com/WSS" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getDescription">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="getDescriptionRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.adonix.com/WSS" use="encoded"/>
</wsdl:input>
<wsdl:output name="getDescriptionResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.adonix.com/WSS" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="modify">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="modifyRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.adonix.com/WSS" use="encoded"/>
</wsdl:input>
<wsdl:output name="modifyResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.adonix.com/WSS" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="actionObject">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="actionObjectRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.adonix.com/WSS" use="encoded"/>
</wsdl:input>
<wsdl:output name="actionObjectResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.adonix.com/WSS" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="actionObjectKeys">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="actionObjectKeysRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.adonix.com/WSS" use="encoded"/>
</wsdl:input>
<wsdl:output name="actionObjectKeysResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.adonix.com/WSS" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getDataXmlSchema">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="getDataXmlSchemaRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.adonix.com/WSS" use="encoded"/>
</wsdl:input>
<wsdl:output name="getDataXmlSchemaResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.adonix.com/WSS" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="insertLines">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="insertLinesRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.adonix.com/WSS" use="encoded"/>
</wsdl:input>
<wsdl:output name="insertLinesResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.adonix.com/WSS" use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="deleteLines">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="deleteLinesRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.adonix.com/WSS" use="encoded"/>
</wsdl:input>
<wsdl:output name="deleteLinesResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.adonix.com/WSS" use="encoded"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="CAdxWebServiceXmlCCService">
<wsdl:port binding="wss:CAdxWebServiceXmlCCSoapBinding" name="CAdxWebServiceXmlCC">
<wsdlsoap:address location="http://[server:port]/soap-generic/syracuse/collaboration/syracuse/CAdxWebServiceXmlCC"/>
</wsdl:port>
<wsdl:documentation>This SOAP web service allows to call X3 sub programs and/or to manipulate X3 objects trough CRUD and specifics methods</wsdl:documentation>
</wsdl:service>
</wsdl:definitions>

  • 0

    Hi ,
    Can you please update the Syracuse version and X3 patch number you are using ?
    Also you posted the WSDL file which is not really useful to assist you. Instead, please post the incoming payload (don't forget to remove sensitive information like customer related things, users and passwords, etc.) as well as the feedback you get from X3.
    Thanks.

  • 0 in reply to Bruno Gonzalez

    Hi Bruno.

    Thanks for your response.

    The Syracuse patch number I use is 11.13.5-0

    Here  there are the web service variables I declerate

    //WebService variables
    private srLetturaArticolo.CAdxWebServiceXmlCCClient _client;
    private srLetturaArticolo.CAdxCallContext _contex;
    private srLetturaArticolo.CAdxResultXml _ret;
    private srLetturaArticolo.CAdxMessage _message;
    private srLetturaArticolo.CAdxMessage[] _messages;
    private string _sName = "CAdxWebServiceXmlCC";

    Here modify function I use to update the new weigh value of the seleted article

    public bool EseguiFunzioneModifica(string codeLang, string poolAlias, string publicName, string stringXML, string articolo, decimal pmu)
    {
    try
    {
    _client.Open();

    //Set WebService authentication "Authenticate pre-emptively"
    using (new OperationContextScope(_client.InnerChannel))
    {
    // Add a HTTP Header to an outgoing request
    string auth = "Basic " + Convert.ToBase64String(System.Text.Encoding.Default.GetBytes(_client.ClientCredentials.UserName.UserName + ":" + _client.ClientCredentials.UserName.Password));
    HttpRequestMessageProperty requestMessage = new HttpRequestMessageProperty();
    requestMessage.Headers["Authorization"] = auth;
    OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = requestMessage;

    _contex = new srLetturaArticolo.CAdxCallContext();
    _contex.codeLang = codeLang;
    _contex.poolAlias = poolAlias;
    _contex.poolId = "";
    _contex.requestConfig = "";

    //Populate the article name that I want to modify the weigh of one piece (PMU)
    srLetturaArticolo.CAdxParamKeyValue[] _parametri = new srLetturaArticolo.CAdxParamKeyValue[3];
    _parametri[0] = new srLetturaArticolo.CAdxParamKeyValue() { key = "<article_field_name>", value = articolo };

    //Create the xml code with date attribute and new pmu value attribute that I use in the function like parameter
    string xmlNuovoValore = $@"<PARAM>
    <FLD NAME = ""<date_field_name>"" TYPE = ""Date"">{DateTime.Today.ToString("yyyyMMdd")}</FLD>
    <FLD NAME = ""<weigh_field_name>"">{pmu.ToString("F4").Replace(',','.')}</FLD>
    </PARAM> ";

    //run the function
    _ret = _client.modify(_contex, publicName, _parametri, xmlNuovoValore);
    }

    _client.Close();

    if (string.IsNullOrEmpty(_ret.resultXml))
    {
    throw new Exception("Il campo 'resultXML non è un xml valido!");
    }
    return true;
    }
    catch (Exception ee)
    {
    _client.Close();
    throw new Exception(ee.Message);
    }

    }

    This function works fine if the article I selected is not blocked, otherwise the _ret object is null and I can't read any message about the failure

  • 0 in reply to Marco Martini

    Hi ,

    the Syracuse server you are using is from December 2018 meaning you must around V11P11 at best. Latest Syracuse is 11.30 from March 2022 with V11 Patch list 22. See if you can update to a newer version somehow, just in case. with 2 years and a half of fixes, the issue could come from there.

    In addition, you're giving me your code, not the payloads.


    Let's work differently, see this:
    https://online-help.sageerpx3.com/erp/12/staticpost/soap-web-services-implementation/?highlight=soapui
    Extract the call to your product modification inside a SOAPUI project. That way you will see what goes in and what comes out.
    You can also perhaps reproduce this in the SEED folder, that way we call all assist you.
    You can also activate Syracuse detailed log for SOAP Web Services in debug mode here:


    Careful, this activates automatically and is applied to all web services, so don't let it run for too long if it's in production.

  • 0 in reply to Marco Martini

    Hello ,

    The response shouldn't be null and it should contain an array of messages with just 1 element.

    A quick test you can do to understand the response contents:

    I a seed folder, publish the standard web service BPC (that works on the BPC object) and create a web service pool if necessary

    Login as a user to display a BPC record using GESBPC. Now that record can't be changed by any other user nor web service.

    Open another web browser tab to use the SOAP web services syracuse test page to send a modification request, for example like this:

    Use the browser developer tools to inspect the returned XML, you will see that these are the contents

    "body": {
    "modifyResponse": {
    "modifyReturn": {
    "messages": [{
    "type": "3",
    "message": "Change in progress on another workstation."
    }
    ],
    "status": 0,

    }