Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

  • Most of the functionality provided by maintenance documents, how they are displayed, what the default values are, what kind of default rules checking occurs, etc. is controlled in the DD Maintenance Document XML files.
  • These files also contain what Business Rules Class is used to enforce business rules on the maintenance documents.
  • These files also contain declarations of what sub-objects must pass an existence test.
  • These files also contain declarations of what System Rules should be applied against what members. This only works for simple rules (i.e., IN VALUE LIST, NOT IN VALUE LIST), but it doesn't require touching any code if your needs fit within this constraint.
  • This is a customization because it involves altering source files (XML documents).

  • Business Object Maintenance XML Documents
    • for example, AccountMaintenanceDocument.xml
    • contains various attributes & configurations about the maintenance documents for a BO, including:
      • business rules to run - specified by the contents of the <businessRulesClass /> element
      • authorization rules to use - sepified by the contents of the <documentAuthorizerClass /> element
      • workflow document type name - specified by the contents of the <documentTypeName /> element
      • locking keys - specified by the contents of the <lockingKeys /> element and its children
      • existence/active checks to run - specified by the contents of the <defaultExistenceChecks /> element and its children
      • what sections to display, how fields are grouped into sections - specified by the contents of the <maintainableSections /> element and its children
      • what fields to display - specified by the <maintainableField /> elements, contained within <maintainableSection />
      • required flag - specified by the required attribute of the <maintainableField /> element
      • readOnly display - specified by the readOnly attribute of the <maintainableField /> element
Code Block
borderStylesolid
titleAccountMaintenanceDocument.xml
borderStylesolid
<dictionaryEntry>
	<maintenanceDocument>
        ...
        <businessRulesClass>org.kuali.module.chart.rules.AccountRule</businessRulesClass>
        <documentAuthorizerClass>org.kuali.core.document.MaintenanceDocumentAuthorizerBase</documentAuthorizerClass>
        <authorizations>
            <authorization action="initiate">
                <workgroups>
                    <workgroup>kualiUniversalGroup</workgroup>
                </workgroups>
            </authorization>
        </authorizations>
	<documentTypeName>KualiAccountMaintenanceDocument</documentTypeName>
	<documentTypeCode>ACCT</documentTypeCode>

	<label>Account Maintenance Document</label>
	<shortLabel>AcctMaintDoc</shortLabel>

	<summary>Account maintenance document</summary>
	<description>Document used to create or update Account objects</description>

        <lockingKeys>
		<field attributeName="chartOfAccountsCode" />
		<field attributeName="accountNumber" />
	</lockingKeys>

	<defaultExistenceChecks>
		<reference attributeName="organization" activeIndicatorAttributeName="organizationActiveIndicator" attributeToHighlightOnFail="organizationCode"  />
		<reference attributeName="accountPhysicalCampus" attributeToHighlightOnFail="accountPhysicalCampusCode"  />
        </defaultExistenceChecks>

        <maintainableSections>
	        <maintainableSection title="Account Maintenance">
	                <maintainableItems>
                                <maintainableField name="chartOfAccountsCode" required="true"/>
                                <maintainableField name="accountNumber" required="true"/>
                                ...
                                <maintainableField name="accountFiscalOfficerUser.personName" required="false" readOnly="true"/>
                                ...
                        </maintainableItems>
                        ...
               </maintainableSection>
        </maintainableSections>
        ...
	</maintenanceDocument>
</dictionaryEntry>

...

  • This is a customization because it involves altering source files (Java files)
  • Business Rule Classes
    • The classes that ship with Kuali do default business rule implementations. An implementing school can completely replace these with their own business rule classes, to perform different rules.
    • As an example, the AccountMaintenanceDocument.xml includes the following element:
      Code Block
      borderStylesolid
      titleAccountMaintenanceDocument.xml
      borderStylesolid
      <dictionaryEntry>
      	<maintenanceDocument>
              ...
              <businessRulesClass>org.kuali.module.chart.rules.AccountRule</businessRulesClass>
      	<preRulesCheckClass>org.kuali.module.chart.rules.AccountPreRules</preRulesCheckClass>
              ...
      	</maintenanceDocument>
      </dictionaryEntry>
      
      • Changing these Class names to some other custom class would cause the system to use this new class for the business rules, rather than the class that ships with the Kuali product.
    • Likewise, the Transactional Document Data Dictionary files (i.e. KualiTransferOfFundsDocument) have this plug-in capability

...