actions rules and workflow in alfresco

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

Upload: alfresco-software

Post on 14-Jan-2015

8.256 views

Category:

Technology


7 download

DESCRIPTION

Slide deck to accompany webinar on September 21st

TRANSCRIPT

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