<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.appian.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>How to convert xml response to a CDT</title><link>https://community.appian.com/discussions/f/integrations/14432/how-to-convert-xml-response-to-a-cdt</link><description>Hi all, 
 We are trying to invoke a SOAP service which is having an issue while trying to use &amp;quot;Call Web Service&amp;quot; 
 Hence, we have used &amp;quot;Integration&amp;quot; object to call the endpoint with content type as text/xml. 
 We are able to invoke the &amp;quot;Integration&amp;quot; object</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: How to convert xml response to a CDT</title><link>https://community.appian.com/thread/64897?ContentTypeID=1</link><pubDate>Wed, 27 Feb 2019 06:58:33 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:30de05dd-c8d1-4de3-83a1-47268ca449e2</guid><dc:creator>Harsha Sharma</dc:creator><description>&lt;p&gt;You can use extract() function if your XML needs custom manipulation for CDT formation. You will need to build one expression that can extract field values and then map them to CDT fields. Parsing logic can look like this:&lt;pre class="ui-code" data-mode="text"&gt;load(
  local!xml:extract(ri!xmlData,&amp;quot;&amp;lt;loc&amp;gt;&amp;quot;,&amp;quot;&amp;lt;/loc&amp;gt;&amp;quot;),
  local!items:a!forEach(
    local!xml,
    extract(fv!item,&amp;quot;&amp;lt;data&amp;gt;&amp;quot;,&amp;quot;&amp;lt;/data&amp;gt;&amp;quot;)
  ),
  a!foreach(
    local!xml,
    {
   id:extract(fv!item,&amp;quot;&amp;lt;Id&amp;gt;&amp;quot;,&amp;quot;&amp;lt;/Id&amp;gt;&amp;quot;),
   guid:extract(fv!item,&amp;quot;&amp;lt;guid&amp;gt;&amp;quot;,&amp;quot;&amp;lt;/guid&amp;gt;&amp;quot;),
   dc:extract(fv!item,&amp;quot;&amp;lt;dC&amp;gt;&amp;quot;,&amp;quot;&amp;lt;/dC&amp;gt;&amp;quot;)
   })  
)&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Similarly you can create logic to parse Nested Data tags and get their value.&lt;/p&gt;
&lt;p&gt;Hope this helps.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to convert xml response to a CDT</title><link>https://community.appian.com/thread/64896?ContentTypeID=1</link><pubDate>Wed, 27 Feb 2019 06:09:35 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:b05442bf-0699-4301-96b5-426fe9e4575c</guid><dc:creator>phanibabuk</dc:creator><description>Hi Josh,&lt;br /&gt;
This is a sample of my output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;loc&amp;gt;  and &amp;lt;data&amp;gt; elements are repeating.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;lt;soap:Envelope xmlns:soap=&amp;quot;&lt;a href="http://schemas.xmlsoap.org/soap/envelope/&amp;quot;&amp;gt;"&gt;schemas.xmlsoap.org/.../&amp;quot;&amp;gt;&lt;/a&gt;&lt;br /&gt;
&amp;lt;soap:Body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LL xmlns=&amp;quot;&lt;a href="http://schemas.xxx.com/123/&amp;quot;&amp;gt;"&gt;schemas.xxx.com/.../&amp;quot;&amp;gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;loc&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Id&amp;gt;1234&amp;lt;/Id&amp;gt;&lt;br /&gt;
&amp;lt;guid&amp;gt;g1&amp;lt;/guid&amp;gt;&lt;br /&gt;
&amp;lt;dC&amp;gt;CC&amp;lt;/dC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;key&amp;gt;Creator&amp;lt;/key&amp;gt;&lt;br /&gt;
&amp;lt;value&amp;gt;OK&amp;lt;/value&amp;gt;&lt;br /&gt;
&amp;lt;type&amp;gt;STRING&amp;lt;/type&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;key&amp;gt;DateCreated&amp;lt;/key&amp;gt;&lt;br /&gt;
&amp;lt;value&amp;gt;06/21/2000&amp;lt;/value&amp;gt;&lt;br /&gt;
&amp;lt;type&amp;gt;DATE&amp;lt;/type&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;key&amp;gt;IsTrue&amp;lt;/key&amp;gt;&lt;br /&gt;
&amp;lt;type&amp;gt;BOOLEAN&amp;lt;/type&amp;gt;&lt;br /&gt;
&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/loc&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;loc&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Id&amp;gt;1111&amp;lt;/Id&amp;gt;&lt;br /&gt;
&amp;lt;guid&amp;gt;g2&amp;lt;/guid&amp;gt;&lt;br /&gt;
&amp;lt;dC&amp;gt;CC1&amp;lt;/dC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;key&amp;gt;Creator&amp;lt;/key&amp;gt;&lt;br /&gt;
&amp;lt;value&amp;gt;OK1&amp;lt;/value&amp;gt;&lt;br /&gt;
&amp;lt;type&amp;gt;STRING&amp;lt;/type&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;key&amp;gt;DateCreated&amp;lt;/key&amp;gt;&lt;br /&gt;
&amp;lt;value&amp;gt;06/21/2008&amp;lt;/value&amp;gt;&lt;br /&gt;
&amp;lt;type&amp;gt;DATE&amp;lt;/type&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;key&amp;gt;IsTrue&amp;lt;/key&amp;gt;&lt;br /&gt;
&amp;lt;type&amp;gt;BOOLEAN&amp;lt;/type&amp;gt;&lt;br /&gt;
&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/loc&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/LL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/soap:Body&amp;gt;&lt;br /&gt;
&amp;lt;/soap:Envelope&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Please provide your inputs.&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to convert xml response to a CDT</title><link>https://community.appian.com/thread/64895?ContentTypeID=1</link><pubDate>Wed, 27 Feb 2019 05:34:19 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:f224c903-323f-40f6-b222-b7dec2b51ecf</guid><dc:creator>phanibabuk</dc:creator><description>Hi,&lt;br /&gt;
The response is not pure XML.&lt;br /&gt;
&lt;br /&gt;
It is within &amp;lt;soap:Envelope&amp;gt;&amp;lt;soap:Body&amp;gt;&amp;lt;/ParentNode&amp;gt;&amp;lt;/ChildNode&amp;gt;&amp;lt;/soap:Body&amp;gt;&amp;lt;/soap:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Any pointers please.&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to convert xml response to a CDT</title><link>https://community.appian.com/thread/64894?ContentTypeID=1</link><pubDate>Wed, 27 Feb 2019 05:29:54 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:47e391c3-d690-4110-ba65-02ab1d899c69</guid><dc:creator>phanibabuk</dc:creator><description>Hi,&lt;br /&gt;
I tried this option as well but it did not convert XML to CDT even after doing &amp;#39;type!{Namespace}CDT&amp;#39;()&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to convert xml response to a CDT</title><link>https://community.appian.com/thread/64893?ContentTypeID=1</link><pubDate>Wed, 27 Feb 2019 05:27:24 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:95716dba-4566-42fb-9900-9ae64812b5f9</guid><dc:creator>phanibabuk</dc:creator><description>Hi Josh,&lt;br /&gt;
The response is not a pure XML.&lt;br /&gt;
&lt;br /&gt;
I tried your option but was not successful.&lt;br /&gt;
&lt;br /&gt;
It is within &amp;lt;soap:Envelope&amp;gt;&amp;lt;soap:Body&amp;gt;&amp;lt;/ParentNode&amp;gt;&amp;lt;/ChildNode&amp;gt;&amp;lt;/soap:Body&amp;gt;&amp;lt;/soap:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Could you please share an example.&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to convert xml response to a CDT</title><link>https://community.appian.com/thread/64890?ContentTypeID=1</link><pubDate>Wed, 27 Feb 2019 01:13:04 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:a1c6b898-99ed-4023-82d3-c6d99cd4cf08</guid><dc:creator>Carlos Santander</dc:creator><description>An alternative approach to that suggested by Josh would be to use the torecord() function: &lt;a href="https://docs.appian.com/suite/help/19.1/fnc_scripting_torecord.html"&gt;docs.appian.com/.../fnc_scripting_torecord.html&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to convert xml response to a CDT</title><link>https://community.appian.com/thread/64888?ContentTypeID=1</link><pubDate>Wed, 27 Feb 2019 01:04:35 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:4b0e3da3-82ac-44e1-b897-71341aff1862</guid><dc:creator>Josh</dc:creator><description>&lt;p&gt;You will need to manually parse the string and create a CDT using the type cast function. Example type!myCDT(fieldA: &amp;quot;fieldValue&amp;quot;, fieldB: 1). You can use a combination of the search() and mid() functions or xpathsnippet(). It might look something like:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;load(
    local!xmlResponse: rule!yourIntegration(),
    local!fieldA: xpathsnippet(\*Parsing Logic goes here*\),
    local!fieldB: xpathsnippet(\*Parsing Logic goes here*\),
    type!myCDT(fieldA: local!fieldA, fieldB: local!fieldB)
)&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>