


Hi,
I couldn't find any working example of the following method:
XML confirmationIds = RecipientSubscribe ( XML recipientList, XML serviceList, Boolean subscribe, XML sendConfirmation )
Could you please show how it works?
I tried, without the success, the following:
var serviceXml = {service: {_key: "name", name: 'myServiceInternalName'}};
var recipientXml = {recipient: {_key: "email", email: 'my-recipient@yopmail.com'}};
var sendConfirmationXml = {sendConfirmation:{sendConfirmation:'true'}}; // what to use here???
var subscribe = true;
var confirmationIds = nms.subscription.RecipientSubscribe (
recipientXml,
serviceXml,
subscribe,
sendConfirmationXml
);
logInfo(confirmationIds);
Thank you
Florian
Solved! Go to Solution.
Hi,
Use this, apologies for the xml:
nms.subscription.RecipientSubscribe (
<choiceList selectAll="false">
<key value="snarayen@adobe.com"/>
<where>
<condition expr="@email = 'snarayen@adobe.com'"/>
</where>
</choiceList>,
<entityList selectAll="false">
<key value="ceoTips"/>
<where>
<condition expr="@name = 'ceoTips'"/>
</where>
</entityList>,
true,
<empty>false</empty>
);
You have access to the source code?
Thanks,
-Jon
Hi,
That param can be left empty. If you want to send confirmations, use nms.subscription.SendConfirmation().
Recipient and services forms both stub out that param and instead send a 2nd call to that action.
Thanks,
-Jon
Hi Jon,
I tried to leave the last argument empty, but it doesn't work:
nms.subscription.RecipientSubscribe(recipientList, serviceList, subscribe);
It gives the error
01/07/2019 2:12:25 PM js SCR-160012 JavaScript: error while evaluating script 'WKF407/js'.
01/07/2019 2:12:25 PM js Missing argument 'sendConfirmation' for method 'RecipientSubscribe' of schema 'nms:subscription'.
I also tried the following, which doesn't work:
var sendConfirmation = ''; // cannot convert the value to an XML document
var sendConfirmation = null; // cannot convert the value to an XML document
var sendConfirmation = {}; // does nothing
var sendConfirmation = {sendConfirmation:{$:true}}; // puts the workflow in a hanging state (Automatically resuming workflow (number of consecutive times: 1))
Finally, I looked for any reference of "RecipientSubscribe(" in the AC7-8864 source code, but I couldn't find any.
You got any idea?
Thanks
Views
Replies
Sign in to like this content
Total Likes
Hi,
Use this, apologies for the xml:
nms.subscription.RecipientSubscribe (
<choiceList selectAll="false">
<key value="snarayen@adobe.com"/>
<where>
<condition expr="@email = 'snarayen@adobe.com'"/>
</where>
</choiceList>,
<entityList selectAll="false">
<key value="ceoTips"/>
<where>
<condition expr="@name = 'ceoTips'"/>
</where>
</entityList>,
true,
<empty>false</empty>
);
You have access to the source code?
Thanks,
-Jon
Thanks, it's still not working but I'll have a second look
Source code can be downloaded on the support platform, from your Download Center > Build Neolane v6.1 nlserver6-8864-x86_64_rh7.rpm (8864)
Which contains some .xml and .js files, i.e. Find files with Notepad++:
Views
Replies
Sign in to like this content
Total Likes
Oh I thought you meant the source code, cpp files. Most of those objects can be exported out of the instance per normal, some of them like non-specific db functions can only be read from the install dirs. What was the issue with the call I pasted?
Views
Replies
Sign in to like this content
Total Likes
Hi wodnicki,
The issue was that the subscription was not created. There was no error raised, but nothing happened.
It turned out using the @name of the service doesn't work. We had to use the @id. So first we convert the service name to a service id, then we use your XML.
This is what we ended up doing:
var recipientEmail = "henry.gallagher@yopmail.com";
var serviceName = "ceoTips";
var subscribe = true;
var sendConfirmation = true;
// get service id
var query = NLWS.xtkQueryDef.create({queryDef: {
schema: "nms:service", operation: "get",
select: { node: {expr: "@id"} },
where: { condition: {expr: "@name='"+serviceName+"'"} },
}});
var serviceId = query.ExecuteQuery().$id;
// recipient query
var recipientList = {choiceList:{
where: { condition: { expr: "@email = '"+recipientEmail+"'" } },
}}
// service query
var serviceList = entityList = {entityList:{
key:{ value: serviceId }
}}
// call
var confirmationIds = nms.subscription.RecipientSubscribe (
recipientList, serviceList,
subscribe, {empty: sendConfirmation}
);
logInfo('confirmationIds', confirmationIds); // DOMElement
logInfo('confirmationIds', confirmationIds.toString()); // 1:DM11|13605
logInfo('confirmationIds', confirmationIds.toXMLString(true)); // <elemConfirmationIds>1:DM11|13605</elemConfirmationIds>
Which seems overkill just to programmatically subscribe a recipient with the confirmation email... But it is needed in our case for a custom SOAP call.
Thank you
Florian
Views
Replies
Sign in to like this content
Total Likes
Here is another variant
var recipients =
<recipientlist>
<where>
<condition expr="@id IN '1234,2345,3456,4567,5678'"/>
</where>
</recipientlist>;
var services =
<service>
<key value="111"/>
<key value="222"/>
<key value="333"/>
</service>;
var ids = nms.subscription.RecipientSubscribe(recipients, services, true, <setOfService sendConfirmation="false"/>);
logInfo(ids.toXMLString());
Views
Replies
Sign in to like this content
Total Likes