Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)
-
Upload
claud-mccoy -
Category
Documents
-
view
215 -
download
1
Transcript of Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)
![Page 1: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/1.jpg)
Kuali Enterprise Workflow
Eric Westfall (Indiana University)
Aaron Hamid (Cornell University)
![Page 2: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/2.jpg)
Overview
• Core Features
• Highlights of Recent Work
• Architectural Evolution of KEW
• Integration Options
• KFS Workflow Overview & Example
• EDocLite Overview & Example
• Roadmap
![Page 3: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/3.jpg)
What is KEW?
• Kuali Enterprise Workflow is a content-based routing engine.– Documents created from process definitions (Document Types)
and submitted to the workflow engine for routing– Routing decisions made based on the content of the Document
• It has traditionally been used for business transactions in the form of electronic documents that require approval from multiple parties. For example:– Transfer of Funds– Requisition– Hire/Terminate Employee– Timesheet– Drop Course
• Composed of a set of services, APIs, and GUIs• Part of the Kuali Rice framework
![Page 4: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/4.jpg)
KEW Core features
• User Work Queue (Action List)• Document Searching• Document Audit Trail (Route Log)• Flexible process definition (Document Type)
– Splits, Joins, Parallel branches, Sub processes, Dynamic process generation
• Basic User and Group support– Can be overridden and customized to plug into
Institutional user and groups solutions
• Rules Engine• Email Notification
![Page 5: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/5.jpg)
KEW Core features
• Notes and attachments• Wide array of pluggable components to
customize routing by process– Where to route document– Indexing of document data for searching– Email Notification Customization– Customization of Action List– Customization of Routing Rules
• EDocLite– Framework for creating simple documents quickly– Will see more of EDocLite later
![Page 6: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/6.jpg)
KEW Core features
• Plug-in Architecture– Packaging and deployment of routing components to
the KEW Server at runtime– Institutional Customization
• Transactional Processing– JTA can be used for multi-datasource transactions
• Can run in J2EE appservers• Can run in Servlet Containers
– In non-J2EE environment, can use JOTM or (coming soon) Atomikos to provide JTA transactions
![Page 7: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/7.jpg)
Highlights of Recent Work
• Enhancements to Workgroups– Nesting– Custom Attributes and Routing
• Custom Document Search– More configurable search options (wildcarding,
case sensitivity)– Support for range-based searches– Ability to implement custom search generators
and result set processors by Document Type
![Page 8: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/8.jpg)
Highlights of Recent Work
• KEW has been re-architected as a Rice module• KEW code has been merged into the Rice code
base• Some pieces of KEW extracted into Rice core or
other modules– Kuali Service Bus– Configuration System– JTA support– Resource Loading
![Page 9: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/9.jpg)
Architectural Evolution of KEW
• KEW has gone through many architectural changes in it’s lifetime
• Most recently:– Support for using an Embedded Engine– Creation of the Kuali Service Bus– Re-architected as a Rice module and merged
into the Kuali Rice framework (Kuali Rice version 0.9.1)
![Page 10: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/10.jpg)
Architectural Evolution of KEW
![Page 11: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/11.jpg)
Architectural Evolution of KEW
![Page 12: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/12.jpg)
Architectural Evolution of KEW
![Page 13: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/13.jpg)
Integration Options
• There are numerous options for integrating a client application with KEW– Web Service APIs– Thin Java Client– KEW APIs against an Embedded Engine – Create a Kuali Rice application using the KNS– EDocLite
![Page 14: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/14.jpg)
KFS Routing Example
• We’ll show here a concrete example of a document routing in the Kuali Financial System
• Using Disbursement Voucher document– Used to disburse funds (i.e., pay someone)– Since its real money, there are a lot of approvals and
checks needed
• But first, let’s look at the steps required to build and configure a document that uses KEW
![Page 15: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/15.jpg)
Steps
• Build the document– KFS uses Rice and the KNS to build their documents– Beyond the scope of this discussion– Can learn more about this at the Kuali Rice session
• Create Document Type and Process definition in KEW– Identifies the route path of the document
• Define Rule Attributes and Rule Templates– Defines what data will be used for routing and how rules
can analyze that data to make routing decisions
• Create Routing Rules
![Page 16: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/16.jpg)
Building the Document
![Page 17: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/17.jpg)
Defining the Disbursement Voucher
• Routing Process for Disbursement Voucher is defined as follows
• Ultimately defined in XML and imported
![Page 18: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/18.jpg)
Rule Attributes and Rule Templates
• Rule Attributes and Templates are defined for each of the “Nodes” in the defined Process
• Account Review - a special Role attribute which decides who the Fiscal Officer is based on accounts attached to document
• Org Review - an attribute which climbs the Org hierarchy when evaluating rules
• Employee Indicator, Tax Control Code, Payment Method, etc. are defined in XML and use XPath to analyze document content and evaluate rules
![Page 19: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/19.jpg)
Using XPath for Rule Evaluation
• The KNS handles serializing documents to XML and making XML available to KEW
• XPath expressions can be configured on attributes in KEW to evaluate rules based on this XML
• Example: Campus Code
<fieldEvaluation> <xpathexpression> //document/campusCode = wf:ruledata('campusCode') </xpathexpression></fieldEvaluation>
![Page 20: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/20.jpg)
Creating Rules
• For all Nodes except Account Review, we create rules to define who the document should route to
![Page 21: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/21.jpg)
Creating Rules
Screenshot of DV Rules
![Page 22: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/22.jpg)
Account Review Configuration
• There is a special type of rule which points to the Fiscal Officer Role for Account Review
• Resolution of responsible parties is handled by Java code which looks at the account numbers on the document
![Page 23: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/23.jpg)
Quick Demo of Disbursement Voucher
• http://www.kualitestdrive.org• Route Log
![Page 24: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/24.jpg)
KFS Routing Example - Conclusions
• Conclusions– Can be simple or complex– Process definition is defined– Rule Attributes and Templates are Created– Rules are Configured– For more complex routing logic, routing
components may need to be implemented– For simpler routing logic, out-of-the-box
components can be used (i.e. XPath eval.)
![Page 25: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/25.jpg)
eDocLite - Overview
• Simple, form-based system
• Hosted entirely within KEW
• No Java required, just XML
• Useful for small forms, and RAD prototyping
• Supports customizable UI and validation
![Page 26: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/26.jpg)
eDocLite – UI Customization
• UI can be customized by registering an XSLT stylesheet with the EDL form
• Custom layout; standard rendering via EDL tags
• Security and other logic in XSLT via KEW API
![Page 27: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/27.jpg)
eDocLite – XSLT
![Page 28: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/28.jpg)
eDocLite – Validation
• JavaScript-based
• Required/not-required
• List of valid choices (drop down)
• Regular expression
• Custom JavaScript validation
![Page 29: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/29.jpg)
eDocLite - Validation
![Page 30: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/30.jpg)
eDocLite – Custom Validation
![Page 31: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/31.jpg)
eDocLite – How To
• Create your DocumentType definition
• Create the EDL form definition
• Map EDL form fields to workflow attributes if necessary
• Implement custom JavaScript validation if desired
• Register custom XSLT stylesheet
![Page 32: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/32.jpg)
eDocLite – Demo
• Office of Affirmative Action “Interview Request” form
SchoolAffirmative Action
Officer(s)
Vice Chancellor for Academic Affairs and
Dean of Faculties
School Acknowledgement
Initiator Acknowledgement
Initiator
![Page 33: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/33.jpg)
eDocLite – Form Definition
![Page 34: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/34.jpg)
eDocLite – EDL Lookup
![Page 35: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/35.jpg)
eDocLite – EDL Form
![Page 36: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/36.jpg)
eDocLite – Logic in XSLT
![Page 37: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/37.jpg)
eDocLite – Logic in XSLT
![Page 38: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/38.jpg)
eDocLite – Conclusion
• Makes creating a workflow app based on a simple form easy
• No Java development required
• No application to deploy
![Page 39: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/39.jpg)
KEW - Roadmap
• Reorganization of Rice APIs– -api, -impl, -web– APIs published as web services
• Reuse of KNS in other modules• Rule enhancements• Integration of KEN• Java Persistence Architecture• Apache CXF
![Page 40: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/40.jpg)
eDocLite – Rule expressions
• Ability to define a rule which evaluates a BSF expression
![Page 41: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/41.jpg)
Growing KEW
Areas for growth:
• process definition
• engine features
• graphical tool support
• documentation and developer support
• upgrade/migration process
![Page 42: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/42.jpg)
BPEL
Business Process Execution Language
• “Programming in the large”
• Structured, imperative programming
• Orchestration of web services
• Extensible language plug-in model
• Industry and tool support
![Page 43: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/43.jpg)
BPEL for Workflow?
Pro:
• Process definition
• Tool support
• BPEL4People
• Possibility of reusing an existing engine implementation
• Existing support community
![Page 44: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/44.jpg)
BPEL for Workflow?
Con:
• Verbose/complicated process definition
• Not built for workflow
• New development required:– Build on top of KEW engine– Use existing BPEL implementation– Write our own
![Page 45: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/45.jpg)
Other options
• Continue to enhance KEW engine– Better pluggability of nodes– Enhance core engine– Enhance process definition language
• Build GUI tool for KEW– Use existing tool and convert results– Build a new tool (Eclipse GEF)
• Other process definition languages
![Page 46: Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)](https://reader038.fdocuments.net/reader038/viewer/2022110403/56649e835503460f94b84bdf/html5/thumbnails/46.jpg)
Questions?
Questions from the audience.
Rice web site: http://rice.kuali.org
Eric Westfall
Aaron Hamid