Hello, i have an advanced javascript code like this.
I have 3 transitions, and the 15 targets go to the 3 transitions, but i would like the language == "es" to go to the transition Es, and the language == "en" to go to the transition En, how can i do it?
Solved! Go to Solution.
Hi @alnavarg
I tried running a similar code and got the desired results.
var query = xtk.queryDef.create(
<queryDef schema={vars.targetSchema} operation="select">
<select>
<node expr="@id"/>
<node expr="@lastName"/>
</select>
</queryDef>
);
var resultSet = query.ExecuteQuery();
for each (var row in resultSet)
{
var condition = row.@lastName;
logInfo(condition);
if(condition == 'Test')
{
task.postEvent(task.transitionByName('english'));
} else {
task.postEvent(task.transitionByName('other'));
}
}
When you look in the transitions it will show all the records but if you do a log in individual END activities, you can see the desired no. of records being processed.
As per my record, only one record satisfied the English transition condition hence one log for English END activity.
I would request you to once try logging in the END activity and see if the desired results are being processed.
Regards
A
In your for each loop you need to declare the language variable.
Instead of:
language = e.language
try:
var language = e.language
The problem persists
Any other solution?
Hi @alnavarg
I tried running a similar code and got the desired results.
var query = xtk.queryDef.create(
<queryDef schema={vars.targetSchema} operation="select">
<select>
<node expr="@id"/>
<node expr="@lastName"/>
</select>
</queryDef>
);
var resultSet = query.ExecuteQuery();
for each (var row in resultSet)
{
var condition = row.@lastName;
logInfo(condition);
if(condition == 'Test')
{
task.postEvent(task.transitionByName('english'));
} else {
task.postEvent(task.transitionByName('other'));
}
}
When you look in the transitions it will show all the records but if you do a log in individual END activities, you can see the desired no. of records being processed.
As per my record, only one record satisfied the English transition condition hence one log for English END activity.
I would request you to once try logging in the END activity and see if the desired results are being processed.
Regards
A
We don´t know where the problem is.
Could you analyse the code and say me where is the error.
Thanks
This is the output of logInfo(condición)
Hi @alnavarg
As the log suggests the filtering is happening, Could you please try adding the END activity in the transitions and add a log in each of them. Then we could see as how many times the respective END activity is being activated.
Something like below.
Regards,
A
If i want to do what you said what code i need to write?
What I want to do is to make a javascript that takes from the recipients the language and creates a delivery by language and sends it to the recipients that have the same language.
Hi @alnavarg
If your use case is to send delivery based on the recipient language, then you can use the SPLIT activity to assign different segment codes to different target audience and use JSSP (<% targetData.SegementCode) %>) and call different personalization blocks containing the email content.
Regards,
A
I want to do everything through javascript if possible, I do NOT want to use split,
I want a Js:
-I want to filter by languages
-Then that js will choose a delivery with that language and relate it to the delivery.
-That this delivery contains all the necessary to be able to send: To, Subject and the TEMPLATE.
-Finally send it to the filtered recipients.
Thanks
Could you write an example of how its works?
@AkshayAnand @_Manoj_Kumar_ @dwnuk @Heku_ @CampaignerForLife
Hello, you can use the method nms.delivery.SubmitNotification() with the template internal name and the XML target as params
https://experienceleague.adobe.com/developer/campaign-api/api/sm-delivery-SubmitNotification.html
You can find more info here
Hello, have you tried using an split activity?