Http Post and receiving the payload information

Hi,
I am trying to let an external application use Http post mechanism to invoke a service within IS, and pass the payload information to the Service. However, I am not able to capture the information, and keep getting errors like “missing required parameter ‘document’”.
The steps I am using, simply put are:
xmlNodeToDocument
documentToXMLString

Also, as the input parameter, I have an object called “node”. What am I missing?

Thanks in advance for your help.

Anant

Anant

Are you posting using the $xmldata variable…
Only in that case flow should start with xmlNodeToDocument service otherwise it should start from xmlStringToXMLNode service and you can pass xml string in a parameter say like “xmldata” and service input parameter should also be xmldata

Deepak

Deepak,
Thanks for the suggestion. The reason I tried to use xmlNodeToDocument was because I read in one of the guides that the IS receives requests in the form of a node. As for xmlStringToXMLNode, I tried using that too. However, the problem is that when the payload information reaches the server, for some reason, it gets distorted and the tags get separated (for e.g. the first portion of the tag gets in as the name of the string "<?xml version " and the value comes as ‘“1.0” encoding=“UTF-8”…’) There is also a stringlist that comes in as an input variable. Is there any way to retain the completeness of the XML data?

Thanks

Anant

Anant,

The problem you are seems to be related to how to put the escape character while sending xmlData.
let me paste the xmlData I have used and its works fine:

String xmldata = “$xmldata = <?xml><course_bookorder> <course_title>19th Century American Novel</course_title> <course_id>ENG361_11</course_id> <instructor>J. Smith</instructor> <booklist> </course_bookorder>”;

Plz note that here I have used escape character "" before every " inside the xmldata String variable

Now you can trigger your IS Service with xmlNodeToDocument and declare the input parameter as “node”

Hope that it will helps you out

Thanks
Deepak

Deepak,
Unfortunately, I am not sure if I am following along here. The external system which is invoking the service via http post is passing along an xml document as the payload information. In order for me to receive the xml and parse through it, I need to setup my steps in the service which is being called. currently, I have it set such that the input variable is a string called “xmldata” and the first step is xmlStringToXMLNode, where I am passing the input variable xmldata to be converted to an xml node. Now is there anything from the publisher’s side that needs to be done to send the data in any particular format? And where exactly does the “$xmldata” play a role? on my side (the IS side) or the publisher’s side (The one invoking the service).

Thanks for your patience and assistance. Here is a sample of a portion of the xml that would be sent by the external system.

Anant

<?xml version=“1.0” encoding="UTF-8 —(I removed the closing tag here so that it gets displayed in its entirity)
<dxml>
<messageheader>
<messagetype>OrderCreateRequest</messagetype>
<messageversion>4.0</messageversion>
<messageid/>
<sessionid/>
</messageheader>
</dxml>

Hi! Anant,

When an external partner sends you the xml, it can send you in two ways.

1- Partner stores the complete XML in a variable called “$xmldata”. If this is the case then in ur flow service which is being called should have the starting as Node. For ex: queryXMLNode. In ur input parameter u should have an object.

2- Partner send you the xml by storing XML in a variable say “xmldata”. Then in ur flow service u should have the starting as a string. U can have the starting service as stringToNode. In ur input parameter, u should have a string with the name “xmldata”

Hope this helps.

regards,
sandip

Deepak and Sandip,

Thanks for all your help.

regards,
Anant