Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
BedrockMission!

Learn More

View all

Sign in to view all badges

Enrichment Help

Avatar

Avatar
Validate 1
Level 2
sqwgglz
Level 2

Likes

15 likes

Total Posts

41 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 10
Boost 1
View profile

Avatar
Validate 1
Level 2
sqwgglz
Level 2

Likes

15 likes

Total Posts

41 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 10
Boost 1
View profile
sqwgglz
Level 2

28-02-2018

Hey everyone,

Hope someone can help.

1429859_pastedImage_10.png

I'm trying to enrich an email with some custom date fields which will act as the validity dates for the customer - I've added these in an enrichment.

Here's my workflow - you might be able to workout that it's a birthday trigger email.

1429847_pastedImage_0.png

You'll see inside my split is nothing insane:

1429848_pastedImage_2.png

And here's my Enrichment:

1429849_pastedImage_3.png

When I hit "Edit Additional data.."

1429850_pastedImage_4.png

And going back to the Reconciliation table:

1429851_pastedImage_5.png

Note: I wasn't sure if this was necessary or not but hey ho!

Anyway, when I add these fields into a recurring delivery:

1429852_pastedImage_6.png

And when I preview... I get this:

1429856_pastedImage_7.png

...and in a continuous delivery I get this:

1429858_pastedImage_9.png

Any help?

Accepted Solutions (1)

Accepted Solutions (1)

Avatar

Avatar
Validate 10
MVP
Amit_Kumar
MVP

Likes

329 likes

Total Posts

649 posts

Correct Reply

231 solutions
Top badges earned
Validate 10
Validate 1
Establish
Give Back 50
Give Back 5
View profile

Avatar
Validate 10
MVP
Amit_Kumar
MVP

Likes

329 likes

Total Posts

649 posts

Correct Reply

231 solutions
Top badges earned
Validate 10
Validate 1
Establish
Give Back 50
Give Back 5
View profile
Amit_Kumar
MVP

05-03-2018

Hi Kevin,

You should use a formatDate function to format your dates in deliveries.

in your case you have two options:

Options 1: efficient solution( if a developer is involved while preparing deliveries.)

add this script in the top of your delivery

<%

var currentDate = new Date();

var startDate = new Date();

var endDate = new Date();

// add a day

startDate.setDate(currentDate.getDate() + 7);

endDate.setDate(currentDate.getDate() +14);

%>

Use below syntax for adding these to your content wherever applicable

<%= formatDate(startDate, "%2D/%2M/%4Y") %>

<%= formatDate(endDate, "%2D/%2M/%4Y") %>

Options 2:

remove all extra formatting apart from adding days to current date and do not use toDate or any other function in your enrichment i.e use only AddDays(GetDate(),7 ) and then Use below option to include your dates.

<%= formatDate(targetData.startDate, "%2D/%2M/%4Y") %>

<%= formatDate(targetData.endDate, "%2D/%2M/%4Y") %>

Regards,

Amit

Answers (15)

Answers (15)

Avatar

Avatar
Validate 1
Level 2
sqwgglz
Level 2

Likes

15 likes

Total Posts

41 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 10
Boost 1
View profile

Avatar
Validate 1
Level 2
sqwgglz
Level 2

Likes

15 likes

Total Posts

41 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 10
Boost 1
View profile
sqwgglz
Level 2

06-03-2018

Thanks Amit,

Option 2 worked for me perfectly.

Thanks

Kevin

Avatar

Avatar
Validate 1
Level 1
jyotiyadav3
Level 1

Likes

4 likes

Total Posts

17 posts

Correct Reply

0 solutions
Top badges earned
Validate 1
Boost 3
Boost 1
View profile

Avatar
Validate 1
Level 1
jyotiyadav3
Level 1

Likes

4 likes

Total Posts

17 posts

Correct Reply

0 solutions
Top badges earned
Validate 1
Boost 3
Boost 1
View profile
jyotiyadav3
Level 1

05-03-2018

Hi Kevin,

Try with this:

Left( ToDate(xxx),12)

This will truncate the time part and stores only initial 12 characters of the string.

Thanks,

Jyoti

Avatar

Avatar
Validate 1
Level 2
sqwgglz
Level 2

Likes

15 likes

Total Posts

41 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 10
Boost 1
View profile

Avatar
Validate 1
Level 2
sqwgglz
Level 2

Likes

15 likes

Total Posts

41 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 10
Boost 1
View profile
sqwgglz
Level 2

05-03-2018

Hi Jyoti,

Thanks for reply so quickly.

I added DateOnly() to the enrichment..

1433534_pastedImage_1.png

but all it did is set the time as 00:00:00.

1433512_pastedImage_0.png

. I was thinking of using formatdate() in the delivery but it will only work with system date... any other suggestions?

Thanks

Kevin

Avatar

Avatar
Validate 1
Level 1
jyotiyadav3
Level 1

Likes

4 likes

Total Posts

17 posts

Correct Reply

0 solutions
Top badges earned
Validate 1
Boost 3
Boost 1
View profile

Avatar
Validate 1
Level 1
jyotiyadav3
Level 1

Likes

4 likes

Total Posts

17 posts

Correct Reply

0 solutions
Top badges earned
Validate 1
Boost 3
Boost 1
View profile
jyotiyadav3
Level 1

05-03-2018

Hi Kevin,

When you are saving dates in the variable,  save them as :

DateOnly(ToDate(xxx))

You will get only date parameter,  no timestamp.

Thanks,

Jyoti

Avatar

Avatar
Validate 1
Level 2
sqwgglz
Level 2

Likes

15 likes

Total Posts

41 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 10
Boost 1
View profile

Avatar
Validate 1
Level 2
sqwgglz
Level 2

Likes

15 likes

Total Posts

41 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 10
Boost 1
View profile
sqwgglz
Level 2

05-03-2018

Note: I was expecting dates like this:

1433525_pastedImage_0.png

Avatar

Avatar
Validate 1
Level 2
sqwgglz
Level 2

Likes

15 likes

Total Posts

41 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 10
Boost 1
View profile

Avatar
Validate 1
Level 2
sqwgglz
Level 2

Likes

15 likes

Total Posts

41 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 10
Boost 1
View profile
sqwgglz
Level 2

05-03-2018

Hi Jyoti,

Interestingly, I sent it to myself and the dates did compute as you suggested, though not as I intended.

1433506_pastedImage_0.png

Any ideas how to change the format to something else?

- Kevin

Avatar

Avatar
Validate 1
Level 2
sqwgglz
Level 2

Likes

15 likes

Total Posts

41 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 10
Boost 1
View profile

Avatar
Validate 1
Level 2
sqwgglz
Level 2

Likes

15 likes

Total Posts

41 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 10
Boost 1
View profile
sqwgglz
Level 2

05-03-2018

Thanks Rajesh, I'll see if I can replicate.

Avatar

Avatar
Validate 1
Level 1
jyotiyadav3
Level 1

Likes

4 likes

Total Posts

17 posts

Correct Reply

0 solutions
Top badges earned
Validate 1
Boost 3
Boost 1
View profile

Avatar
Validate 1
Level 1
jyotiyadav3
Level 1

Likes

4 likes

Total Posts

17 posts

Correct Reply

0 solutions
Top badges earned
Validate 1
Boost 3
Boost 1
View profile
jyotiyadav3
Level 1

04-03-2018

Hi,

You will be able to see start date and end date correctly when you will send a delivery. Try to send some test data and you will see dates are displayed correctly. You get error because while previewing delivery in the workflow, it picks up data which is present in the schema columns. It does not picks up data stored in the workflow.

However, when you send a delivery, it does compute <%=targetdata.startdate%> correctly during analysis phase.

Thanks,

Jyoti

Avatar

Avatar
Validate 1
Employee
RamaRajesh
Employee

Likes

40 likes

Total Posts

81 posts

Correct Reply

10 solutions
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 25
Boost 10
View profile

Avatar
Validate 1
Employee
RamaRajesh
Employee

Likes

40 likes

Total Posts

81 posts

Correct Reply

10 solutions
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 25
Boost 10
View profile
RamaRajesh
Employee

02-03-2018

Hi Kjac,

Once you create the instance variable, you may not able to use the instance variable directly in the delivery (you can use it in the alert activity within the WF, though). Instead, create a variable (step 4) in the delivery properties (shown below) and use the script delivery.variables._var[0].stringValue = instance.vars.AKTEST in the delivery script (step 3).

Steps:

1. create a workflow (not a campaign with a workflow in it) with the type of delivery, shown below (which can be available only in a independent workflow and not in a targeting workflow of a campaign).

2. Follow the steps in screen grab till JS and connect the JS to a delivery (shown below).

1431819_pastedImage_1.png

3. Open the delivery and you see the screen below. Map the delivery template (RJS TEST Email Delivery below) you created under Delivery templates folder in the Delivery Tab and paste the script delivery.variables._var[0].stringValue = instance.vars.AKTEST in the script tab.

1431820_pastedImage_2.png

1431829_pastedImage_8.png

4. Save the WF and go to the delivery template you created under Delivery templates (RJS TEST Email Delivery in this case) and do the following.

1431827_pastedImage_4.png

1431828_pastedImage_5.png

This worked for me and please let me know, if you have any questions. However, using JS in the workflows will hamper performance of the instance. So i have tried to change and maintain the same targeting dimension at WF and delivery level for the target data to work. But, this did not work, too.

Thanks,

Rajesh

Avatar

Avatar
Validate 1
Employee
RamaRajesh
Employee

Likes

40 likes

Total Posts

81 posts

Correct Reply

10 solutions
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 25
Boost 10
View profile

Avatar
Validate 1
Employee
RamaRajesh
Employee

Likes

40 likes

Total Posts

81 posts

Correct Reply

10 solutions
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 25
Boost 10
View profile
RamaRajesh
Employee

01-03-2018

Here is the code for you from the screenshot.

var query = xtk.queryDef.create( <queryDef schema="temp:enrich" operation="select"> <select> <node expr="@newFirstName"/> </select> </queryDef>); var resultSet = query.ExecuteQuery(); for each (var row in resultSet) { logInfo("From temp schema : " + row.@newFirstName); instance.vars.AKTEST = row.@newFirstName; logInfo("From instance variable : " + instance.vars.AKTEST); }

Avatar

Avatar
Validate 1
MVP
Jean-Serge_Biro
MVP

Likes

353 likes

Total Posts

464 posts

Correct Reply

153 solutions
Top badges earned
Validate 1
Boost 50
Boost 5
Boost 3
Boost 250
View profile

Avatar
Validate 1
MVP
Jean-Serge_Biro
MVP

Likes

353 likes

Total Posts

464 posts

Correct Reply

153 solutions
Top badges earned
Validate 1
Boost 50
Boost 5
Boost 3
Boost 250
View profile
Jean-Serge_Biro
MVP

01-03-2018

Hi Kjac,

Why do you put a @ for your alias ? please may you try by writing your alias directly startDate ?

Regards
J-Serge

Avatar

Avatar
Validate 1
Level 2
sqwgglz
Level 2

Likes

15 likes

Total Posts

41 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 10
Boost 1
View profile

Avatar
Validate 1
Level 2
sqwgglz
Level 2

Likes

15 likes

Total Posts

41 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 10
Boost 1
View profile
sqwgglz
Level 2

01-03-2018

Thanks for this Rama,

It's a little hard to see your screenshot in its entirety.

Would you be able to upload a larger screenshot?

Thanks

Kevin

Avatar

Avatar
Validate 1
Level 2
sqwgglz
Level 2

Likes

15 likes

Total Posts

41 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 10
Boost 1
View profile

Avatar
Validate 1
Level 2
sqwgglz
Level 2

Likes

15 likes

Total Posts

41 posts

Correct Reply

1 solution
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 10
Boost 1
View profile
sqwgglz
Level 2

01-03-2018

Hi J-Serge,

Yes, my screenshots were from the delivery inside my workflow.

Any other suggestions?

- K

Avatar

Avatar
Validate 1
MVP
Jean-Serge_Biro
MVP

Likes

353 likes

Total Posts

464 posts

Correct Reply

153 solutions
Top badges earned
Validate 1
Boost 50
Boost 5
Boost 3
Boost 250
View profile

Avatar
Validate 1
MVP
Jean-Serge_Biro
MVP

Likes

353 likes

Total Posts

464 posts

Correct Reply

153 solutions
Top badges earned
Validate 1
Boost 50
Boost 5
Boost 3
Boost 250
View profile
Jean-Serge_Biro
MVP

28-02-2018

Hi Kjac,

Usually, such evaluation error is whenever you try to preview your delivery outside the workflow (that is possible only for control addresses with targetData specifically defined). Please use your workflow to open the delivery and display the preview.
In such way, do you face with the same issue?

Regards
J-Serge

Avatar

Avatar
Validate 1
Employee
RamaRajesh
Employee

Likes

40 likes

Total Posts

81 posts

Correct Reply

10 solutions
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 25
Boost 10
View profile

Avatar
Validate 1
Employee
RamaRajesh
Employee

Likes

40 likes

Total Posts

81 posts

Correct Reply

10 solutions
Top badges earned
Validate 1
Boost 5
Boost 3
Boost 25
Boost 10
View profile
RamaRajesh
Employee

28-02-2018

Hi,

I have also faced this problem where the target variable from Enrichment is not available/usable, sometimes (not sure of the reason though). I use a workaround for this and below is the process.

1429913_pastedImage_0.png

  1. Please see that the alias has been modified inside Enrichment output columns and the new field is called @newFirstName.
  2. Also referring to schema of enrichment the temporary table can be referenced using schema temp:enrich.
  3. Inside JS code activity, perform a queryDef call on this temp schema and then read from the relevant column.

  4.  Pass the instance variable in the delivery