Developing Workflows: Things I’ve learnt along the way<br />Jackie Pollock<br />j.pollock@kainos.com<br />
Who am I?<br />2<br />Software Engineer at Kainos Software<br />Enterprise Content Management (ECM)<br />Technology Stack:...
Overview<br />Defining a Workflow<br />Designing Workflows<br />Considerations while developing<br />Long term maintenance...
What is a Workflow?<br />Definition:<br />The automation of a business process, in whole or in<br />part, during which doc...
Workflow Engine Products<br />Windows Workflow Foundation (WF)<br />K2 BlackPearl<br />SharePoint<br />K2 BlackPoint<br />...
Workflow GUI Products<br />Custom ASP.NET sites<br />WinForm Applications<br />InfoPath Forms<br />SharePoint Lists<br />6...
Designing Workflows<br />Thought Processes<br />Pen & paper<br />Visio<br />Process Flow<br />Keep flow generic<br />Finis...
Designing Workflows<br />Data Storage<br />Application database<br />Process fields<br />Process database<br />Design Patt...
Designing Processes- Sequential<br />9<br />
Designing Processes - Interdependent<br />10<br />
Developing Workflows<br />Starting Processes<br />Code linking into API<br />Database Trigger<br />ASP.NET/ WinForm Applic...
Developing Workflows<br />Separation of Concerns<br />Process code<br />Process logic<br />Unit Testing<br />Setup test ha...
Developing Workflows<br />Breaking out of process blocks<br /><ul><li>Using GoTo within process block
Use next stage variable instead</li></ul>Use flags to block off functionality<br />13<br />
Goto within stage - Initial Setup<br />14<br />
Goto within stage- After goto fires<br />15<br />
Developing Workflows<br />Returning to Previous Stages<br />Resetting values<br />If statements without else statements<br...
Supporting/ Maintenance<br />Ability to recreate workflows<br />Data and location in workflow<br />Redeployment of code<br...
Summary<br />Easier to manage simpler processes<br />Think about loopbacks to previous stages<br />Data Storage<br />Log e...
Thanks for listeningAny Questions?<br />19<br />
Upcoming SlideShare
Loading in …5
×

Developing Workflows: Things I've learnt along the way

4,124 views

Published on

Presentation initially delivered at DeveloperDeveloperDeveloper Dublin (dddie). Discusses developing workflows using K2 Blackpearl and some design considerations while you are doing so.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
4,124
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
60
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • 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.
  • Developing Workflows: Things I've learnt along the way

    1. 1. Developing Workflows: Things I’ve learnt along the way<br />Jackie Pollock<br />j.pollock@kainos.com<br />
    2. 2. Who am I?<br />2<br />Software Engineer at Kainos Software<br />Enterprise Content Management (ECM)<br />Technology Stack: <br />Autonomy Records Management<br />ASP.NET / C#<br />K2 Workflow<br />NIMTUG Steering Group Member<br />
    3. 3. Overview<br />Defining a Workflow<br />Designing Workflows<br />Considerations while developing<br />Long term maintenance<br />3<br />
    4. 4. What is a Workflow?<br />Definition:<br />The automation of a business process, in whole or in<br />part, during which documents, information or tasks<br />are passed from one participant to another for<br />action, according to a set of procedural rules.<br />4<br />
    5. 5. Workflow Engine Products<br />Windows Workflow Foundation (WF)<br />K2 BlackPearl<br />SharePoint<br />K2 BlackPoint<br />5<br />
    6. 6. Workflow GUI Products<br />Custom ASP.NET sites<br />WinForm Applications<br />InfoPath Forms<br />SharePoint Lists<br />6<br />
    7. 7. Designing Workflows<br />Thought Processes<br />Pen & paper<br />Visio<br />Process Flow<br />Keep flow generic<br />Finishing workflow cleanly<br />Sleeping processes<br />7<br />
    8. 8. Designing Workflows<br />Data Storage<br />Application database<br />Process fields<br />Process database<br />Design Patterns<br />Independent<br />Sequential<br />Interdependent/Networked<br />8<br />
    9. 9. Designing Processes- Sequential<br />9<br />
    10. 10. Designing Processes - Interdependent<br />10<br />
    11. 11. Developing Workflows<br />Starting Processes<br />Code linking into API<br />Database Trigger<br />ASP.NET/ WinForm Application<br />EDRM System<br />Scanning Release Script eg Kofax, Teleform<br />Manual start from user<br />11<br />
    12. 12. Developing Workflows<br />Separation of Concerns<br />Process code<br />Process logic<br />Unit Testing<br />Setup test harness for process<br />Unit tests on process logic<br />Logging<br />Always give workflow status and unique identifier<br />Give as much information on current state as possible<br />12<br />
    13. 13. Developing Workflows<br />Breaking out of process blocks<br /><ul><li>Using GoTo within process block
    14. 14. Use next stage variable instead</li></ul>Use flags to block off functionality<br />13<br />
    15. 15. Goto within stage - Initial Setup<br />14<br />
    16. 16. Goto within stage- After goto fires<br />15<br />
    17. 17. Developing Workflows<br />Returning to Previous Stages<br />Resetting values<br />If statements without else statements<br />16<br />
    18. 18. Supporting/ Maintenance<br />Ability to recreate workflows<br />Data and location in workflow<br />Redeployment of code<br />Workflow/ Logic<br />Transferring running processes to new workflow versions<br />Long term sleeping processes<br />17<br />
    19. 19. Summary<br />Easier to manage simpler processes<br />Think about loopbacks to previous stages<br />Data Storage<br />Log everything about state of affairs<br />Unit Testing<br />Recreating workflows and redeployment of code<br />18<br />
    20. 20. Thanks for listeningAny Questions?<br />19<br />
    21. 21. Developing Workflows: Things I’ve learnt along the way<br />Jackie Pollock<br />j.pollock@kainos.com<br />

    ×