Skip to Content
avatar image
Former Member

PI 7.5 REST Receiver XPath Expression Removing Tags

Hello,

I am trying to use a REST Receiver in PI 7.5 (Single Stack) to call a web service. The end point is generated based on an XML message that is created with message mapping. The document is formatted below (DispatchRequest).

In the communication channel, I am trying to use an XPath Expression to append the entire XML document to the end of a static URL. I am currently using the expression "/descendant-or-self::node()" but that results in the XML document without any tags. I would like to pass the document with the tags and values. I have tried multiple different XPath expressions with no luck... are there any possible ideas on how to pass the XML as-is at the end of the URL?

Here is the configuration currently:

Thank you for your help!

<?xml version="1.0" encoding="utf-8"?>
<DispatchRequest>
  <vendorCode>RDWY</vendorCode>
  <accountConfig>
    <siteLoginName>LOGINNAME</siteLoginName>
    <credentials>PASSWORD</credentials>
    <direction>O</direction>
  </accountConfig>
  <accountNumber/>
  <referenceNumber>123456789</referenceNumber>
  <bolNumber>123456789</bolNumber>
  <scac>RDWY</scac>
  <quoteNumber>987654321</quoteNumber>
  <createBOL>FALSE</createBOL>
  <origin>
    <address1>123 MAIN ST</address1>
    <companyName>TEST COMPANY</companyName>
    <city>ANYTOWN</city>
    <stateName>TX</stateName>
    <country>US</country>
    <postalCode>12345</postalCode>
    <phoneNumber>800-555-1212</phoneNumber>
  </origin>
  <destination>
    <address1>123 MAIN ST</address1>
    <companyName>TEST DESTINATION</companyName>
    <contactName>TEST DESTINATION</contactName>
    <city>ANYTOWN</city>
    <stateName>TX</stateName>
    <postalCode>12345</postalCode>
    <phoneNumber>800-555-5555</phoneNumber>
  </destination>
  <lineItems>
    <item>
      <code>PRD</code>
      <quantity>33</quantity>
      <weight>740</weight>
      <weightUnit>lbs</weightUnit>
      <freightClass>100.0</freightClass>
      <description>MARKERBOARD</description>
      <hazmat>false</hazmat>
      <pieces>122</pieces>
      <stackable>FALSE</stackable>
    </item>
    <item>
      <code>PRD</code>
      <quantity>3</quantity>
      <weight>118</weight>
      <weightUnit>lbs</weightUnit>
      <freightClass>65.0</freightClass>
      <description>GLASS-CLEAR</description>
      <hazmat>false</hazmat>
      <pieces>5</pieces>
      <stackable>FALSE</stackable>
    </item>
  </lineItems>
  <dockCloseTime>23:59</dockCloseTime>
  <billTo>
    <address1>321 Primary Rd</address1>
    <companyName>BILL TO COMPANY</companyName>
    <city>NEW YORK</city>
    <stateName>NY</stateName>
    <country>US</country>
    <postalCode>10001</postalCode>
    <phoneNumber>800-555-1212</phoneNumber>
  </billTo>
  <pickupDateTime>2016-12-05T14:59:00Z</pickupDateTime>
  <deliveryDateTime>2016-12-08T21:29:00Z</deliveryDateTime>
  <pickupPhone>616-555-5555</pickupPhone>
  <pickupContactCompany>PickUp Company Name</pickupContactCompany>
  <deliveryContactPhone>800-555-5555</deliveryContactPhone>
  <emailBOLShip>false</emailBOLShip>
  <emailNotifyShip>false</emailNotifyShip>
  <emailApptShip>false</emailApptShip>
  <emailDelivShip>false</emailDelivShip>
  <emailBOLCons>false</emailBOLCons>
  <emailNotifyCons>false</emailNotifyCons>
  <emailApptCons>false</emailApptCons>
  <emailDelivCons>false</emailDelivCons>
  <emailConfirm>false</emailConfirm>
  <pickupStartTime>21:30</pickupStartTime>
  <pickupEndTime>21:30</pickupEndTime>
  <deliveryStartTime>2016-12-08T21:29</deliveryStartTime>
  <deliveryEndTime>2016-12-08T21:29</deliveryEndTime>
</DispatchRequest>
capture.png (26.6 kB)
Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

2 Answers

  • Dec 29, 2016 at 03:57 AM

    Hi George!

    I don't think that you can get entire XML document as string using XPath expression.

    Regards, Evgeniy.

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member

      Thank you for the response, Evgeniy! Do you know if there is a way to append an entire XML document as-is (as a string) to the end of the URL? Is there another method I can use to achieve this?

      Thanks,

      George

  • avatar image
    Former Member
    Dec 29, 2016 at 01:12 PM

    Hi George,

    In the mapping you can use return as XML option and send the entire XML to a target node and you can refer it in XPATH or you can use adapter specific attributes if you don't want to use any target node to store the entire XML value. Hope this helps.

    Thanks,

    Avinash

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member Evgeniy Kolmakov

      Hi Evgeniy,

      Thank you for sharing that... luckily we were able to find how to still use the XPath expression but map it the way we needed.

      Thanks again,

      George