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
<?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
<?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)
<?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)
<?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)
<?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 |
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.InitialApproval.Node |
ENROUTE |
Click approve |
FPG1 |
ENROUTE |
RequestFirewallChange.eDoc.FinalApproval.Node |
ENROUTE |
Click approve |
DCCS1 |
PROCESSED |
RequestFirewallChange.eDoc.AcknowledgeConfiguration.Node |
PROCESSED |
Click acknowledge |
requester1 |
FINAL |