SlideShare a Scribd company logo
1 of 46
Download to read offline
KEW: Building Custom Workflows
    Quick review of key topics
    KEW Routing Components
    The KEW Document Type Config file
    Building a Proposal Development workflow
    Other features to explore
    In KC, business data and processes are
     encapsulated within a document (eg Proposal
     Development Document)
    The document workflow – routing, approvals,
     etc. – is implemented using the Rice module
     Kuali Enterprise Workflow (KEW)
    Kuali Identity Management (KIM) also
     provides hooks for workflow routing
    XML configuration file
    Describes features and behavior of the
     document to KEW, including its routing and
     approval chain – AKA the Process Definition
    ProposalDevelopmentDocument.xml
    Parent – the parent document type. Document
     types are hierarchical – attributes are inherited
     from the parent and can be overridden.
    Also useful for assigning KIM roles at
     document type – e.g., assign admin role to all
     Preaward maintenance documents

     <documentType>
     …
      <parent>KC</parent>
KC
                            Document




              Maintenance   PropDev
                                       …
               Document     Document



  Award       Compliance
Maintenance   Maintenance      …
 Document      Document
<postProcessorName>org.kuali.rice.kns.workflow.postprocessor.Kuali
     PostProcessor</postProcessorName>


     A Java class that will be called after a KEW
      action is taken on a document.
     This allows documents to code some special
      behavior after certain steps in the routing.
     For example, we use the doRouteStatusChange
      postprocessor hook to set custom statuses on
      the proposal development document
<superUserGroupName namespace="KC-WKFLW">OSP Superuser</
superUserGroupName>

      A group of users who can take super user
       administrative actions on the document

<defaultExceptionGroupName namespace="KC-WKFLW">ProposalAdmin</
defaultExceptionGroupName>

      The group of users who will get an action
       request for the document if there is a problem
       with the routing and it goes into exception
       routing
<docHandler>${kuali.docHandler.url.prefix}/
proposalDevelopmentProposal.do?methodToCall=docHandler</
docHandler>


     The Action to call when the document is
      opened from the doc search or action list
<policy>
             <name>DOCUMENT_STATUS_POLICY</name>
             <stringValue>app</stringValue>
           </policy>

    Policies – Allow you to configure behavior on a
     doc type basis
         DOCUMENT_STATUS_POLICY – Display KEW
          route status or custom application document status
          (status specific to that document)
         LOOK_FUTURE – Display the future action requests
          panel on the route log (screen shot)
    Attributes
    Render fields specific to this document on doc
     search, action list, etc
    See document search screen

       <attribute>
        <name>AggregatorSearchAttribute</name>
       </attribute>
<ruleAttribute>
<name>AggregatorSearchAttribute</name>
<className>org.kuali.rice.kew.docsearch.xml.StandardGenericXMLSearchableAttri
bute</className>
   <label>AggregatorSearchAttribute</label>
   <description>AggregatorSearchAttribute</description>
   <type>SearchableXmlAttribute</type>
   <serviceNamespace>KC</serviceNamespace>
   <searchingConfig>
    <fieldDef name="aggregator" title="Aggregator">
      <display>
       <type>text</type>
      </display>

(cont)
<lookup businessObjectClass="org.kuali.rice.kim.bo.Person">
      <fieldConversions>
       <fieldConversion localFieldName="aggregator"
lookupFieldName="principalName" />
      </fieldConversions>
     </lookup>
     <fieldEvaluation>
      <xpathexpression>//aggregator/string</xpathexpression>
     </fieldEvaluation>
    </fieldDef>
    <xmlSearchContent>
     <users>
      <aggregator>
       <value>%aggregator%</value>
      </aggregator>
     </users>
    </xmlSearchContent>
   </searchingConfig>
  </ruleAttribute>
    Route Path – The order in which route nodes
     are visited during the document workflow
    Route Nodes – Details about each node
    Route Path plus Route Nodes is referred to as
     the Process Definition
    Route nodes – The stops on the route path.
     Many different types of nodes but we will look
     at 3: requests, role, dynamic.
    Rule Attributes – Tell KEW how to find data
     within the document used to make routing
     decisions. For example, here’s how to find the
     lead unit.
    Rule – Tell KEW what to do when certain
     conditions are met. For example, when the
     lead unit is BL-CHEM, route to this person for
     approval.
    Rule Template
         Defines the rule attributes needed to evaluate the
          node – e.g., a Unit Number
         Links doc types, rules and rule attributes.
          Indirection layer that allows reuse of the various
          components, ie a rule attribute can be used by
          multiple document types.
    In KIM, permissions and responsibilities are
     assigned to Roles, and Roles are assigned to
     Principals (users)
    Permissions are for authorizations
    Responsibilities trigger KEW action requests –
     role-based nodes will route based on KIM
     Responsibilities
    Requests nodes will route based on KEW rules
Approval Request
  Initiator/Aggregator                      Principal Investigator
  submits into routing

                                                        Approval
                                                        Request

      Departmental       Approval Request    Preaward Specialist
       Approvers                                  Group

Delegation
Approval
Request                              Acknowledge for
                                     Submission to
       OSP Office                    Sponsor
    First, build the route path.
    Need to keep the split for proposal hierarchy.
     Will talk more about split nodes later.
    Start at initiated node – document is in
     initialized/saved state. Initiator will have a
     complete request.
    Define the next nodes until we join back up
     from the split.
<routePath>
 <start name="Initiated" nextNode="isHierarchyChild" />
  <split name="isHierarchyChild">
   <branch name="False">
    <role name="ProposalPersons" nextNode="PreawardSpecialistInitial" />
    <role name="PreawardSpecialistInitial" nextNode="DepartmentApproval" />
    <requests name="DepartmentApproval" nextNode="OSPOffice" /
    <role name="OSPOffice" nextNode="PreawardSpecialistFinal" />
    <role name="PreawardSpecialistFinal" nextNode="Join" />
   </branch>
   <branch name="True">
     <requests name="WaitForHierarchyDisposition" nextNode="Join" />
   </branch>
  <join name="Join" />
  </split>
</routePath>
    Next, configure the route nodes.
         activationType – Parallel or Serial. If the node generates
          multiple requests, should they all go out at once (parallel)
          or should they be staggered based on the priority defined
          in the rule (serial)
         mandatoryRoute – There should be at least one recipient
          at this node; if not, go into exception routing.
         finalApproval – This should be the last node that
          generates approval requests, if not, go into exception
          routing
         forceAction – If true, the user should approve again even
          if they approved earlier in the routing
    Initial Node – Not yet submitted; places a
     complete request in Initiator’s Action List
    See route log screen
     <start name="Initiated">
           <activationType>P</activationType>
           <mandatoryRoute>false</mandatoryRoute>
           <finalApproval>false</finalApproval>
     </start>
    Route to PI / CO-PI’s / Key Investigators
       Based on KIM Role, not rules
       Will send to Roles with ProposalPersons
        responsibility for this Proposal
       See responsibility screen
<routeNodes>
…
<role name="ProposalPersons">
 <qualifierResolver>ProposalPersonsXPathQualifierResolver</qualifierResolver>
 <activationType>P</activationType>
 <finalApproval>false</finalApproval>
</role>
…
</routeNodes>
    To resolve the role, KIM needs a proposal
      number qualifier.
     XPathQualifierResolver – Tell KEW how to find
      data in document XML.
<ruleAttribute>
    <name>ProposalPersons-XPathQualifierResolver</name>
    <className>org.kuali.rice.kew.role.XPathQualifierResolver</className>
    <resolverConfig>
      <qualifier name="proposal">
          <xPathExpression>//document/developmentProposalList[1]/
org.kuali.kra.proposaldevelopment.bo.DevelopmentProposal[1]/proposalNumber
[1]</xPathExpression>
     </qualifier>
    </resolverConfig>
</ruleAttribute>
    You can look at the XML for a specific
        document using the Document Operation
        screen
       See Document Operation screen

<documentContent><applicationContent><org.kuali.kra.workflow.KraDocument
XMLMaterializer>
...
  <developmentProposalList >
    <org.kuali.kra.proposaldevelopment.bo.DevelopmentProposal>
     <proposalNumber>10000</proposalNumber>
...
</documentContent>
    Role-based routing
       Specify NullQualifierResolver because this is
        not based on rules or document roles – based
        on KIM responsibility
       See Preaward Specialist role screen

<role name="PreawardSpecialistInitial">
         <qualifierResolverClass>org.kuali.rice.kew.role.NullQualifierResolver</
qualifierResolverClass>
         <activationType>P</activationType>
         <finalApproval>false</finalApproval>
</role>
    Rule-based requests node
    Again, we use Xpath to tell KEW how to find
     the data it needs to make a routing decision,
     then specify a rule for that data
    All linked by rule template

 <requests name="DepartmentApproval">
      <ruleTemplate>DepartmentApproval</ruleTemplate>
      <activationType>S</activationType>
      <finalApproval>false</finalApproval>
 </requests>
    The rule template links to the rule attribute
     which provides the unit number

<ruleTemplate>
   <name>DepartmentApproval</name>
   <description>Department Approval Routing Rule</description>
   <attributes>
     <attribute>
      <name>DepartmentApprovalAttribute</name>
      <required>false</required>
     </attribute>
   </attributes>
</ruleTemplate>
<ruleAttribute>
   <name>DepartmentApprovalAttribute</name>
<className>org.kuali.rice.kew.rule.xmlrouting.StandardGenericXMLRuleAttribute
</className>
   …
   <type>RuleXmlAttribute</type>
   <serviceNamespace>KC</serviceNamespace>
   <routingConfig>
    <fieldDef name="leadUnitNumber" title="Lead Unit" workflowType="RULE">
      <display><type>text</type></display>
      <validation required="false" />
      <fieldEvaluation>
<xpathexpression>wf:xstreamsafe('//document/developmentProposalList[1]/
org.kuali.kra.proposaldevelopment.bo.DevelopmentProposal/
ownedByUnitNumber')= wf:ruledata('leadUnitNumber')</xpathexpression>
…
 </ruleAttribute>
<rule>
   <name>DepartmentApprovalRule</name>
   <documentType>ProposalDevelopmentDocument</documentType>
   <ruleTemplate>DepartmentApproval</ruleTemplate>
   <description>Department Approval Routing Rule for IN-CARD</description>
   <forceAction>false</forceAction>
   <ruleExtensions>
    <ruleExtension>
     <attribute>DepartmentApprovalAttribute</attribute>
     <ruleTemplate>DepartmentApproval</ruleTemplate>
     <ruleExtensionValues>
       <ruleExtensionValue>
        <key>leadUnitNumber</key>
        <value>IN-CARD</value>
       …
   </ruleExtensions>

  (cont)
<responsibilities>
    <responsibility>
     <principalName>chew</principalName>
     <actionRequested>A</actionRequested>
     <priority>1</priority>
    </responsibility>
…
</rule>
    The rule says that if the unit number is IN-
     CARD, send an action request to Inez Chew
    Could also be a group or role
    What if I need to route a hierarchy – school,
     campus? Will see in a minute.
    See rules editor screen
    Same as preaward specialist group, except here
     we have a delegation
    See Role screen

<role name="OSPOffice">
<qualifierResolverClass>org.kuali.rice.kew.role.NullQualifierResolver</
qualifierResolverClass>
  <activationType>P</activationType>
  <finalApproval>false</finalApproval>
</role>
    Going back to the preaward specialists for
         submission to Sponsor.
        However, this time we are just using an
         Acknowledge request so the document can
         proceed to Processed status. See role screen.
<role name="PreawardSpecialistFinal">
<qualifierResolverClass>org.kuali.rice.kew.role.NullQualifierResolver</
qualifierResolverClass>
  <activationType>P</activationType>
  <forceAction>true</forceAction>
  <finalApproval>false</finalApproval>
</role>
    Ingest XML config files; KEW parses the files
     and inserts data into KEW tables
    See ingester screen
    For unit hierarchy routing – build an approval
     chain dynamically based on your KC unit
     hierarchy
    Implement the KEW HierarchyProvider
     interface – tell KEW how to build a DOM tree
    Replace the Department node with a dynamic
     node
<routeNodes>
…
<dynamic name="hierarchy">
    <activationType>P</activationType>
        <type>edu.iu.uits.kra.workflow.engine.node.hierarchyrouting.SimpleHi
              erarchyRoutingNode</type>
        <ruleSelector>HierarchicalNamed</ruleSelector>
 </dynamic>
…
</routeNodes>
Indiana
                          University


                                       UA-UA-
        BL-BL-Approver
                                       Approver


            BL-ARSC-                   UA-VPIT-
            Approver                   Approver



BL-CHEM-                  BL-BI-
 Approver                Approver
University Unit Hierarchy
                                         Proposal Approval Units
               Tree




edu.iu.uits.kra.workflow.engin.node.hierarchyrouting.SimpleHierarchyPr
                                 ovider
    NamedRuleSelector: Pick the rule for the given
     Unit based on a string matching pattern

 <rule>
  <name>hierarchy-UA-VPIT-Approver</name>
  <documentType>ProposalDevelopmentDocument</documentType>
  <description>Unit Approver for UA-VPIT</description>
  <forceAction>true</forceAction>
  <responsibilities>
   <responsibility>
    <principalName>lsalander</principalName>
    <actionRequested>A</actionRequested>
    <priority>1</priority>
   </responsibility>
  </responsibilities>
 </rule>
    Graphical view of document hierarchy, Process
     Definition, KEW roles/permissions/
     responsibilities
    See doc config screen
    Different types of nodes – split/join nodes for
     branched routing; email nodes; custom
     nodes….
    Different types of rule attributes/qualifier
     resolvers – Java rule attributes, groovy,
     DataDictionary…
    Compound rules – e.g., route to the Co-PI’s
     lead unit approvers if the total cost is over
     100,000
    And much more!
    Rice 2.0 – Rule authoring user interface (fall
     2011)
    Will be able to hook into KEW for routing
    Needed for functional equivalence with Coeus
    http://wiki.kuali.org
         KC Public Documentation
         Rice Public Documentation
    Collaboration lists
         kc.technical.collab@kuali.org
         rice.collab@kuali.org
    Conferences
         Kuali Days 2011 – kuali.org
    rSmart Training
         Rice Training – August 15 – 19
         KC Training – August 22 – 26
Kual Coeus KEW Technical Training

More Related Content

Similar to Kual Coeus KEW Technical Training

Overview of RESTful web services
Overview of RESTful web servicesOverview of RESTful web services
Overview of RESTful web servicesnbuddharaju
 
BPM-2 Introduction to Advanced Workflows
BPM-2 Introduction to Advanced WorkflowsBPM-2 Introduction to Advanced Workflows
BPM-2 Introduction to Advanced WorkflowsAlfresco Software
 
BPM-1 Introduction to Advanced Workflows
BPM-1 Introduction to Advanced WorkflowsBPM-1 Introduction to Advanced Workflows
BPM-1 Introduction to Advanced WorkflowsAlfresco Software
 
Rest with Java EE 6 , Security , Backbone.js
Rest with Java EE 6 , Security , Backbone.jsRest with Java EE 6 , Security , Backbone.js
Rest with Java EE 6 , Security , Backbone.jsCarol McDonald
 
Angular training - Day 3 - custom directives, $http, $resource, setup with ye...
Angular training - Day 3 - custom directives, $http, $resource, setup with ye...Angular training - Day 3 - custom directives, $http, $resource, setup with ye...
Angular training - Day 3 - custom directives, $http, $resource, setup with ye...murtazahaveliwala
 
Symfony2 - from the trenches
Symfony2 - from the trenchesSymfony2 - from the trenches
Symfony2 - from the trenchesLukas Smith
 
Building RESTful applications using Spring MVC
Building RESTful applications using Spring MVCBuilding RESTful applications using Spring MVC
Building RESTful applications using Spring MVCIndicThreads
 
Symfony2 from the Trenches
Symfony2 from the TrenchesSymfony2 from the Trenches
Symfony2 from the TrenchesJonathan Wage
 
Turmeric SOA - Security and Policy
Turmeric SOA - Security and PolicyTurmeric SOA - Security and Policy
Turmeric SOA - Security and Policykingargyle
 
Um roadmap do Framework Ruby on Rails, do Rails 1 ao Rails 4 - DevDay 2013
Um roadmap do Framework Ruby on Rails, do Rails 1 ao Rails 4 - DevDay 2013Um roadmap do Framework Ruby on Rails, do Rails 1 ao Rails 4 - DevDay 2013
Um roadmap do Framework Ruby on Rails, do Rails 1 ao Rails 4 - DevDay 2013Joao Lucas Santana
 

Similar to Kual Coeus KEW Technical Training (20)

Overview of RESTful web services
Overview of RESTful web servicesOverview of RESTful web services
Overview of RESTful web services
 
BPM-2 Introduction to Advanced Workflows
BPM-2 Introduction to Advanced WorkflowsBPM-2 Introduction to Advanced Workflows
BPM-2 Introduction to Advanced Workflows
 
BPM-1 Introduction to Advanced Workflows
BPM-1 Introduction to Advanced WorkflowsBPM-1 Introduction to Advanced Workflows
BPM-1 Introduction to Advanced Workflows
 
Rest
RestRest
Rest
 
Rest with Java EE 6 , Security , Backbone.js
Rest with Java EE 6 , Security , Backbone.jsRest with Java EE 6 , Security , Backbone.js
Rest with Java EE 6 , Security , Backbone.js
 
Pega overview
Pega overviewPega overview
Pega overview
 
What is rules in pega
What is rules in pegaWhat is rules in pega
What is rules in pega
 
Pega | pega Bpm Training
Pega | pega Bpm TrainingPega | pega Bpm Training
Pega | pega Bpm Training
 
Angular training - Day 3 - custom directives, $http, $resource, setup with ye...
Angular training - Day 3 - custom directives, $http, $resource, setup with ye...Angular training - Day 3 - custom directives, $http, $resource, setup with ye...
Angular training - Day 3 - custom directives, $http, $resource, setup with ye...
 
Symfony2 - from the trenches
Symfony2 - from the trenchesSymfony2 - from the trenches
Symfony2 - from the trenches
 
Stripes Framework
Stripes FrameworkStripes Framework
Stripes Framework
 
Unit 07: Design Patterns and Frameworks (3/3)
Unit 07: Design Patterns and Frameworks (3/3)Unit 07: Design Patterns and Frameworks (3/3)
Unit 07: Design Patterns and Frameworks (3/3)
 
Doing REST Right
Doing REST RightDoing REST Right
Doing REST Right
 
Maven POM
Maven POMMaven POM
Maven POM
 
Building RESTful applications using Spring MVC
Building RESTful applications using Spring MVCBuilding RESTful applications using Spring MVC
Building RESTful applications using Spring MVC
 
Symfony2 from the Trenches
Symfony2 from the TrenchesSymfony2 from the Trenches
Symfony2 from the Trenches
 
Struts 2
Struts 2Struts 2
Struts 2
 
Turmeric SOA - Security and Policy
Turmeric SOA - Security and PolicyTurmeric SOA - Security and Policy
Turmeric SOA - Security and Policy
 
Um roadmap do Framework Ruby on Rails, do Rails 1 ao Rails 4 - DevDay 2013
Um roadmap do Framework Ruby on Rails, do Rails 1 ao Rails 4 - DevDay 2013Um roadmap do Framework Ruby on Rails, do Rails 1 ao Rails 4 - DevDay 2013
Um roadmap do Framework Ruby on Rails, do Rails 1 ao Rails 4 - DevDay 2013
 
Struts2 - 101
Struts2 - 101Struts2 - 101
Struts2 - 101
 

More from rSmart

University of Pacific: Sakai migration approach, strategy and lessons learned
University of Pacific: Sakai migration approach, strategy and lessons learnedUniversity of Pacific: Sakai migration approach, strategy and lessons learned
University of Pacific: Sakai migration approach, strategy and lessons learnedrSmart
 
Using Sakai to meet accreditation standards
Using Sakai to meet accreditation standardsUsing Sakai to meet accreditation standards
Using Sakai to meet accreditation standardsrSmart
 
Colorado State University: Cost of Kuali
Colorado State University: Cost of KualiColorado State University: Cost of Kuali
Colorado State University: Cost of KualirSmart
 
Sjdc total cost of kuali
Sjdc total cost of kualiSjdc total cost of kuali
Sjdc total cost of kualirSmart
 
Sakai Case Study - Cerritos College Final
Sakai Case Study - Cerritos College FinalSakai Case Study - Cerritos College Final
Sakai Case Study - Cerritos College FinalrSmart
 
Sakai Safe Choice In Turbulent Times
Sakai Safe Choice In Turbulent TimesSakai Safe Choice In Turbulent Times
Sakai Safe Choice In Turbulent TimesrSmart
 
Elearning 2009 Introduction To Sakai Cost Savings.Feb.22.2009 V.1
Elearning 2009 Introduction To Sakai Cost Savings.Feb.22.2009 V.1Elearning 2009 Introduction To Sakai Cost Savings.Feb.22.2009 V.1
Elearning 2009 Introduction To Sakai Cost Savings.Feb.22.2009 V.1rSmart
 
University of Michigan Sakai Case Study
University of Michigan Sakai Case StudyUniversity of Michigan Sakai Case Study
University of Michigan Sakai Case StudyrSmart
 
Stanford University Sakai Case Study
Stanford University Sakai Case StudyStanford University Sakai Case Study
Stanford University Sakai Case StudyrSmart
 
rSmart Overview Presentation
rSmart Overview PresentationrSmart Overview Presentation
rSmart Overview PresentationrSmart
 
Sakai Cost Savings Webinar Feb 12 2009
Sakai Cost Savings Webinar Feb 12 2009Sakai Cost Savings Webinar Feb 12 2009
Sakai Cost Savings Webinar Feb 12 2009rSmart
 

More from rSmart (11)

University of Pacific: Sakai migration approach, strategy and lessons learned
University of Pacific: Sakai migration approach, strategy and lessons learnedUniversity of Pacific: Sakai migration approach, strategy and lessons learned
University of Pacific: Sakai migration approach, strategy and lessons learned
 
Using Sakai to meet accreditation standards
Using Sakai to meet accreditation standardsUsing Sakai to meet accreditation standards
Using Sakai to meet accreditation standards
 
Colorado State University: Cost of Kuali
Colorado State University: Cost of KualiColorado State University: Cost of Kuali
Colorado State University: Cost of Kuali
 
Sjdc total cost of kuali
Sjdc total cost of kualiSjdc total cost of kuali
Sjdc total cost of kuali
 
Sakai Case Study - Cerritos College Final
Sakai Case Study - Cerritos College FinalSakai Case Study - Cerritos College Final
Sakai Case Study - Cerritos College Final
 
Sakai Safe Choice In Turbulent Times
Sakai Safe Choice In Turbulent TimesSakai Safe Choice In Turbulent Times
Sakai Safe Choice In Turbulent Times
 
Elearning 2009 Introduction To Sakai Cost Savings.Feb.22.2009 V.1
Elearning 2009 Introduction To Sakai Cost Savings.Feb.22.2009 V.1Elearning 2009 Introduction To Sakai Cost Savings.Feb.22.2009 V.1
Elearning 2009 Introduction To Sakai Cost Savings.Feb.22.2009 V.1
 
University of Michigan Sakai Case Study
University of Michigan Sakai Case StudyUniversity of Michigan Sakai Case Study
University of Michigan Sakai Case Study
 
Stanford University Sakai Case Study
Stanford University Sakai Case StudyStanford University Sakai Case Study
Stanford University Sakai Case Study
 
rSmart Overview Presentation
rSmart Overview PresentationrSmart Overview Presentation
rSmart Overview Presentation
 
Sakai Cost Savings Webinar Feb 12 2009
Sakai Cost Savings Webinar Feb 12 2009Sakai Cost Savings Webinar Feb 12 2009
Sakai Cost Savings Webinar Feb 12 2009
 

Recently uploaded

How to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 DatabaseHow to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 DatabaseCeline George
 
4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptxmary850239
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 - I-LEARN SMART WORLD - CẢ NĂM - CÓ FILE NGHE (BẢN...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 - I-LEARN SMART WORLD - CẢ NĂM - CÓ FILE NGHE (BẢN...BÀI TẬP BỔ TRỢ TIẾNG ANH 8 - I-LEARN SMART WORLD - CẢ NĂM - CÓ FILE NGHE (BẢN...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 - I-LEARN SMART WORLD - CẢ NĂM - CÓ FILE NGHE (BẢN...Nguyen Thanh Tu Collection
 
Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...
Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...
Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...Osopher
 
Tree View Decoration Attribute in the Odoo 17
Tree View Decoration Attribute in the Odoo 17Tree View Decoration Attribute in the Odoo 17
Tree View Decoration Attribute in the Odoo 17Celine George
 
An Overview of the Calendar App in Odoo 17 ERP
An Overview of the Calendar App in Odoo 17 ERPAn Overview of the Calendar App in Odoo 17 ERP
An Overview of the Calendar App in Odoo 17 ERPCeline George
 
Comparative Literature in India by Amiya dev.pptx
Comparative Literature in India by Amiya dev.pptxComparative Literature in India by Amiya dev.pptx
Comparative Literature in India by Amiya dev.pptxAvaniJani1
 
Objectives n learning outcoms - MD 20240404.pptx
Objectives n learning outcoms - MD 20240404.pptxObjectives n learning outcoms - MD 20240404.pptx
Objectives n learning outcoms - MD 20240404.pptxMadhavi Dharankar
 
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptxDecoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptxDhatriParmar
 
Satirical Depths - A Study of Gabriel Okara's Poem - 'You Laughed and Laughed...
Satirical Depths - A Study of Gabriel Okara's Poem - 'You Laughed and Laughed...Satirical Depths - A Study of Gabriel Okara's Poem - 'You Laughed and Laughed...
Satirical Depths - A Study of Gabriel Okara's Poem - 'You Laughed and Laughed...HetalPathak10
 
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvRicaMaeCastro1
 
ARTERIAL BLOOD GAS ANALYSIS........pptx
ARTERIAL BLOOD  GAS ANALYSIS........pptxARTERIAL BLOOD  GAS ANALYSIS........pptx
ARTERIAL BLOOD GAS ANALYSIS........pptxAneriPatwari
 
How to Manage Buy 3 Get 1 Free in Odoo 17
How to Manage Buy 3 Get 1 Free in Odoo 17How to Manage Buy 3 Get 1 Free in Odoo 17
How to Manage Buy 3 Get 1 Free in Odoo 17Celine George
 
Employablity presentation and Future Career Plan.pptx
Employablity presentation and Future Career Plan.pptxEmployablity presentation and Future Career Plan.pptx
Employablity presentation and Future Career Plan.pptxryandux83rd
 
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQ-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQuiz Club NITW
 
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...DhatriParmar
 

Recently uploaded (20)

How to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 DatabaseHow to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 Database
 
4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 - I-LEARN SMART WORLD - CẢ NĂM - CÓ FILE NGHE (BẢN...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 - I-LEARN SMART WORLD - CẢ NĂM - CÓ FILE NGHE (BẢN...BÀI TẬP BỔ TRỢ TIẾNG ANH 8 - I-LEARN SMART WORLD - CẢ NĂM - CÓ FILE NGHE (BẢN...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 - I-LEARN SMART WORLD - CẢ NĂM - CÓ FILE NGHE (BẢN...
 
Introduction to Research ,Need for research, Need for design of Experiments, ...
Introduction to Research ,Need for research, Need for design of Experiments, ...Introduction to Research ,Need for research, Need for design of Experiments, ...
Introduction to Research ,Need for research, Need for design of Experiments, ...
 
Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...
Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...
Healthy Minds, Flourishing Lives: A Philosophical Approach to Mental Health a...
 
Tree View Decoration Attribute in the Odoo 17
Tree View Decoration Attribute in the Odoo 17Tree View Decoration Attribute in the Odoo 17
Tree View Decoration Attribute in the Odoo 17
 
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptxINCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
 
An Overview of the Calendar App in Odoo 17 ERP
An Overview of the Calendar App in Odoo 17 ERPAn Overview of the Calendar App in Odoo 17 ERP
An Overview of the Calendar App in Odoo 17 ERP
 
Comparative Literature in India by Amiya dev.pptx
Comparative Literature in India by Amiya dev.pptxComparative Literature in India by Amiya dev.pptx
Comparative Literature in India by Amiya dev.pptx
 
Objectives n learning outcoms - MD 20240404.pptx
Objectives n learning outcoms - MD 20240404.pptxObjectives n learning outcoms - MD 20240404.pptx
Objectives n learning outcoms - MD 20240404.pptx
 
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptxDecoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
 
Satirical Depths - A Study of Gabriel Okara's Poem - 'You Laughed and Laughed...
Satirical Depths - A Study of Gabriel Okara's Poem - 'You Laughed and Laughed...Satirical Depths - A Study of Gabriel Okara's Poem - 'You Laughed and Laughed...
Satirical Depths - A Study of Gabriel Okara's Poem - 'You Laughed and Laughed...
 
Mattingly "AI & Prompt Design" - Introduction to Machine Learning"
Mattingly "AI & Prompt Design" - Introduction to Machine Learning"Mattingly "AI & Prompt Design" - Introduction to Machine Learning"
Mattingly "AI & Prompt Design" - Introduction to Machine Learning"
 
Paradigm shift in nursing research by RS MEHTA
Paradigm shift in nursing research by RS MEHTAParadigm shift in nursing research by RS MEHTA
Paradigm shift in nursing research by RS MEHTA
 
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
 
ARTERIAL BLOOD GAS ANALYSIS........pptx
ARTERIAL BLOOD  GAS ANALYSIS........pptxARTERIAL BLOOD  GAS ANALYSIS........pptx
ARTERIAL BLOOD GAS ANALYSIS........pptx
 
How to Manage Buy 3 Get 1 Free in Odoo 17
How to Manage Buy 3 Get 1 Free in Odoo 17How to Manage Buy 3 Get 1 Free in Odoo 17
How to Manage Buy 3 Get 1 Free in Odoo 17
 
Employablity presentation and Future Career Plan.pptx
Employablity presentation and Future Career Plan.pptxEmployablity presentation and Future Career Plan.pptx
Employablity presentation and Future Career Plan.pptx
 
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQ-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
 
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
Beauty Amidst the Bytes_ Unearthing Unexpected Advantages of the Digital Wast...
 

Kual Coeus KEW Technical Training

  • 2.   Quick review of key topics   KEW Routing Components   The KEW Document Type Config file   Building a Proposal Development workflow   Other features to explore
  • 3.   In KC, business data and processes are encapsulated within a document (eg Proposal Development Document)   The document workflow – routing, approvals, etc. – is implemented using the Rice module Kuali Enterprise Workflow (KEW)   Kuali Identity Management (KIM) also provides hooks for workflow routing
  • 4.   XML configuration file   Describes features and behavior of the document to KEW, including its routing and approval chain – AKA the Process Definition   ProposalDevelopmentDocument.xml
  • 5.   Parent – the parent document type. Document types are hierarchical – attributes are inherited from the parent and can be overridden.   Also useful for assigning KIM roles at document type – e.g., assign admin role to all Preaward maintenance documents <documentType> … <parent>KC</parent>
  • 6. KC Document Maintenance PropDev … Document Document Award Compliance Maintenance Maintenance … Document Document
  • 7. <postProcessorName>org.kuali.rice.kns.workflow.postprocessor.Kuali PostProcessor</postProcessorName>   A Java class that will be called after a KEW action is taken on a document.   This allows documents to code some special behavior after certain steps in the routing.   For example, we use the doRouteStatusChange postprocessor hook to set custom statuses on the proposal development document
  • 8. <superUserGroupName namespace="KC-WKFLW">OSP Superuser</ superUserGroupName>   A group of users who can take super user administrative actions on the document <defaultExceptionGroupName namespace="KC-WKFLW">ProposalAdmin</ defaultExceptionGroupName>   The group of users who will get an action request for the document if there is a problem with the routing and it goes into exception routing
  • 9. <docHandler>${kuali.docHandler.url.prefix}/ proposalDevelopmentProposal.do?methodToCall=docHandler</ docHandler>   The Action to call when the document is opened from the doc search or action list
  • 10. <policy> <name>DOCUMENT_STATUS_POLICY</name> <stringValue>app</stringValue> </policy>   Policies – Allow you to configure behavior on a doc type basis   DOCUMENT_STATUS_POLICY – Display KEW route status or custom application document status (status specific to that document)   LOOK_FUTURE – Display the future action requests panel on the route log (screen shot)
  • 11.   Attributes   Render fields specific to this document on doc search, action list, etc   See document search screen <attribute> <name>AggregatorSearchAttribute</name> </attribute>
  • 12. <ruleAttribute> <name>AggregatorSearchAttribute</name> <className>org.kuali.rice.kew.docsearch.xml.StandardGenericXMLSearchableAttri bute</className> <label>AggregatorSearchAttribute</label> <description>AggregatorSearchAttribute</description> <type>SearchableXmlAttribute</type> <serviceNamespace>KC</serviceNamespace> <searchingConfig> <fieldDef name="aggregator" title="Aggregator"> <display> <type>text</type> </display> (cont)
  • 13. <lookup businessObjectClass="org.kuali.rice.kim.bo.Person"> <fieldConversions> <fieldConversion localFieldName="aggregator" lookupFieldName="principalName" /> </fieldConversions> </lookup> <fieldEvaluation> <xpathexpression>//aggregator/string</xpathexpression> </fieldEvaluation> </fieldDef> <xmlSearchContent> <users> <aggregator> <value>%aggregator%</value> </aggregator> </users> </xmlSearchContent> </searchingConfig> </ruleAttribute>
  • 14.   Route Path – The order in which route nodes are visited during the document workflow   Route Nodes – Details about each node   Route Path plus Route Nodes is referred to as the Process Definition
  • 15.   Route nodes – The stops on the route path. Many different types of nodes but we will look at 3: requests, role, dynamic.   Rule Attributes – Tell KEW how to find data within the document used to make routing decisions. For example, here’s how to find the lead unit.   Rule – Tell KEW what to do when certain conditions are met. For example, when the lead unit is BL-CHEM, route to this person for approval.
  • 16.   Rule Template   Defines the rule attributes needed to evaluate the node – e.g., a Unit Number   Links doc types, rules and rule attributes. Indirection layer that allows reuse of the various components, ie a rule attribute can be used by multiple document types.
  • 17.   In KIM, permissions and responsibilities are assigned to Roles, and Roles are assigned to Principals (users)   Permissions are for authorizations   Responsibilities trigger KEW action requests – role-based nodes will route based on KIM Responsibilities   Requests nodes will route based on KEW rules
  • 18. Approval Request Initiator/Aggregator Principal Investigator submits into routing Approval Request Departmental Approval Request Preaward Specialist Approvers Group Delegation Approval Request Acknowledge for Submission to OSP Office Sponsor
  • 19.   First, build the route path.   Need to keep the split for proposal hierarchy. Will talk more about split nodes later.   Start at initiated node – document is in initialized/saved state. Initiator will have a complete request.   Define the next nodes until we join back up from the split.
  • 20. <routePath> <start name="Initiated" nextNode="isHierarchyChild" /> <split name="isHierarchyChild"> <branch name="False"> <role name="ProposalPersons" nextNode="PreawardSpecialistInitial" /> <role name="PreawardSpecialistInitial" nextNode="DepartmentApproval" /> <requests name="DepartmentApproval" nextNode="OSPOffice" / <role name="OSPOffice" nextNode="PreawardSpecialistFinal" /> <role name="PreawardSpecialistFinal" nextNode="Join" /> </branch> <branch name="True"> <requests name="WaitForHierarchyDisposition" nextNode="Join" /> </branch> <join name="Join" /> </split> </routePath>
  • 21.   Next, configure the route nodes.   activationType – Parallel or Serial. If the node generates multiple requests, should they all go out at once (parallel) or should they be staggered based on the priority defined in the rule (serial)   mandatoryRoute – There should be at least one recipient at this node; if not, go into exception routing.   finalApproval – This should be the last node that generates approval requests, if not, go into exception routing   forceAction – If true, the user should approve again even if they approved earlier in the routing
  • 22.   Initial Node – Not yet submitted; places a complete request in Initiator’s Action List   See route log screen <start name="Initiated"> <activationType>P</activationType> <mandatoryRoute>false</mandatoryRoute> <finalApproval>false</finalApproval> </start>
  • 23.   Route to PI / CO-PI’s / Key Investigators   Based on KIM Role, not rules   Will send to Roles with ProposalPersons responsibility for this Proposal   See responsibility screen <routeNodes> … <role name="ProposalPersons"> <qualifierResolver>ProposalPersonsXPathQualifierResolver</qualifierResolver> <activationType>P</activationType> <finalApproval>false</finalApproval> </role> … </routeNodes>
  • 24.   To resolve the role, KIM needs a proposal number qualifier.   XPathQualifierResolver – Tell KEW how to find data in document XML. <ruleAttribute> <name>ProposalPersons-XPathQualifierResolver</name> <className>org.kuali.rice.kew.role.XPathQualifierResolver</className> <resolverConfig> <qualifier name="proposal"> <xPathExpression>//document/developmentProposalList[1]/ org.kuali.kra.proposaldevelopment.bo.DevelopmentProposal[1]/proposalNumber [1]</xPathExpression> </qualifier> </resolverConfig> </ruleAttribute>
  • 25.   You can look at the XML for a specific document using the Document Operation screen   See Document Operation screen <documentContent><applicationContent><org.kuali.kra.workflow.KraDocument XMLMaterializer> ... <developmentProposalList > <org.kuali.kra.proposaldevelopment.bo.DevelopmentProposal> <proposalNumber>10000</proposalNumber> ... </documentContent>
  • 26.   Role-based routing   Specify NullQualifierResolver because this is not based on rules or document roles – based on KIM responsibility   See Preaward Specialist role screen <role name="PreawardSpecialistInitial"> <qualifierResolverClass>org.kuali.rice.kew.role.NullQualifierResolver</ qualifierResolverClass> <activationType>P</activationType> <finalApproval>false</finalApproval> </role>
  • 27.   Rule-based requests node   Again, we use Xpath to tell KEW how to find the data it needs to make a routing decision, then specify a rule for that data   All linked by rule template <requests name="DepartmentApproval"> <ruleTemplate>DepartmentApproval</ruleTemplate> <activationType>S</activationType> <finalApproval>false</finalApproval> </requests>
  • 28.   The rule template links to the rule attribute which provides the unit number <ruleTemplate> <name>DepartmentApproval</name> <description>Department Approval Routing Rule</description> <attributes> <attribute> <name>DepartmentApprovalAttribute</name> <required>false</required> </attribute> </attributes> </ruleTemplate>
  • 29. <ruleAttribute> <name>DepartmentApprovalAttribute</name> <className>org.kuali.rice.kew.rule.xmlrouting.StandardGenericXMLRuleAttribute </className> … <type>RuleXmlAttribute</type> <serviceNamespace>KC</serviceNamespace> <routingConfig> <fieldDef name="leadUnitNumber" title="Lead Unit" workflowType="RULE"> <display><type>text</type></display> <validation required="false" /> <fieldEvaluation> <xpathexpression>wf:xstreamsafe('//document/developmentProposalList[1]/ org.kuali.kra.proposaldevelopment.bo.DevelopmentProposal/ ownedByUnitNumber')= wf:ruledata('leadUnitNumber')</xpathexpression> … </ruleAttribute>
  • 30. <rule> <name>DepartmentApprovalRule</name> <documentType>ProposalDevelopmentDocument</documentType> <ruleTemplate>DepartmentApproval</ruleTemplate> <description>Department Approval Routing Rule for IN-CARD</description> <forceAction>false</forceAction> <ruleExtensions> <ruleExtension> <attribute>DepartmentApprovalAttribute</attribute> <ruleTemplate>DepartmentApproval</ruleTemplate> <ruleExtensionValues> <ruleExtensionValue> <key>leadUnitNumber</key> <value>IN-CARD</value> … </ruleExtensions> (cont)
  • 31. <responsibilities> <responsibility> <principalName>chew</principalName> <actionRequested>A</actionRequested> <priority>1</priority> </responsibility> … </rule>
  • 32.   The rule says that if the unit number is IN- CARD, send an action request to Inez Chew   Could also be a group or role   What if I need to route a hierarchy – school, campus? Will see in a minute.   See rules editor screen
  • 33.   Same as preaward specialist group, except here we have a delegation   See Role screen <role name="OSPOffice"> <qualifierResolverClass>org.kuali.rice.kew.role.NullQualifierResolver</ qualifierResolverClass> <activationType>P</activationType> <finalApproval>false</finalApproval> </role>
  • 34.   Going back to the preaward specialists for submission to Sponsor.   However, this time we are just using an Acknowledge request so the document can proceed to Processed status. See role screen. <role name="PreawardSpecialistFinal"> <qualifierResolverClass>org.kuali.rice.kew.role.NullQualifierResolver</ qualifierResolverClass> <activationType>P</activationType> <forceAction>true</forceAction> <finalApproval>false</finalApproval> </role>
  • 35.   Ingest XML config files; KEW parses the files and inserts data into KEW tables   See ingester screen
  • 36.
  • 37.   For unit hierarchy routing – build an approval chain dynamically based on your KC unit hierarchy   Implement the KEW HierarchyProvider interface – tell KEW how to build a DOM tree   Replace the Department node with a dynamic node
  • 38. <routeNodes> … <dynamic name="hierarchy"> <activationType>P</activationType>   <type>edu.iu.uits.kra.workflow.engine.node.hierarchyrouting.SimpleHi erarchyRoutingNode</type>         <ruleSelector>HierarchicalNamed</ruleSelector>  </dynamic> … </routeNodes>
  • 39. Indiana University UA-UA- BL-BL-Approver Approver BL-ARSC- UA-VPIT- Approver Approver BL-CHEM- BL-BI- Approver Approver
  • 40. University Unit Hierarchy Proposal Approval Units Tree edu.iu.uits.kra.workflow.engin.node.hierarchyrouting.SimpleHierarchyPr ovider
  • 41.   NamedRuleSelector: Pick the rule for the given Unit based on a string matching pattern <rule> <name>hierarchy-UA-VPIT-Approver</name> <documentType>ProposalDevelopmentDocument</documentType> <description>Unit Approver for UA-VPIT</description> <forceAction>true</forceAction> <responsibilities> <responsibility> <principalName>lsalander</principalName> <actionRequested>A</actionRequested> <priority>1</priority> </responsibility> </responsibilities> </rule>
  • 42.   Graphical view of document hierarchy, Process Definition, KEW roles/permissions/ responsibilities   See doc config screen
  • 43.   Different types of nodes – split/join nodes for branched routing; email nodes; custom nodes….   Different types of rule attributes/qualifier resolvers – Java rule attributes, groovy, DataDictionary…   Compound rules – e.g., route to the Co-PI’s lead unit approvers if the total cost is over 100,000   And much more!
  • 44.   Rice 2.0 – Rule authoring user interface (fall 2011)   Will be able to hook into KEW for routing   Needed for functional equivalence with Coeus
  • 45.   http://wiki.kuali.org   KC Public Documentation   Rice Public Documentation   Collaboration lists   kc.technical.collab@kuali.org   rice.collab@kuali.org   Conferences   Kuali Days 2011 – kuali.org   rSmart Training   Rice Training – August 15 – 19   KC Training – August 22 – 26