33
Building Workflow Apps Through the Web Nathan Van Gheem -- Wildcard Corp. T. Kim Nguyen -- U. of Wisconsin Oshkosh

Building Workflow Applications Through the Web

Embed Size (px)

DESCRIPTION

presented at Plone Symposium East 2011 with Nathan Van Gheem

Citation preview

Page 1: Building Workflow Applications Through the Web

Building Workflow Apps Through the Web

Nathan Van Gheem -- Wildcard Corp.

T. Kim Nguyen -- U. of Wisconsin Oshkosh

Page 2: Building Workflow Applications Through the Web

What we’ll cover

What is a workflow app, why bother, and why use Plone

We have several production workflow apps at UW Oshkosh; many more to come in our campus intranet

Two (and a half) Plone products that let you build workflow apps easily

Walkthrough building a sample workflow app

Future plans

Page 3: Building Workflow Applications Through the Web

What is a workflow app?

a content type (or form) combined with a workflow

workflow: states and transitions (think of a map, and directional paths between stations)

transition guards and actions

roles, permissions, groups

Page 4: Building Workflow Applications Through the Web
Page 5: Building Workflow Applications Through the Web

"Study Abroad" workflow

Page 6: Building Workflow Applications Through the Web

Why use a workflow app?

Stop using & schlepping paper; accelerate business

Plone unique among CMS's in having this ("because it's there")

Online forms are great until you dig a bit deeper...

Time and cost efficiencies of purely online processesOffice of International Education saved 0.5 staff person's time; immediate access from anywhere; reduced filing space needs; fewer copies; can double the number of supported study abroad programs

Page 7: Building Workflow Applications Through the Web

Production workflow apps at UW Oshkosh

International Education Study Abroad (http://app.oie.uwosh.edu)

Parasite sample ordering and reporting (http://www.filariasiscenter.org)

Research grant submission & evaluation (http://www.uwosh.edu/[u]gradgrants)

Project Success (http://www.uwosh.edu/success)

...and several others...

Page 8: Building Workflow Applications Through the Web
Page 9: Building Workflow Applications Through the Web
Page 10: Building Workflow Applications Through the Web
Page 11: Building Workflow Applications Through the Web
Page 12: Building Workflow Applications Through the Web

Why build workflow apps in Plone?

Users already familiar with Plone concepts and user interface

Plone’s workflow engine is a brilliant feature hidden in plain sight!

Natural for online forms to be co-located with “standard” web content (pages, folders, images, files)

Page 13: Building Workflow Applications Through the Web

The brutish past

To build “persistent forms” (aka custom content types): ArchGenXML, Archetypes, Python, paster, HTML, TAL, ZCML

To create a workflow: ZMI portal_workflows, or Python

Painstaking. Slow. Painful. Hard to debug. Clients repeatedly ask for changes to the workflow and to the form.

Example: OIE workflow app design went through 8-10 revisions.

Page 14: Building Workflow Applications Through the Web

The way forward

Through the web! No coding required for basic workflow apps*

Let Plone power users, domain experts, and business analysts do the analysis and design work

It's the only way to scale: making the technology accessible to users, not coders

* some fine print

Page 15: Building Workflow Applications Through the Web

Plone products we'll talk about

D2C ("Data to Content") (uwosh.pfg.d2c)

Workflow Manager (plone.app.workflowmanager)

briefly: North* generator (uwosh.northstar)

Page 16: Building Workflow Applications Through the Web

D2C (uwosh.pfg.d2c)

Use Plone’s natural prototyping tool: PloneFormGen, the Swiss Army/Wenger knife

By adding a special D2C save data adapter, each form submitted becomes a fully-fledged Plone object, with complete Dublin Core metadata, state, searchability

Page 17: Building Workflow Applications Through the Web
Page 18: Building Workflow Applications Through the Web

Workflow Manager (plone.app.workflowmanager)

an AJAXy GUI for creating, editing, and assigning workflows

create states and transitions

assign transitions between states

set transition actions, such as email notifications

control authorization with permissions and roles

Page 19: Building Workflow Applications Through the Web
Page 20: Building Workflow Applications Through the Web

Walkthrough of a sample workflow app

travel expense form: name, date of travel, dollar amount

workflow states: submitted, approved, denied

transitions: approve (submitted -> approved)deny (submitted -> denied)

Page 21: Building Workflow Applications Through the Web

Basics of building

1. Create form2. Clone a content type to use to house the data3. Create workflow4. Assign workflow to cloned type5. Add D2C form adapter6. test type7. show collection using type and workflow

Page 22: Building Workflow Applications Through the Web

Step 1: Build the Form (with PloneFormGen)

Page 23: Building Workflow Applications Through the Web

Step 2: Clone the portal_type to make a “Travel Expense Form” type

Page 24: Building Workflow Applications Through the Web

Step 3: Build the Workflow (with Workflow Manager)

Page 25: Building Workflow Applications Through the Web

Step 4: Assign the workflow to the type

with Workflow Manager GUI, or with Site Setup -> Typesthe workflow will be applied globally

or can create & assign a placeful workflow policythe workflow will be applied locally

Page 26: Building Workflow Applications Through the Web

Step 5: Add the D2C Saved Data Adapter

When adding the D2C, specify that it should use the Travel Expense Form type

Page 27: Building Workflow Applications Through the Web

Step 6: Submit a travel expense form, show the resulting object, transition it

D2C does validations at submit and for edits!

Page 28: Building Workflow Applications Through the Web

Step 7: Show collection with results from form submissions

Page 29: Building Workflow Applications Through the Web

Step 8: Profit!

Page 30: Building Workflow Applications Through the Web

Embrace and Extend: What Else Can You Do?

Q: What if you need to build more custom logic into the form or the workflow? (e.g. - If you need more control over the forms, what’s visible or editable depending on state or role, custom logic, custom transition actions)

A: Use North* product's Generator to generate the file system product (“tarball”)

Hand it off to your programmers

Page 31: Building Workflow Applications Through the Web

Future Schlock - where we'd like to go with this:

more UI help for creating & adding a workflow policy "here" without having to bounce around Site Setup or ZMI; adding metadata & indexes to portal_catalog

graphical front end - something like ArchGenXML except not one-way

workflow queue management: alerts, manual overrides, manager station

At UW Oshkosh: selection of two wide-audience workflow apps to implement; measure outcomes; demonstrate value

Page 32: Building Workflow Applications Through the Web

Links to product pages

http://plone.org/products/ploneformgen

http://pypi.python.org/pypi/plone.app.workflow/

http://plone.org/products/uwosh.pfg.d2c

http://plone.org/products/uwosh.northstar

Page 33: Building Workflow Applications Through the Web

Questions?

Suggestions for product features or directions?

Nathan Van Gheem ([email protected])T. Kim Nguyen ([email protected])

http://www.uwosh.edu/plone