public SPWorkflowCollectionInstance CreateWorkflowFromWeb(SPWebInstance web, object inclusiveFilterStates, object exclusiveFilterStates, object rowCountLimit, object descending) { if (web == null) { throw new JavaScriptException(Engine, "Error", "A web must be supplied."); } SPWorkflowCollection result; if (inclusiveFilterStates == Undefined.Value && exclusiveFilterStates == Undefined.Value && rowCountLimit == Undefined.Value && descending == Undefined.Value) { result = new SPWorkflowCollection(web.Web); } else { SPWorkflowState wsInclusiveFilterStates; if (!TypeConverter.ToString(inclusiveFilterStates).TryParseEnum(true, out wsInclusiveFilterStates)) { throw new JavaScriptException(Engine, "Error", "inclusiveFilerStates argument must be a valid SPWorkflowState."); } SPWorkflowState wsExclusiveFilterStates; if (!TypeConverter.ToString(exclusiveFilterStates).TryParseEnum(true, out wsExclusiveFilterStates)) { throw new JavaScriptException(Engine, "Error", "exclusiveFilterStates argument must be a valid SPWorkflowState."); } result = new SPWorkflowCollection(web.Web, wsInclusiveFilterStates, wsExclusiveFilterStates, TypeConverter.ToInteger(rowCountLimit), TypeConverter.ToBoolean(descending)); } return(new SPWorkflowCollectionInstance(Engine.Object.InstancePrototype, result)); }
public static void StartWorkflow(SPListItem listItem, string workflowName, SPWorkflowRunOptions runOption) { try { SPWorkflowManager manager = listItem.Web.Site.WorkflowManager; SPWorkflowAssociationCollection objWorkflowAssociationCollection = listItem.ParentList.WorkflowAssociations; Debug.WriteLine("WF.Count=" + objWorkflowAssociationCollection.Count.ToString()); foreach (SPWorkflowAssociation objWorkflowAssociation in objWorkflowAssociationCollection) { Debug.WriteLine("WF.InternalName=" + objWorkflowAssociation.InternalName); Debug.WriteLine("WF.Id=" + objWorkflowAssociation.Id.ToString()); if (String.Compare(objWorkflowAssociation.Name, workflowName, true) == 0) { Debug.WriteLine("WF.Selected"); try { SPWorkflowCollection wfc = manager.GetItemActiveWorkflows(listItem); bool isActive = false; foreach (SPWorkflow wf in wfc) { Debug.WriteLine("WF.InternalName=" + wf.ItemName); // wf.IsCompleted nie używać - blokuje kolejne uruchomienie procesu jeżęli status jest "Ukończono" if (wf.IsLocked && objWorkflowAssociation.Id.Equals(wf.AssociationId)) { isActive = true; Debug.WriteLine("WF.IsLocked=" + wf.IsLocked.ToString()); Debug.WriteLine("WF.AssociationId=" + wf.AssociationId.ToString()); break; } } if (!isActive) { SPWorkflow spw = manager.StartWorkflow(listItem, objWorkflowAssociation, objWorkflowAssociation.AssociationData, runOption); Debug.WriteLine("Workflow: " + workflowName + " Internal State: " + spw.InternalState); //The above line will start the workflow... } else { Debug.WriteLine("WF aktualnie uruchomiony - kolejna aktywacja procesu przerwana"); //ElasticEmail.EmailGenerator.SendMail("wf aktualnie uruchomiony" + listItem.ID.ToString(), string.Empty); } } catch (Exception) { } break; } } } catch (Exception) { } }
public WorkflowCollectionNode(object parent, SPWorkflowCollection workFlowCollection) { this.Tag = workFlowCollection; this.SPParent = parent; this.Setup(); this.Nodes.Add(new ExplorerNodeBase("Dummy")); }
public WorkflowCollectionNode(object parent, SPWorkflowCollection workFlowCollection) { this.Tag = workFlowCollection; this.SPParent = parent; this.Setup(); this.Nodes.Add(new ExplorerNodeBase("Dummy")); }
public SPWorkflowCollectionInstance(ObjectInstance prototype, SPWorkflowCollection workflowCollection) : this(prototype) { if (workflowCollection == null) { throw new ArgumentNullException("workflowCollection"); } m_workflowCollection = workflowCollection; }
/// <summary> /// The get method will get RegApprovalId from workflow attached to given registration /// </summary> /// <param name="regItem">Registratoin List item with workflow</param> /// <returns>RegApprovalId</returns> static public int GetRegApprovalID(SPListItem regItem) { int regApprovalID = 0; if (regItem != null) { SPWorkflowCollection workflows = regItem.Workflows; foreach (SPWorkflow workflow in workflows) { if (workflow.InternalState == SPWorkflowState.Running) { regApprovalID = workflow.Tasks[0].ID; } } } return(regApprovalID); }