/// <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());
        }
Exemple #3
0
        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);
        }
Exemple #5
0
 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);
            }
        }