developing workflows: things i've learnt along the way

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

Upload: jackie-pollock

Post on 01-Nov-2014

3.097 views

Category:

Technology


0 download

DESCRIPTION

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

TRANSCRIPT

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]