Hi,
1 - I want to put my output field value from an RPC soap call directly in a property.
Is this possible or do I have to put the result in an element?
2 - I would also like to put another output field VALUE in an element, but how would I get it to insert after the tag and Before the tag in a new tag called ?
Regards,
Jean
Hi,
1. You can assign the string value of an XPath expression to a property. Example:
<set property=“your.property” value=“{/a/b}”
2. You will need to use a transformer step to
insert an element into the message.
Regards,
Jason
Thanks Jason,
1 - I don’t want to put the result element in my xml document, I only need the value in a property. I have a work around by using the payload setter to create a new multi part message, add the result element to it, assign it to the property and delete the document. I just thought there might be an easier way.
2 - Like above, thought there might an easier way to do this.
Regards,
Jean
Hi Jean,
Regarding number 2, the XPath API that Mediator uses does not provide a way to insert elements at a specific location relative to its siblings. You can only insert as a child of an element, and I believe the behavior is to insert it as the last child.
Best regards,
Mike
Thanks Mike and Jason, just another question on the soap gateway.
I’m currently having a problem with the solution in 1, where I put the result in my document. I’m nearly sure that at first the result element with the value was inserted into my xml document but now I can’t get it to do it again.
This is what I got previously, how do I get it to do it again?
My xml before call
My xml after call
1111222223333444
My sequence
<?xml version="1.0" encoding="UTF-8"?>
Hi Jean,
Our SOAP expert writes:
It looks like the SOAP Gateway call is missing the XPath expression for where to map the output:
xbd.soap.res0.getGUIDReturn=“”
Besides that, since this is an RPC call, the element needs to exist before the result is copied. Thus the initial document should look like:
And the parameter should be:
xbd.soap.res0.getGUIDReturn=“/Result/getGUIDReturn”
However, in the version Mediator that just went out(7311), I added a flag to the SOAP Gateway that will create simple paths that are missing as needed. In that case, if the initial payload were:
You could use the res0 parameter as shown and add another property to the SOAP Gateway:
xbd.soap.createPath=true
Regards,
Jason
Thanks Jason, that is just what I was looking for.