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

SOLVED

keep the results of interim population between two executions

Partha18
Level 3
Level 3

Hi Team,

I want to uncheck all the "keep the results of interim population between two executions" in all workflows. So i planned to create a workflow to update @keepResult to "No".

In Data schema > xtk:workflow > structure > Display advanced field, I can see @keepResult (keep interim result) attribute.

1836409_pastedImage_2.png

But when i open Query activity or Update Data activity and select xtk:workflow as filtering dimension, in Display advanced field i am unable to find @keepResult attribute.

1836408_pastedImage_1.png

I found this link in forums Unchecking keep result filed in a workflow through javascript  where we can update @keepResult to "No".

But please help me to solve this issue using Query and update data activity.

Thanks and Regards,

Partha Sarathy.

1 Accepted Solution
Partha18
Correct answer by
Level 3
Level 3

yeah thank you. I done this successfully using below code,

Start > Query > JavaScript code activity > End

1) Query: (query internal name: allWorkflowQuery)

This retrieve all workflows. (xtk:workflow -> primary key is not empty)

2) JavaScript code activity:

/*********************************************************************************************************/

var query = xtk.queryDef.create(

<queryDef schema="temp:allWorkflowQuery" operation="select">

     <select>

          <node expr="@id"/>

     </select>

</queryDef>

);

var record = query.ExecuteQuery();

for each (var variable in record) {

var primaryKey = variable.@id;

var keepInterimResult = 0;

xtk.session.Write(<workflow xtkschema="xtk:workflow" _operation="update" id={primaryKey} keepResult={keepInterimResult} />); 

/*********************************************************************************************************/

Regards,

ParthaSarathy

View solution in original post

5 Replies
kapilKochar
Community Advisor
Community Advisor

Hi Partha,

Reason it's not visible directly in query activity because for this attribute xml="true" . Any specific requirement why you wanted to use this by query activity only? As you shared solution is defined by using JavaScript activity.

Partha18
Level 3
Level 3

kapscool

Hi,

Thanks for responding! This JS works for updating only current workflow where i run the JS. But i want to update for all the workflows in our instance. (i.e) keepResult=No.

I tried below code. But it doesnt work.

var query = xtk.queryDef.create(

<queryDef schema="xtk:workflow" operation="select">

  <select>

    <node expr="@keepResult"/>

    <node expr="@id"/>

  </select>

</queryDef>

);

var record = query.ExecuteQuery();

for each (var variable in record) {

var keepResultIn = 0;

xtk.session.Write(<workflow xtkschema="xtk:workflow" _operation="update" id={variable.id} keepResult={keepResultIn} _key="@id"/>); 

please help me to acheive this function!

Thanks and Regards,

Partha

somasundaramhal
Level 5
Level 5

Try this:

var query = xtk.queryDef.create(

<queryDef schema="xtk:workflow" operation="select">

  <select>

    <node expr="@keepResult"/>

    <node expr="@id"/>

    <node expr="@label"/>

  </select>

  <where>

    <condition expr="@id!=''"/>

  </where>

</queryDef>

);

var record = query.ExecuteQuery();

for each (var variable in record) {

xtk.session.Write(<workflow xtkschema="xtk:workflow" _operation="update" id={variable.@id} keepResult='0' _key="@id"/>);

}

keepResult='0'  means 'No'

keepResult='1' means 'Yes'

Partha18
Correct answer by
Level 3
Level 3

yeah thank you. I done this successfully using below code,

Start > Query > JavaScript code activity > End

1) Query: (query internal name: allWorkflowQuery)

This retrieve all workflows. (xtk:workflow -> primary key is not empty)

2) JavaScript code activity:

/*********************************************************************************************************/

var query = xtk.queryDef.create(

<queryDef schema="temp:allWorkflowQuery" operation="select">

     <select>

          <node expr="@id"/>

     </select>

</queryDef>

);

var record = query.ExecuteQuery();

for each (var variable in record) {

var primaryKey = variable.@id;

var keepInterimResult = 0;

xtk.session.Write(<workflow xtkschema="xtk:workflow" _operation="update" id={primaryKey} keepResult={keepInterimResult} />); 

/*********************************************************************************************************/

Regards,

ParthaSarathy

View solution in original post

zstein15
Level 1
Level 1

@Partha18 ,

 

Not sure if you ever got this figured out, but we're looking for a solution currently.

 

Based on the available documentation:

  "xml (boolen): if this option is activated, the values of the field don't have a linked SQL field. Adobe Campaign creates a Text type "mData" field for record storage. This means there is no filtering or sorting on these fields."

 

If you look in the Workflow schema and search "keepResult", it's set as xml="true". As it's highly recommended that you don't adjust anything in the out of the box schemas, the only other option could possibly be to create an extension which removes that piece, but without testing I'm not sure how exactly that works.