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;
}
}
}
}
}