filter management List

  • 14 December 2009
  • 1 reply
  • 2 views

Badge +2

·         Kindly check below code, I need to filter work list items by "processesInstanceId" unfortunately I can't find a direct way so I managed with below code , its tested and worked perfectly but we’re afraid of highlighted part [do you have better ideas?]


 



 


 #region ... Prepare filter criteria ...


 


                SourceCode.Workflow.Management.Criteria.WorklistCriteriaFilter wlCriteriaFilter =


                               new SourceCode.Workflow.Management.Criteria.WorklistCriteriaFilter();


 


                wlCriteriaFilter.REGULAR_FILTER(SourceCode.Workflow.Management.WorklistFields.Folio, SourceCode.Workflow.Management.Criteria.Comparison.Equals,


                    folio, SourceCode.Workflow.Management.Criteria.RegularFilter.FilterCondition.AND);


 


 


                SourceCode.Workflow.Management.Criteria.RegularFilter filter = new SourceCode.Workflow.Management.Criteria.RegularFilter();


 


                filter.ColumnName = "[WLH].[ProcInstID]";///... to check it then assure this by K2 People.


                filter.Comparison = SourceCode.Workflow.Management.Criteria.Comparison.Equals;


                filter.DbType = System.Data.DbType.Int32;


                filter.ParameterName = String.Format("@{0}{1}", CSPDParam, 0);


                filter.ParameterValue = procInstId;


                //filter.TableName = "_WorklistSlot";


 


                wlCriteriaFilter.AddRegularFilter(filter);


 


                #endregion


 


                SourceCode.Workflow.Management.WorklistItems items = workflowServer.GetWorklistItems(wlCriteriaFilter);


 



 


and we tried to filter the metadata of an activity using below filter:


.........................................................................................................................................


filter.ColumnName = ".[MetaData]


                 filter.Comparison = SourceCode.Workflow.Management.Criteria.Comparison.Equals;


                filter.DbType = System.Data.DbType.String;


                filter.ParameterName = String.Format("@{0}{1}", CSPDParam, 1);


                filter.ParameterValue = “P_payment”;


 


                wlCriteriaFilter.AddRegularFilter(filter);


 


.........................................................................................................................................


unfortunately using equality as -SourceCode.Workflow.Management.Criteria.Comparison- gives the folowing exception “ The data types ntext and nvarchar are incompatible in the equal to operator.” but using "SourceCode.Workflow.Management.Criteria.Comparison.Like" worked perfectly.


 


1 reply

Badge +3

I've got a similar situation.  See here: http://www.k2underground.com/forums/p/12360/36196.aspx#36196


Did you find a better approach or confirm that the approach seemed okay?

Reply