/// <summary> /// List all workflow associations for the specified workflow. /// </summary> public static void ListAllAssociations(ref ClientContext clientConext, ref WorkflowServicesManager wfServicesManager) { WorkflowSubscriptionService subService = wfServicesManager.GetWorkflowSubscriptionService(); Console.WriteLine(); Console.WriteLine("Listing all workflow associations: "); // get all associations WorkflowSubscriptionCollection wfSubscriptions = subService.EnumerateSubscriptions(); //WorkflowSubscriptionCollection wfSubscriptions = subService.EnumerateSubscriptionsByDefinition(definitionId); //WorkflowSubscriptionCollection wfSubscriptions = subService.EnumerateSubscriptionsByList(listId); //WorkflowSubscriptionCollection wfSubscriptions = subService.EnumerateSubscriptionsByEventSource(eventSourceId); clientConext.Load(wfSubscriptions); clientConext.ExecuteQuery(); // write all associations out foreach (var wfSubscription in wfSubscriptions) { Console.WriteLine("{0} - {1}", wfSubscription.Id, wfSubscription.Name ); } }
/// <summary> /// Retrieves a single workflow subscription. /// </summary> public static WorkflowSubscription GetOneSubscription(ref ClientContext clientContext, ref WorkflowServicesManager wfServicesManager) { WorkflowSubscriptionService subService = wfServicesManager.GetWorkflowSubscriptionService(); WorkflowSubscriptionCollection wfSubscriptions = subService.EnumerateSubscriptions(); clientContext.Load(wfSubscriptions); clientContext.ExecuteQuery(); return(wfSubscriptions.FirstOrDefault()); }
public override void ExecuteCmdlet() { var SelectedWeb = this.ClientContext.Web; if (List != null) { var list = List.GetList(SelectedWeb); if (string.IsNullOrEmpty(Name)) { var servicesManager = new WorkflowServicesManager(ClientContext, SelectedWeb); var subscriptionService = servicesManager.GetWorkflowSubscriptionService(); WorkflowSubscriptionCollection subscriptions = subscriptionService.EnumerateSubscriptionsByList(list.Id); ClientContext.Load(subscriptions); ClientContext.ExecuteQueryRetry(); WriteObject(subscriptions, true); } else { WriteObject(list.GetWorkflowSubscription(Name)); } } else { if (string.IsNullOrEmpty(Name)) { var servicesManager = new WorkflowServicesManager(ClientContext, SelectedWeb); var subscriptionService = servicesManager.GetWorkflowSubscriptionService(); var subscriptions = subscriptionService.EnumerateSubscriptions(); ClientContext.Load(subscriptions); ClientContext.ExecuteQueryRetry(); WriteObject(subscriptions, true); } else { WriteObject(SelectedWeb.GetWorkflowSubscription(Name)); } } }
public static void RemoveAssociation(ref ClientContext clientContext, ref WorkflowServicesManager wfsm, Guid workflowDefinitionId, Guid listId, Guid historyListId, Guid taskListId) { WorkflowSubscriptionService subservice = wfsm.GetWorkflowSubscriptionService(); Console.WriteLine(); Console.WriteLine("Getting Existing subscription"); WorkflowSubscriptionCollection wfsubscriptions = subservice.EnumerateSubscriptionsByDefinition(workflowDefinitionId); clientContext.Load(wfsubscriptions); clientContext.ExecuteQuery(); foreach (var wfsub in wfsubscriptions) { Console.WriteLine("Subscription ID:{0} - Subscription Name:{1}", wfsub.DefinitionId, wfsub.Name); } var LastWFDefId = wfsubscriptions.Last().Id; string LastWFDefName = wfsubscriptions.Last().Name; Console.WriteLine("Last Subscription ID:{0} - Last Subscription ID:{1} ", LastWFDefId.ToString(), LastWFDefName); Console.WriteLine("Removing Workflow Association"); subservice.DeleteSubscription(LastWFDefId); }
public Workflows() { this._workflowDefinitions = new Model.WorkflowDefinitionCollection(this.ParentTemplate); this._workflowSubscriptions = new Model.WorkflowSubscriptionCollection(this.ParentTemplate); }
/// <summary> /// Start a SharePoint List Workflow /// </summary> /// <param name="siteUrl">URL of the SharePoitn Site</param> /// <param name="workflowName">Name of the SharePoint2013 Workflow</param> /// <param name="itemID">ID of the Item on which to start the workflow List, if item ID is equal to 0 the worlflow to start is considered as site workflow</param> /// <param name="initiationData">Any custom parameters you want to send to the workflow</param> public bool Execute(worflowParameters param) { try { using (ClientContext clientContext = new ClientContext(param.siteUrl)) { string user = ConfigurationManager.AppSettings["USER"]; string domain = ConfigurationManager.AppSettings["DOMAIN"]; string password = ConfigurationManager.AppSettings["PASSWORD"]; System.Net.NetworkCredential cred = new System.Net.NetworkCredential(user, password, domain); clientContext.Credentials = cred; Web web = clientContext.Web; //Workflow Services Manager which will handle all the workflow interaction. WorkflowServicesManager wfServicesManager = new WorkflowServicesManager(clientContext, web); //The Subscription service is used to get all the Associations currently on the SPSite WorkflowSubscriptionService wfSubscriptionService = wfServicesManager.GetWorkflowSubscriptionService(); //All the subscriptions (associations) WorkflowSubscriptionCollection wfSubscriptions = wfSubscriptionService.EnumerateSubscriptions(); //Load only the subscription (association) which we want. You can also get a subscription by definition id. clientContext.Load(wfSubscriptions, wfSubs => wfSubs.Where(wfSub => wfSub.Name == param.workflowName)); clientContext.ExecuteQuery(); //Get the subscription. WorkflowSubscription wfSubscription = wfSubscriptions.First(); //The Instance Service is used to start workflows and create instances. WorkflowInstanceService wfInstanceService = wfServicesManager.GetWorkflowInstanceService(); if (param.initiationData == null) { param.initiationData = new Dictionary <string, object>(); } //validate item id if (param.itemID > 0) { wfInstanceService.StartWorkflowOnListItem(wfSubscription, param.itemID, param.initiationData); } else { wfInstanceService.StartWorkflow(wfSubscription, param.initiationData); } clientContext.ExecuteQuery(); return(true); } } catch (Exception err) { responseMsg = err.Message; return(false); } }