Quantcast
Channel: SharePoint 2010 - Development and Programming forum
Viewing all articles
Browse latest Browse all 11508

Adding Approvers in a Sequential Workflow Visual Studio

$
0
0

Hi

I have a sequential workflow which is associated to a listwhich contains column name Business Process which could be Purchase Order, Sales, Leave Request etc

I have another list 'Approvers' which contains two columns Group Name & Approvers

eg: Purchase Order                Approver1, Approver2

      Sales                                 Approver1, Approver2, Approver3

I have created the workflow for the list, but I am not getting an idea as to how to get and loop through the approvers based on the list value.

The following is my code

namespace wfmaintenance.Workflow1
{
    public sealed partial class Workflow1 : SequentialWorkflowActivity
    {
        public Workflow1()
        {
            InitializeComponent();
        }

        public string Company;
        public string BusinessProcess;
        public string ListName;
        public string WorkflowName;
        public string WorkflowInitiation;



        
        public Guid workflowId = default(System.Guid);
        public SPWorkflowActivationProperties workflowProperties = new SPWorkflowActivationProperties();

        public SPWorkflowTaskProperties WfTaskProperties = new SPWorkflowTaskProperties();
        public SPWorkflowTaskProperties WfTaskBeforeProperties = new SPWorkflowTaskProperties();
        public Guid WfApproveTaskId = default(Guid);
        public int WfApproveTaskItemId;
        public bool WfApproveComplete = false;

        private void onWorkflowActivated1_Invoked(object sender, ExternalDataEventArgs e)
        {
            /**  Company = workflowProperties.Item["Company"].ToString();
              BusinessProcess = workflowProperties.Item["BusinessProcess"].ToString();
              ListName = workflowProperties.Item["ListName"].ToString();
              WorkflowName = workflowProperties.Item["WorkflowName"].ToString();
              WorkflowInitiation = workflowProperties.Item[" WorkflowInitiation"].ToString();
              checkApprovalStatus();
  **/
        }

        private void notWfTaskApproved(object sender, ConditionalEventArgs e)
        {
            e.Result = !WfApproveComplete;
        }



        private void createWfTask_MethodInvoking(object sender, EventArgs e)
        {
            SPListItem currentItem = workflowProperties.Item;

            // Set up some of the properties.
            WfApproveTaskId = Guid.NewGuid();
            WfTaskProperties.Title = workflowProperties.Item["ListName"].ToString() + " is ready for review";
            WfTaskProperties.Description = "Please review and ensure it is valid.  If it is valid, then please select 'Approved' on this task and save it.";

        }

        private void onWfTaskChanged_Invoked(object sender, ExternalDataEventArgs e)
        {
            //int tid = onWfTaskChanged.AfterProperties.TaskItemId;
            SPListItem task = workflowProperties.Web.Lists["Workflow Tasks"] .GetItemById(WfApproveTaskItemId);

            SPListItem currentItem = workflowProperties.Item;

    try
    {
        
        if (task["Business Approval"] != null)
        {
            // Evaluate the value of the field.
                if (task["Business Approval"].ToString() == "Approved" || task["Business Approval"].ToString() == "Rejected")
                    {
                        WfApproveComplete = true;
                        task[SPBuiltInFieldId.WorkflowVersion] = 1;
                        task["Status"] = "Completed";
                        task.Update();
                    }
                    else
                    {
                        WfApproveComplete = false;
                    }
        }
        else
        {
            WfApproveComplete = false;
        }
    }
    catch (Exception ex)
    {
        WfApproveComplete = false;
    }
}

        private void completeWfTask_MethodInvoking(object sender, EventArgs e)
        {
           
     SPListItem task = workflowProperties.Web.Lists["Workflow Tasks"] .GetItemById(WfApproveTaskItemId);

    //task[SPBuiltInFieldId.WorkflowVersion] = 1;
    //task["Status"] = "Completed";
    //task.SystemUpdate(false);

    SPListItem currentItem = workflowProperties.Item;
    if (task["Business Approval"].ToString() == "Rejected")
    {
        string ListName = workflowProperties.Item["ListName"].ToString();
        string currentTitle = workflowProperties.Item["Status"].ToString();
        workflowProperties.Item["Status"] = ListName + "is Rejected ";
        workflowProperties.Item.Update();
    }
    else
    {
        string ListName = workflowProperties.Item["ListName"].ToString();
        string currentTitle = workflowProperties.Item["Status"].ToString();
        workflowProperties.Item["Status"] =  "is Approved ";
        workflowProperties.Item.Update();
    }
        }
        }




}

    

Thanks


Viewing all articles
Browse latest Browse all 11508

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>