eDocLite Template
eDocLite Dependency Hierarchy
Naming Conventions
Workflow Component | Naming Convention |
|---|---|
Parent Document Type | <process name>.eDoc.ParentDocType |
Child Document Type | <process name>.eDoc.ChildDocType |
eDocLite Form Definition | <process name>.eDoc.Form |
eDocLite Style Definition | <process name>.eDoc.Style |
Rule Attribute | <process name>.eDoc.<rule attribute name>.RuleAttribute |
Rule Template | <process name>.eDoc.<rule template name>.RuleTemplate |
Rule | <process name>.eDoc.<rule name>.Rule |
XML Files | Naming Convention |
Parent Document Type | <process name>.eDoc.ParentDocType.xml |
Child Document Type | <process name>.eDoc.ChildDocType.xml |
eDocLite Form | <process name>.eDoc.Form.xml |
Rule Attributes | <process name>.eDoc.RuleAttributes.xml |
Rule Templates | <process name>.eDoc.RuleTemplates.xml |
Rules | <process name>.eDoc.Rules |
Development Cycle
Phase | Role | Skill Set |
|---|---|---|
Model the Business Process | Analyst | Process Modeling |
Model the Form Details | Analyst | Form Prototyping |
Model the Document Workflow | Analyst | Workflow Modeling |
Procure Work Groups | Developer, System Administrator | |
Create the Parent Document Type | Developer | XML |
Create the Child Document Types | Developer | XML, Workflow Modeling |
Create the eDocLite Form | Developer | HTML & JSP |
Create Rule Attributes | Developer | XML, Workflow Modeling |
Create Rule Templates | Developer | XML, Workflow Modeling |
Create Rules | Developer | XML, Workflow Modeling |
Implement Workflow Components | Deployer/System Administrator (IET) | |
Simulate the Business Process | QA | Process Modeling, Workflow Modeling |
Create Validation Checklists | QA | Process Modeling, Workflow Modeling |
Sample Business Process Model
Sample Document Workflow Model
Element Notation | Notation Rule |
|---|---|
Request | The first route node, a.k.a. the start node, in the workflow's route path. This is where the Request Firewall Change document is created by an initiator. |
Purple "Document" | A node in the route path. Each node represents a point in the business process where a responsible party is viewing (and possibly editing) the Request Firewall Change document. |
Lavender Parallelogram | A rule template that is applied to each node. Each rule template is associated with a set of rules and rule attributes. |
Orange Sail | A rule attribute associated with a rule template. |
Lime Rectangle | The responsible party or parties who take action on a node. |
Red Arrow | The action that must be taken to get from one node to the next node. |
Blue Join Line | When connected to a rule attribute, it represents a rule that evaluates that rule attribute |
Finish | Means the workflow has completed with flying colors. |
Sample Work Groups
Responsible Party | Work Group |
|---|---|
Requester | Initiator.Role.RuleAttribute |
Desktop Services | ucd.IET.DES.DevelopmentSupport.WorkGroup |
Firewall Policy Group | ucd.IET.AppDev.FirewallPolicyGroup.Workgroup |
Firewall Gatekeeper | ucd.IET.DCCS.FirewallSysAdmin.Workgroup |
Super User Workgroup | ucd.IET.AppDev.KualiRice.SysAdmin.Workgroup |
Default Exception Workgroup | ucd.IET.AppDev.KualiRice.SysAdmin.Workgroup |
Responsibility Matrix:
Node | Responsible Party | Responsibility Condition(s) | Action Requested |
|---|---|---|---|
Request | Initiator.Role.RuleAttribute (whoever creates the document) | none | SUBMIT |
Review Current Configuration | ucd.IET.DES.DevelopmentSupport.WorkGroup | none | APPROVE |
Initial Approval | ucd.IET.AppDev.FirewallPolicyGroup.Workgroup | non-urgent request | APPROVE |
Initial Approval | ucd.IET.DCCS.FirewallSysAdmin.Workgroup | urgent request | APPROVE |
Final Approval | ucd.IET.AppDev.FirewallPolicyGroup.Workgroup | non-urgent request | APPROVE |
Final Approval | ucd.IET.DCCS.FirewallSysAdmin.Workgroup | urgent request | APPROVE |
Acknowledge Configuration | Initiator.Role.RuleAttribute | none | ACKNOWLEDGE |
Parent Document Type
RequestFirewallChange.eDoc.ParentDocType.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">
<documentTypes xmlns="ns:workflow/DocumentType" xsi:schemaLocation="ns:workflow/DocumentType resource:DocumentType">
<documentType>
<name>RequestFirewallChange.eDoc.ParentDocType</name>
<description>Request Firewall Change eDocLite Parent Document Type</description>
<label>Request Firewall Change eDocLite Parent Document Type</label>
<blanketApprovePolicy>NONE</blanketApprovePolicy>
<docHandler>${workflow.url}/EDocLite</docHandler>
<active>true</active>
<routingVersion>2</routingVersion>
</documentType>
</documentTypes>
</data>
Child Document Type
RequestFirewallChange.eDoc.ChildDocType.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">
<documentTypes xmlns="ns:workflow/DocumentType" xsi:schemaLocation="ns:workflow/DocumentType resource:DocumentType">
<documentType>
<name>RequestFirewallChange.eDoc.ChildDocType</name>
<parent>RequestFirewallChange.eDoc.ParentDocType</parent>
<description>Request Firewall Change eDocLite Child Document Type</description>
<label>Request Firewall Change eDocLite Child Document Type</label>
<postProcessorName>edu.iu.uis.eden.edl.EDocLitePostProcessor</postProcessorName>
<superUserWorkgroupName>ucd.IET.AppDev.KualiRice.SysAdmin.Workgroup</superUserWorkgroupName>
<defaultExceptionWorkgroupName>ucd.IET.AppDev.KualiRice.SysAdmin.Workgroup</defaultExceptionWorkgroupName>
<docHandler>${workflow.url}/EDocLite</docHandler>
<active>true</active>
<routingVersion>2</routingVersion>
<routePaths>
<routePath>
<start name="Request" nextNode="ReviewCurrentConfiguration" />
<requests name="ReviewCurrentConfiguration" nextNode="InitialApproval" />
<requests name="InitialApproval" nextNode="FinalApproval" />
<requests name="FinalApproval" nextNode="AcknowledgeConfiguration" />
<requests name="AcknowledgeConfiguration" />
</routePath>
</routePaths>
<routeNodes>
<start name="Request">
<activationType>P</activationType>
</start>
<requests name="ReviewCurrentConfiguration">
<activationType>P</activationType>
<ruleTemplate>RequestFirewallChange.eDoc.ReviewCurrentConfiguration.RuleTemplate</ruleTemplate>
</requests>
<requests name="InitialApproval">
<activationType>P</activationType>
<ruleTemplate>RequestFirewallChange.eDoc.InitialApproval.RuleTemplate</ruleTemplate>
</requests>
<requests name="FinalApproval">
<activationType>P</activationType>
<ruleTemplate>RequestFirewallChange.eDoc.FinalApproval.RuleTemplate</ruleTemplate>
</requests>
<requests name="AcknowledgeConfiguration">
<activationType>S</activationType>
<ruleTemplate>RequestFirewallChange.eDoc.AcknowledgeConfiguration.RuleTemplate</ruleTemplate>
<mandatoryRoute>false</mandatoryRoute>
<finalApproval>false</finalApproval>
</requests>
</routeNodes>
</documentType>
</documentTypes>
</data>
eDocLite Form
The eDocLite Form Skeleton
RequestFirewallChange.eDoc.Form.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="RequestFirewallChange.eDoc.Form" title="Request Firewall Change"> <security /> <createInstructions>** Fields with an asterisk are required.</createInstructions> <instructions>** Fields with an asterisk are required.</instructions> <validations /> <attributes /> ... ... </edl> <style name="RequestFirewallChange.eDoc.Style"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:my-class="xalan://edu.iu.uis.eden.edl.WorkflowFunctions" version="1.0"> <xsl:include href="widgets" /> <xsl:output indent="yes" method="html" omit-xml-declaration="yes" version="4.01" /> <xsl:variable name="actionable" select="/documentContent/documentState/actionable" /> <xsl:variable name="docHeaderId" select="/documentContent/documentState/docId" /> <xsl:variable name="editable" select="/documentContent/documentState/editable" /> <xsl:variable name="globalReadOnly" select="/documentContent/documentState/editable != 'true'" /> <xsl:variable name="docStatus" select="//documentState/workflowDocumentState/status" /> <xsl:variable name="isAtNodeInitiated" select="my-class:isAtNode($docHeaderId, 'Initiated')" /> <xsl:variable name="isPastInitiated" select="my-class:isNodeInPreviousNodeList('Initiated', $docHeaderId)" /> <xsl:variable name="isUserInitiator" select="my-class:isUserInitiator($docHeaderId)" /> <xsl:param name="overrideMain" select="'true'" /> <xsl:template name="mainForm"> <html xmlns=""> <head> <script language="javascript" /> <xsl:call-template name="htmlHead" /> </head> <body onload="onPageLoad()"> <xsl:call-template name="errors" /> <xsl:call-template name="header" /> <xsl:call-template name="instructions" /> <xsl:variable name="formTarget" select="'EDocLite'" /> <form action="{$formTarget}" enctype="multipart/form-data" id="edoclite" method="post" onsubmit="return validateOnSubmit(this)"> <xsl:call-template name="hidden-params" /> <xsl:call-template name="mainBody" /> <xsl:call-template name="notes" /> <br /> <xsl:call-template name="buttons" /> <br /> </form> <xsl:call-template name="footer" /> </body> </html> </xsl:template> <xsl:template name="mainBody"> ... ... </xsl:template> <xsl:template name="nbsp"> <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text> </xsl:template> </xsl:stylesheet> </style> <association> <docType>RequestFirewallChange.eDoc.ChildDocType</docType> <definition>RequestFirewallChange.eDoc.Form</definition> <style>RequestFirewallChange.eDoc.Style</style> <active>true</active> </association> </edoclite> </data>Form Definition
RequestFirewallChange.eDoc.Form.xml
<fieldDef name="dateOfChange" title="Date and Time for Change: MM/DD/YYYY"> <display> <type>text</type> </display> <validation required="true"> <regex>^[0-1]?[0-9](/|-)[0-3]?[0-9](/|-)[1-2][0-9][0-9][0-9]$</regex> <message>Enter a valid date in the format mm/dd/yyyy.</message> </validation> </fieldDef> <fieldDef name="descriptionOfChange" title="Description of the Port Change"> <display> <type>textarea</type> <meta> <name>rows</name> <value>5</value> </meta> <meta> <name>cols</name> <value>60</value> </meta> <meta> <name>wrap</name> <value>hard</value> </meta> </display> <validation required="true"> <message>Enter a description of the port change.</message> </validation> </fieldDef> <fieldDef attributeName="RequestFirewallChange.eDoc.isUrgent.RuleAttribute" name="isUrgent" title="URGENT"> <display> <type>select</type> <values title="NO">NO</values> <values title="YES">YES</values> </display> <validation required="true"> <message>Is this request URGENT?</message> </validation> </fieldDef> <fieldDef name="ingressEgressCharacteristic" title="Ingress/Egress Characteristic"> <display> <type>textarea</type> <meta> <name>rows</name> <value>5</value> </meta> <meta> <name>cols</name> <value>60</value> </meta> <meta> <name>wrap</name> <value>hard</value> </meta> </display> <validation required="true"> <message>Enter the ingress/egress characteristic.</message> </validation> </fieldDef> <fieldDef name="sourceSpecification" title="Source Specification"> <display> <type>textarea</type> <meta> <name>rows</name> <value>5</value> </meta> <meta> <name>cols</name> <value>60</value> </meta> <meta> <name>wrap</name> <value>hard</value> </meta> </display> <validation required="true"> <message>Enter the source specification.</message> </validation> </fieldDef> <fieldDef name="destinationSpecification" title="Destination Specification"> <display> <type>textarea</type> <meta> <name>rows</name> <value>5</value> </meta> <meta> <name>cols</name> <value>60</value> </meta> <meta> <name>wrap</name> <value>hard</value> </meta> </display> <validation required="true"> <message>Enter the destination specification.</message> </validation> </fieldDef> <fieldDef name="termOfRuleChange" title="Term of Rule Change (indefinite or otherwise)"> <display> <type>text</type> <meta> <name>size</name> <value>50</value> </meta> </display> <validation required="true"> <message>Enter term of the rule change.</message> </validation> </fieldDef> <fieldDef name="relatedProject" title="Project Related to Requested Rule(s) Change"> <display> <type>text</type> <meta> <name>size</name> <value>50</value> </meta> </display> <validation required="true"> <message>Enter a related project to the requested rule change.</message> </validation> </fieldDef>Form Stylesheet
RequestFirewallChange.eDoc.Form.xml
<xsl:template name="mainBody"> <table xmlns="" align="center" border="0" cellpadding="0" cellspacing="0" class="bord-r-t" width="80%"> <tr> <td align="left" border="3" class="thnormal" colspan="1"> <br /> <h3> University of California, Davis <br /> eDoclite Tutorial </h3> <br /> </td> <td align="center" border="3" class="thnormal" colspan="2"> <br /> <h2>Request Firewall Change Form</h2> </td> </tr> <tr> <td class="headercell5" colspan="100%"> <b>Request Details</b> </td> </tr> <tr> <td class="thnormal"> <xsl:call-template name="widget_render"> <xsl:with-param name="fieldName" select="'dateOfChange'" /> <xsl:with-param name="renderCmd" select="'title'" /> </xsl:call-template> <font color="#ff0000">*</font> </td> <td class="datacell"> <xsl:call-template name="widget_render"> <xsl:with-param name="fieldName" select="'dateOfChange'" /> <xsl:with-param name="renderCmd" select="'input'" /> <xsl:with-param name="readOnly" select="$isPastInitiated" /> </xsl:call-template> </td> </tr> <tr> <td class="thnormal"> <xsl:call-template name="widget_render"> <xsl:with-param name="fieldName" select="'descriptionOfChange'" /> <xsl:with-param name="renderCmd" select="'title'" /> </xsl:call-template> <font color="#ff0000">*</font> </td> <td class="datacell"> <xsl:call-template name="widget_render"> <xsl:with-param name="fieldName" select="'descriptionOfChange'" /> <xsl:with-param name="renderCmd" select="'input'" /> <xsl:with-param name="readOnly" select="$isPastInitiated" /> </xsl:call-template> </td> </tr> <tr> <td class="thnormal"> <xsl:call-template name="widget_render"> <xsl:with-param name="fieldName" select="'isUrgent'" /> <xsl:with-param name="renderCmd" select="'title'" /> </xsl:call-template> <font color="#ff0000">*</font> </td> <td class="datacell"> <xsl:call-template name="widget_render"> <xsl:with-param name="fieldName" select="'isURgent'" /> <xsl:with-param name="renderCmd" select="'input'" /> <xsl:with-param name="readOnly" select="$isPastInitiated" /> </xsl:call-template> </td> </tr> <tr> <td class="thnormal"> <xsl:call-template name="widget_render"> <xsl:with-param name="fieldName" select="'ingressEgressCharacteristic'" /> <xsl:with-param name="renderCmd" select="'title'" /> </xsl:call-template> <font color="#ff0000">*</font> </td> <td class="datacell"> <xsl:call-template name="widget_render"> <xsl:with-param name="fieldName" select="'ingressEgressCharacteristic'" /> <xsl:with-param name="renderCmd" select="'input'" /> <xsl:with-param name="readOnly" select="$isPastInitiated" /> </xsl:call-template> </td> </tr> <tr> <td class="thnormal"> <xsl:call-template name="widget_render"> <xsl:with-param name="fieldName" select="'destinationSourceSpecification'" /> <xsl:with-param name="renderCmd" select="'title'" /> </xsl:call-template> <font color="#ff0000">*</font> </td> <td class="datacell"> <xsl:call-template name="widget_render"> <xsl:with-param name="fieldName" select="'destinationSourceSpecification'" /> <xsl:with-param name="renderCmd" select="'input'" /> <xsl:with-param name="readOnly" select="$isPastInitiated" /> </xsl:call-template> </td> </tr> <tr> <td class="thnormal"> <xsl:call-template name="widget_render"> <xsl:with-param name="fieldName" select="'termOfRuleChange'" /> <xsl:with-param name="renderCmd" select="'title'" /> </xsl:call-template> <font color="#ff0000">*</font> </td> <td class="datacell"> <xsl:call-template name="widget_render"> <xsl:with-param name="fieldName" select="'termOfRuleChange'" /> <xsl:with-param name="renderCmd" select="'input'" /> <xsl:with-param name="readOnly" select="$isPastInitiated" /> </xsl:call-template> </td> </tr> <tr> <td class="thnormal"> <xsl:call-template name="widget_render"> <xsl:with-param name="fieldName" select="'relatedProject'" /> <xsl:with-param name="renderCmd" select="'title'" /> </xsl:call-template> <font color="#ff0000">*</font> </td> <td class="datacell"> <xsl:call-template name="widget_render"> <xsl:with-param name="fieldName" select="'relatedProject'" /> <xsl:with-param name="renderCmd" select="'input'" /> <xsl:with-param name="readOnly" select="$isPastInitiated" /> </xsl:call-template> </td> </tr> </table> <br xmlns="" /> <xsl:template>
Rule Attribute(s)
RequestFirewallChange.eDoc.RuleAttributes.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">
<ruleAttributes xmlns="ns:workflow/RuleAttribute" xsi:schemaLocation="ns:workflow/RuleAttribute resource:RuleAttribute">
<ruleAttribute>
<name>RequestFirewallChange.eDoc.isUrgent.RuleAttribute</name>
<className>edu.iu.uis.eden.routetemplate.xmlrouting.StandardGenericXMLRuleAttribute</className>
<label>Request Firewall Change Is Urgent Rule Attribute</label>
<description>Request Firewall Change Is Urgent Rule Attribute</description>
<type>RuleXmlAttribute</type>
<routingConfig>
<fieldDef name="isUrgent" title="URGENT" workflowType="ALL">
<display>
<type>select</type>
<values title="NO">NO</values>
<values title="YES">YES</values>
</display>
<validation required="true" />
<fieldEvaluation>
<xpathexpression>//isUrgent = wf:ruledata('isUrgent')</xpathexpression>
</fieldEvaluation>
</fieldDef>
<xmlDocumentContent>
<isUrgent>%isUrgent%</isUrgent>
</xmlDocumentContent>
</routingConfig>
</ruleAttribute>
</ruleAttributes>
</data>
Rule Template(s)
RequestFirewallChange.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>Review Current Configuration RuleTemplate</description>
</ruleTemplate>
<ruleTemplate>
<name>RequestFirewallChange.eDoc.InitialApproval.RuleTemplate</name>
<description>Initial Approval RuleTemplate</description>
<attributes>
<attribute>
<name>RequestFirewallChange.eDoc.isUrgent.RuleAttribute</name>
<required>true</required>
</attribute>
</attributes>
</ruleTemplate>
<ruleTemplate>
<name>RequestFirewallChange.eDoc.FinalApproval.RuleTemplate</name>
<description>Final Approval RuleTemplate</description>
<attributes>
<attribute>
<name>RequestFirewallChange.eDoc.isUrgent.RuleAttribute</name>
<required>true</required>
</attribute>
</attributes>
</ruleTemplate>
<ruleTemplate>
<name>RequestFirewallChange.eDoc.AcknowledgeConfiguration.RuleTemplate</name>
<description>Acknowledge Configuration RuleTemplate</description>
<attributes>
<attribute>
<name>Initiator.Role.RuleAttribute</name>
<required>true</required>
</attribute>
</attributes>
</ruleTemplate>
</ruleTemplates>
</data>
Routing Rule(s)
RequestFirewallChange.eDoc.Rules.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>Review Current Configuration 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.InitialApproval.RuleTemplate</ruleTemplate>
<description>Initial Approval By Firewall SysAdmin Rule</description>
<ignorePrevious>false</ignorePrevious>
<ruleExtensions>
<ruleExtension>
<attribute>RequestFirewallChange.eDoc.isUrgent.RuleAttribute</attribute>
<ruleTemplate>RequestFirewallChange.eDoc.InitialApproval.RuleTemplate</ruleTemplate>
<ruleExtensionValues>
<ruleExtensionValue>
<key>isUrgent</key>
<value>YES</value>
</ruleExtensionValue>
</ruleExtensionValues>
</ruleExtension>
</ruleExtensions>
<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.InitialApproval.RuleTemplate</ruleTemplate>
<description>Initial Approval By Firewall Policy Group Rule</description>
<ignorePrevious>false</ignorePrevious>
<ruleExtensions>
<ruleExtension>
<attribute>RequestFirewallChange.eDoc.isUrgent.RuleAttribute</attribute>
<ruleTemplate>RequestFirewallChange.eDoc.InitialApproval.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.FinalApproval.RuleTemplate</ruleTemplate>
<description>Final Approval By Firewall SysAdmin Rule</description>
<ignorePrevious>false</ignorePrevious>
<ruleExtensions>
<ruleExtension>
<attribute>RequestFirewallChange.eDoc.isUrgent.RuleAttribute</attribute>
<ruleTemplate>RequestFirewallChange.eDoc.FinalApproval.RuleTemplate</ruleTemplate>
<ruleExtensionValues>
<ruleExtensionValue>
<key>isUrgent</key>
<value>NO</value>
</ruleExtensionValue>
</ruleExtensionValues>
</ruleExtension>
</ruleExtensions>
<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.FinalApproval.RuleTemplate</ruleTemplate>
<description>Final Approval By Firewall Policy Group Rule</description>
<ignorePrevious>false</ignorePrevious>
<ruleExtensions>
<ruleExtension>
<attribute>RequestFirewallChange.eDoc.isUrgent.RuleAttribute</attribute>
<ruleTemplate>RequestFirewallChange.eDoc.FinalApproval.RuleTemplate</ruleTemplate>
<ruleExtensionValues>
<ruleExtensionValue>
<key>isUrgent</key>
<value>YES</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.AcknowledgeConfiguration.RuleTemplate</ruleTemplate>
<description>Acknowledge Configuration 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>
Simulate the Business Process
Log in as requester1
Click on EDocLites
Click Search
Find the eDocLite whose Definition Name is RequestFirewallChange.eDoc.Form
Click on Create Document
Fill out the form, set URGENT to NO and click route
Log in as DES1
Click on Action List
Find and open the document initiated by requester1. Its status should be ENROUTE
Click approve
Login as DCCS1
Click on Action List. The document should not be in DCCS1's Action List.
Log in as FPG1
Click on Action List
Find and open the document initiated by requester1 and approved by DES1. Its status should be ENROUTE
Click approve
Login as DCCS1
Click on Action List
Find and open the document initiated by requester1, approved by DES1, and approved by FPG1. Its status should be ENROUTE
Click approve
Log in as requester1 again
Click on Action List
Find and open the document initiated by requester1, approved by DES1, approved by FPG1, and acknowledged by DCCS1. Its status should be PROCESSED
Click acknowledge
Click Document Search
Find the document again
Click on the Log icon
Validation Checklists
Requested Node |
|---|