...
Info | ||||
---|---|---|---|---|
Naming conventions:
|
Create Rule Templates
Here we create several Rule Templates that are applied to each route node. Let's use <process name>.eDoc.<rule template name>.RuleTemplate to name our rule templates and <process name>.eDoc.RuleTemplates to name the associated XML file defining our collection of rule templates.
Code Block | ||
---|---|---|
| ||
<?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"> <ruleTemplates xmlns="ns:workflow/RuleTemplate" xsi:schemaLocation="ns:workflow/RuleTemplate resource:RuleTemplate"> <ruleTemplate> <name>RequestFirewallChange.eDoc.ReviewCurrentConfiguration.RuleTemplate</name> <description>ReviewCurrentConfiguration RuleTemplate</description> <attributes> <attribute> <name>RequestFirewallChange.eDoc.isUrgent.RuleAttribute</name> <required>true</required> </attribute> </attributes> </ruleTemplate> <ruleTemplate> <name>RequestFirewallChange.eDoc.FulfillUrgentRequest.RuleTemplate</name> <description>FulfillUrgentRequest RuleTemplate</description> </ruleTemplate> <ruleTemplate> <name>RequestFirewallChange.eDoc.ReviewUrgentRequest.RuleTemplate</name> <description>ReviewUrgentRequest RuleTemplate</description> </ruleTemplate> <ruleTemplate> <name>RequestFirewallChange.eDoc.ReviewRequest.RuleTemplate</name> <description>ReviewRequest RuleTemplate</description> </ruleTemplate> <ruleTemplate> <name>RequestFirewallChange.eDoc.FulfillRequest.RuleTemplate</name> <description>FulfillRequest RuleTemplate</description> </ruleTemplate> <ruleTemplate> <name>RequestFirewallChange.eDoc.AcknowledgeConfiguration.RuleTemplate</name> <description>AcknowledgeConfiguration RuleTemplate</description> <attributes> <attribute> <name>Initiator.Role.RuleAttribute</name> <required>true</required> </attribute> </attributes> </ruleTemplate> </ruleTemplates> </data> |
Info | ||||
---|---|---|---|---|
Naming conventions:
|
Create Routing Rules
Finally, we create Routing Rules that is are associated with RequestFirewallChange.eDoc.ChildDocType and its associated rule templates. Let's use <process name>.eDoc.RoutingRules to name the associated XML file defining our collection of routing rules.
Code Block | ||
---|---|---|
| ||
<?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"> <rules xmlns="ns:workflow/Rule" xsi:schemaLocation="ns:workflow/Rule resource:Rule"> <rule> <documentType>RequestFirewallChange.eDoc.ChildDocType</documentType> <ruleTemplate>RequestFirewallChange.eDoc.ReviewCurrentConfiguration.RuleTemplate</ruleTemplate> <description>ReviewCurrentConfiguration Routing Rule</description> <ignorePrevious>false</ignorePrevious> <responsibilities> <responsibility> <workgroup>ucd.IET.DES.DevelopmentSupport.WorkGroup </workgroup> <actionRequested>A</actionRequested> <priority>1</priority> </responsibility> </responsibilities> </rule> <rule> <documentType>RequestFirewallChange.eDoc.ChildDocType</documentType> <ruleTemplate>RequestFirewallChange.eDoc.FulfillUrgentRequest.RuleTemplate</ruleTemplate> <description>FulfillUrgentRequest Routing Rule</description> <ignorePrevious>false</ignorePrevious> <ruleExtensions> <ruleExtension> <attribute>RequestFirewallChange.eDoc.isUrgent.RuleAttribute</attribute> <ruleTemplate>RequestFirewallChange.eDoc.ReviewCurrentConfiguration.RuleTemplate</ruleTemplate> <ruleExtensionValues> <ruleExtensionValue> <key>isUrgent</key> <value>YES</value> </ruleExtensionValue> </ruleExtensionValues> </ruleExtension> </ruleExtensions> <responsibilities> <responsibility> <workgroup>ucd.IET.DCCS.FirewallSysAdmin.Workgroup</workgroup> <actionRequested>K</actionRequested> <priority>1</priority> </responsibility> </responsibilities> </rule> <rule> <documentType>RequestFirewallChange.eDoc.ChildDocType</documentType> <ruleTemplate>RequestFirewallChange.eDoc.ReviewUrgentRequest.RuleTemplate</ruleTemplate> <description>ReviewUrgentRequest Routing Rule</description> <ignorePrevious>false</ignorePrevious> <responsibilities> <responsibility> <workgroup>ucd.IET.AppDev.FirewallPolicyGroup.Workgroup </workgroup> <actionRequested>A</actionRequested> <priority>1</priority> </responsibility> </responsibilities> </rule> <rule> <documentType>RequestFirewallChange.eDoc.ChildDocType</documentType> <ruleTemplate>RequestFirewallChange.eDoc.ReviewRequest.RuleTemplate</ruleTemplate> <description>ReviewRequest Routing Rule</description> <ignorePrevious>false</ignorePrevious> <ruleExtensions> <ruleExtension> <attribute>RequestFirewallChange.eDoc.isUrgent.RuleAttribute</attribute> <ruleTemplate>RequestFirewallChange.eDoc.ReviewCurrentConfiguration.RuleTemplate</ruleTemplate> <ruleExtensionValues> <ruleExtensionValue> <key>isUrgent</key> <value>NO</value> </ruleExtensionValue> </ruleExtensionValues> </ruleExtension> </ruleExtensions> <responsibilities> <responsibility> <workgroup>ucd.IET.AppDev.FirewallPolicyGroup.Workgroup </workgroup> <actionRequested>A</actionRequested> <priority>1</priority> </responsibility> </responsibilities> </rule> <rule> <documentType>RequestFirewallChange.eDoc.ChildDocType</documentType> <ruleTemplate>RequestFirewallChange.eDoc.FulfillRequest.RuleTemplate</ruleTemplate> <description>FulfillRequest Routing Rule</description> <ignorePrevious>false</ignorePrevious> <responsibilities> <responsibility> <workgroup>ucd.IET.DCCS.FirewallSysAdmin.Workgroup</workgroup> <actionRequested>A</actionRequested> <priority>1</priority> </responsibility> </responsibilities> </rule> <rule> <documentType>RequestFirewallChange.eDoc.ChildDocType</documentType> <ruleTemplate>RequestFirewallChange.eDoc.AcknowledgeConfiguration.RuleTemplate</ruleTemplate> <description>AcknowledgeConfiguration Routing Rule</description> <ignorePrevious>true</ignorePrevious> <responsibilities> <responsibility> <role>edu.iu.uis.eden.routetemplate.InitiatorRoleAttribute!INITIATOR</role> <approvePolicy>F</approvePolicy> <actionRequested>K</actionRequested> <priority>1</priority> </responsibility> </responsibilities> </rule> </rules> </data> |
Info |
---|
...
Note:
Naming conventions:
|
Info |
---|
actionRequested codes: A = APPROVE, K = ACKNOWLEDGE |
XML File Ingestion
- Open the URL to a Kuali Rice development server (e.g. http://ricedevhost.ucdavis.edu:8080/rice-0.9.3-server/)
- Click on Kuali Enterprise Workflow
- Log in as admin
- Under Administration, click on XML Ingester
- Upload the XML files we created in the following order:
Rule Attributes
RequestFirewallChange.eDoc.RuleAttributes.xml
Rule Templates
RequestFirewallChange.eDoc.RuleTemplates.xml
Parent Document Type
RequestFirewallChange.eDoc.ParentDocType.xml
Child Document Types
RequestFirewallChange.eDoc.ChildDocType.xml
EDL Form
RequestFirewallChange.eDoc.Form.xml
Routing Rules:
RequestFirewallChange.eDoc.RoutingRulesRules.xml
Simulate the Business Process
...
Let's build a checklist that the QA team can use to validate the above simulation:
Requested Node | Current Status | Action | Taken By | New Status |
---|---|---|---|---|
RequestFirewallChange.eDoc.Request.Node | INITIATED | Fill out form, set URGENT to NO, click route | requester1 | ENROUTE |
RequestFirewallChange.eDoc.ReviewCurrentConfiguration.Node | ENROUTE | Click approve | DES1 | ENROUTE |
RequestFirewallChange.eDoc.ReviewRequest.Node | ENROUTE | Click approve | FPG1 | PROCESSED |
RequestFirewallChange.eDoc.FulfillRequest.Node | PROCESSED | Click acknowledge | DCCS1 | PROCESSED |
RequestFirewallChange.eDoc.AcknowledgeConfiguration.Node | PROCESSED | Click acknowledge | requester1 | FINAL |
Let's build another one for urgent requests:
Requested Node | Current Status | Action | Taken By | New Status |
---|---|---|---|---|
RequestFirewallChange.eDoc.Request.Node | INITIATED | Fill out form, set URGENT to YES, click route | requester1 | ENROUTE |
RequestFirewallChange.eDoc.ReviewCurrentConfiguration.Node | ENROUTE | Click approve | DES1 | ENROUTE |
RequestFirewallChange.eDoc.FulfillUrgentRequest.Node | ENROUTE | Click acknowledge | DCCS1 | ENROUTE |
RequestFirewallChange.eDoc.ReviewUrgentRequest.Node | ENROUTE | Click approve | FPG1 | PROCESSED |
RequestFirewallChange.eDoc.AcknowledgeConfiguration.Node | PROCESSED | Click acknowledge | requester1 | FINAL |
And another one for non-urgent requests that are disapproved:
Requested Node | Current Status | Action | Taken By | New Status |
---|---|---|---|---|
RequestFirewallChange.eDoc.Request.Node | INITIATED | Fill out form, set URGENT to NO, click route | requester1 | ENROUTE |
RequestFirewallChange.eDoc.ReviewCurrentConfiguration.Node | ENROUTE | Click approve | DES1 | ENROUTE |
RequestFirewallChange.eDoc.ReviewRequest.Node | ENROUTE | Click disapprove | FPG1 | DISAPPROVED |
RequestFirewallChange.eDoc.AcknowledgeConfiguration.Node | DISAPPROVED | Click acknowledge | requester1 | DISAPPROVED |
...