08-26-2021 04:21 AM
Hello,
I have to design a pipe line which is based on SOAP request. I have the wsdl. This is my first SOAP pipeline I have few queries.
The SOAP Execute snap has three fields
The wsdl file I have has ‘ExecuteApplication’ endpoint or method. I need to execute this with request payload when the input filed $Action equal to “directory”.
I designed a pipe line like this
Here Json parser takes the input and Mapper will prepare the payload for SOAP executor. But this pipeline throwing error.
“message”: “HTTP Code: 400 Status: POST to pipeline that does not have an unlinked input view Errors: None”
Pls suggest how to execute this SOAP request .
thanks
arun
08-26-2021 07:01 AM
To achieve that, you will need two pipelines(parent/child):
1.The parent pipeline will receive the message(exposed as an API), prepare the SOAP request, and will call the child pipeline, sending the $Action as a pipeline parameter to the child pipeline.
2.The child pipeline will have the SOAP Snap inside and will receive the message from the parent pipeline. Based on the pipeline parameter($Action) sent from the parent pipeline, will decide what method to execute.
In the SOAP Snap fields you can write expressions and access pipeline parameters.
Or do you want to execute the SOAP request only if the $Action = “directory”(if the action is different than “directory” skip the calling of the SOAP request)?
Regards,
Spiro Taleski
08-26-2021 10:32 PM
Thanks @Spiro_Taleski for the reply.
I am planning to design the pipeline like this
JSON Parser → Router (it will check the $Action filed value) → Route to specific SOAP Execution → SOAP Response
Ex: Request → $Action is “directory” → Route to → Mapper (to prepare the SOAP Req)-> SOAP Execute snap1
Request → $Action is “file” → Route to → Mapper (to prepare the SOAP Req) → SOAP Execute snap2
The SOAP Execute snap has three fields My question is
Service Name 2) Endpoint . 3) Operation. What values I have to give here. I have “wsdl” set.
The wsdl file I have has ‘ExecuteApplication’ endpoint or method. I need to execute this with request payload when the input filed $Action equal to “directory”.
Here Json parser takes the input and Mapper will prepare the payload for SOAP executor. But this pipeline throwing error.
“message”: “HTTP Code: 400 Status: POST to pipeline that does not have an unlinked input view Errors: None”
I hope I clarified my requirement.
thanks
arun
08-27-2021 03:24 AM
Ok. You can route based on the incoming action field(using Router Snap).
So, you will have separate branches for each action.
In the SOAP Execute Snap, once you have the WSDL defined, then by clicking on the fields(screen below), the Snap will load ServiceName/Endpoints/Operation etc, based on the WSDL file.
Regarding the error message, please ensure that the pipeline has unlinked input view, or this error can happen if you have an errors in other Snaps(like Mapper or SOAP Execute).
Regards,
Spiro Taleski
08-31-2021 04:38 AM
@Spiro_Taleski
Thanks for the reply. Now I am able to execute the SOAP request. But now not able to extract the particular field in the response.
[
{
“s:Body”: {
“@xmlns:s”: “http://schemas.xmlsoap.org/soap/envelope/”,
“ExecuteApplicationResponse”: {
“@xmlns”: “http://apd.etst.com/”,
“ExecuteApplicationResult”:“{"Return":true,"Hint":"Success","Directories":[{"DirectoryID":"Windows","DirectoryName":"Demo }]}”
}
},
“original”: {
“language”: "en-US
}
}
]
Here I need to extract the “ExecuteApplicationResult”. I tried Mapper but not working.
I need to set the “ExecuteApplicationResult” to a “result” object. Can you pls suggest.