Workflow Design Canvas
The WebPart Design Page is comprised of different sections.
1) Input Data, Output Data and Services
This is the left pane, which contains three tabs. Input Data tab shows the input of the workflow. Output tab shows the output and it’s blank if there is no log. Services tab is the most important. You can drag items in this tab to the workflow canvas and design your flow.
2) Workflow Canvas
This is the main area of the Workflow Design Canvas. It shows the flow you are building visually.
3) Property Editor
Any item selected (WebPart, Section, Web Control) has associated properties. This Property editor allows you to view the properties of whatever is selected and edit them.
4) Tab Selector
The developer on the Workflow Design Canvas can have multiple windows opened. This is maintained by the tabs at the top of the page. Three tabs will always be open: Workflow, Settings, and Log.
Settings allows the developer to edit Workflow Name, Description, Entity Type and Roles.
Log allows the developer to see the logs for the Workflow. This is the same as the Application Logs screen, but it is automatically filtered to only show the results from the Workflow that is open.
Left Pane: Input, Output and Services
Input Data Tab
This is for view only and let you know what is the required in the Workflow. When you call CreateRequest, these values must be specified.
Output Data Tab
This is for view only and will be blank if there is no log for the Workflow.
You can use the connectors to connect two Statues if it is hard to draw a direct line between them and keep the canvas clean. It is very important the the name of the connector matches. Otherwise, it will not go to the next status you want.
This is the last status of the Workflow. Once a workflow request reaches this Status, the workflow is completed and the request can not go to any other Status.
This is the first Status of the Workflow. Once a workflow request is initiated, it goes to the first Status after Start automatically. Start must connect with one and only one Status.
This is the main component of a Workflow. A Workflow is composed of multiple statuses that allow the request to move from person to person. Each status can have ether a static owner or a dynamic owner in which you can assign in the Status Arrival Process. A Status consists of the following components.
Status Arrival Process
The Status Arrival Process can be enabled through the properties of a Status.
This process is called as soon as the workflow request hits that status. For example, if it is a new request created with the CreateRequest service, the status arrival for the First Status of the workflow will be called at that time. The status arrival process for the next status will be called after you exit from the first status and so on.
The Status Arrival Process is a good place to set dynamic owners, and send emails to that person informing them the request is awaiting their approval.
Complete Status Process
The Complete Status Process is triggered from a Execute Workflow service call.
The Complete Status Process will determine which status exit the request will take next. You will use the Action input from the ExecuteWorkflow service to determine whether the request was approved or denied and exit the corresponding status exit.
After you define the Status Exits for a status, the Services in this process will be auto generated for you to connect based on the input.
Status Exit Process
The Status Exit Process is triggered after the current Status is exited.
This process is not required for the workflow to operate, but there might be some reason you would need this process because of its execution time. For example, if you want to send an email out thanking the user for approving the request at that status, or update a flag in the table no matter if the request is approved or not.
The following screen will open once you double click the owners icon on the Status. From the screen, you can add or remove static owner to the Status.
The following screen will open once you double click the Exit icon. Status Exits are defined per Status. Some Statuses may have an Approve and Deny status exit, some may have an Any status exit which means it only has 1 status exit.
You can direct which status exit to take in the Complete Status Process for the status. After you define the status exits for the status, the Services for the Status Exits will be auto generated for you in the Complete Status Process.
Middle: Workflow Canvas
The Workflow Canvas is a visual representation of the Workflow you're creating. Clicking any node in the canvas will populate the node's properties in the property editor.
Right Panel: Properties Section
The Right section is the Properties Section. You can click any object (Status, Connector) on the canvas and view/set its properties in this panel. Properties are categorized and vary between different object. The properties entered help further configure the object to be unique and give the desired functionality.
The top tabs display different areas you have open. If you have double-clicked into a Status Arrival Process, it opens a tab to show the process canvas. You can then click back and forth between the tabs to return to the Workflow Canvas. Three tabs will always remain open: Workflow, Settings and Log.
This is the view of the Workflow which we have discussed in the above chapter.
This is the place you can change the Name, Description and Entity Type to the Workflow. You can also use the button on the right to edit Roles and Users. It opens the same screen as we have discussed under Workflow Overview.
This shows the logs from the Workflow. Each time the Workflow runs, it can generate logs (if logs are turned on) and they can be viewed here. This can be very helpful when troubleshooting your logic because you can see how many times things loaded, what order they loaded in, and what they were doing.
This is the same logs screen that shows when accessing Application logs. The only difference is that the log records shown will be filtered to only show the current Workflow logs. This will make a lot of the log object filter options not necessary.
For more information on this page, see the explanation of Application Logs.