Hi all,
Is there a way to pull data back via API from a linked field? We are attempting to pull back data from the subscriptions and services fields attached to our recipient data to enrich/update our internal database with the members current subscriptions.
The problem is that the API won’t allow us to select anything from the linked tables, nor to select the values of the FK (foreign key).
So, even though, for example, “service/@name” looks like an attribute and you can select it in the client, from the API we just get an error that the “@name” attribute doesn’t exist.
Can anyone with API knowledge help? We are able to create a CSV export from Campaign of this exact data but cannot through the API
Solved! Go to Solution.
Scott Gaulin wrote...
Thanks for the reply Amit.
We are using version v6.1 and do not have AEM. The developer is using SOAP so could you expand on how to create a custom method to return those values? We'd certainly appreciate it.
Best,
Scott
for your use case you need not to write a cutsom method it's already available in querydef:
use the following as soap body:
<?xml version='1.0' encoding='ISO-8859-1'?> <SOAP-ENV:Envelope xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:ns='http://xml.apache.org/xml-soap' xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'> <SOAP-ENV:Body> <ExecuteQuery xmlns='urn:xtk:queryDef' SOAP-ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'> <__sessiontoken> //put your session token recived from logon method </__sessiontoken> <entity xsi:type='ns:Element' SOAP-ENV:encodingStyle='http://xml.apache.org/xml-soap/literalxml'> //change line count to limit your results <queryDef operation="select" lineCount="200" startLine="0" schema="nms:subscription" xtkschema="xtk:queryDef"> <select> <node expr="[recipient/@email]"/> <node expr="[recipient/@lastName]"/> <node expr="[service/@name]"/> </select> <where> <condition expr="[service/@name] != ''"/>//chnage this as per you requirement </where> </queryDef> </entity> </ExecuteQuery> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Url will be : https://<server name>/nl/jsp/soaprouter.jsp
Soap header will have
SOAPAction :- xtk:queryDef#ExecuteQuery
Regards,
Amit
Scott Gaulin wrote...
Hi all,
Is there a way to pull data back via API from a linked field? We are attempting to pull back data from the subscriptions and services fields attached to our recipient data to enrich/update our internal database with the members current subscriptions.
The problem is that the API won’t allow us to select anything from the linked tables, nor to select the values of the FK (foreign key).
So, even though, for example, “service/@name” looks like an attribute and you can select it in the client, from the API we just get an error that the “@name” attribute doesn’t exist.
Can anyone with API knowledge help? We are able to create a CSV export from Campaign of this exact data but cannot through the API
Hi Scott,
which version are you using? where do you need this information i.e. in third party websites etc? if you are using v6 then you can rely on following:
1. Create a custom soap method to return you required values
2. If you are using AEM then write custom extensions.
3. inside campaign use querydef and use [service/@name] to get the value.
Regards,
Amit
Views
Replies
Total Likes
Thanks for the reply Amit.
We are using version v6.1 and do not have AEM. The developer is using SOAP so could you expand on how to create a custom method to return those values? We'd certainly appreciate it.
Best,
Scott
Views
Replies
Total Likes
Scott Gaulin wrote...
Thanks for the reply Amit.
We are using version v6.1 and do not have AEM. The developer is using SOAP so could you expand on how to create a custom method to return those values? We'd certainly appreciate it.
Best,
Scott
for your use case you need not to write a cutsom method it's already available in querydef:
use the following as soap body:
<?xml version='1.0' encoding='ISO-8859-1'?> <SOAP-ENV:Envelope xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:ns='http://xml.apache.org/xml-soap' xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'> <SOAP-ENV:Body> <ExecuteQuery xmlns='urn:xtk:queryDef' SOAP-ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'> <__sessiontoken> //put your session token recived from logon method </__sessiontoken> <entity xsi:type='ns:Element' SOAP-ENV:encodingStyle='http://xml.apache.org/xml-soap/literalxml'> //change line count to limit your results <queryDef operation="select" lineCount="200" startLine="0" schema="nms:subscription" xtkschema="xtk:queryDef"> <select> <node expr="[recipient/@email]"/> <node expr="[recipient/@lastName]"/> <node expr="[service/@name]"/> </select> <where> <condition expr="[service/@name] != ''"/>//chnage this as per you requirement </where> </queryDef> </entity> </ExecuteQuery> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Url will be : https://<server name>/nl/jsp/soaprouter.jsp
Soap header will have
SOAPAction :- xtk:queryDef#ExecuteQuery
Regards,
Amit
Thank you Amit! Our developer was successful in pulling the needed data using your solution.
Best,
Scott
Views
Replies
Total Likes
Views
Likes
Replies