Jackie Pollock discusses lessons learned in developing workflows. Some key points include: defining workflows upfront using tools like pen and paper or Visio; considering data storage and design patterns like sequential or interdependent processes; separating workflow code, logic, and testing; ensuring processes can be restarted or transferred to new versions; and maintaining thorough logging for process status and unique identifiers. The document provides examples of goto statements within workflow stages and returning to previous stages. Overall, the document emphasizes planning workflows carefully, enabling maintenance over the long term, and logging details to support troubleshooting.
2. Who am I? 2 Software Engineer at Kainos Software Enterprise Content Management (ECM) Technology Stack: Autonomy Records Management ASP.NET / C# K2 Workflow NIMTUG Steering Group Member
3. Overview Defining a Workflow Designing Workflows Considerations while developing Long term maintenance 3
4. What is a Workflow? Definition: The automation of a business process, in whole or in part, during which documents, information or tasks are passed from one participant to another for action, according to a set of procedural rules. 4
5. Workflow Engine Products Windows Workflow Foundation (WF) K2 BlackPearl SharePoint K2 BlackPoint 5
6. Workflow GUI Products Custom ASP.NET sites WinForm Applications InfoPath Forms SharePoint Lists 6
7. Designing Workflows Thought Processes Pen & paper Visio Process Flow Keep flow generic Finishing workflow cleanly Sleeping processes 7
8. Designing Workflows Data Storage Application database Process fields Process database Design Patterns Independent Sequential Interdependent/Networked 8
11. Developing Workflows Starting Processes Code linking into API Database Trigger ASP.NET/ WinForm Application EDRM System Scanning Release Script eg Kofax, Teleform Manual start from user 11
12. Developing Workflows Separation of Concerns Process code Process logic Unit Testing Setup test harness for process Unit tests on process logic Logging Always give workflow status and unique identifier Give as much information on current state as possible 12
13.
14. Use next stage variable insteadUse flags to block off functionality 13
18. Supporting/ Maintenance Ability to recreate workflows Data and location in workflow Redeployment of code Workflow/ Logic Transferring running processes to new workflow versions Long term sleeping processes 17
19. Summary Easier to manage simpler processes Think about loopbacks to previous stages Data Storage Log everything about state of affairs Unit Testing Recreating workflows and redeployment of code 18
Kainos HQ Belfast: Other locations- Dublin, London, PolandECM- Document management- paperless offices, workflow processesAlso mention nwtug- Alan Bradley
A workflow management system is a computer system that manages and defines a series of tasks within an organisation to produce a final outcome or outcomes…At each stage in the workflow, one individual or group is responsible for a specific task. Once the task is complete, the workflow software ensures that the individuals responsible for the next task are notified and receive the data they need to execute their stage of the process. Workflow management systems also automate redundant tasks and ensure uncompleted tasks are followed up.
Independent/Pooledwhere each component of the work is completed independent of each other component and no component has a specific dependency on any other component. An example would be where staff are serving at a counter - Raoul can serve a customer in his queue without waiting for Jamie to serve a customer in his queue.Sequentialwhere each component of the work is dependent on the preceding component. In this case the preceding component controls the advancement of the workflow through subsequent components. An example would be on a production line - Betty cannot affix the radiator cap to the Model T Ford until Veronica has put the radiator in place.Interdependent/Networkedwhere each component of the work is dependent on one or a number of other components being completed. In this case the preceding components control the workflow through subsequent components. An example would be a project team - Sarah must wait for several tasks to be completed by Kevin and George before she can execute her task.
Sequentialwhere each component of the work is dependent on the preceding component. In this case the preceding component controls the advancement of the workflow through subsequent components. An example would be on a production line - Betty cannot affix the radiator cap to the Model T Ford until Veronica has put the radiator in place.Interdependent/Networkedwhere each component of the work is dependent on one or a number of other components being completed. In this case the preceding components control the workflow through subsequent components. An example would be a project team - Sarah must wait for several tasks to be completed by Kevin and George before she can execute her task.
Interdependent/Networkedwhere each component of the work is dependent on one or a number of other components being completed. In this case the preceding components control the workflow through subsequent components. An example would be a project team - Sarah must wait for several tasks to be completed by Kevin and George before she can execute her task.