REST Connector:
I need to pass the XML input filed in the GET method URL dynamically.
ex: XML input to REST connectgor
<ZNA_SHIP_TRACK>
<IDOC>
<EDI_DC40>
…
</EDI_DC40>
<ZSHIP_RESPONSE>
<VBELN>7100124618</VBELN>
<ZAPI_KEY>922f65ee-093a-45fd-8f1f-c61c8050e67e</ZAPI_KEY>
</ZSHIP_RESPONSE>
</IDOC>
</ZNA_SHIP_TRACK>
REST API should be called with below URL in the GET method:
EX:
“https://www.client.shipmentstatus.com/api/cn/outbound_parcel_shipment/track?parcel_shipment_id=” + shipment ID value (XPATH(ZNA_SHIP_TRACK/ZSHIP_RESPONSE/ZAPI_KEY)
value is
https://www.client.shipmentstatus.com/api/cn/outbound_parcel_shipment/track?parcel_shipment_id=922f65ee-093a-45fd-8f1f-c61c8050e67e
I have tried numeros method but dynamic URL is not created and throwing error.
I do something very similar..
You can do it in a script connector like this
<!-- Read XML which is the response from DigiHaul shipment-listing --><arc:set attr="input.uri" value="[FilePath]"/><arc:call op="xmlOpen" input="input"> <arc:set attr="xml.handle" value="[handle]" /></arc:call><arc:set attr="xml.map:shipmentNumber" value="/Shipments/records/shipmentNumber"/><arc:set attr="xml.map:jobId" value="/Shipments/records/jobId"/><arc:try> <arc:call op="xmlDOMGet" in="xml" out="out1"> <arc:set attr="data.shipmentNumber" value="[out1.shipmentNumber]"/> <arc:set attr="data.jobId" value="[out1.jobId]"/> </arc:call><!-- Log Information --><arc:set attr="_log.info">shipmentNumber = [data.shipmentNumber]jobId = [data.jobId]</arc:set><!-- fetch Shipment Details from DigiHaul --><arc:set attr="http.URL" value="https://api.domain.com/carrier/api/shipment-listing/[data.jobId]" /> <arc:set attr="http.header:name#" value="Authorization" /><arc:set attr="http.header:value#" value="Bearer XXXXXXXX"/><arc:set attr="http.verbosity" value="5"/> <arc:set attr="http.logfile" value="D:\cData\logs\my.log"/> <arc:set attr="_log.info">Auth = [http.header:*]URL = [http.URL] </arc:set> <arc:call op="httpGet" in="http"> <arc:set attr="output.data" value="[http:content]" /></arc:call><arc:set attr="_log.info">Response = [output.data]</arc:set> <arc:set attr="output.filename" value="dh-fetch-order-[data.shipmentNumber].json" /><arc:set attr="output.Header:shipmentNumber" value="[data.shipmentNumber]" /><arc:set attr="output.Header:jobId" value="[data.jobId]" /> <arc:finally> <arc:call op="xmlClose" input="xml"/> </arc:finally></arc:try>
Use xmlOpen and xmlDOMGet to extract the ID or the parameter you need
Set the http.URL using your parameter
Then use a HTTPGet to call your endpoint
hope that helps