Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 19 Next »

Overview

Development Steps

  1. Create Users
  2. Create Workgroups
  3. Create the Parent Document Type
  4. Create the Child Document Type
  5. Create the eDocLite Form
    • Create the Form
    • Create the Stylesheet
  6. Create the Rule Template
  7. Create Routing Rules

The Business Process

The Request Details

Request Detail

Example

Date and time for change

January 1, 2010

Description of the port change

Allow all workstations of the Application Development group access to the Oracle database port

Ingress/egress characteristic

Incoming on port 1521

Destination/source specification

Source: wk1.ucdavis.edu, wk2.ucdavis.edu, wk3.ucdavis.edu Destination: dbhost.ucdavis.edu

The term of the change (indefinite or otherwise)

Indefinite

Project related to the requested rule(s) change

Kuali Rice Implementation

Defining the eDocLite Form

  1. Set up the eDocLite skeleton
    <?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="eDoc.RequestFirewallChange.Form" title="Request Firewall Change">
        <security />
        <createInstructions>** Fields with an asterisk are required.</createInstructions>
        <instructions>** Questions with an asterisk are required.</instructions>
        <validations />
        <attributes />
    
      </edl>
    
      <style name="eDoc.RequestFirewallChange.Style">
    
      </style>
    
    <association>
      <docType>eDoc.RequestFirewallChange</docType>
      <definition>eDoc.RequestFirewallChange.Form</definition>
      <style>eDoc.RequestFirewallChange.Style</style>
      <active>true</active>
    </association>
    </edoclite>
    </data>
    

  2. Define fields
      <edl name="eDoc.RequestFirewallChange.Form" title="Request Firewall Change">
        <security />
        <createInstructions>** Fields with an asterisk are required.</createInstructions>
        <instructions>** Questions with an asterisk are required.</instructions>
        <validations />
        <attributes />
    
        <fieldDef name="dateOfChange" title="Date and Time for Change">
          <display>
            <type>text</type>
          </display>
        </fieldDef>
    
        <fieldDef name="descriptionOfChange" title="Description of the Port Change">
          <display>
            <type>textarea</type>
          </display>
        </fieldDef>
    
        <fieldDef name="ingressEgressCharacteristic" title="Ingress/Egress Characteristic">
          <display>
            <type>textarea</type>
          </display>
        </fieldDef>
    
        <fieldDef name="destinationSourceSpecification" title="Destination/Source Specification">
          <display>
            <type>textarea</type>
          </display>
        </fieldDef>
    
        <fieldDef name="termOfRuleChange" title="Term of Rule Change (indefinite or otherwise)">
          <display>
            <type>text</type>
          </display>
        </fieldDef>
    
        <fieldDef name="relatedProject" title="Project Related to Requested Rule(s) Change">
          <display>
            <type>text</type>
          </display>
        </fieldDef>
    
      </edl>
    

  3. Add field details
      <edl name="eDoc.RequestFirewallChange.Form" title="Request Firewall Change">
        <security />
        <createInstructions>** Fields with an asterisk are required.</createInstructions>
        <instructions>** Questions with an asterisk are required.</instructions>
        <validations />
        <attributes />
    
        <fieldDef name="dateOfChange" title="Date and Time for Change">
          <display>
            <type>text</type>
          </display>
        </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>
        </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>
        </fieldDef>
    
        <fieldDef name="destinationSourceSpecification" title="Destination/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>
        </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>
        </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>
        </fieldDef>
    
      </edl>
    

  4. Add field validation
      <edl name="eDoc.RequestFirewallChange.Form" title="Request Firewall Change">
        <security />
        <createInstructions>** Fields with an asterisk are required.</createInstructions>
        <instructions>** Questions with an asterisk are required.</instructions>
        <validations />
        <attributes />
    
        <fieldDef name="dateOfChange" title="Date and Time for Change">
          <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 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="destinationSourceSpecification" title="Destination/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 destination/source 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>
    
      </edl>
    

Defining the Style Sheet to Render the Form

  1. Setup the Styelsheet Skeleton
    <style name="eDoc.RequestFirewallChange.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">&amp;nbsp;</xsl:text>
      </xsl:template>
          
      </xsl:stylesheet>
    </style>
    

  2. Define the mainBody
      <xsl:template name="mainBody">
        $docStatus=<xsl:value-of select="$docStatus" /> -->
        <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="'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>
    

Defining the Workgroups

<?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">
  <workgroups xmlns="ns:workflow/Workgroup" xsi:schemaLocation="ns:workflow/Workgroup resource:Workgroup">
    <workgroup>
      <workgroupName>eDoc.FirewallPolicyGroup.Workgroup</workgroupName>
      <description>Firewall Policy Group for Firewall Change Requests</description>
      <members>
        <authenticationId>FPG1</authenticationId>
        <authenticationId>FPG2</authenticationId>
      </members>
    </workgroup>
  </workgroups>

</data>


Ingest XML Files

  1. Ingest widgets.xml
  2. Ingest Workgroups
  3. Ingest Document Type
  4. Ingest EDL Definition

    Reference

    https://test.kuali.org/confluence/display/KULRICE/EDocLite+Documentation+Guide
    https://test.kuali.org/confluence/display/KULRICE/eDocLite+Components+Detail#eDocLiteComponentsDetail-xsltdetail
    https://test.kuali.org/confluence/display/KULRICE092/Workgroup+Guide
  • No labels