does anyone know where workflow activities store their values?

randrews
Tera Guru

I need to get a list of all workflow catalog tasks that have a set fulfillment group... filtering from workflow activities in the nav menu doesn't work correctly <hi ticket opened since it doesn't work in their demo instance>

 

does anyone know what table workflow activity values are stored on?

4 REPLIES 4

John Gilaspy
Kilo Expert

I've run into the same issue. Workflow activities store some information in variables, and if you look at the properties of the Fulfillment group field on an activity, it's a variable:


wf_activity.vars.var__m_38891b6f0a0a0b1e00efdfdd77602027.task_fulfillment_group


Prior to Aspen, it was possible to pull in the vars.task_fulfillment_group into the list, but that stopped working after Aspen.


Kalaiarasan Pus
Giga Sage

this should work change the searchtext to any group you want to search ..... I haven't check though how to do this via filter's on table



var searchText='74ad1ff3c611227d01d25feac2af603f';



var tableData='';


var linkSetUp= gs.getProperty("glide.servlet.uri")+'wf_activity.do?sys_id=';



var wfActivities = new GlideRecord('wf_activity');


wfActivities.addEncodedQuery('workflow_version.published=true^activity_definition=38891b6f0a0a0b1e00efdfdd77602027^');


wfActivities.query();



while(wfActivities.next())


      {


      var cExist = new GlideRecord('sys_variable_value');       cExist.addEncodedQuery('document=wf_activity^document=wf_activity^variable=d7f2bd33c0a801650021da8ff242a081^value='+searchText+'^document_key='+wfActivities.getValue('sys_id'));


      cExist.query();


      if(cExist.next())


              {


              gs.addInfoMessage("<a href='"+linkSetUp+wfActivities.getValue('sys_id')+"'>"+wfActivities.getValue("name")+"</a>");


      }


}




Note : Just checking the published workflows .. If you want to inactive workflows too , then change the query conditions ....


randrews
Tera Guru

Word from SN is that apparently you can ONLY go four layers deep when dot walking in a list like this.. and the only way to get the information is running a back ground script...



I have asked them to open an enhancement to allow reporting on workflow variables since stuff like this comes up regularly and running a back ground script to get at them seems... excessive.


randrews
Tera Guru

if you run this as a background script it will print the task activities for you.. just replace the existing sid with the right one




group_sid = 'edfd769f1d8a2000b6a5f5ba7c78bfcb';


var cb = new GlideRecord('wf_activity');


  1. cb.query();

while (cb.next()){


        if ((cb.vars.task_fulfillment_group == group_sid) && (cb.workflow_version.published)){


gs.print(cb.workflow_version.getDisplayValue() + '|' + cb.name + ' | ' + cb.sys_id);


        }


}