I think you can, but it’s not as easy as it oughta be right now. These values are available in the header of the binary document that is sent into the pipeline. Unfortunately, the XML Parser doesn’t give you access to the header. Instead, you can use a ‘Binary To Document’ snap to convert the binary document and its header into a regular document. By default, the body of the request is converted into a base64 string and placed in the ‘content’ field. The header data is added directly to the document. As an example, an ultra pipeline with a ‘Binary To Document’ snap and a Mapper that maps ‘$’ to ‘$content’ returns the following when a request is sent:
curl -k --data-binary '<foo><bar>hi</bar></foo>' -H 'Content-Type: text/xml' 'https://feed1:8082/api/1/rest/feed-master/queue/snaplogic/projects/shared/ts-xml-ultra-task?param1=value1' | jq .
{
"task_name": "snaplogic/projects/shared/ts-xml-ultra-task",
"content-length": "24",
"method": "POST",
"query": {
"param1": [
"value1"
]
},
"message_id": "8e22c67515a888254fdb859c090c2c6124bfafca-22392@feed1",
"uri": "https://feed1:8082/api/1/rest/feed-master/queue/snaplogic/projects/shared/ts-xml-ultra-task?param1=value1",
"content": "PGZvbz48YmFyPmhpPC9iYXI+PC9mb28+",
"accept": "*/*",
"client_port": 59455,
"path_info": "",
"host": "feed1:8082",
"server_ip": "10.1.10.222",
"content-type": "text/xml",
"client_ip": "10.1.10.222",
"server_port": 8082,
"user-agent": "curl/7.45.0"
}
So, you can send the output of the ‘Binary To Document’ into the PipeExec, passing whatever values you want as pipeline parameters. In the child pipeline, it should start with a Document To Binary snap to get back the original XML stream of data and then an XML Parser to parse that.
Sorry, it’s a bit roundabout. The focus has mostly been on requests being JSON-based.