Skip to main content


 

Symptoms


Trying to get worklists items with the following criteria:
criteria.AddFilterField(WCLogical.StartBracket, WCField.None, WCCompare.Equal, null)
foreach (string process in processName)
{
criteria.AddFilterField(WCLogical.Or, WCField.ProcessFullName, WCCompare.Equal, "PaymentVoucher"" process)
}
criteria.AddFilterField(WCLogical.EndBracket, WCField.None, WCCompare.Equal, null)
criteria.AddFilterField(WCLogical.And, WCField.WorklistItemStatus, WCCompare.Equal, 0) // Open
criteria.AddFilterField(WCLogical.Or, WCField.WorklistItemStatus, WCCompare.Equal, 1) // Available
criteria.AddFilterField(WCLogical.And, WCField.WorklistItemOwner, "Me", WCCompare.Equal, WCWorklistItemOwner.Me)
criteria.AddFilterField(WCLogical.Or, WCField.WorklistItemOwner, "Other", WCCompare.Equal, WCWorklistItemOwner.Other)

Throw the following exception when calling method "OpenWorklist(criteria)"
Incorrect syntax near ')'.

By removing the line "criteria.AddFilterField(WCLogical.Or, WCField.WorklistItemOwner, "Other", WCCompare.Equal, WCWorklistItemOwner.Other)"
the codes run just fine. Are there any rules missing?


 

Diagnoses


The error seems to come from the following line:

criteria.AddFilterField(WCLogical.StartBracket

criteria.AddFilterField(WCLogical.EndBracket, WCField.None, WCCompare.Equal, null)

Removing the above 2 lines will allow the snippet to run but will not return the results the user is expecting.
 

Resolution

The following snippet resolve the issue:

WorklistCriteria criteria = new WorklistCriteria()
foreach (string process in processName)
{
if (criteria.Filters.Length == 0)
criteria.AddFilterField(WCLogical.And, WCField.ProcessFullName, WCCompare.Equal, "PaymentVoucher"" process)
else
criteria.AddFilterField(WCLogical.Or, WCField.ProcessFullName, WCCompare.Equal, "PaymentVoucher"" process)
}
criteria.AddFilterField(WCLogical.And, WCField.WorklistItemStatus, WCCompare.Equal, 0) // Open
criteria.AddFilterField(WCLogical.Or, WCField.WorklistItemStatus, WCCompare.Equal, 1) // Available
criteria.AddFilterField(WCLogical.And, WCField.WorklistItemOwner, "Me", WCCompare.Equal, WCWorklistItemOwner.Me)
criteria.AddFilterField(WCLogical.Or, WCField.WorklistItemOwner, "Other", WCCompare.Equal, WCWorklistItemOwner.Other)




 
Be the first to reply!

Reply