20
Presented By: Email: Developing Workflows: Things I’ve learnt along the way Jackie Pollock [email protected]

Developing Workflows: Things I've learnt along the way

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Developing Workflows: Things I've learnt along the way

Presented By:

Email:

Developing Workflows: Things I’ve learnt along the way

Jackie Pollock

[email protected]

Page 2: Developing Workflows: Things I've learnt along the way

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

Page 3: Developing Workflows: Things I've learnt along the way

Overview

• Defining a Workflow• Designing Workflows• Considerations while developing• Long term maintenance

3

Page 4: Developing Workflows: Things I've learnt along the way

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

Page 5: Developing Workflows: Things I've learnt along the way

Workflow Engine Products

• Windows Workflow Foundation (WF)• K2 BlackPearl• SharePoint• K2 BlackPoint

5

Page 6: Developing Workflows: Things I've learnt along the way

Workflow GUI Products

• Custom ASP.NET sites• WinForm Applications• InfoPath Forms• SharePoint Lists

6

Page 7: Developing Workflows: Things I've learnt along the way

Designing Workflows

• Thought Processes- Pen & paper- Visio

• Process Flow- Keep flow generic- Finishing workflow cleanly- Sleeping processes

7

Page 8: Developing Workflows: Things I've learnt along the way

Designing Workflows

• Data Storage- Application database- Process fields- Process database

• Design Patterns- Independent- Sequential- Interdependent/Networked

8

Page 9: Developing Workflows: Things I've learnt along the way

Designing Processes- Sequential

9

Page 10: Developing Workflows: Things I've learnt along the way

Designing Processes - Interdependent

10

Page 11: Developing Workflows: Things I've learnt along the way

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

Page 12: Developing Workflows: Things I've learnt along the way

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

Page 13: Developing Workflows: Things I've learnt along the way

Developing Workflows

• Breaking out of process blocks- Using GoTo within process block

- Use next stage variable instead

- Use flags to block off functionality

13

Page 14: Developing Workflows: Things I've learnt along the way

Goto within stage - Initial Setup

14

Page 15: Developing Workflows: Things I've learnt along the way

Goto within stage- After goto fires

15

Page 16: Developing Workflows: Things I've learnt along the way

Developing Workflows

• Returning to Previous Stages- Resetting values- If statements without else statements

16

Page 17: Developing Workflows: Things I've learnt along the way

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

Page 18: Developing Workflows: Things I've learnt along the way

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

Page 19: Developing Workflows: Things I've learnt along the way

Thanks for listening

Any Questions?

19

Page 20: Developing Workflows: Things I've learnt along the way

Presented By:

Email:

Developing Workflows: Things I’ve learnt along the way

Jackie Pollock

[email protected]