Enrichment Help | Community
Skip to main content
sqwgglz
New Participant
February 28, 2018
Solved

Enrichment Help

  • February 28, 2018
  • 16 replies
  • 13460 views

Hey everyone,

Hope someone can help.

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.

You'll see inside my split is nothing insane:

And here's my Enrichment:

When I hit "Edit Additional data.."

And going back to the Reconciliation table:

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

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

And when I preview... I get this:

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

Any help?

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by Amit_Kumar

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

16 replies

Employee
March 2, 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); }

Jean-Serge_Biro
New Participant
March 1, 2018

Hi Kjac,

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

Regards
J-Serge

sqwgglz
sqwgglzAuthor
New Participant
March 1, 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

sqwgglz
sqwgglzAuthor
New Participant
March 1, 2018

Hi J-Serge,

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

Any other suggestions?

- K

Jean-Serge_Biro
New Participant
February 28, 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

Employee
February 28, 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.

  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