keep the results of interim population between two executions

ParthaSarathySe

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)

ParthaSarathySe

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 (3)

Answers (3)

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'

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.

ParthaSarathySe

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