Expand my Community achievements bar.

Announcing the launch of new sub-community for Campaign Web UI to cater specifically to the needs of Campaign Web UI users!
SOLVED

About get the result of Query Activity from JavaScript Activity in a workflow

Avatar

Level 3

Hi

I created a workflow in Adobe Campaign as the follow

Start -> Query(query some recipients) -> JavaScript -> End

I query some recipients in the Query Activity, I can't find the way to get the result in the next JavaScript Activity.

Would you like to tell me how to do that.

Best regards

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

tumuzhuanjia

This is possible, by reading the temporary table created to hold the query data. (https://db.tt/aiCRLu3a66 )

  1. Add a Query and target recipient table
    •     Add complementary data (this is what you can use to query in the js activity and do stuff with it) https://db.tt/Ps2IRqkyil
  1. Add Js Activity with the following code and execute the workflow.

var schemaName = vars.targetSchema.substr(vars.targetSchema.indexOf(":") + 1);

var query = xtk.queryDef.create(

  <queryDef schema={vars.targetSchema} operation="select">

    <select>

      <node expr="@email"/>

    </select>

  </queryDef>

);

result = query.ExecuteQuery();

for each (var e in result) {

logInfo(e.@email);

}

View solution in original post

4 Replies

Avatar

Employee Advisor

Hi tumuzhuanjia ,

You can achieve this by using queryDef construct inside JavaScript activity. From the outgoing transition of query activity find out the schema name and then use in queryDef for reading your data.

An example of it can be found on the link Re: Update instance variable with target data field.

Hope it helps.

Regards,

Vipul

Avatar

Level 10

Hi,

Accessing query data in JS activity is available for Reports and web applications so if you need that Read below:

This will be available in the CTX context and you can access it like ctx.query.recipient where query is the storage path of the query.

It's not available for campaign workflows because there you have some much flexibility to do everything without js so as a product feature in campaign workflow you don't have a storage path for queries.

refer to the attachment.

Capture.PNG

Regards,

Amit

Avatar

Correct answer by
Community Advisor

tumuzhuanjia

This is possible, by reading the temporary table created to hold the query data. (https://db.tt/aiCRLu3a66 )

  1. Add a Query and target recipient table
    •     Add complementary data (this is what you can use to query in the js activity and do stuff with it) https://db.tt/Ps2IRqkyil
  1. Add Js Activity with the following code and execute the workflow.

var schemaName = vars.targetSchema.substr(vars.targetSchema.indexOf(":") + 1);

var query = xtk.queryDef.create(

  <queryDef schema={vars.targetSchema} operation="select">

    <select>

      <node expr="@email"/>

    </select>

  </queryDef>

);

result = query.ExecuteQuery();

for each (var e in result) {

logInfo(e.@email);

}

Avatar

Level 4

Hi,

Can this be done with SQL-type-of query? I need to use Regular Expressions...

Thank you!