problem while consuming Nav2009 sp1 webservice

svikas1svikas1 Member Posts: 25
edited 2010-05-19 in NAV Three Tier
Hi All,

I published a webservice in Nav2009 sp1 and consuming through navision via soap.
I am getting the below error.


- <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"&gt;
- <s:Body>
- <s:Fault>
<faultcode xmlns:a="urn:microsoft-dynamics-schemas/error">a:Microsoft.Dynamics.Nav.Types.Exceptions.NavNCLMissingMethodException</faultcode>
<faultstring xml:lang="en-US">Function ID 1500000 was called. The object with ID 0 does not have a member with that ID.</faultstring>
- <detail>
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">Function ID 1500000 was called. The object with ID 0 does not have a member with that ID.</string>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>

The same is working fine in Nav2009 but getting problem Nav2009sp1.
Do anyone know what am i doing wrong
Thanx in advance....

Comments

  • PureHeartPureHeart Member Posts: 190
    If you post the code you wrote in NAV to call the web service I'll try to help you...
    Why don't you try my compare tool?
    http://www.mibuso.com/dlinfo.asp?FileID=1123
  • svikas1svikas1 Member Posts: 25
    OnRun()
    Soap()


    Soap()

    CREATE(locautSoapHttpConnector);
    locautSoapHttpConnector.Property('EndPointURL',
    'http://192.168.0.27:7049/TestWs/ws/CRONUS Retail India Ltd/Codeunit/FirstWS');
    locautSoapHttpConnector.Connect;

    locautSoapHttpConnector.Property('AuthUser', 'abc');
    locautSoapHttpConnector.Property('AuthPassword', '9828927');
    locautSoapHttpConnector.Property('Timeout', 5 * 1000);

    locautSoapHttpConnector.Property('SoapAction','urn:microsoft-dynamics-schemas/codeunit/FirstWS');

    locautSoapHttpConnector.BeginMessage;

    CREATE(locautSoapSerializer);
    locautSoapSerializer.Init(locautSoapHttpConnector.InputStream);
    locautSoapSerializer.StartEnvelope('SOAP','STANDARD');
    locautSoapSerializer.StartBody;
    locautSoapSerializer.StartElement('Helloworld','urn:microsoft-dynamics-schemas/codeunit/FirstWS');
    locautSoapSerializer.EndElement;

    locautSoapSerializer.EndBody;
    locautSoapSerializer.EndEnvelope;
    locautSoapHttpConnector.EndMessage;


    CREATE(locautXmlDoc);
    locautXmlDoc.load(locautSoapHttpConnector.OutputStream);
    {
    XMLNode := locautXmlDoc.selectSingleNode('//sen1:Id');
    IF NOT ISCLEAR(XMLNode) THEN
    MESSAGE(XMLNode.text);
    }
    locautXmlDoc.save('D:\temp1.xml');
  • PureHeartPureHeart Member Posts: 190
    svikas1 wrote:
    OnRun()
    Soap()


    Soap()

    CREATE(locautSoapHttpConnector);
    locautSoapHttpConnector.Property('EndPointURL',
    'http://192.168.0.27:7049/TestWs/ws/CRONUS Retail India Ltd/Codeunit/FirstWS');
    locautSoapHttpConnector.Connect;

    locautSoapHttpConnector.Property('AuthUser', 'abc');
    locautSoapHttpConnector.Property('AuthPassword', '9828927');
    locautSoapHttpConnector.Property('Timeout', 5 * 1000);

    //locautSoapHttpConnector.Property('SoapAction','urn:microsoft-dynamics-schemas/codeunit/FirstWS');
    locautSoapHttpConnector.Property('SoapAction','FirstWS');

    locautSoapHttpConnector.BeginMessage;

    CREATE(locautSoapSerializer);
    locautSoapSerializer.Init(locautSoapHttpConnector.InputStream);
    locautSoapSerializer.StartEnvelope('SOAP','STANDARD');
    locautSoapSerializer.StartBody;
    locautSoapSerializer.StartElement('Helloworld','urn:microsoft-dynamics-schemas/codeunit/FirstWS');
    locautSoapSerializer.EndElement;

    locautSoapSerializer.EndBody;
    locautSoapSerializer.EndEnvelope;
    locautSoapHttpConnector.EndMessage;


    CREATE(locautXmlDoc);
    locautXmlDoc.load(locautSoapHttpConnector.OutputStream);
    {
    XMLNode := locautXmlDoc.selectSingleNode('//sen1:Id');
    IF NOT ISCLEAR(XMLNode) THEN
    MESSAGE(XMLNode.text);
    }
    locautXmlDoc.save('D:\temp1.xml');

    Can you try with the amendment in red?

    I've previosly used this kind of code....and it works...What is the Automation you are using?

    IF ISCLEAR(XmlDoc) THEN
    CREATE(XmlDoc);
    IF ISCLEAR(XmlHttp) THEN
    CREATE(XmlHttp);

    XmlHttp.open('POST','http://localhost:7047/DynamicsNAV/WS/'+OtherCompany+'/Codeunit/RunJob',0);
    XmlHttp.setRequestHeader('Content-Type', 'text/xml; charset=utf-8');
    XmlHttp.setRequestHeader('SOAPAction','RunJob');

    XmlHttp.setTimeouts(10000,10000,10000,100000);

    XmlHttp.send('<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">' +
    '<soap:Body><RunJob xmlns="urn:microsoft-dynamics-schemas/codeunit/RunJob">' +
    '<objectType>'+ObjectType+'</objectType><objectID>'+FORMAT(ObjectID)+'</objectID>'+
    '</RunJob></soap:Body></soap:Envelope>');

    IF XmlHttp.status <> 200 THEN
    MESSAGE('Http Error ' + ' ' + FORMAT(XmlHttp.status) + ': ' + XmlHttp.statusText);

    XmlDoc.async := FALSE;
    XmlDoc.load(XmlHttp.responseBody);
    Why don't you try my compare tool?
    http://www.mibuso.com/dlinfo.asp?FileID=1123
Sign In or Register to comment.