This is the fourth installment in a series about the building permit application, an end-to-end solution built entirely with the 2007 Microsoft Office release. The previous post identified the new InfoPath e-mail attachment options. This post focuses on workflow logic.
Microsoft Office SharePoint Designer 2007 enables site administrators to create workflow logic for any SharePoint list. Within the Workflow Designer, users can specify action sets—which contain conditions and actions—without having to write any custom code.
For the building permit application solution, a workflow is associated with the document library where the form is published. In the first page of the Workflow Designer, the Building Permit Application document library is selected as the SharePoint list to which the workflow is attached. In addition, the options to start the workflow when an item is created or changed are both selected, as shown in the following figure:
If you recall from an earlier post, the RoleID node in the InfoPath form is used to identify the role of the current user. The RoleID node value is updated by the workflow based on the values of certain promoted fields. Note though that the workflow will start every time an item is changed. So, when the action to set the RoleID value is executed, the workflow is triggered again.
In order to prevent the workflow from firing repeatedly after a file is updated, the InfoPath form’s Processing node value is used in each action set. The Processing Boolean is set to true (or Yes) during the InfoPath form’s submit operation. In the workflow, an evaluation of the Processing node is included in the list of conditions for each action set. Then, in the corresponding action, the Processing node is set to false (or No). The following figure shows how the Processing node is used in each of the workflow action sets:
In addition to setting form field values, the workflow performs other actions such as sending dynamic e-mail messages and copying items to the Archived Building Permit Applications document library. In my next post about this solution, I will show how form conversion for archiving is enabled for the Archived Building Permit Applications document library.