Ejemplo n.º 1
0
        public WorklistItems GetWorklistItemsByProcInstId(int procInstId)
        {
            WorklistCriteriaFilter criteria = new WorklistCriteriaFilter();
            RegularFilter          rfPID    = new RegularFilter();
            RegularFilter          rfActID  = new RegularFilter();

            rfPID.ColumnName     = "PI.ID";
            rfPID.ParameterValue = procInstId;
            rfPID.DbType         = DbType.Int32;
            rfPID.Comparison     = Comparison.Equals;
            rfPID.ParameterName  = "@ICE_ProcInstID";
            criteria.FilterCollection.Add(rfPID);

            return(_server.GetWorklistItems(criteria));
        }
        private void GetWorklist()
        {
            ServiceObject serviceObject = base.ServiceBroker.Service.ServiceObjects[0];

            serviceObject.Properties.InitResultTable();
            DataTable results = base.ServiceBroker.ServicePackage.ResultTable;

            WorkflowManagementServer mngServer = this.ServiceBroker.K2Connection.GetConnection <WorkflowManagementServer>();

            using (mngServer.Connection)
            {
                WorklistCriteriaFilter filter  = new WorklistCriteriaFilter();
                WorklistItems          wlItems = mngServer.GetWorklistItems(filter);

                foreach (WorklistItem wlItem in wlItems)
                {
                    DataRow row = CreateWorklistItemRow(results, wlItem);
                    results.Rows.Add(row);
                }
            }
        }
        //sample that shows how to manage worklist items.
        //In this sample, we want to redirect all tasks from one user to another user
        public void ManageWorklistItems()
        {
            //establish the connection
            WorkflowManagementServer K2Mgmt = new WorkflowManagementServer();

            K2Mgmt.CreateConnection();
            K2Mgmt.Connection.Open("connectionstring");

            //build up a filter for the list of worklist items. Here, we want to return all the worklist items for a specific user
            WorklistCriteriaFilter wlCritFilter = new WorklistCriteriaFilter();

            wlCritFilter.AddRegularFilter(WorklistFields.Destination, Comparison.Like, "%user1%");
            WorklistItems wlItems = K2Mgmt.GetWorklistItems(wlCritFilter);

            foreach (WorklistItem wlItem in wlItems)
            {
                K2Mgmt.RedirectWorklistItem("user1", "user2", wlItem.ProcInstID, wlItem.ActInstDestID, wlItem.ID);
            }

            //close the connection
            K2Mgmt.Connection.Close();
        }
Ejemplo n.º 4
0
        private WorklistItems GetWorklistItems(string serialNo)
        {
            WorklistCriteriaFilter criteria = new WorklistCriteriaFilter();
            RegularFilter          rfPID    = new RegularFilter();
            RegularFilter          rfActID  = new RegularFilter();

            rfPID.ColumnName     = "PI.ID";
            rfPID.ParameterValue = serialNo.Substring(0, serialNo.IndexOf('_'));
            rfPID.DbType         = DbType.Int32;
            rfPID.Comparison     = Comparison.Equals;
            rfPID.ParameterName  = "@ICE_ProcInstID";
            criteria.FilterCollection.Add(rfPID);

            rfActID.Condition      = RegularFilter.FilterCondition.AND;
            rfActID.ColumnName     = "WLH.ActInstDestID";
            rfActID.ParameterValue = serialNo.Substring(serialNo.IndexOf('_') + 1);
            rfActID.Comparison     = Comparison.Equals;
            rfActID.ParameterName  = "@ICE_ActInstID";
            rfActID.DbType         = DbType.Int32;
            criteria.FilterCollection.Add(rfActID);

            return(_server.GetWorklistItems(criteria));
        }
Ejemplo n.º 5
0
        public WorklistItem GetWorklistItem(int procInstId, string destUser)
        {
            WorklistCriteriaFilter criteria   = new WorklistCriteriaFilter();
            RegularFilter          rfPID      = new RegularFilter();
            RegularFilter          rfDestUser = new RegularFilter();

            rfPID.ColumnName     = "PI.ID";
            rfPID.ParameterValue = procInstId;
            rfPID.DbType         = DbType.Int32;
            rfPID.Comparison     = Comparison.Equals;
            rfPID.ParameterName  = "@ICE_ProcInstID";
            criteria.FilterCollection.Add(rfPID);

            rfDestUser.ColumnName     = "PI.Destination";
            rfDestUser.ParameterValue = destUser;
            rfDestUser.DbType         = DbType.String;
            rfDestUser.Comparison     = Comparison.Equals;
            rfDestUser.ParameterName  = "@ICE_Destination";
            criteria.FilterCollection.Add(rfDestUser);

            var items = _server.GetWorklistItems(criteria);

            if (items.Count > 0)
            {
                for (int i = 0; i < items.Count; i++)
                {
                    if ((items[i].Status == WorklistItem.WorklistStatus.Allocated ||
                         items[i].Status == WorklistItem.WorklistStatus.Open) &&
                        items[i].ProcessInstanceStatus == ProcessInstanceStatus.Active)
                    {
                        return(items[i]);
                    }
                }
            }
            return(null);
        }
        private void GetWorklist()
        {
            ServiceObject serviceObject = base.ServiceBroker.Service.ServiceObjects[0];
            serviceObject.Properties.InitResultTable();
            DataTable results = base.ServiceBroker.ServicePackage.ResultTable;

            WorkflowManagementServer mngServer = new WorkflowManagementServer();

            using (mngServer.CreateConnection())
            {
                mngServer.Open(BaseAPIConnectionString);

                WorklistCriteriaFilter filter = new WorklistCriteriaFilter();
                WorklistItems wlItems = mngServer.GetWorklistItems(filter);

                foreach (WorklistItem wlItem in wlItems)
                {
                    DataRow row = CreateWorklistItemRow(results, wlItem);
                    results.Rows.Add(row);
                }
            }
        }