SlideShare a Scribd company logo
Startfolie mit Titel der Präsentation Workflow Management with PAVONE Espresso Workflow for Java EE Vorname Nachname -Business Titel- Dr. Rolf Kremer - Director Product Development -
Agenda Introduction Components Modeling and Form Design Capabilities Runtime Engine API Questions
PAVONE Espresso Workflow Part of the PAVONE Process Control Suite Available on two platforms: IBM Lotus Notes/Domino, Java EE History 1995: First release for IBM Lotus Notes/Domino (as PAVONE GroupFlow) 2006: First release for Java EE Many users Installed basis: > 85.000 users Customer projects: > 880  See  http://www.pavone.com/pages.nsf/goto/processmanagement_en
Focus: Team-oriented Processes Transaction-oriented processes Business integration and process automation   Examples: Invoice processing, Accounting, Logistics, Financial services Strong structured and high number execution Team-oriented processes ('Human Workflow Management') Human interaction Difficult to automate and weak structured Forwarding of documengs and forms between different editors Content could be changed in each task Examples: Employee selection, Document release, Travelling expenses accounting, Investment proposal, Claims settlement, Process changes
Components
From Model to Analysis PAVONE  ProcessModeler PAVONE  ProcessModeler (PAVONE  ProcessModeler), Application PAVONE  ProcessModeler Modeling :  Modeling of Workflow controlled business processes, specification of control conditions Animation :  Step by step execution of modeled processes Simulation :  Comparison of alternative solutions under different conditions Analysis :  Analyze existing process instances, graphical visualization, option to export data
First: Defining the Process Definition PAVONE ProcessModeler
Second: Defining the Data Model PAVONE ProcessModeler
Types of fields Standard Text Date/Time Number Rich Text Names, (Autors), (Readers) Extended Action: Call of an uri with parameters Separator: Line break between fields Section: Grouping of fields to a section Tab: Grouping of fields/section in a tab Widget: Thematically section or tab
Widget: Progress Display Position of the current task in the process Definition in the process definition Definition per task Take-over from other tasks possible
Widget: Project Start Start of a project directly from a process form Statement of  Project id Manager Start date of the project Selection of a project template (if available)
Widget: File Attachment Management of files of a process task Actions Add, Delete, Open Download Preview area
Several widgets available System widgets Progress display Project start File attachments Bookmarks Comment Log Acquisition of efforts User defined widgets Creation of own widget Adding of JavaScript code Example: Google Gadgets
Third: Designing the Forms Options Modifying of order of fields Add separator Grouping of fields (sections) Grouping of fields/section in tabs Read-only fields Must fields Hidden fields
Form Design: Read-only and Must fields Read-only field : Modification of content is not possible Must field : A value has to be entered Hidden field : Field exists in html code, but is not visible
Form Design: Separator Without separator ('Line break'): With separator:
Form Design: Section Grouping of fields to an unit
Form Design: Tab Grouping of fields/widgets in a tab
Fourth: Initiate and Execute a Process Administration area Tasks area and Welcome Page
View for Business Data For each process definition a view Show field values in columns
View for Business Data (2) Definition of names & columns
Capabilities Process Hosting SaaS-Lösung: PAVONElive Install PAVONE ProcessModeler local Suitable for small, simple processes Suitable for prototypical implementation See  http://www.pavonelive.com In-house solution Easy installation of the PAVONE Pross Control Suite Suitable for processes any complexity Suitable for connections to third-party systems (Data exchange) See  http://www.pavone.com/pages.nsf/goto/pcs_en
In-house Solution: Installation Installed software Apache Derby Server 10.4.2 JBoss Application Server 4.2.3 Apache Jackrabbit 1.5.3 (Content Repository) PAVONE PCS Java EE 2.2   Setup: PCS databases with examples Path to the JCR repository
Used Open Source Modules Server:  JBoss Application Server, (Apache Tomcat) DBMS:  Apache Derby, (MySQL Community Edition) Frontend:  Apache Struts, Dojo Toolkit, jQuery Persistence:  Hibernate File management:  Apache Jackrabbit Operating system:  Debian, Ubuntu Other:  Rhino, Apache Commons, Log4J, JibX, JavaDoc, InstallJammer, MPXJ, XPP3
Extensibility Workflow Application Standard Application Other Application  Standard Forms Add Widgets Own Forms & Standard Business Objects Own Forms & Own Business Objects Existing Application New Application Frontend Backend  Widget Documentation Java API Documentation JSON API Documentation White Paper Designing Workflows ProcessEngine Installation ProcessEngine Installation Standard? Java API Documentation JSON API Documentation
PAVONE Process Engine
PAVONE Process Engine Part of PAVONE Espresso Workflow Runtime Engine, responsible for the routing Support activities, workflow tasks, project tasks Extensive and easy-usable API (Application Programming Interface) Multi-client capability Integrated Event handling Integrated Business data handling
Open for serveral Application Types
Databases ag app manager app pm od process engine security Organization Directory Process Engine Application Agent Manager Security
Deployment Options Minimal installation Direct jar import UI independence Service installation Core object access via JNDI lookups UI independence Web application Struts-based UI, JSPs, Javascript, etc. Predefined, extensible UI Reuseable elements
Multi-client Capability
Object types Types Project Workflow Simple (Activity) All types share a largely common interface
Runtime & Definition Objects
Basic Types: Status & AccessLevel Standard types: enforce type safety ease localization make values independent of persistent representation
NameAssignment Class Resolution types: Fixed Computed by property Computed by script Computed by field in business object Automated (not yet available) Computed by custom property (not yet available) Type dynamic-by-field refers to default bizobject Used by: Process Task ProcessDefinition TaskDefinition
Persistence API Repository Encapsulates persistent data store Connection Connection to data store PCSEntity Base class for all persistent objects UuidGenerator Interface allows for flexible creation of unique keys
Persistence API: Repository & Connection Repository Manage connections to a particular datastore Connection Manage objects in a data store Purpose: Create a layer of abstraction around Hibernate
API Example: Creation of Session Object import  javax.naming.InitialContext; import  com.pavone.base.util.config.PCS_config; import  com.pavone.pcs.Session; InitialContext ic =  new  InitialContext(); SessionFactory pcsFactory = (SessionFactory) ic.lookup(PCS_config.get(PCS_config. PCSENGINE_JNDINAME )); Session pcsSession = pcsFactory.createSession(userName);
API Example: Repository and Connection import  com.pavone.pcs.Repository; import  com.pavone.pcs.Connection; Repository repository = pcsSession.getRepository(); Connection connection = repository.createConnection();
API Example: Frame for Transaction Handling try  { connection.beginTransaction(); ... Place your operations here ... connection.commitTransaction(); } catch  (PCSBusinessException pcse) { connection.rollbackTransaction(); } catch  (RuntimeException e) { connection.rollbackTransaction(); e.printStackTrace(); } finally  { connection.close(); }
API Example: Get Simple Task Objects import  com.pavone.pcs.TaskType, import  com.pavone.pcs.ObjectType; Set tasks = pcsSession.getTasksByUser (  "", ObjectType. SIMPLE , pcsSession.getUserName(), TaskStatus. IN_PROGRESS  );
API Example: Loop to Access Simple Tasks import  com.pavone.pcs.SimpleTask; Iterator iterator = tasks.iterator(); while  (iterator.hasNext()) { SimpleTask task = (SimpleTask)iterator.next(); ... Place your operations here ... }
API Example: Creation of Simple Task Object import  com.pavone.pcs.SimpleTask; SimpleTask task = pcsSession.createSimpleTask( "" );
API Example: Simple Task Completion import  com.pavone.pcs.SimpleTask; boolean bo = task.complete(); // or  boolean bo = task.complete( <TimeStamp> );
API Example: Deletion of Simple Task Object pcsSession.deleteSimpleTask( task );
API Example: Retrieving Workflow Tasks import  com.pavone.pcs.TaskType, import  com.pavone.pcs.ObjectType; Set tasks = pcsSession.getTasksByUser ( &quot;&quot;,  ObjectType. WORKFLOW ,  &quot;*&quot; , TaskStatus. IN_PROGRESS  );
API Example: Workflow Task Completion boolean success = task.complete();
API Example: Casting Task into Workflow Task import  com.pavone.pcs.WfTask; WfTask wfTask = (WfTask) task;
API Example: Retrieving Process import  com.pavone.pcs.Process; Process process = task.getProcess(); OR import  com.pavone.pcs.ProcessStatus; Set processes = pcsSession.getProcesses(  &quot;&quot; , ObjectType. WORKFLOW , ProcessStatus. IN_PROGRESS );
API Example: Retrieving Processes (1) Set processes = pcsSession.getProcesses(  <ProcessDefinition>  ); Set processes = pcsSession.getProcesses(  <AppInstanceId>, <ProcessDefinition>  ); Set processes = pcsSession.getProcesses(  <AppInstanceId> ,  <ObjectType> ,  <ProcessStatus>  ); Set processes = pcsSession.getProcesses(  <AppInstanceId> ,  <ProcessDefiniton> ,  <ProcessStatus>  ); Set processes = pcsSession.getProcesses(  <AppInstanceId> ,  <ObjectType> ,  <int1>, <int2>, <TimeStamp>, <TimeStamp>, <boolean>  ); Set processes = pcsSession.getProcesses(  <AppInstanceId> ,  <ProcessDefinition> ,  <int1>, <int2>, <TimeStamp>, <TimeStamp>, <boolean>  );
API Example: Retrieving Processes (2) Set processes = pcsSession.getProcessesByInitiator(  < AppInstanceId > ,  <ObjectType> ,  <ProcessStatus>, <Initiator>  ); Set processes = pcsSession.getProcessesByInitiator(  <AppInstanceId> ,  <ProcessDefinition> ,  <ProcessStatus>, <Initiator>  ); Set processes = pcsSession.getProcessesByManager(  <AppInstanceId> ,  <ObjectType> ,  <ProcessStatus>, <Manager>  ); Set processes = pcsSession.getProcessesByManager(  <AppInstanceId> ,  <ProcessDefinition> ,  <ProcessStatus>, <Manager>  ); Set processes = pcsSession.getProcessesByName(  <AppInstanceId> ,  <ObjectType> ,  <ProcessStatus>, <Process name>  ); Set processes = pcsSession.getProcessesByPriority(  <AppInstanceId> ,  <ObjectType> ,  <ProcessStatus>, <Priority>  ); ...
API Example: Import Process Definition import  com.pavone.pcs.Administration; WfProcessDefinition wf = Administration. importXMLProcessDefinition ( <fileName>, <appInstanceId> ); ---------------------- // lock the process definition wf.setLocked(  true  ); // unlock the process definition wf.setLocked(  false  );
API Example: Retrieving Process Definition Object import  com.pavone.pcs.ProcessDefinition; // get process definition String strDefName = &quot;<Name of the process definition>&quot;; ProcessDefinition def = (ProcessDefinition)  pcsSession.getProcessDefinition( strDefName );
API Example: Creating Process Definition Object import  com.pavone.pcs.ProcessDefinition; // create process definition String strDefName = &quot;<Name of the process definition>&quot;; ProcessDefinition def = pcsSession.createProcessDefinition  ( ObjectType. WORKFLOW , strDefName );
API Example: Retrieving all Task Definition Objects import  com.pavone.pcs.WfTaskDefinition; if  ( wfDef !=  null  ){ // get all task definitions Set list = wfDef.getTaskDefinitions(); ... }
API Example: Initiating Process  WfProcess process = pcsSession.initiateWfProcess(  <AppInstanceId> ,  <Name>  ,  &quot;&quot; ,  &quot;&quot; ); // get tasks Set tasks = process.getTasks ( TaskStatus. IN_PROGRESS  ); // get first task Iterator iterator = tasks.iterator(); WfTask task = (WfTask)iterator.next();
Business Objects BizObjectContainer Interface for classes that contain bizobjects (Process, Task) BizObjectInterface Interface for accessing one or more classes of bizobjects BizObjectLink Base class for links to bizobjects BizObjectDefault Standard bizobject that is always available as a place to hold process/task-related data so that custom objects are often not necessary.
Business Objects BizObjectContainer Interface contains bizobjects (extensions of java.lang.Object) Process and Task implement interface BizObjectDefault Default bizobject to eliminate need for custom objects Available from Process and Task
DataItems (Predefined Fields) Data values defined in process model Defined for: ProcessDefinition TaskDefinition Access: processDefinition.getDataItems() taskDefinition.getDataItems() Values copied to default bizobject when specified
API Example: Retrieve DataItem 'comment' import  com.pavone.pcs.BizObjectDefault; import  com.pavone.pcs.DataItem; BizObjectDefault bo = task.getDefaultBizObject(); DataItem item = bo.getItem ( &quot;comment&quot; );
API Example: Check whether DataItem exists String name = &quot;&quot;; if ( bo.hasItem (  &quot;name&quot; )) { name  = bo.getItemValueString (  &quot;name&quot;  ); }
API Example: Access all DataItems import  com.pavone.pcs.WfTaskDefinition; import  com.pavone.pcs.DataItem; List itemList = taskdef.getDataItems(); Iterator iter = itemList.iterator(); while  ( iter.hasNext() ) { DataItem item = (DataItem) iter.next(); ... Place your operations here ... }
Usage of JavaScript Uses Rhino from Mozilla (JavaScript for Java) Wraps Java classes for JavaScript. Allows for selective exposure of Java objects. http://www.mozilla.org/rhino/ Use cases: Task validation Routing conditions Name assignments Operations API objects are available for scripting as appropriate session process task
Example: Routing Condition Condition => formula-based (JavaScript) condition Use bizobject for values Return true to route, otherwise false
Event Handling: Classes WfEventListener Interface defines event method signatures WfEventAdapter Empty class that implements WfEventListener for ease of creating new handlers Example code: com.pavone.pcs.example.MyEventHandler
Event Handling: Configuration  Configure handler via full class name
API Example: Event Handling Code
Materials
Questions & Answers Feel free to contact us if you have other questions!
For more information please visit our  homepage  http://www.pavone.com and  http://www.pavonelive.com Contact PAVONE Ltd, UK  School House, Hackforth  BEDALE, N. Yorks. DL8 1PE United Kingdom Phone: +44 (0) 1748 811527 E-Mail: info@pavone.com PAVONE Inc. 13 NW 13th Avenue Portland, Oregon 97209 USA Phone: +1.503.754.3144 E-Mail: info@pavone.com PAVONE AG Technologiepark 9 33100 Paderborn Tel.: +49 52 51 / 31 02-0 Fax: +49 52 51 / 31 02-99 E-Mail: info@pavone.de

More Related Content

What's hot (20)

DOC
Badi document
hamisha_malik
 
PPT
Eclipse BPEL Designer
milliger
 
PDF
IBM ConnectED 2015 - MAS103 XPages Performance and Scalability
Paul Withers
 
PPTX
Siebel Open UI Debugging (Siebel Open UI Training, Part 7)
Tech OneStop
 
PDF
EMC Documentum xCP 2.0 Design Patterns
Haytham Ghandour
 
PPTX
Customizing the Presentation Model and Physical Renderer in Siebel Open UI
Tech OneStop
 
PDF
All the Java ADF beginners need to know - part1
Markus Eisele
 
PPTX
KSCOPE 2015 - Improving Reliability, Rollouts, Upgrades/Migrations
Charles Beyer
 
PDF
Introducing enhancement framework.doc
Kranthi Kumar
 
ODP
Kaleo workflow in Liferay
Willem Vermeer
 
PPT
Liferay Devcon presentation on Workflow & Dynamic Forms
Willem Vermeer
 
PDF
Programming-best practices( beginner) ADF_fusionapps
Berry Clemens
 
PPTX
Introduction to JSF
SoftServe
 
PPT
XPages Workshop: Concepts And Exercises
ddrschiw
 
PDF
Lab 5b) create a java server faces application
techbed
 
PPTX
[DanNotes] XPages - Beyound the Basics
Ulrich Krause
 
PDF
VAST 7.5 and Beyond
ESUG
 
PDF
Part 2 java development
techbed
 
PPT
Getting Started with Zend Framework
Juan Antonio
 
Badi document
hamisha_malik
 
Eclipse BPEL Designer
milliger
 
IBM ConnectED 2015 - MAS103 XPages Performance and Scalability
Paul Withers
 
Siebel Open UI Debugging (Siebel Open UI Training, Part 7)
Tech OneStop
 
EMC Documentum xCP 2.0 Design Patterns
Haytham Ghandour
 
Customizing the Presentation Model and Physical Renderer in Siebel Open UI
Tech OneStop
 
All the Java ADF beginners need to know - part1
Markus Eisele
 
KSCOPE 2015 - Improving Reliability, Rollouts, Upgrades/Migrations
Charles Beyer
 
Introducing enhancement framework.doc
Kranthi Kumar
 
Kaleo workflow in Liferay
Willem Vermeer
 
Liferay Devcon presentation on Workflow & Dynamic Forms
Willem Vermeer
 
Programming-best practices( beginner) ADF_fusionapps
Berry Clemens
 
Introduction to JSF
SoftServe
 
XPages Workshop: Concepts And Exercises
ddrschiw
 
Lab 5b) create a java server faces application
techbed
 
[DanNotes] XPages - Beyound the Basics
Ulrich Krause
 
VAST 7.5 and Beyond
ESUG
 
Part 2 java development
techbed
 
Getting Started with Zend Framework
Juan Antonio
 

Viewers also liked (10)

ODP
Task Management for OpenNTF
Rolf Kremer
 
PDF
Einfach, schnell und leistungsstark - PAVONE Espresso Workflow für Java EE
Rolf Kremer
 
ODP
Enterprise Atom/RSS Information distribution with IBM Lotus Notes/Domino
Rolf Kremer
 
ODP
New Features Lotus Domino Administration 8.5
Rolf Kremer
 
PPT
Introduction Dojo Toolkit & IBM Lotus Domino
Rolf Kremer
 
KEY
Building Dojo in the Cloud
James Thomas
 
PDF
Dojo toolkit
Vanessa Me Tonini
 
PDF
Zero To Dojo
Peter Higgins
 
PPSX
Reuters: Pictures of the Year 2016 (Part 2)
maditabalnco
 
PDF
The Six Highest Performing B2B Blog Post Formats
Barry Feldman
 
Task Management for OpenNTF
Rolf Kremer
 
Einfach, schnell und leistungsstark - PAVONE Espresso Workflow für Java EE
Rolf Kremer
 
Enterprise Atom/RSS Information distribution with IBM Lotus Notes/Domino
Rolf Kremer
 
New Features Lotus Domino Administration 8.5
Rolf Kremer
 
Introduction Dojo Toolkit & IBM Lotus Domino
Rolf Kremer
 
Building Dojo in the Cloud
James Thomas
 
Dojo toolkit
Vanessa Me Tonini
 
Zero To Dojo
Peter Higgins
 
Reuters: Pictures of the Year 2016 (Part 2)
maditabalnco
 
The Six Highest Performing B2B Blog Post Formats
Barry Feldman
 
Ad

Similar to Workflow Management with Espresso Workflow (20)

PPTX
Play framework : A Walkthrough
mitesh_sharma
 
PPT
Asp.net tips
actacademy
 
PPT
Customizing Oracle EBS OA Framework
iWare Logic Technologies Pvt. Ltd.
 
PPT
Os Johnson
oscon2007
 
PPT
D22 portlet development with open source frameworks
Sunil Patil
 
PPT
D22 Portlet Development With Open Source Frameworks
Sunil Patil
 
PPTX
MSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for Developers
Dave Bost
 
PPT
JavaOne TS-5098 Groovy SwingBuilder
Andres Almiray
 
PPT
The Web on OSGi: Here's How
mrdon
 
PPTX
Module design pattern i.e. express js
Ahmed Assaf
 
PPTX
Mastering Test Automation: How To Use Selenium Successfully
SpringPeople
 
PPT
Ta Javaserverside Eran Toch
Adil Jafri
 
PDF
Example Of Import Java
Melody Rios
 
PDF
Release with confidence
John Congdon
 
PPT
Managing Your Runtime With P2
Pascal Rapicault
 
PDF
540slidesofnodejsbackendhopeitworkforu.pdf
hamzadamani7
 
PDF
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
IMC Institute
 
PPT
Windows Azure and a little SQL Data Services
ukdpe
 
PPT
Dh2 Apps Training Part2
jamram82
 
PPTX
ADF Gold Nuggets (Oracle Open World 2011)
Lucas Jellema
 
Play framework : A Walkthrough
mitesh_sharma
 
Asp.net tips
actacademy
 
Customizing Oracle EBS OA Framework
iWare Logic Technologies Pvt. Ltd.
 
Os Johnson
oscon2007
 
D22 portlet development with open source frameworks
Sunil Patil
 
D22 Portlet Development With Open Source Frameworks
Sunil Patil
 
MSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for Developers
Dave Bost
 
JavaOne TS-5098 Groovy SwingBuilder
Andres Almiray
 
The Web on OSGi: Here's How
mrdon
 
Module design pattern i.e. express js
Ahmed Assaf
 
Mastering Test Automation: How To Use Selenium Successfully
SpringPeople
 
Ta Javaserverside Eran Toch
Adil Jafri
 
Example Of Import Java
Melody Rios
 
Release with confidence
John Congdon
 
Managing Your Runtime With P2
Pascal Rapicault
 
540slidesofnodejsbackendhopeitworkforu.pdf
hamzadamani7
 
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
IMC Institute
 
Windows Azure and a little SQL Data Services
ukdpe
 
Dh2 Apps Training Part2
jamram82
 
ADF Gold Nuggets (Oracle Open World 2011)
Lucas Jellema
 
Ad

Recently uploaded (20)

PDF
Van Aroma IFEAT - Clove Oils - Socio Economic Report .pdf
VanAroma
 
PDF
CBV - GST Collection Report V16. pdf.
writer28
 
PPTX
DECODING AI AGENTS AND WORKFLOW AUTOMATION FOR MODERN RECRUITMENT
José Kadlec
 
PPTX
Technical Analysis of 1st Generation Biofuel Feedstocks - 25th June 2025
TOFPIK
 
PDF
Buy Boys Long Sleeve T-shirts at Port 213
Port 213
 
PPTX
Build Wealth & Protect Your Legacy with Indexed Universal Life Insurance
iulfinancial6
 
PDF
LDM Recording for Yogi Goddess Projects Summer 2025
LDMMia GrandMaster
 
PDF
Jordan Minnesota City Codes and Ordinances
Forklift Trucks in Minnesota
 
PDF
Connecting Startups to Strategic Global VC Opportunities.pdf
Google
 
PPTX
Top RPA Tools to Watch in 2024: Transforming Automation
RUPAL AGARWAL
 
PDF
Importance of Timely Renewal of Legal Entity Identifiers.pdf
MNS Credit Management Group Pvt. Ltd.
 
PPTX
Drive Operational Excellence with Proven Continuous Improvement Strategies
Group50 Consulting
 
PDF
kcb-group-plc-2024-integrated-report-and-financial-statements (3).pdf
DanielNdegwa10
 
PDF
Top Farewell Gifts for Seniors Under.pdf
ThreadVibe Living
 
PDF
David Badaro Explains 5 Steps to Solving Complex Business Issues
David Badaro
 
PDF
"Complete Guide to the Partner Visa 2025
Zealand Immigration
 
PDF
Smart Lead Magnet Review: Effortless Email List Growth with Automated Funnels...
Larry888358
 
PDF
20250703_A. Stotz All Weather Strategy - Performance review July
FINNOMENAMarketing
 
PDF
Maksym Vyshnivetskyi: Управління закупівлями (UA)
Lviv Startup Club
 
PDF
Keppel Investor Day 2025 Presentation Slides GCAT.pdf
KeppelCorporation
 
Van Aroma IFEAT - Clove Oils - Socio Economic Report .pdf
VanAroma
 
CBV - GST Collection Report V16. pdf.
writer28
 
DECODING AI AGENTS AND WORKFLOW AUTOMATION FOR MODERN RECRUITMENT
José Kadlec
 
Technical Analysis of 1st Generation Biofuel Feedstocks - 25th June 2025
TOFPIK
 
Buy Boys Long Sleeve T-shirts at Port 213
Port 213
 
Build Wealth & Protect Your Legacy with Indexed Universal Life Insurance
iulfinancial6
 
LDM Recording for Yogi Goddess Projects Summer 2025
LDMMia GrandMaster
 
Jordan Minnesota City Codes and Ordinances
Forklift Trucks in Minnesota
 
Connecting Startups to Strategic Global VC Opportunities.pdf
Google
 
Top RPA Tools to Watch in 2024: Transforming Automation
RUPAL AGARWAL
 
Importance of Timely Renewal of Legal Entity Identifiers.pdf
MNS Credit Management Group Pvt. Ltd.
 
Drive Operational Excellence with Proven Continuous Improvement Strategies
Group50 Consulting
 
kcb-group-plc-2024-integrated-report-and-financial-statements (3).pdf
DanielNdegwa10
 
Top Farewell Gifts for Seniors Under.pdf
ThreadVibe Living
 
David Badaro Explains 5 Steps to Solving Complex Business Issues
David Badaro
 
"Complete Guide to the Partner Visa 2025
Zealand Immigration
 
Smart Lead Magnet Review: Effortless Email List Growth with Automated Funnels...
Larry888358
 
20250703_A. Stotz All Weather Strategy - Performance review July
FINNOMENAMarketing
 
Maksym Vyshnivetskyi: Управління закупівлями (UA)
Lviv Startup Club
 
Keppel Investor Day 2025 Presentation Slides GCAT.pdf
KeppelCorporation
 

Workflow Management with Espresso Workflow

  • 1. Startfolie mit Titel der Präsentation Workflow Management with PAVONE Espresso Workflow for Java EE Vorname Nachname -Business Titel- Dr. Rolf Kremer - Director Product Development -
  • 2. Agenda Introduction Components Modeling and Form Design Capabilities Runtime Engine API Questions
  • 3. PAVONE Espresso Workflow Part of the PAVONE Process Control Suite Available on two platforms: IBM Lotus Notes/Domino, Java EE History 1995: First release for IBM Lotus Notes/Domino (as PAVONE GroupFlow) 2006: First release for Java EE Many users Installed basis: > 85.000 users Customer projects: > 880 See http://www.pavone.com/pages.nsf/goto/processmanagement_en
  • 4. Focus: Team-oriented Processes Transaction-oriented processes Business integration and process automation Examples: Invoice processing, Accounting, Logistics, Financial services Strong structured and high number execution Team-oriented processes ('Human Workflow Management') Human interaction Difficult to automate and weak structured Forwarding of documengs and forms between different editors Content could be changed in each task Examples: Employee selection, Document release, Travelling expenses accounting, Investment proposal, Claims settlement, Process changes
  • 6. From Model to Analysis PAVONE ProcessModeler PAVONE ProcessModeler (PAVONE ProcessModeler), Application PAVONE ProcessModeler Modeling : Modeling of Workflow controlled business processes, specification of control conditions Animation : Step by step execution of modeled processes Simulation : Comparison of alternative solutions under different conditions Analysis : Analyze existing process instances, graphical visualization, option to export data
  • 7. First: Defining the Process Definition PAVONE ProcessModeler
  • 8. Second: Defining the Data Model PAVONE ProcessModeler
  • 9. Types of fields Standard Text Date/Time Number Rich Text Names, (Autors), (Readers) Extended Action: Call of an uri with parameters Separator: Line break between fields Section: Grouping of fields to a section Tab: Grouping of fields/section in a tab Widget: Thematically section or tab
  • 10. Widget: Progress Display Position of the current task in the process Definition in the process definition Definition per task Take-over from other tasks possible
  • 11. Widget: Project Start Start of a project directly from a process form Statement of Project id Manager Start date of the project Selection of a project template (if available)
  • 12. Widget: File Attachment Management of files of a process task Actions Add, Delete, Open Download Preview area
  • 13. Several widgets available System widgets Progress display Project start File attachments Bookmarks Comment Log Acquisition of efforts User defined widgets Creation of own widget Adding of JavaScript code Example: Google Gadgets
  • 14. Third: Designing the Forms Options Modifying of order of fields Add separator Grouping of fields (sections) Grouping of fields/section in tabs Read-only fields Must fields Hidden fields
  • 15. Form Design: Read-only and Must fields Read-only field : Modification of content is not possible Must field : A value has to be entered Hidden field : Field exists in html code, but is not visible
  • 16. Form Design: Separator Without separator ('Line break'): With separator:
  • 17. Form Design: Section Grouping of fields to an unit
  • 18. Form Design: Tab Grouping of fields/widgets in a tab
  • 19. Fourth: Initiate and Execute a Process Administration area Tasks area and Welcome Page
  • 20. View for Business Data For each process definition a view Show field values in columns
  • 21. View for Business Data (2) Definition of names & columns
  • 22. Capabilities Process Hosting SaaS-Lösung: PAVONElive Install PAVONE ProcessModeler local Suitable for small, simple processes Suitable for prototypical implementation See http://www.pavonelive.com In-house solution Easy installation of the PAVONE Pross Control Suite Suitable for processes any complexity Suitable for connections to third-party systems (Data exchange) See http://www.pavone.com/pages.nsf/goto/pcs_en
  • 23. In-house Solution: Installation Installed software Apache Derby Server 10.4.2 JBoss Application Server 4.2.3 Apache Jackrabbit 1.5.3 (Content Repository) PAVONE PCS Java EE 2.2 Setup: PCS databases with examples Path to the JCR repository
  • 24. Used Open Source Modules Server: JBoss Application Server, (Apache Tomcat) DBMS: Apache Derby, (MySQL Community Edition) Frontend: Apache Struts, Dojo Toolkit, jQuery Persistence: Hibernate File management: Apache Jackrabbit Operating system: Debian, Ubuntu Other: Rhino, Apache Commons, Log4J, JibX, JavaDoc, InstallJammer, MPXJ, XPP3
  • 25. Extensibility Workflow Application Standard Application Other Application Standard Forms Add Widgets Own Forms & Standard Business Objects Own Forms & Own Business Objects Existing Application New Application Frontend Backend Widget Documentation Java API Documentation JSON API Documentation White Paper Designing Workflows ProcessEngine Installation ProcessEngine Installation Standard? Java API Documentation JSON API Documentation
  • 27. PAVONE Process Engine Part of PAVONE Espresso Workflow Runtime Engine, responsible for the routing Support activities, workflow tasks, project tasks Extensive and easy-usable API (Application Programming Interface) Multi-client capability Integrated Event handling Integrated Business data handling
  • 28. Open for serveral Application Types
  • 29. Databases ag app manager app pm od process engine security Organization Directory Process Engine Application Agent Manager Security
  • 30. Deployment Options Minimal installation Direct jar import UI independence Service installation Core object access via JNDI lookups UI independence Web application Struts-based UI, JSPs, Javascript, etc. Predefined, extensible UI Reuseable elements
  • 32. Object types Types Project Workflow Simple (Activity) All types share a largely common interface
  • 34. Basic Types: Status & AccessLevel Standard types: enforce type safety ease localization make values independent of persistent representation
  • 35. NameAssignment Class Resolution types: Fixed Computed by property Computed by script Computed by field in business object Automated (not yet available) Computed by custom property (not yet available) Type dynamic-by-field refers to default bizobject Used by: Process Task ProcessDefinition TaskDefinition
  • 36. Persistence API Repository Encapsulates persistent data store Connection Connection to data store PCSEntity Base class for all persistent objects UuidGenerator Interface allows for flexible creation of unique keys
  • 37. Persistence API: Repository & Connection Repository Manage connections to a particular datastore Connection Manage objects in a data store Purpose: Create a layer of abstraction around Hibernate
  • 38. API Example: Creation of Session Object import javax.naming.InitialContext; import com.pavone.base.util.config.PCS_config; import com.pavone.pcs.Session; InitialContext ic = new InitialContext(); SessionFactory pcsFactory = (SessionFactory) ic.lookup(PCS_config.get(PCS_config. PCSENGINE_JNDINAME )); Session pcsSession = pcsFactory.createSession(userName);
  • 39. API Example: Repository and Connection import com.pavone.pcs.Repository; import com.pavone.pcs.Connection; Repository repository = pcsSession.getRepository(); Connection connection = repository.createConnection();
  • 40. API Example: Frame for Transaction Handling try { connection.beginTransaction(); ... Place your operations here ... connection.commitTransaction(); } catch (PCSBusinessException pcse) { connection.rollbackTransaction(); } catch (RuntimeException e) { connection.rollbackTransaction(); e.printStackTrace(); } finally { connection.close(); }
  • 41. API Example: Get Simple Task Objects import com.pavone.pcs.TaskType, import com.pavone.pcs.ObjectType; Set tasks = pcsSession.getTasksByUser ( &quot;&quot;, ObjectType. SIMPLE , pcsSession.getUserName(), TaskStatus. IN_PROGRESS );
  • 42. API Example: Loop to Access Simple Tasks import com.pavone.pcs.SimpleTask; Iterator iterator = tasks.iterator(); while (iterator.hasNext()) { SimpleTask task = (SimpleTask)iterator.next(); ... Place your operations here ... }
  • 43. API Example: Creation of Simple Task Object import com.pavone.pcs.SimpleTask; SimpleTask task = pcsSession.createSimpleTask( &quot;&quot; );
  • 44. API Example: Simple Task Completion import com.pavone.pcs.SimpleTask; boolean bo = task.complete(); // or boolean bo = task.complete( <TimeStamp> );
  • 45. API Example: Deletion of Simple Task Object pcsSession.deleteSimpleTask( task );
  • 46. API Example: Retrieving Workflow Tasks import com.pavone.pcs.TaskType, import com.pavone.pcs.ObjectType; Set tasks = pcsSession.getTasksByUser ( &quot;&quot;, ObjectType. WORKFLOW , &quot;*&quot; , TaskStatus. IN_PROGRESS );
  • 47. API Example: Workflow Task Completion boolean success = task.complete();
  • 48. API Example: Casting Task into Workflow Task import com.pavone.pcs.WfTask; WfTask wfTask = (WfTask) task;
  • 49. API Example: Retrieving Process import com.pavone.pcs.Process; Process process = task.getProcess(); OR import com.pavone.pcs.ProcessStatus; Set processes = pcsSession.getProcesses( &quot;&quot; , ObjectType. WORKFLOW , ProcessStatus. IN_PROGRESS );
  • 50. API Example: Retrieving Processes (1) Set processes = pcsSession.getProcesses( <ProcessDefinition> ); Set processes = pcsSession.getProcesses( <AppInstanceId>, <ProcessDefinition> ); Set processes = pcsSession.getProcesses( <AppInstanceId> , <ObjectType> , <ProcessStatus> ); Set processes = pcsSession.getProcesses( <AppInstanceId> , <ProcessDefiniton> , <ProcessStatus> ); Set processes = pcsSession.getProcesses( <AppInstanceId> , <ObjectType> , <int1>, <int2>, <TimeStamp>, <TimeStamp>, <boolean> ); Set processes = pcsSession.getProcesses( <AppInstanceId> , <ProcessDefinition> , <int1>, <int2>, <TimeStamp>, <TimeStamp>, <boolean> );
  • 51. API Example: Retrieving Processes (2) Set processes = pcsSession.getProcessesByInitiator( < AppInstanceId > , <ObjectType> , <ProcessStatus>, <Initiator> ); Set processes = pcsSession.getProcessesByInitiator( <AppInstanceId> , <ProcessDefinition> , <ProcessStatus>, <Initiator> ); Set processes = pcsSession.getProcessesByManager( <AppInstanceId> , <ObjectType> , <ProcessStatus>, <Manager> ); Set processes = pcsSession.getProcessesByManager( <AppInstanceId> , <ProcessDefinition> , <ProcessStatus>, <Manager> ); Set processes = pcsSession.getProcessesByName( <AppInstanceId> , <ObjectType> , <ProcessStatus>, <Process name> ); Set processes = pcsSession.getProcessesByPriority( <AppInstanceId> , <ObjectType> , <ProcessStatus>, <Priority> ); ...
  • 52. API Example: Import Process Definition import com.pavone.pcs.Administration; WfProcessDefinition wf = Administration. importXMLProcessDefinition ( <fileName>, <appInstanceId> ); ---------------------- // lock the process definition wf.setLocked( true ); // unlock the process definition wf.setLocked( false );
  • 53. API Example: Retrieving Process Definition Object import com.pavone.pcs.ProcessDefinition; // get process definition String strDefName = &quot;<Name of the process definition>&quot;; ProcessDefinition def = (ProcessDefinition) pcsSession.getProcessDefinition( strDefName );
  • 54. API Example: Creating Process Definition Object import com.pavone.pcs.ProcessDefinition; // create process definition String strDefName = &quot;<Name of the process definition>&quot;; ProcessDefinition def = pcsSession.createProcessDefinition ( ObjectType. WORKFLOW , strDefName );
  • 55. API Example: Retrieving all Task Definition Objects import com.pavone.pcs.WfTaskDefinition; if ( wfDef != null ){ // get all task definitions Set list = wfDef.getTaskDefinitions(); ... }
  • 56. API Example: Initiating Process WfProcess process = pcsSession.initiateWfProcess( <AppInstanceId> , <Name> , &quot;&quot; , &quot;&quot; ); // get tasks Set tasks = process.getTasks ( TaskStatus. IN_PROGRESS ); // get first task Iterator iterator = tasks.iterator(); WfTask task = (WfTask)iterator.next();
  • 57. Business Objects BizObjectContainer Interface for classes that contain bizobjects (Process, Task) BizObjectInterface Interface for accessing one or more classes of bizobjects BizObjectLink Base class for links to bizobjects BizObjectDefault Standard bizobject that is always available as a place to hold process/task-related data so that custom objects are often not necessary.
  • 58. Business Objects BizObjectContainer Interface contains bizobjects (extensions of java.lang.Object) Process and Task implement interface BizObjectDefault Default bizobject to eliminate need for custom objects Available from Process and Task
  • 59. DataItems (Predefined Fields) Data values defined in process model Defined for: ProcessDefinition TaskDefinition Access: processDefinition.getDataItems() taskDefinition.getDataItems() Values copied to default bizobject when specified
  • 60. API Example: Retrieve DataItem 'comment' import com.pavone.pcs.BizObjectDefault; import com.pavone.pcs.DataItem; BizObjectDefault bo = task.getDefaultBizObject(); DataItem item = bo.getItem ( &quot;comment&quot; );
  • 61. API Example: Check whether DataItem exists String name = &quot;&quot;; if ( bo.hasItem ( &quot;name&quot; )) { name = bo.getItemValueString ( &quot;name&quot; ); }
  • 62. API Example: Access all DataItems import com.pavone.pcs.WfTaskDefinition; import com.pavone.pcs.DataItem; List itemList = taskdef.getDataItems(); Iterator iter = itemList.iterator(); while ( iter.hasNext() ) { DataItem item = (DataItem) iter.next(); ... Place your operations here ... }
  • 63. Usage of JavaScript Uses Rhino from Mozilla (JavaScript for Java) Wraps Java classes for JavaScript. Allows for selective exposure of Java objects. http://www.mozilla.org/rhino/ Use cases: Task validation Routing conditions Name assignments Operations API objects are available for scripting as appropriate session process task
  • 64. Example: Routing Condition Condition => formula-based (JavaScript) condition Use bizobject for values Return true to route, otherwise false
  • 65. Event Handling: Classes WfEventListener Interface defines event method signatures WfEventAdapter Empty class that implements WfEventListener for ease of creating new handlers Example code: com.pavone.pcs.example.MyEventHandler
  • 66. Event Handling: Configuration Configure handler via full class name
  • 67. API Example: Event Handling Code
  • 69. Questions & Answers Feel free to contact us if you have other questions!
  • 70. For more information please visit our homepage http://www.pavone.com and http://www.pavonelive.com Contact PAVONE Ltd, UK School House, Hackforth BEDALE, N. Yorks. DL8 1PE United Kingdom Phone: +44 (0) 1748 811527 E-Mail: [email protected] PAVONE Inc. 13 NW 13th Avenue Portland, Oregon 97209 USA Phone: +1.503.754.3144 E-Mail: [email protected] PAVONE AG Technologiepark 9 33100 Paderborn Tel.: +49 52 51 / 31 02-0 Fax: +49 52 51 / 31 02-99 E-Mail: [email protected]