Hello All,
I have been trying to fetch the internal name for the recurring delivery configured in the campaign workflow dynamically in the initialization script, but unable to do so successfully.
Already tried with delivery.internalName and activity.delivery.internalName, but none of them worked.
I am not looking for the internal name of the delivery generated, but the one that exists in the workflow.
Looking for some help here.
Thanks!
Dheeraj
Solved! Go to Solution.
Views
Replies
Total Likes
@DheerajGarg In that case you can change the operation to select and loop the result to get the delivery names.
The Code would look something like this.
var q = xtk.queryDef.create( <queryDef schema="nms:delivery" operation="select"> <select> <node expr="@internalName"/> </select> <where> <condition expr={"[@workflow-id] ="+instance.id} /> </where> </queryDef> ); var deliveries= q.ExecuteQuery(); for each(var delivery in deliveries.delivery){ logInfo(delivery.@internalName) }
Hi @DheerajGarg ,
You can see your recurring Delivery internal name at:
[target/recurringDelivery/@internalName]
Thanks,
Jyoti
Views
Replies
Total Likes
Hi @Jyoti_Yadav
Thanks for looking into it.
The target dimension option is not available in the Advanced script tab. If we mean to check within activity, then I already tried with activity.delivery.internalName, which unfortunately doesn't work and result in an empty value
Snapshots below for your reference
What we are trying to get is the following internal name of the delivery configured dynamically:
The test workflow we have created is a simple one, with a query on nms:recipient and recurring delivery.
Best
Dheeraj
Views
Replies
Total Likes
Hi @DheerajGarg ,
What do you want to achieve by finding delivery internal name? You can write query and then find out the delivery internal name.
Thanks,
Jyoti
Views
Replies
Total Likes
@Jyoti_Yadav - The purpose to find the delivery name is to use it as a where clause for the query to find that delivery.
Hope that makes sense
Views
Replies
Total Likes
Hi @DheerajGarg ,
You are not getting name while executing delivery is because "Advanced Tab runs before delivery is executed". This is the reason no value is populated.
If you need the 'deliveryName' for query, then use query activity after delivery. In the Advanced tab of Query activity write
logInfo("delId: "+ vars.deliveryId);
Save this in an instance variable and use the same variable in your Query activity.
PFB Workflow design for your reference:
Thanks,
Jyoti
Hi @Jyoti_Yadav - The way you suggested is for finding the name of the delivery object created. However, that is not our requirement as of now.
The internal name which we are trying to find is stored somewhere, so couldn't there be a way to retrieve it?
Thanks
Dheeraj
Views
Replies
Total Likes
Hello @DheerajGarg
Try using this code:
var q = xtk.queryDef.create( <queryDef schema="nms:delivery" operation="get"> <select> <node expr="@internalName"/> </select> <where> <condition expr={"[@workflow-id] ="+instance.id} /> </where> </queryDef> ); var delivery= q.ExecuteQuery(); logInfo("Name:"+delivery.@internalName);
Hello @_Manoj_Kumar_ -
Thanks for looking into it. This logic can work if there is one delivery in the workflow, but what if we have more than one deliveries configured in the same workflow?
Views
Replies
Total Likes
@DheerajGarg In that case you can change the operation to select and loop the result to get the delivery names.
The Code would look something like this.
var q = xtk.queryDef.create( <queryDef schema="nms:delivery" operation="select"> <select> <node expr="@internalName"/> </select> <where> <condition expr={"[@workflow-id] ="+instance.id} /> </where> </queryDef> ); var deliveries= q.ExecuteQuery(); for each(var delivery in deliveries.delivery){ logInfo(delivery.@internalName) }
Hi @_Manoj_Kumar_ Thanks for the suggestion and the code.
Views
Replies
Total Likes