API Logic - SELECT from recipient schema | Community
Skip to main content
August 11, 2021
Solved

API Logic - SELECT from recipient schema

  • August 11, 2021
  • 3 replies
  • 1041 views

Hi,

 

I'm leveraging an API to retreive a user's opt-in status in Adobe Campaign Classic.  See below

 

How does this work if I'm retreiving a user's status who has an email with multiple profile IDs? How does the API decide which status I would retrieve?

 

Note.. I testing the API and I receive multiple statuses. So my new question is, how does determine the order by which i receive the status? Would it be the most recently created profile? 

 

 

 

Request POST /nl/jsp/soaprouter.jsp HTTP/1.1 Host: example.campaign.adobe.com Content-Type: text/xml SOAPAction: xtk:queryDef#ExecuteQuery <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:xtk:queryDef"> <soapenv:Header/> <soapenv:Body> <urn:ExecuteQuery> <urn:sessiontoken>{TOKEN}</urn:sessiontoken> <urn:entity> <queryDef operation="select" schema="nms:recipient"> <select><node expr="[optinInfo/email/@optinEmail]"/></select> <where><condition expr="@email = 'mrwrench@gmail.com'"/></where> </queryDef> </urn:entity> </urn:ExecuteQuery> </soapenv:Body> </soapenv:Envelope> Response <?xml version='1.0'?> <SOAP-ENV:Envelope xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:ns='urn:xtk:queryDef' xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'> <SOAP-ENV:Body> <ExecuteQueryResponse xmlns='urn:xtk:queryDef' SOAP-ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'> <pdomOutput xsi:type='ns:Element' SOAP-ENV:encodingStyle='http://xml.apache.org/xml-soap/literalxml'> <recipient-collection> <recipient> <optinInfo> <email optinEmail="NO"/> </optinInfo> </recipient> </recipient-collection> </pdomOutput> </ExecuteQueryResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

 

 

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by Milan_Vucetic

Hello @twilliams629 

API cannot know what you expect. In this case define further what you expect (select only one record after sorting by prefered field).
For example: Use getIfExists instead of select and define <orderBy><node expr="@some_field"/></orderBy>

Regards,

Milan

3 replies

Milan_Vucetic
Milan_VuceticAccepted solution
Level 9
August 12, 2021

Hello @twilliams629 

API cannot know what you expect. In this case define further what you expect (select only one record after sorting by prefered field).
For example: Use getIfExists instead of select and define <orderBy><node expr="@some_field"/></orderBy>

Regards,

Milan

Jyoti_Yadav
Level 8
August 18, 2021

Hi @twilliams629 ,

 

Analyse your usecase based on table structure.

1) Let's suppose your data structure is based on 'Store Order' and based on email address you want to know the status of order purchased. Then, put an additional condition in where clause and it can be based on latest purchase or Order with status not equal to 'Cancelled' or 'Completed'.

2) Also, if your table structure is simple i.e just recipients details, then you should find status based on most recent date.

 

You have define more precisely which type of data your table stores and what output you desire to get.

 

Thanks,

Jyoti

 

Sukrity_Wadhwa
Community Manager
Community Manager
August 26, 2021

Hi @twilliams629,

 

Were you able to resolve this query with the help of the given solutions or do you still need more help here? Do let us know.


Thanks!

Sukrity Wadhwa