Actions rules and workflow in alfresco

37
The Learning Pathway Actions Rules and Simple and Advanced Workflow Integration Use Cases Jörg Sauer

description

Slide deck to accompany webinar on September 21st

Transcript of Actions rules and workflow in alfresco

Page 1: Actions rules and workflow in alfresco

The Learning Pathway

Actions Rules and Simple and Advanced Workflow Integration Use Cases

Jörg Sauer

Page 2: Actions rules and workflow in alfresco

The longest title ever

•  Actions, Rules and Simple and Advanced Workflow Integration Use Cases is about o  Actions to extend Alfresco functionality o  Rules to automate execution of Actions o  Use Simple Workflows to implement a Workflow

without coding •  Add Rules to run certain Actions in Workflow steps •  Use a simple Advanced Workflow to leverage Tasks

in Simple Workflows

Page 3: Actions rules and workflow in alfresco

Basic Example to be extended

•  Review Publish Workflow with 2 phase approval

1 Drafts 2 Review 3 Approve 4 Published

review

reject

approve publish

reject

Page 4: Actions rules and workflow in alfresco

Simple Workflow

•  Pros: o  User can build workflow o  Easy to understand

• Cons: o  No State: Implicit state by location (folder) o  No Task: Implicit task by folder access o  No branching: Serial workflow only

1 Drafts 2 Review 3 Approve 4 Published

review

reject

approve publish

reject

Page 5: Actions rules and workflow in alfresco

Demo Simple Workflow

Page 6: Actions rules and workflow in alfresco

Adding Status

• Content Model: o  Provide custom Aspect to hold workflow status

Page 7: Actions rules and workflow in alfresco

Amend Workflow with status

•  Set Status on each workflow folder o  Add Aspect: Workflow Status o  Set workflow status accordingly

1 Drafts 2 Review 3 Approve 4 Published

review approve publish

reject

reject

• Status: draft • Status: under review • Status: pend. approval • Status: published

Page 8: Actions rules and workflow in alfresco

After configuration

Page 9: Actions rules and workflow in alfresco

Transfer Status to incoming documents

•  JavaScript to copy status

•  Execute by Rule

Page 10: Actions rules and workflow in alfresco

Simple Workflow Status Demo

Page 11: Actions rules and workflow in alfresco

Alfresco Repository Actions

•  Action: Unit of work that is performed against a node •  Examples:

o  Move node o  Transform content of node o  Send email

•  Out of the Box Actions •  Custom Actions

o  Implement own Action class o  Deploy in Application Context

Page 12: Actions rules and workflow in alfresco

Implement Copy Workflow Status Action

Page 13: Actions rules and workflow in alfresco

Deploy Action (Application Context)

•  Beans: webinar-action-context.xml

•  Labels: webinar-action.properties

Page 14: Actions rules and workflow in alfresco

Simple Workflow: Implementation Details

•  Documents amended with properties for o  Approve step label, copy/move, destination o  Reject step label, copy/move, destination

(all optional)

Page 15: Actions rules and workflow in alfresco

Intention: Create User Task

o  Every time simple workflow is assigned, create advanced workflow task for specific user.

o  User can •  access task in task list •  see task description •  access attached document •  approve or reject directly from within task

o  Advantage •  No notification emails •  No need to check simple workflow folders

Page 16: Actions rules and workflow in alfresco

Simple Workflow Task Architecture

•  Required: o  Custom aspect for task description.

(attached to simple workflow folder) o  Advanced workflow to be started by rule

•  Configure user •  Provide task •  Implement simple workflow actions for

– Approve –  Reject

o  Bug Fix for Alfresco StartWorkflowActionExecuter o  UI for Rule Config

Page 17: Actions rules and workflow in alfresco

Workflow Description Aspect

Page 18: Actions rules and workflow in alfresco

Simple Workflow Task Advanced Workflow

Page 19: Actions rules and workflow in alfresco

Content Model for Workflow

•  Aspects: o  simpleWorflow: Manage Action Labels

•  Content Types: o  simpleWfTaskStart: Properties for Start Task

•  Assignee •  Task Description •  Simple Workflow Approve & Reject Action Labels •  All above become process variables!

o  ApprovalOnlyTask: Task properties to approve document o  ApproveOrRejectTask: Properties for approving or rejecting the

document

•  Simplicity: all in sample model •  Best practice: own workflow model

Page 20: Actions rules and workflow in alfresco

Workflow Model (partial)

Page 21: Actions rules and workflow in alfresco

Simple Process Definition

• Create Process Definition o  Graphically o  Change root tag:

o  Add Swimlanes

o  Add tasks to task node, will render UI

Page 22: Actions rules and workflow in alfresco

Workflow Deployment

•  Attention: No actions implemented yet! •  But want to check if model is correct &

workflow deploys • Context file:

•  Redeploy off on production systems!

Page 23: Actions rules and workflow in alfresco

Workflow Actions

•  User decides in task to o  Approve o  Reject

• Workflow will transition to nodes o  approveDocument: code will approve simple

workflow o  rejectDocument: code will reject simple workflow

•  Todo: Implement Event Handler o  for node-enter event (approve / reject)

Page 24: Actions rules and workflow in alfresco

Code (sneaking)

•  UI has actions for approve/reject •  Look for action definition in web-client-

config-actions.xml

•  Sample implementation can be found in DocumentDetailsDialog.approve() / reject() methods!

•  OpenSource Rules!

Page 25: Actions rules and workflow in alfresco

Review Alfresco implementation

•  DocumentDetailsDialog.approve()

Page 26: Actions rules and workflow in alfresco

Direct Code reuse

•  Problem: o  From Package org.alfresco.web.bean o  Workflow Event not within web context. o  DocNode not core object

•  Solution: o  Reprogram but use native Foundation Services API o  Should be fool proof ;-)

Page 27: Actions rules and workflow in alfresco

Lets get the event

•  Define in Process Definition

•  Derive from JBPMSpringActionHandler

Page 28: Actions rules and workflow in alfresco

What to Implement Where

•  initializeHandler(): o  Get all services needed from the factory

•  ServiceRegistry (in case you need something) •  NodeService to deal with the node •  CopyService to copy/move the document

•  execute(): o  Get the process variables through executionContext o  Implement the approve / reject action

Page 29: Actions rules and workflow in alfresco

Hiding Reject Transition if Not Set

•  Hide reject transition accordingly o  task-assign event (has to be this event!) o  use bpm:hiddenTransitions (bpm_hiddenTransitions)

Page 30: Actions rules and workflow in alfresco

Testing First Version

•  Redeploy •  Manually start Simple Workflow Task workflow •  Fill in all details in the start form •  Test both scenarios:

o  Approval only (reject transition hidden?) o  Approve or Reject

•  Task should show up in task list •  Open Task and pick Action •  Check if document has been moved / copied

according to Simple Workflow configuration.

Page 31: Actions rules and workflow in alfresco

What’s Missing

•  Action to start Simple Workflow Task Workflow o  Repository Action

•  UI to fill in Assignee in Rules Configuration o  Action Handler

•  Simple approach: o  Use JavaScript to start Workflow

•  Either fixed assignee or •  assignee is property of folder

Page 32: Actions rules and workflow in alfresco

Life Code Review in IDE

•  JavaScript to start workflow •  Action Executer •  Action Handler •  Event Implementation

Page 33: Actions rules and workflow in alfresco

Final Demo

•  Configured Simple Workflow •  Add Rule to kick off Simple Workflow Task

Workflow •  Push Document into folder with simple workflow.

o  Review document status o  Search for documents with status o  Review task list

•  Manage tasks o  See documents transition through simple workflow by using

advanced workflows functionality

Page 34: Actions rules and workflow in alfresco

Resume

•  Actions extend Alfresco •  Simple workflows can be configured easily •  Rules are the binding glue •  Small advanced workflows can be leveraged in

actions and simple workflows. •  Your imagination is the border •  Alfresco OpenSource helps you to code and

find solutions to your problems.

Page 35: Actions rules and workflow in alfresco

Resources

•  Training o  Alfresco API Development Course (3 days) o  Alfresco Workflow Course (2 days)

•  Alfresco (API) Documentation o  http://docs.alfresco.com/3.4/index.jsp

•  Wiki Resources o  http://wiki.alfresco.com/wiki/Data_Dictionary_Guide o  http://wiki.alfresco.com/wiki/Custom_Actions o  http://wiki.alfresco.com/wiki/Custom_Action_UI o  http://wiki.alfresco.com/wiki/Workflow o  http://wiki.alfresco.com/wiki/WorkflowAdministration

•  Books o  Alfresco Developer Guide (Packt Publishing) o  Professional Alfresco (Wrox Press)

Page 36: Actions rules and workflow in alfresco

Questions?

Email: [email protected] Twitter: joergsauer In Person: DevCon 2011 London

Page 37: Actions rules and workflow in alfresco

Have you got your ticket yet?

DevCon Americas 2011

26-27th October at the Hard Rock Hotel, San Diego, CA

Get some preconference training in on 25th October choose from Jump Start or Advanced Alfresco

∞∞∞∞∞∞∞∞∞

DevCon EMEA & APAC 2011

9-10th November at Prospero House, Central London, UK

Get some preconference training in on 8th November choose from Jump Start or Advanced Alfresco