forge

Ten Issues and Resolutions for SharePoint Workflow

I’ve been meaning to get caught up on blogging for a while now but it seems like the need to be productive has overwhelmed the desire to get some of the challenges I’ve run into written down.  As it happens, however, I just got derailed by another issue, so it’s a perfect time to reflect upon some of the issues I found, and resolutions to them. (I’ll post the resolution to my latest issue sometime after I get it.)

Help Your SharePoint User
  • Issue: If you define a field <Field> with a ReadOnly attribute it doesn’t show up in the interface anywhere.
    Resolution: Set the field as ReadOnly in the <ContentType> <FieldRef> instead.  This allows it to appear. (Thanks Manish.)
  • Issue: If you make changes to a <Field> definition it isn’t seen.
    Resolution: Add the DisplaceOnUpgrade=”TRUE” attribute to force the updates to be seen.
  • Issue: Changes made to a content type aren’t seen by a list the content type was already associated with.
    Resolution: Remove and reassociate the content type with the list from the user interface.  (Sorry, I don’t have a programmatic resolution to this one.)
  • Issue: Receive an exception “SPException: This task is currently locked by a running workflow and cannot be edited.” while trying to edit a task.
    Resolution: Workflow locks the tasks it creates – except from within the context of an UpdateTask, an OnTaskChanged, CompleteTask, or RollBackTask activity.  If you’re trying to modify the workflow from the web/user interface, make sure that the workflow is in a listen activity listening for a OnTaskChanged event.  If you’re in the workflow itself you’ll need to do it from an UpdateTask activity.
  • Issue: My changes to a task inside an UpdateTask activity aren’t recognized.
    Resolution: Use the SPWorkflowTaskProperties object attached to UpdateTask to update the task properties.  These will be written out during UpdateTask and since they’re not synchronized to the list item, they will be out of sync and overwrite your changes.
  • Issue: Some of the fields in my task are getting overwritten when I do an UpdateTask in the workflow.
    Resolution: UpdateTask writes out whatever is in the SPWorkflowTaskProperties – including extended properties – and since these are not synchronized with the task itself – may be out of date.  Make sure that you write out the correct values to SPWorkflowTaskProperties so they are updated correctly.
  • Issue: I’m using SPListItem.SystemUpdate() and the workflow OnTaskChangedActivity fires.
    Resolution: I don’t know.  Even SystemUpdate() seems to trigger the OnTaskChangedActivity.
  • Issue: Fields that are in the task list aren’t being displayed in the edit or display forms for the workflow tasks created.
    Resolution: Workflow tasks are designed to work with a specific content type.  This content type is added to the task list – even if managing content types is turned off.  The display form and edit form are the forms associated with the content type.  To get more fields to be displayed and to be editable define your own content type.  Then either specify the TaskListContentTypeID attribute of the <Workflow> node in the element XML file or use the CreateTaskWithContentType rather than CreateTask activity.
  • Issue: My workflow is completing but isn’t going through the entire path – or my fault handler.
    Resolution: In my particular case, I had an issue with serialization where one of the properties of my custom activity (to send email) wasn’t serializable.  However, the reported exception wasn’t the actual exception being raised and it was recorded in the ULS.  Verify that your custom activities can serialize correctly.
  • Issue: SPWorkflowTaskProperties.ExtendedProperties aren’t populating the fields in my task.
    Resolution: In my particular case, I had somehow managed to get multiple fields in the task list with the same name.  (I’m not sure how precisely.)  I deleted the extra fields and CreateTask started populating the fields in the task.
2 replies
  1. Anand
    Anand says:

    Hi Robert,

    Thanks for this information. Indeed, these were the very issues that I faced in workflows during my implementations.

    I have another issue. Could you please help me out with the same. Here is the scenario: I have a Infopath form – “FormA” that I have published to a forms library. Once filled and submitted, it kicks off a workflow. OnCreateTask activity, I am able to see the data submitted in “FormA” and Task form getting those values. However, if I change the values in the task edit form, I am not able to see those changes in the onTaskChanged activity.

    Any help on this would indeed be appreciated.

    Thanks & Regards,
    Anand

Comments are closed.