โ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.