cancel
Showing results for 
Search instead for 
Did you mean: 

Sending XML payload to Ultra pipeline

omair
Contributor

I’m trying to execute an Ultra pipeline with an XML payload, but I’m getting the error below:
Document input views only accept JSON-encoded data
Resolution
Please raise a defect with the following information, Pipeline Ruuid:d3c6dcc2-a498-4517-8df9-54910d504959
Reason
Snap failed unexpectedly and did not provide any reason

ccfa2c2e40288d908578c11adc0deb2afbc9f5ec.png

What steps can be taken to make Ultra parse an XML payload?

10 REPLIES 10

tstack
Former Employee

You can place an XML Parser snap at the head of the pipeline to parse the XML request content. To send an XML response back to the client, you’ll need to use an XML Formatter with an unlinked output and clear the ‘Root element’ field so that a separate binary document will be created for every document that flows through the XML Formatter.

1c1096cb9f2625cf4a314d0ab7eb541d4554f17a.png

All my existing pipelines (which were functional in non-Ultra) were using XML Parser snaps already… My client program which was making requests to SnapLogic was setting the “Content-Type” header to “application/xml” which I suspect might have been causing this error.

I switched my client program to send a JSON payload and also modified the Content-Type header to send application/json and my Ultra pipeline accepts the payload.

Can you confirm if an Ultra pipeline that is sent an XML payload should also set the Content-Type header to application/xml or will that cause problems?

tstack
Former Employee

The Content-Type should always match what is in the payload.

@tstack, thanks so much for your input… so I’ve built the following pipeline which successfully executes in Ultra:

83b565415b5ea3fa1245af509f8c3e8c10326858.png

In my original pipeline I was passing in a URL parameter which was being captured as a pipeline parameter. In Ultra, I want to capture this pipeline parameter by passing a parameter to the “Pipeline Execute” snap in my pipeline. However, based on the documentation for Ultra… I have two questions:

  • Are URL query parameters for an HTTP POST request with an XML payload accessible from within an Ultra pipeline? If so, how are they accessed?
  • If the answer is no, then would it be possible to access the binary document’s headers from within the Ultra pipeline? If so how would this be done?