When using one workflow for approval and another workflow for updating a field, you can use "Wait for field change in current item", to update field when the approval is made (either approved code 16, rejected code 17, In progress code 2) here is an example:
Wait for MomoApproval to equal 16 then set Notification to Final
This code will not fire when the approval is made because SharePoint modifies a field that is related to the workflow; this field does not belong to the schema of the list. Therefore, change on the workflow status does not trigger an item change event. Without an item change event the second workflow will remain idle and the "Wait for field change in current item" action will seem useless, to bypass this behaviour of SharePoint 2010 Approval workflow, do the following:
- Open SharePoint designer 2010
- Go to the site you are working on
- Click on workflows
- Right click on Approval workflow
- Click copy and modify
- Go to the concerned list
- Click associate existing workflow
- Now within this workflow, click edit workflow, click Approval workflow task
- Click change the behaviour of the single Task
- Go to the complete section and add this action "set Title to Current Item: Title"
This will change the title field within the schema of the list which will trigger an item change event but the value of the title is going to remain the same, this action will have no effect on data content of the list. This is simple workaround that work fine and that will cost less in comparison to other solutions such as creating an activity, looping, or pausing and restarting workflows
Once created the workflow can be imported to visual studio 2010 and be part of the solution please refer to this link : http://msdn.microsoft.com/en-us/library/ee231580.aspx
Enjoy your workflow updates
Note: The workflow that is updating the field should be bound to start when there is an item change within the list.
Mohamed Hachem