Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info

Naming conventions:

<process name>.eDoc.<rule attribute name>.RuleAttribute

Rule Attributes

<process name>.eDoc.RuleAttributes

XML file containing sets defining a collection of rule attributes

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
titleRequestFirewallChange.eDoc.RuleTemplates.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">
<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:

<process name>.eDoc.<rule template name>.RuleTemplate

Rule Templates

<process name>.eDoc.RuleTemplates

XML file defining a collection of rule templates

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
titleRequestFirewallChange.eDoc.RoutingRulesRules.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">
<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:

<process name>.eDoc.<rule name>.Rule

Rules

<process name>.eDoc.Rules

XML file defining a collection of rules

Info

actionRequested codes: A = APPROVE, K = ACKNOWLEDGE

XML File Ingestion

  1. Open the URL to a Kuali Rice development server (e.g. http://ricedevhost.ucdavis.edu:8080/rice-0.9.3-server/)
  2. Click on Kuali Enterprise Workflow
  3. Log in as admin
  4. Under Administration, click on XML Ingester
  5. 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

...