420 likes | 428 Views
Learn about the basics of Kuali Enterprise Workflow (KEW), a versatile workflow engine designed to automate business processes. Explore core concepts, workflow offerings, and future technologies.
E N D
Kuali Enterprise Workflow (KEW) Basics Brian McGough, Manager, Systems Integration, UITS
Project Background • Kicked off at IU 2001 as OneStart Workflow • First production install in 2003 • Joined development forces with Cornell in 2005 and renamed to Kuali Enterprise Workflow • Through 2006 incremental upgrades performed, and the project is now on its 2.2 release
Project Background • Projects using workflow • Kuali • ERA • HR Edocs • Timekeeping • EPIC • Various eDoc lite projects • Core Development Staff • Ryan Kirkendall (Lead Developer, IU) • Eric Westfall (Developer, IU) • Aaron Hamid (Developer, Cornell)
Agenda • Workflow Offerings • Core Concepts • An example workflow • Future technologies
Workflow Offerings • Java API (for the java shops) • Easy to Use • Easy to setup • Client application in control • Requires client application written in java • Web Services API (for other technology shops) • Fairly easy to use • Client application in control • Edoc Lite (for departments without programmers) • Easy to use • XML document definition based • Small amount of technical expertise required
Core Concepts • What is KEW? • KEW is a general-purpose electronic routing infrastructure or "workflow engine” designed to facilitate the automation of mediated business processes
Core Concepts • E-Doc • Individual business transaction • Holds transaction specific information • Title • Business data (xml) • ‘Instance’ of a Document Type; behavior is dictated by its Document Type, sometimes referred to as a ‘Document’ • The ‘thing’ that travels through the Workflow System
Core Concepts • Document Type • Brings Workflow components together into a cohesive unit (routing configuration) • Post Processor • Doc Handler (access point into client application from Action List) • Access Control for certain actions • Defines E-Doc routing paths • Defines E-Doc routing policy • Defines E-Doc Rule configurations • Defines Searchable attributes
Core Concepts • Action List • Each user has an Action List • E-Docs are delivered to the Action List when an E-Doc requires action of a user • Configurable by user • Provides notifications through e-mail • Can view delegated E-Docs • Provides entry point into client application owning the E-Doc • Defined as Doc Handler • Provides link to Route Log • Limited customization through plugable java/xml components
Core Concepts • Route Log • An aggregate view of an E-Doc’s relevant routing state • Shows who the E-Doc has been routed to • Shows where in the route chain the E-Doc currently is • Shows the E-Doc’s routing status • Shows the E-Doc’s future recipients • Provides capability to predict the E-Doc’s routing path
Core Concepts • Document Search • Find E-Docs based on various Workflow criteria and optionally document specific criteria • Alternate entry point into client application owning the E-Doc • Provides link to Route Log • Basic and Advanced search • Named Searches allows users to save a search for later use • Provides Entrance into Super User Functionality (Administrative Routing)
Core Concepts • Client Application • Application using Workflow to route E-Docs • Uses Workflow through web services and java components installed in Workflow • Users take actions on Workflow documents in the client application. The client application calls Workflow on behalf of its users
Core Concepts • Workflow and Client Application Interaction
Core Concepts • Rules • Application Routing Data Stored in Workflow • Prevents client applications from writing screens and logic to maintain their routing data • Routing data for multiple applications housed in a single location • Routing for client applications can be managed from a single place • Good for users that have responsibilities in multiple applications • Determine to whom an E-Doc will go based on business data • Will automatically reroute any affected documents when rule changes
Core Concepts • Rule functionality driven by java/xml components that are reusable across client applications • Rule components represent an organizational routing “Tool box” that can be used by any client application in the university to efficiently deliver standard routing behavior • Routing behavior is sharable across applications and therefore more easily standardized • Rule sets created using components not sharable – each client application has rules available only to their document types • Components tell Rule framework how to draw rule data collection fields • Components evaluate each rule against an E-Doc • Components tell client application developers how to attach business data to E-Docs
Core Concepts – Rule Creation • Circled area represents functionality exposed by reusable Workflow Rule java component
Core Concepts - Rules without java • Drive rule/business data matching solely from xml technologies • Only most complex cases will require java programmers
XML Rule Attribute Example • <ruleAttribute> • <name>DepartmentAttribute</name> • <className>edu.iu.uis.eden.routetemplate.xmlrouting.StandardGenericXMLRuleAttribute</className> • <label>Department Routing</label> • <description>Department Routing</description> • <type>RuleXmlAttribute</type> • <routingConfig> • <fieldDef name="department" title="Department" workflowType="RULE"> • <display> • <type>select</type> • <values title="COAS-African American/African Diaspora Studies">AAAD</values> • <values title="COAS-African Studies">AFRI</values> • <values title="COAS-American Studies">AMST</values> • <values title="COAS-Ancient Studies">ANCS</values> • <values title="COAS-Animal Behavior">ABEH</values> • <values title="COAS-Anthropology">ANTH</values> • <values title="COAS-Apparel Merchandising/Interior Design">AMID</values> • </display> • <validation required="false" /> • <fieldEvaluation> • <xpathexpression>normalize-space(substring-before(//department, ' ')) = wf:ruledata('department')</xpathexpression> • </fieldEvaluation> • </fieldDef> • <xmlDocumentContent> • <department>%department%</department> • </xmlDocumentContent> • </routingConfig> • </ruleAttribute>
Core Concepts - EDoc Lite • Workflow renders the UI • Single xml file configures Document Type and UI • UI Configurable across universities and applications using XSLT • Lowers barriers of entry to doing Workflow
EDL XML • <?xml version="1.0" encoding="UTF-8"?> • <data xmlns="ns:workflow" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="ns:workflow resource:WorkflowData"> • <edoclite xmlns="ns:workflow/EDocLite" xsi:schemaLocation="ns:workflow/EDocLite resource:EDocLite"> • <edl name="NewCourseRequest" title="New Course Request"> • <security></security> • <eventNotificationURL>http://localhost:8080/en-dev/snoop.jsp</eventNotificationURL> • <createInstructions>** Fill out the new Course Request.</createInstructions> • <instructions>** Review the Course Request.</instructions> • <fieldDef name="department" title="Department" attributeName="DepartmentAttribute"> • <value></value> • <display> • <type>select</type> • <values title="African American/African Diaspora Studies">AAAD COAS</values> • <values title="African Studies">AFRI COAS</values> • <values title="American Studies">AMST COAS</values> • <values title="Ancient Studies">ANCS COAS</values> • </display> • <validation required="false" /> • </fieldDef> • <fieldDef name="creditType" title="Check Appropriate Boxes"> • <value>undergraduateCredit</value> • <display> • <type>radio</type> • <values title="Undergraduate credit">undergraduateCredit</values> • <values title="Graduate credit">graduateCredit</values> • <values title="Professional credit">professionCredit</values> • </display> • </fieldDef> • <fieldDef name="academicSubjectCode" title="Academic Subject Code"> • <display> • <type>text</type> • </display> • <validation required="true" /> • </fieldDef>
Core Concepts • Route Modules • Tell Workflow to whom an E-Doc will route • Route based on data maintained by client applications (Workflow has no knowledge of data) • Accomplishes same thing as Rules – Workflow doing less work for you • Post Processors • Client application code contacted throughout the routing process • Simple notification mechanism to allow client applications to do operations based on their E-Docs progression through routing
Core Concepts • Delegation • Allows users to delegate their authority to other users • A user that I delegate to can take action on my behalf • Done on an E-Doc by E-Doc basis and controlled by Rules or Route Modules • This means delegation can be based on business data (i.e. delegate to Sally if E-Doc total dollar amount > $100) • 2 kinds of delegation • Primary – the person who delegates their authority never sees their E-Docs in their Action List. The E-Docs go directly to the delegate’s Action List • Secondary – the delegate only sees the E-Docs if they check for E-Docs delegated to them.
Example Workflow • Show how the pieces fit together using a sample workflow • Document Type routing chains are assembled using “Route Nodes” • A route node is a pointer to a collection of Workflow Rule Components in the Rule system or a Route Module with a name • Policies can be applied at the node level that affect how E-Docs travel though Workflow
Example Workflow Workflow with an E-Doc passing through three route nodes
Example Workflow • Each route node connects reusable routing components with specific Document Types • Policies and behaviors can be configured through route nodes • Each node uses different business data attached to the E-Doc to determine where to send the E-Doc • Lets examine a single node up close and see how it interacts with all the core workflow concepts to form a cohesive route
Example Workflow • Workflow’s interaction with a single node in routing a document
Example Workflow • E-Doc comes into the system • Workflow is a service available to the client application via web services • Workflow is user action driven - a client application must tell Workflow that user X has taken action on E-Doc Y • When E-Doc comes into system Workflow determines which route node to send the document to for further processing • Route Node configuration determines which set of Rules the document will be evaluated against
Example Workflow Rule System Compares document content to rules and creates action requests
Example Workflow - Rules • E-Doc is evaluated against rule set for node. • If document business data matches rule business data the people and workgroups associated with the rules are sent a request • Java/XML components ‘plug’ into the rule system and are ultimately responsible for evaluating the business data contained in the document against the rule data • Route Module could do the same job with data outside the workflow system
Example Workflow Document is sent to appropriate Action Lists with a link back to the client application
Workflow Example - Action List • Action List has a link back to the Client Application • Client Application draws screen and informs Workflow of any E-Doc actions taken by the user • When user takes action on E-Doc the E-Doc is removed from the users Action List
Workflow Example – Post Processor The Document Type’s Post Processor is notified as the E-Doc transitions through routing
Workflow Example – Post Processor • Post processor is Client Application’s ‘hook’ into routing process • Notified during transition from one node to the next • Notified when document routing status changes • Notified when user takes action on document • Can prevent any transition from occurring • Generally, sanity checks are done here and client application data is updated as necessary
Wrap Up • Covered a lot of ground in the last 5 years • Wrapping up some needed functionality in 2.3 • Moving towards industry standards for 3.0 release • BPEL (Business Process Execution Language) • ESB (Enterprise Service Bus) • Moving fast with 3 fte, but could move faster with additional resources devoted to the effort
Wrap up • Check out our website • http://kew.indiana.edu • Contact us • workflow@indiana.edu