Unanswered SharePoint Workflow OnTaskChanged Fired only first time

  • Saturday, May 05, 2012 6:55 PM
     
     

    hi.

    i am trying to develop a workflow, in that the onTaskChanged activity will run only once. When i run the WF using VS it follow the below sequence 

    Workflow Activated 

    create task

    while loop

    onTaskChanged 

    complete task

    Create Task2

    etc

    i can go till  onTaskChanged  and when i change the value form the list the control wont comes back to the VS or does it go to the  Create Task2 step. 

    does anyone know about this

All Replies

  • Sunday, May 06, 2012 8:31 AM
     
      Has Code
    please see the code i have used
      public string marketing_approved = "Pending";
            public Boolean StatusDetails = true;
            public Boolean StatusDetails1 = true;
            public Boolean StatusDetails2 = true;
            private void while_bothnotapproved(object sender, ConditionalEventArgs e)
            {
                if (this.workflowProperties.Item["Status"].ToString() == "Send to Local Office")
                    StatusDetails = false;
                if (StatusDetails)
                    e.Result = true;
                else
                    e.Result = false;
            }
    
            private void while_accountnotapproved(object sender, ConditionalEventArgs e)
            {
    
                e.Result = StatusDetails1;
            }
    
            private void while_marketingnotapproved(object sender, ConditionalEventArgs e)
            {
                e.Result = StatusDetails2;
            }
    
            public Guid createTask1_TaskId1 = default(System.Guid);
            public SPWorkflowTaskProperties createTask1_TaskProperties1 = new Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties();
    
            private void createTask1_MethodInvoking(object sender, EventArgs e)
            {
                this.createTask1_TaskId1 = Guid.NewGuid();
                SPListItem item = workflowProperties.Item;
                this.createTask1_TaskProperties1.Title = "Review task for Team Leader - " + item.Name;
                if (createTask1_TaskProperties1.AssignedTo == null)
                {
                    this.createTask1_TaskProperties1.AssignedTo = "domine\\user";
                }
                //  this.createTask1_TaskProperties1.PercentComplete = 0.0f;
    
                //logmessage("Task Assigned - " + createTask1_TaskProperties1.Title);
                this.createTask1_TaskProperties1.SendEmailNotification = true;
            }
    
            public SPWorkflowTaskProperties onTaskChanged1_AfterProperties1 = new Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties();
            public SPWorkflowTaskProperties onTaskChanged1_BeforeProperties1 = new Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties();
    
            private void onTaskChanged1_Invoked(object sender, ExternalDataEventArgs e)
            {
                try
                {
                    if (this.workflowProperties.Item["Status"].ToString() != "Ready for Checking")
                    {
                        StatusDetails1 = false;
                    }
                }
                catch (Exception ex)
                { }
                //workflowHistoryComments = "Customer service agent has updated their task - " + custSvcAgentAfterProperties.Title + ". Percent complete = " + System.Convert.ToString(pctComplete);
            }
    
            //private void logerror(Exception ex)
            //{
            //    workflowProperties.Workflow.CreateHistoryEvent((int)SPWorkflowHistoryEventType.WorkflowError,
            //        0, workflowProperties.OriginatorUser, ex.StackTrace, ex.Message + " - " + ex.StackTrace, "");
            //}
    
            //private void logmessage(string message)
            //{
            //    workflowProperties.Workflow.CreateHistoryEvent((int)SPWorkflowHistoryEventType.None,
            //        0, workflowProperties.OriginatorUser, "", message, "");
            //}
    
            private void createTask2_MethodInvoking(object sender, EventArgs e)
            {
                this.createTask1_TaskId1 = Guid.NewGuid();
                SPListItem item = workflowProperties.Item;
                this.createTask1_TaskProperties1.Title = "Review task for Director - " + item.Name;
                if (createTask1_TaskProperties1.AssignedTo == null)
                {
                    this.createTask1_TaskProperties1.AssignedTo = "domine\\user";
                }
                //this.createTask1_TaskProperties1.PercentComplete = 0.0f;
    
                //logmessage("Task Assigned - " + createTask1_TaskProperties1.Title);
                this.createTask1_TaskProperties1.SendEmailNotification = true;
            }
    
            public Guid createTask2_TaskId1 = default(System.Guid);
            public SPWorkflowTaskProperties createTask2_TaskProperties1 = new Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties();
    
            private void onTaskChanged2_Invoked(object sender, ExternalDataEventArgs e)
            {
                try
                {
                    if (this.workflowProperties.Item["Status"].ToString() != "Ready for Approval")
                    {
                        StatusDetails2 = false;
                    }
                }
                catch (Exception ex)
                { }
            }
    
            public SPWorkflowTaskProperties onTaskChanged2_AfterProperties1 = new Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties();
            public SPWorkflowTaskProperties onTaskChanged2_BeforeProperties1 = new Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties();
    
         
        }
    }
    
    please let me know what you think 
        


    • Edited by roma_victa Sunday, May 06, 2012 9:20 AM
    •