Sending XML to IS 46 service

My input to the service is an Object * named “node”. My first step is the documentToRecord service. When it executes this step, I get this message in the debugLog:

000408 [B2BCORE.0050.0004] Copy failed: (Simple) No source data available: to=/
POSend(0)/ShowPurchaseOrder(0), from=/boundNode(0)

I map the “boundNode” output from that step to my defined PO record. But when I try to get any values from that PO record, there is no data. Any ideas on why I’m getting this error or if should be doing something differently?

Thank you
Cort

The problem might be with Node object itself(hope you are receving PO via http)…or some thing might be missing in documentToRecord step.

For internal testing, If you have that xml document(which sender is posting) check with stringToDocument and documentToRecord and test if you are getting the proper boundNode.If you are success then problem might be with Node.

HTH.

It could be that the XML you’re sending doesn’t match the record you imported or the mapping is incorrect. The best way to check this is step through your flow, stopping after the documentToRecord (don’t map it to your PO record yet). Look at the record on the ‘results’ tab of the Developer. You might be getting a different or one level deeper structure than you expected (eg. your XML is appearing underneath a boundNode).

Thanks for the help. I used stringToDocument and documentToRecord with the XML data from the source and it looks good. No problems.

I also looked at the XML at the documentToRecord step (without mapping to PO record) and it looks ok. There are some missing element fields, but when I mapped it back to the PO record, it stepped through with no errors and did what I wanted to do.

To explain a little more, I am HTTP posting the XML via a Visual Basic application. When I do this, I still see the “No source data available” message.

If the problem is with the node, how do I debug it?

Thanks again
Cort

Another service that works directly on the node object is queryXMLNode.

The XQL query
/source()
will return the original incoming XML document. The WQL query
doc.src
will do the same.

The XQL query
/POSend[0]
may give you some good info also.

Your last email brings up an entirely different problem. The parsing of your file into a Node coming from VB happens in a handler so you can’t debug it, but most likely you aren’t POSTing correctly. Have a look at the Developer docs (Passing XML to a Service for 4.6) or ISXmlGuide for 6.0 , but you have to set the name-value pair for an HTTP GET to $xmldata = your file (like in a browser) or do a POST and set the http header of content-type - text/xml.

Pls make sure at the sender application side whether they are setting content-type(text/xml), before posting to wM server.

HTH.

Yes, the issue has been resolved. The “Content-Type” request header field did not have a value. Now the application is setting it to “text/xml” and I no longer see that message.

Thank you very much for your help.

Cort

Sounds cool…great…

how can i send xml data as an input to the queryXMLNode service thruogh a browser

sateesh,

you need to create a wrapper service and invoke queryXMLNode in that service.your steps will go like this:
pub.xml:XMLStringToXMLNode
queryXMLNode

Pass the XML string to this wrapper service.

hope this helps.

ramesh.