Imagine you have a list or library item of a custom contenttype and you want a user to update an existing field of the contenttype via a “Collect data from a user” action. Further you want the Task to show the current value of this existing Field when it is edited by the user. After completing the Task, the new value of the field should be saved to the original Item on which the workflow was started. A complete circle:

First you need a custom contenttype. I created an example contenttype with 1 extra column: “Some Extra Comment”. The value of this column will be sent to the Task. Add the newly created contenttype to a Document Library.

Next in SharePoint Designer you create a new reusable workflow for the contenttype you have just created. Add the action “Collect data from a user” to the workflow. Enter a title (I named it “Get some data”) and optional a description for the action and click next. Now add a field named “ExtraComment” of type “Single line of text”:

Click next and leave the default value empty. Click finish. Add a “User” to you “Collect data from a user” action. Your action should now look something like this:

Now this is very important: The ID of the newly created Task will be stored in the local workflow variable “collect”.

Next save and publish the workflow and associate the workflow with the contenttype:

Now add a document to your library with your newly created contenttype and run the workflow on the document. This is necessary because the custom column in your “Collect data from a user” action (“ExtraComment”) has to be added to the Task list. This is done at the moment a Task is created.

So go to your task list and be sure a task is created in the task list. Next complete the task. The workflow on the original item should now also be completed.

Now re-open the workflow in SharePoint Designer and add the “Set Field in Current Item” action. This action will be executed AFTER the Task has been completed. So “ExtraComment” will have its new value and we have to get this value from the task in the tasks list:

Everything is pretty standard: the datasource to get the value from is “Tasks”. The field is “ExtraComment”. The specific item the value should come from is the value where ID equals “collect” (which is, as you will remember, the ID of the task that was created).

Your workflow should now look something like this:

Publish your workflow. At this moment all you need to do is make sure that when the task is created, it gets the current value of “Some Extra Comment” from the item the workflow is run on. For that we need to create a List Workflow on the task List:

Add a “Set Field in Current Item” Action. Now this time the datasource is the document library that has the original workflow item (in my case I used “Shared Documents”). The field you want the value from is “Some Extra Comment” and the specific item you want this data from is where the ID corresponds to the field “Workflow Item ID”:

Your Task List workflow should look something like this:

Publish your Task List Workflow.

Now make sure that the Task List Workflow is automatically started when a Task is created. You need to do this because the data from the original Item has to be retracted on the moment of Task creation. You can do this in SharePoint Designer under “List and Libraries”, next select the Task list and change the settings of your workflow to:

Save the settings. Everything should work now! Add a document to your library and set “Some Extra Comment” to “This is my first comment”. Now run the workflow and open your Task. It should look something like this:

Add some text to the “ExtraComment” field and complete the Task:

Now go back to your your original item. The workflow should be completed. Next select “View Properties”:

A complete circle!