Expand my Community achievements bar.

Join us for Adobe Campaign Community Q&A Coffee Break on Thursday, March 7th at 8am PT with Eric Perrin, Gael Mouello, Chakravarthy Kalva, Bruce Swann and Sandra Hausmann.
SOLVED

Exclude customers based on delivery they are going to get

Avatar

Level 3

Hello,

I have a tricky question. I have a target group that will get an email and this email has a certain delivery code. I would like to exclude customers based on that delivery code of the delivery they are going to get without hard-coding it in a split.

 

For example:

Recipient logs doesn't exist such as delivery code = "delivery code of the delivery at the end of the wkf"

 

Is it possible to do it with a JS code or maybe through typology rules?

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi @A_B_SE ,

 

I have a simple suggestion for you, why not try using queryDef on the temp table and then exclude the data with the WHERE clause?

For this you can do the following steps:

1. Declare a column that says @exclude  in additional data (like Query, enrichment) before the Js.

2. Create a Js activity and do queryDef on the incoming temp table with WHERE:

var del = xtk.queryDef.create(
<queryDef schema="temp:<your temp table name>" operation="select" lineCount="1000000">
<select>
<node expr="@id"/>
<etc>
<etc etc .. what feilds you need>
  <where> <condition expr="@nature NOT LIKE %VÄLKOMNA%"/> </where>
</queryDef>
).ExecuteQuery();

3. For these outputs of recipients Id's (rows) you can update this new "@exclude" field with 'Yes' or 'No' using the WRITE function in for each loop.

4. Next you can now add a 'Split' or 'Test' activity and remove the recipients with the field @exclude as 'Yes' or 'No'.

 

Steps 1 & 3 are explained in more detail in one of my answers in past: link

 

Br,

Shubham

View solution in original post

7 Replies

Avatar

Community Advisor

Hi @A_B_SE ,

In the delivery activity > script create the below instance variable

instance.vars.myDeliveryCode = delivery.deliveryCode;

ParthaSarathy_0-1667398758000.png

 

In split activity, you can call this delivery code as $(instance/vars/@myDeliveryCode)

ParthaSarathy_1-1667398888226.png

 

 

Avatar

Level 3

Thank you, I tried but it doesn't seem to work. I'm trying to filter on DelCode_5_Syfte:

 

My test customers delivery logs has deliveries with DelCode_5_Syfte = VÄLKOMNA:

alberto_bodini_0-1667464012764.png

When i hard-code the value it works as usual:

alberto_bodini_1-1667464189307.png

alberto_bodini_2-1667464259138.png

When trying apply your rule:

alberto_bodini_3-1667464300244.pngalberto_bodini_4-1667464337276.pngalberto_bodini_5-1667464356745.pngalberto_bodini_6-1667464418329.pngalberto_bodini_7-1667464449092.png

Do you know why it doesn't work for me?

 

 

 

 

Avatar

Community Advisor

@A_B_SE , Are you using this split in the downstream transition of the delivery (After delivery)?

Avatar

Level 3

No I'm using it before delivery since I need to exclude customers based on the delivery they are going to receive.

Avatar

Correct answer by
Community Advisor

Hi @A_B_SE ,

 

I have a simple suggestion for you, why not try using queryDef on the temp table and then exclude the data with the WHERE clause?

For this you can do the following steps:

1. Declare a column that says @exclude  in additional data (like Query, enrichment) before the Js.

2. Create a Js activity and do queryDef on the incoming temp table with WHERE:

var del = xtk.queryDef.create(
<queryDef schema="temp:<your temp table name>" operation="select" lineCount="1000000">
<select>
<node expr="@id"/>
<etc>
<etc etc .. what feilds you need>
  <where> <condition expr="@nature NOT LIKE %VÄLKOMNA%"/> </where>
</queryDef>
).ExecuteQuery();

3. For these outputs of recipients Id's (rows) you can update this new "@exclude" field with 'Yes' or 'No' using the WRITE function in for each loop.

4. Next you can now add a 'Split' or 'Test' activity and remove the recipients with the field @exclude as 'Yes' or 'No'.

 

Steps 1 & 3 are explained in more detail in one of my answers in past: link

 

Br,

Shubham

Avatar

Administrator

Hi @A_B_SE

Were you able to try @Shubham_Goyal__'s proposed solution? Let us know if it helped you resolve your issue or if you need more help with your query.

Thanks!



Sukrity Wadhwa