SlideShare a Scribd company logo
1 of 39
The Learning PathwayActions Rules and Simple and Advanced Workflow Integration Use CasesJörg Sauer
The longest title ever Actions, Rules and Simple and Advanced Workflow Integration Use Casesis about Actions to extend Alfresco functionality Rules to automate execution of Actions 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
Basic Example to be extended Review Publish Workflow with 2 phase approval review approve publish reject 1 Drafts 3 Approve 4 Published 2 Review reject
Simple Workflow Pros: User can build workflow Easy to understand Cons: No State: Implicit state by location (folder) No Task:  Implicit task by folder access No branching: Serial workflow only review approve publish reject 1 Drafts 3 Approve 4 Published 2 Review reject
Demo Simple Workflow
Adding Status Content Model: Provide custom Aspect to hold workflow status
Amend Workflow with status Set Status on each workflow folder Add Aspect: Workflow Status Set workflow status accordingly reject review approve publish reject 1 Drafts 3 Approve 4 Published 2 Review ,[object Object]
Status: under review
Status: pend. approval
Status: published,[object Object]
Transfer Status to incoming documents JavaScript to copy status Execute by Rule
Simple Workflow Status Demo
Alfresco Repository Actions Action:	Unit of work that is performed against a node Examples: Move node Transform content of node Send email Out of the Box Actions Custom Actions Implement own Action class Deploy in Application Context
Implement Copy Workflow Status Action
Deploy Action (Application Context) Beans: webinar-action-context.xml Labels: webinar-action.properties
Simple Workflow: Implementation Details Documents amended with properties for Approve step label, copy/move, destination Reject step label, copy/move, destination(all optional)
Intention: Create User Task Every time simple workflow is assigned, create advanced workflow task for specific user. User can access task in task list see task description access attached document approve or reject directly from within task Advantage No notification emails No need to check simple workflow folders
Simple Workflow Task Architecture Required: Custom aspect for task description.(attached to simple workflow folder) Advanced workflow to be started by rule Configure user Provide task Implement simple workflow actions for Approve Reject Bug Fix for Alfresco StartWorkflowActionExecuter UI for Rule Config
Workflow Description Aspect
Simple Workflow Task Advanced Workflow
Content Model for Workflow Aspects: simpleWorflow: Manage Action Labels Content Types: simpleWfTaskStart: Properties for Start Task Assignee Task Description Simple Workflow Approve & Reject Action Labels All above become process variables! ApprovalOnlyTask: Task properties to approve document ApproveOrRejectTask: Properties for approving or rejecting the document Simplicity: all in sample model Best practice: own workflow model
Workflow Model (partial)
Simple Process Definition Create Process Definition Graphically Change root tag:  Add Swimlanes Add tasks to task node, will render UI
Workflow Deployment Attention: No actions implemented yet! But want to check if model is correct &workflow deploys Context file: Redeploy off on production systems!
Workflow Actions User decides in task to Approve Reject Workflow will transition to nodes approveDocument: code will approve simple workflow rejectDocument: code will reject simple workflow Todo: Implement Event Handler for node-enter event(approve / reject)
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!
Review Alfresco implementation DocumentDetailsDialog.approve()
Direct Code reuse Problem:  From Package org.alfresco.web.bean Workflow Event not within web context. DocNode not core object Solution: Reprogram but use native Foundation Services API Should be fool proof ;-)
Lets get the event Define in Process Definition Derive from JBPMSpringActionHandler
What to Implement Where initializeHandler(): 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(): Get the process variables through executionContext Implement the approve / reject action
Hiding Reject Transition if Not Set Hide reject transition accordingly task-assign event (has to be this event!) use bpm:hiddenTransitions (bpm_hiddenTransitions)
Testing First Version Redeploy Manually start Simple Workflow Task workflow Fill in all details in the start form Test both scenarios:  Approval only (reject transition hidden?) 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.
What’s Missing Action to start Simple Workflow Task Workflow Repository Action UI to fill in Assignee in Rules Configuration Action Handler Simple approach:  Use JavaScript to start Workflow Either fixed assignee or assignee is property of folder
JavaScript to start workflow
Life Code Review in IDE JavaScript to start workflow Action Executer Action Handler Event Implementation
Final Demo Configured Simple Workflow Add Rule to kick off Simple Workflow Task Workflow Push Document into folder with simple workflow. Review document status Search for documents with status Review task list Manage tasks See documents transition through simple workflow by using advanced workflows functionality
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.
Resources Training Alfresco API Development Course (3 days) Alfresco Workflow Course (2 days) Alfresco (API) Documentation http://docs.alfresco.com/3.4/index.jsp Wiki Resources http://wiki.alfresco.com/wiki/Data_Dictionary_Guide http://wiki.alfresco.com/wiki/Custom_Actions http://wiki.alfresco.com/wiki/Custom_Action_UI http://wiki.alfresco.com/wiki/Workflow http://wiki.alfresco.com/wiki/WorkflowAdministration Books Alfresco Developer Guide (Packt Publishing) Professional Alfresco (Wrox Press)
Questions? Email:			joerg.sauer@averi.de Twitter:		joergsauer In Person:	DevCon 2011 London

More Related Content

What's hot

Jenkins - Continuous Integration after Hudson, CruiseControl, and home built
Jenkins - Continuous Integration after Hudson, CruiseControl, and home builtJenkins - Continuous Integration after Hudson, CruiseControl, and home built
Jenkins - Continuous Integration after Hudson, CruiseControl, and home builtMark Waite
 
Webservice performance testing with SoapUI
Webservice performance testing with SoapUIWebservice performance testing with SoapUI
Webservice performance testing with SoapUIPhuoc Nguyen
 
LoadUI web performance testing tool
LoadUI web performance testing toolLoadUI web performance testing tool
LoadUI web performance testing toolMilind Rupchandani
 
2014 Joker - Integration Testing from the Trenches
2014 Joker - Integration Testing from the Trenches2014 Joker - Integration Testing from the Trenches
2014 Joker - Integration Testing from the TrenchesNicolas Fränkel
 
Никита Галкин "Testing in Frontend World"
Никита Галкин "Testing in Frontend World"Никита Галкин "Testing in Frontend World"
Никита Галкин "Testing in Frontend World"Fwdays
 
Introduction to SoapUI day 4-5
Introduction to SoapUI day 4-5Introduction to SoapUI day 4-5
Introduction to SoapUI day 4-5Qualitest
 
Continuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOneContinuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOneciberkleid
 
Soap UI - Lesson45
Soap UI - Lesson45Soap UI - Lesson45
Soap UI - Lesson45Qualitest
 
JNation - Integration Testing from the Trenches Rebooted
JNation - Integration Testing from the Trenches RebootedJNation - Integration Testing from the Trenches Rebooted
JNation - Integration Testing from the Trenches RebootedNicolas Fränkel
 
Behavior Driven Development (BDD) and Agile Testing
Behavior Driven Development (BDD) and Agile TestingBehavior Driven Development (BDD) and Agile Testing
Behavior Driven Development (BDD) and Agile Testingdversaci
 
Continuous Deployment to the cloud
Continuous Deployment to the cloudContinuous Deployment to the cloud
Continuous Deployment to the cloudVMware Tanzu
 
Visual studio performance testing quick reference guide 3 6
Visual studio performance testing quick reference guide 3 6Visual studio performance testing quick reference guide 3 6
Visual studio performance testing quick reference guide 3 6Srimanta Kumar Sahu
 
QA Fest 2015. Владимир Примаков. Автоматизация нестандартной отчетности из JI...
QA Fest 2015. Владимир Примаков. Автоматизация нестандартной отчетности из JI...QA Fest 2015. Владимир Примаков. Автоматизация нестандартной отчетности из JI...
QA Fest 2015. Владимир Примаков. Автоматизация нестандартной отчетности из JI...QAFest
 
Drupalcamp Simpletest
Drupalcamp SimpletestDrupalcamp Simpletest
Drupalcamp Simpletestlyricnz
 
Continuous delivery - tools and techniques
Continuous delivery - tools and techniquesContinuous delivery - tools and techniques
Continuous delivery - tools and techniquesMike McGarr
 
Load testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew SiemerLoad testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew SiemerAndrew Siemer
 
Behavior-Driven Development and Automation Testing Using Cucumber Framework W...
Behavior-Driven Development and Automation Testing Using Cucumber Framework W...Behavior-Driven Development and Automation Testing Using Cucumber Framework W...
Behavior-Driven Development and Automation Testing Using Cucumber Framework W...KMS Technology
 

What's hot (20)

Jenkins - Continuous Integration after Hudson, CruiseControl, and home built
Jenkins - Continuous Integration after Hudson, CruiseControl, and home builtJenkins - Continuous Integration after Hudson, CruiseControl, and home built
Jenkins - Continuous Integration after Hudson, CruiseControl, and home built
 
Jbehave selenium
Jbehave seleniumJbehave selenium
Jbehave selenium
 
Webservice performance testing with SoapUI
Webservice performance testing with SoapUIWebservice performance testing with SoapUI
Webservice performance testing with SoapUI
 
LoadUI web performance testing tool
LoadUI web performance testing toolLoadUI web performance testing tool
LoadUI web performance testing tool
 
2014 Joker - Integration Testing from the Trenches
2014 Joker - Integration Testing from the Trenches2014 Joker - Integration Testing from the Trenches
2014 Joker - Integration Testing from the Trenches
 
Никита Галкин "Testing in Frontend World"
Никита Галкин "Testing in Frontend World"Никита Галкин "Testing in Frontend World"
Никита Галкин "Testing in Frontend World"
 
Introduction to SoapUI day 4-5
Introduction to SoapUI day 4-5Introduction to SoapUI day 4-5
Introduction to SoapUI day 4-5
 
Unit testing - A&BP CC
Unit testing - A&BP CCUnit testing - A&BP CC
Unit testing - A&BP CC
 
Continuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOneContinuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOne
 
Soap UI - Lesson45
Soap UI - Lesson45Soap UI - Lesson45
Soap UI - Lesson45
 
JNation - Integration Testing from the Trenches Rebooted
JNation - Integration Testing from the Trenches RebootedJNation - Integration Testing from the Trenches Rebooted
JNation - Integration Testing from the Trenches Rebooted
 
Behavior Driven Development (BDD) and Agile Testing
Behavior Driven Development (BDD) and Agile TestingBehavior Driven Development (BDD) and Agile Testing
Behavior Driven Development (BDD) and Agile Testing
 
Continuous Deployment to the cloud
Continuous Deployment to the cloudContinuous Deployment to the cloud
Continuous Deployment to the cloud
 
Visual studio performance testing quick reference guide 3 6
Visual studio performance testing quick reference guide 3 6Visual studio performance testing quick reference guide 3 6
Visual studio performance testing quick reference guide 3 6
 
QA Fest 2015. Владимир Примаков. Автоматизация нестандартной отчетности из JI...
QA Fest 2015. Владимир Примаков. Автоматизация нестандартной отчетности из JI...QA Fest 2015. Владимир Примаков. Автоматизация нестандартной отчетности из JI...
QA Fest 2015. Владимир Примаков. Автоматизация нестандартной отчетности из JI...
 
Drupalcamp Simpletest
Drupalcamp SimpletestDrupalcamp Simpletest
Drupalcamp Simpletest
 
Continuous delivery - tools and techniques
Continuous delivery - tools and techniquesContinuous delivery - tools and techniques
Continuous delivery - tools and techniques
 
Learn SoapUI
Learn SoapUILearn SoapUI
Learn SoapUI
 
Load testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew SiemerLoad testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew Siemer
 
Behavior-Driven Development and Automation Testing Using Cucumber Framework W...
Behavior-Driven Development and Automation Testing Using Cucumber Framework W...Behavior-Driven Development and Automation Testing Using Cucumber Framework W...
Behavior-Driven Development and Automation Testing Using Cucumber Framework W...
 

Similar to Actions Rules Workflows Use Cases

Process State vs. Object State: Modeling Best Practices for Simple Workflows ...
Process State vs. Object State: Modeling Best Practices for Simple Workflows ...Process State vs. Object State: Modeling Best Practices for Simple Workflows ...
Process State vs. Object State: Modeling Best Practices for Simple Workflows ...Thorsten Franz
 
Salesforce Lightning Process builder
Salesforce Lightning Process builderSalesforce Lightning Process builder
Salesforce Lightning Process builderThinqloud
 
]project-open[ Workflow Developer Tutorial Part 4
]project-open[ Workflow Developer Tutorial Part 4]project-open[ Workflow Developer Tutorial Part 4
]project-open[ Workflow Developer Tutorial Part 4Klaus Hofeditz
 
Azure DevOps for JavaScript Developers
Azure DevOps for JavaScript DevelopersAzure DevOps for JavaScript Developers
Azure DevOps for JavaScript DevelopersSarah Dutkiewicz
 
Spstc2011 Developing Reusable Workflow Features
Spstc2011   Developing Reusable Workflow FeaturesSpstc2011   Developing Reusable Workflow Features
Spstc2011 Developing Reusable Workflow FeaturesMichael Oryszak
 
Enhanced Workflows in Cascade Server by Leah Einecker
Enhanced Workflows in Cascade Server by Leah EineckerEnhanced Workflows in Cascade Server by Leah Einecker
Enhanced Workflows in Cascade Server by Leah Eineckerhannonhill
 
Workflow Management with Espresso Workflow
Workflow Management with Espresso WorkflowWorkflow Management with Espresso Workflow
Workflow Management with Espresso WorkflowRolf Kremer
 
Automate Evolve Training: Excel Workflow for Automatic Routing
Automate Evolve Training: Excel Workflow for Automatic RoutingAutomate Evolve Training: Excel Workflow for Automatic Routing
Automate Evolve Training: Excel Workflow for Automatic RoutingPrecisely
 
Stat 5.4 Pre Sales Demo Master
Stat 5.4 Pre Sales Demo MasterStat 5.4 Pre Sales Demo Master
Stat 5.4 Pre Sales Demo Masterreachtimsq
 
09 01 tasks
09 01 tasks09 01 tasks
09 01 taskstflung
 
PHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for BeginnersPHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for BeginnersAdam Englander
 
Profiling its okay in sql server
Profiling its okay in sql serverProfiling its okay in sql server
Profiling its okay in sql serverunclebiguns
 
Play framework : A Walkthrough
Play framework : A WalkthroughPlay framework : A Walkthrough
Play framework : A Walkthroughmitesh_sharma
 
Practical SVN for PHP Developers
Practical SVN for PHP DevelopersPractical SVN for PHP Developers
Practical SVN for PHP DevelopersLorna Mitchell
 
Simple tools to fight bigger quality battle
Simple tools to fight bigger quality battleSimple tools to fight bigger quality battle
Simple tools to fight bigger quality battleAnand Ramdeo
 
Introducing the Apache Flink Kubernetes Operator
Introducing the Apache Flink Kubernetes OperatorIntroducing the Apache Flink Kubernetes Operator
Introducing the Apache Flink Kubernetes OperatorFlink Forward
 
Test Director Ppt Training
Test Director Ppt TrainingTest Director Ppt Training
Test Director Ppt Trainingshrikantg
 

Similar to Actions Rules Workflows Use Cases (20)

Process State vs. Object State: Modeling Best Practices for Simple Workflows ...
Process State vs. Object State: Modeling Best Practices for Simple Workflows ...Process State vs. Object State: Modeling Best Practices for Simple Workflows ...
Process State vs. Object State: Modeling Best Practices for Simple Workflows ...
 
Salesforce Lightning Process builder
Salesforce Lightning Process builderSalesforce Lightning Process builder
Salesforce Lightning Process builder
 
Stat 5
Stat 5Stat 5
Stat 5
 
]project-open[ Workflow Developer Tutorial Part 4
]project-open[ Workflow Developer Tutorial Part 4]project-open[ Workflow Developer Tutorial Part 4
]project-open[ Workflow Developer Tutorial Part 4
 
Azure DevOps for JavaScript Developers
Azure DevOps for JavaScript DevelopersAzure DevOps for JavaScript Developers
Azure DevOps for JavaScript Developers
 
Spstc2011 Developing Reusable Workflow Features
Spstc2011   Developing Reusable Workflow FeaturesSpstc2011   Developing Reusable Workflow Features
Spstc2011 Developing Reusable Workflow Features
 
Enhanced Workflows in Cascade Server by Leah Einecker
Enhanced Workflows in Cascade Server by Leah EineckerEnhanced Workflows in Cascade Server by Leah Einecker
Enhanced Workflows in Cascade Server by Leah Einecker
 
Workflow Management with Espresso Workflow
Workflow Management with Espresso WorkflowWorkflow Management with Espresso Workflow
Workflow Management with Espresso Workflow
 
Automate Evolve Training: Excel Workflow for Automatic Routing
Automate Evolve Training: Excel Workflow for Automatic RoutingAutomate Evolve Training: Excel Workflow for Automatic Routing
Automate Evolve Training: Excel Workflow for Automatic Routing
 
Stat 5.4 Pre Sales Demo Master
Stat 5.4 Pre Sales Demo MasterStat 5.4 Pre Sales Demo Master
Stat 5.4 Pre Sales Demo Master
 
09 01 tasks
09 01 tasks09 01 tasks
09 01 tasks
 
PHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for BeginnersPHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for Beginners
 
Profiling its okay in sql server
Profiling its okay in sql serverProfiling its okay in sql server
Profiling its okay in sql server
 
Play framework : A Walkthrough
Play framework : A WalkthroughPlay framework : A Walkthrough
Play framework : A Walkthrough
 
Practical SVN for PHP Developers
Practical SVN for PHP DevelopersPractical SVN for PHP Developers
Practical SVN for PHP Developers
 
North east user group tour
North east user group tourNorth east user group tour
North east user group tour
 
TFS Source Control Management
TFS Source Control ManagementTFS Source Control Management
TFS Source Control Management
 
Simple tools to fight bigger quality battle
Simple tools to fight bigger quality battleSimple tools to fight bigger quality battle
Simple tools to fight bigger quality battle
 
Introducing the Apache Flink Kubernetes Operator
Introducing the Apache Flink Kubernetes OperatorIntroducing the Apache Flink Kubernetes Operator
Introducing the Apache Flink Kubernetes Operator
 
Test Director Ppt Training
Test Director Ppt TrainingTest Director Ppt Training
Test Director Ppt Training
 

Recently uploaded

Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

Actions Rules Workflows Use Cases

  • 1. The Learning PathwayActions Rules and Simple and Advanced Workflow Integration Use CasesJörg Sauer
  • 2. The longest title ever Actions, Rules and Simple and Advanced Workflow Integration Use Casesis about Actions to extend Alfresco functionality Rules to automate execution of Actions 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
  • 3. Basic Example to be extended Review Publish Workflow with 2 phase approval review approve publish reject 1 Drafts 3 Approve 4 Published 2 Review reject
  • 4. Simple Workflow Pros: User can build workflow Easy to understand Cons: No State: Implicit state by location (folder) No Task: Implicit task by folder access No branching: Serial workflow only review approve publish reject 1 Drafts 3 Approve 4 Published 2 Review reject
  • 6. Adding Status Content Model: Provide custom Aspect to hold workflow status
  • 7.
  • 10.
  • 11. Transfer Status to incoming documents JavaScript to copy status Execute by Rule
  • 13. Alfresco Repository Actions Action: Unit of work that is performed against a node Examples: Move node Transform content of node Send email Out of the Box Actions Custom Actions Implement own Action class Deploy in Application Context
  • 14. Implement Copy Workflow Status Action
  • 15. Deploy Action (Application Context) Beans: webinar-action-context.xml Labels: webinar-action.properties
  • 16. Simple Workflow: Implementation Details Documents amended with properties for Approve step label, copy/move, destination Reject step label, copy/move, destination(all optional)
  • 17. Intention: Create User Task Every time simple workflow is assigned, create advanced workflow task for specific user. User can access task in task list see task description access attached document approve or reject directly from within task Advantage No notification emails No need to check simple workflow folders
  • 18. Simple Workflow Task Architecture Required: Custom aspect for task description.(attached to simple workflow folder) Advanced workflow to be started by rule Configure user Provide task Implement simple workflow actions for Approve Reject Bug Fix for Alfresco StartWorkflowActionExecuter UI for Rule Config
  • 20. Simple Workflow Task Advanced Workflow
  • 21. Content Model for Workflow Aspects: simpleWorflow: Manage Action Labels Content Types: simpleWfTaskStart: Properties for Start Task Assignee Task Description Simple Workflow Approve & Reject Action Labels All above become process variables! ApprovalOnlyTask: Task properties to approve document ApproveOrRejectTask: Properties for approving or rejecting the document Simplicity: all in sample model Best practice: own workflow model
  • 23. Simple Process Definition Create Process Definition Graphically Change root tag: Add Swimlanes Add tasks to task node, will render UI
  • 24. Workflow Deployment Attention: No actions implemented yet! But want to check if model is correct &workflow deploys Context file: Redeploy off on production systems!
  • 25. Workflow Actions User decides in task to Approve Reject Workflow will transition to nodes approveDocument: code will approve simple workflow rejectDocument: code will reject simple workflow Todo: Implement Event Handler for node-enter event(approve / reject)
  • 26. 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!
  • 27. Review Alfresco implementation DocumentDetailsDialog.approve()
  • 28. Direct Code reuse Problem: From Package org.alfresco.web.bean Workflow Event not within web context. DocNode not core object Solution: Reprogram but use native Foundation Services API Should be fool proof ;-)
  • 29. Lets get the event Define in Process Definition Derive from JBPMSpringActionHandler
  • 30. What to Implement Where initializeHandler(): 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(): Get the process variables through executionContext Implement the approve / reject action
  • 31. Hiding Reject Transition if Not Set Hide reject transition accordingly task-assign event (has to be this event!) use bpm:hiddenTransitions (bpm_hiddenTransitions)
  • 32. Testing First Version Redeploy Manually start Simple Workflow Task workflow Fill in all details in the start form Test both scenarios: Approval only (reject transition hidden?) 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.
  • 33. What’s Missing Action to start Simple Workflow Task Workflow Repository Action UI to fill in Assignee in Rules Configuration Action Handler Simple approach: Use JavaScript to start Workflow Either fixed assignee or assignee is property of folder
  • 35. Life Code Review in IDE JavaScript to start workflow Action Executer Action Handler Event Implementation
  • 36. Final Demo Configured Simple Workflow Add Rule to kick off Simple Workflow Task Workflow Push Document into folder with simple workflow. Review document status Search for documents with status Review task list Manage tasks See documents transition through simple workflow by using advanced workflows functionality
  • 37. 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.
  • 38. Resources Training Alfresco API Development Course (3 days) Alfresco Workflow Course (2 days) Alfresco (API) Documentation http://docs.alfresco.com/3.4/index.jsp Wiki Resources http://wiki.alfresco.com/wiki/Data_Dictionary_Guide http://wiki.alfresco.com/wiki/Custom_Actions http://wiki.alfresco.com/wiki/Custom_Action_UI http://wiki.alfresco.com/wiki/Workflow http://wiki.alfresco.com/wiki/WorkflowAdministration Books Alfresco Developer Guide (Packt Publishing) Professional Alfresco (Wrox Press)
  • 40. Have you got your ticket yet? DevCon Americas 201126-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 20119-10th November at Prospero House, Central London, UKGet some preconference training in on 8th Novemberchoose from Jump Start or Advanced Alfresco