Worklist Criteria Filters

  • 3 August 2015
  • 1 reply
  • 1 view

Badge

Can someone maybe explain to me why the following code returns an empty worklist (IE exception on return worklist[0])

 

var crit = new WorklistCriteria();
crit.AddFilterField(WCLogical.And, WCField.ProcessData, "Activity Id", WCCompare.Equal, id);
Worklist worklist;
connection.Open(ServiceConfiguration["K2ServerName"].ToString());
worklist = connection.OpenWorklist(crit);
return worklist[0];

 

BUT, The following code returns the correct worklist task:

 

 

 var crit = new WorklistCriteria();
//crit.AddFilterField(WCLogical.And, WCField.ProcessData, "Activity Id", WCCompare.Equal, id);

Worklist worklist;
connection.Open(ServiceConfiguration["K2ServerName"].ToString());
worklist = connection.OpenWorklist(crit);

foreach (WorklistItem task in worklist)
{
var processData = task.ProcessInstance.DataFields;

foreach (DataField field in processData)
{
var name = field.Name;
if (name == "Activity Id")
{
if (field.ValueType == DataType.TypeInteger)
{
var value = Convert.ToInt32(field.Value);
if (value == id)
{
return task;
}
}
}
}
}

 


1 reply

Badge +13

There are some strange behaviors with  WorklistCriteria, but what verison of BP are you running?

 

issue with string vs int comparison in the API?

Reply