keep the results of interim population between two executions

Avatar

Avatar

Partha18

Avatar

Partha18

Partha18

23-09-2019

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.

Accepted Solutions (1)

Accepted Solutions (1)

Avatar

Avatar

Partha18

Avatar

Partha18

Partha18

03-10-2019

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

Answers (4)

Answers (4)

Avatar

Avatar

somasundaramhal

Avatar

somasundaramhal

somasundaramhal

03-10-2019

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'

Avatar

Avatar

kapilKochar

MVP

Avatar

kapilKochar

MVP

kapilKochar
MVP

23-09-2019

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.

Avatar

Avatar

zstein15

Avatar

zstein15

zstein15

01-12-2020

@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.

 

Avatar

Avatar

Partha18

Avatar

Partha18

Partha18

24-09-2019

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