Transcript eDoc Lite

Kuali Enterprise Workflow
Kuali Days – November 2008
Scott Gibson, University of Maryland
Bryan Hutchinson, Cornell University
James Smith, University of Arizona
Kuali Enterprise Workflow
•
•
•
•
•
What is KEW?
The Building Blocks of Workflow
Developing a Workflow Document
eDoc Lite
Deployment and Integration
What is KEW?
What is KEW?
• A module of Kuali Rice
• Provides a content-based routing engine
• Used for business transactions in the form of electronic
documents that require approval from multiple parties
• Composed of a set of services, APIs, and GUIs
KEW Core features
•
•
•
•
Action List (User’s Work 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 group services
Groups and Users will be managed by KIM
• Rules Engine
• Email Notification
KEW Core features
• Notes and attachments
• Wide array of pluggable components to
customize routing
Where to route document
Indexing of document data for searching
Email Notification Customization
Customization of Action List
Customization of Routing Rules
• eDoc Lite
Framework for creating simple documents quickly
Will see more of eDoc Lite later
KEW Core features
• Plug-in Architecture
Packaging and deployment of routing components to the
Rice Standalone 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 other JTA
implementation to provide JTA transactions
The Building Blocks of Workflow
Document Type
•
Document Type
Contains identifying information
Also contains document policies
Defines the Route Path executed for a
document of that type
Hierarchical - children inherit attributes from
their parents
Defined in XML
Route Node
•
Route Node
A step in the routing process of a document type
Defines the behavior of the document when it reaches
that node
Examples:
•
•
•
•
•
•
Simple - do some arbitrary work
Requests - generate action requests using a Route
Module or the Rules engine
Split - split the route path into one or more parallel
branches
Join - join one or more branches back together
Sub Process - execute another route path inline
Dynamic - generate a dynamic route path
Rule Attribute
•
Rule Attribute
Evaluates document data to determine whether or
not the rule should fire
Defines what data is collected on a rule
Typically corresponds to one piece of data on a
document (i.e dollar amount, department,
organization, account, etc.)
Can be written in Java or easily defined in XML
Role Attribute
•
Role Attribute
Resolves to a set of users and/or workgroups
who should receive action requests
Used to resolve Roles from external systems or
databases for routing purposes
Examples: Fiscal Officer, Dean, Supervisor, etc.
KEW integration with KIM also does this…
Rule Template
•
Rule Template
A bunch of Rule Attributes
Rules = Document Type + Rule Template
Can also be used to define various other rule
properties (defaults, etc.)
Routing Rule
•
Routing Rule
Who should receive action requests at a
particular node?
Created against a Rule Template.
Rule matching behavior is handled by the Rule
Attributes
Defines the users, workgroups and/or roles who
should receive action requests
Post Processor
•
Post Processor
Receives events as the process is executed
Status Change
Node Transition
Action Taken by User
Usually used to “commit” the business transaction
once all approvals have been gathered
Searchable Attribute
•
Searchable Attribute
Extracts and indexes document data for searching
Defines custom fields for Document Search
Can be written in Java or defined in XML using
Xpath.
Developing a Workflow Document
KFS Routing Example
Let’s route a document…
and look at doc type
rule creation
route log
KFS Routing Example - Summary
• Summary
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.)
eDoc Lite
eDoc Lite
• Sometimes you need integration to a big
client app with a sophisticated interface
eDoc Lite
• Sometimes you don’t.
• …this where eDoc Lite comes in.
eDoc Lite
• eDoc Lite is a simple, form-based system
that runs entirely within a Standalone Rice
Server
can be created with no java, just XML
eDoc Lite - Details
• Simple form creation and presentation
XML definition of form fields
Use your own custom XSLT for presentation
• Simple validation rules
Regular Expression
Custom Validators
Required/Not-Required
JavaScript Validation
• Security
Achieved through XSLT integration with KEW APIs
Building Blocks of an eDoc Lite
• Every eDoc Lite consists of 4 pieces:
Field Definitions – defines what fields the EDL
has, what type, validations, etc.
Stylesheet – an XSLT stylesheet that renders
the EDL for the user
Document Type – defines the workflow
process for the EDL
EDL Association – associates each of the 3
pieces above to form an eDoc Lite
eDocLite – EDL Form
eDocLite – Summary
• Makes creating a workflow-enabled
application based on a simple form easy
• No Java development required
• No application to deploy
Deployment and Integration
Deployment and Integration
• There are multiple ways to deploy and integrate
applications with Kuali Rice
Bundled – Kuali Rice software is “bundled” into your application
Standalone – a standalone server is deployed
• In addition, when deploying a standalone server, the
following client integration options are available, most
relate to the KEW module
Embedded KEW – workflow engine is embedded into your
application
KEW Java Thin Client
Web Services – for KEW and, eventually, KIM
eDoc Lite
Bundled Mode
• All Kuali Rice modules are embedded into the
client application, including the Web
Application
• Does not require the deployment of a
standalone Rice server
Ideal for development or “quickstart”
applications
This is not desirable for Enterprise deployments
of Kuali Rice
Bundled Mode Diagram
Standalone Rice Server
• The Standalone Rice Server allows you to
run a central Kuali Rice application that can
be integrated with multiple clients
• Facilitates a single KEW Action List,
Document Search, etc.
• Allows for a shared KSB Service Registry
• Supports multiple integration options for
clients:
KEW Java Thin Client
Embedded KEW
Web Services
KEW Java Thin Client
• Allows for a Java client application to
integrate with the KEW module of Rice
• Uses Java Serialization over HTTP
• All workflow processing happens on the
standalone server
• If the workflow processing requires custom
code (i.e. Post Processors), then plug-ins
need to be developed and deployed to the
server
KEW Java Thin Client Diagram
Embedded KEW
• Embedded KEW allows you to configure a
workflow engine embedded in your
application but still use a standalone rice
server
• This allows for the following:
Integration of database transactions between client
application and embedded KEW (via JTA)
Fast - Embedded client talks directly to database
No need for application plug-ins on the server
Still a single KEW web app but scalability is
increased because of multiple Workflow Engines
Embedded KEW Diagram
KEW Web Services
• There are a few web service endpoints that
are exposed from Kuali Rice
• KEW has a subset of it’s API available using
this integration method
• The KSB allows for exporting of services onto
the bus using SOAP Web Services
• In the future, we hope to add more web
service endpoints to Kuali Rice
• For example, KIM is being designed with web
service remoting in mind
Bringing it all Together
• Leveraging the KSB and the previous examples,
it’s possible to utilize multiple strategies for Kuali
Rice/KEW integration and deployment
• Examples:
Some clients running as Thin Clients
Some clients leveraging code deployed in plug-ins on
the standalone server
Multiple servers deployed in a cluster for scalability
Some clients integrating directly with web service
endpoints
Some clients running in Embedded Mode
Numerous eDoc Lite applications
The Whole Picture
Questions?
Questions from the audience.
Rice web site: http://rice.kuali.org