University of Arizona
Dashboard > Kuali Implementation Technical Team > ... > Technical Specifications > Sales Tax Extended Attribute Technical Specification
Site Search:

View Attachments (0) Info

Sales Tax Extended Attribute Technical Specification

Jira Tasks

Revision History

Version Date User Description
1.0 02/09/2009 Heather Lo Initial Spec
1.0 02/16/2009 Heather Lo Modified after updated functional spec
1.1 02/18/2009 Heather Lo Final Spec (that describes steps completed so far)
1.2 02/25/2009 Kevin McOmber Final Spec (renamed taxRegionCode attribute to taxRegionCodeExt and taxRegion object to TaxRegionObj)

Technical Description

An account-related field called "Sales Tax Code" exists in FRS, but not in KFS. An extended attribute called "Tax Region Code" will represent this sales tax code, and will apply to all accounts. It will link to the existing Tax Region Code in KFS and will need to be displayed on the Account Inquiry screen in the Extended Attributes tab.

Details

  • Database Requirements
    1. Extended attribute table with primary key mapping to TAX_REGION_CD in FS_TAX_REGION_T and to ACCOUNT_NBR and FIN_COA_CD in CA_ACCOUNT_T.
  • UI Design
    1. One free form field with quick finder: "Tax Region Code" on the Account Inquiry screen in the Extended Attributes tab.
  • Development Checklist
    1. Create edu.arizona.kfs.coa in Eclipse.
    2. Write SQL script to create Account extension table (includes TAX_REGION_CD and ACCOUNT_NBR) and add to kfs.work.db.scripts.arizona.schema-oracle.sql.
    3. Create POJO for new attribute (AccountExtension.java) that extends PersistableBusinessObjectExtensionBase and includes a TaxRegion object.
    4. Create ojb-coa.xml file to include the base business object (b.o.), located in ojb-coa.xml. The class-descriptor for base b.o. includes reference-descriptor for our extension. Also include a class-descriptor for our extension b.o. that references the Tax Region b.o.
    5. Update data dictionary.
      • Create new data dictionary file for extended attribute (AccountExtension.xml).
      • Create new data dictionary file for the base b.o. (Account.xml). Copy the original file and modify to include extended attribute.
    6. Create business rule.
      • Create edu.arizona.kfs.coa.document.validation.impl package in Eclipse.
      • Create a KeyConstants file in your module package.
      • Modify the ApplicationResources.properties file to include your new error message.
      • Create a Business Rules class and make sure to extend MaintenanceDocumentRuleBase. (Check that the Tax Region Code is present and that it is in the TAX_REGION_CD table.)
    7. Create maintenance document data dictionary (AccountMaintenanceDocument.xml).
      • Include the new extended attribute that extends the parent bean of AccountMaintenanceDocument and add the business rules class you created.
    8. Create/modify the spring file (spring-coa.xml) to pull in the new files.

Development Steps Completed

  1. Wrote SQL script to add our attribute (TAX_REGION_CD) to the Account extension table and added to kfs.work.db.scripts.arizona.schema-oracle.sql.
  2. Added our new attribute (taxRegion and taxRegionCode) to the extended attribute POJO (AccountExtension.java).
  3. Modified the ojb-coa.xml file in our institutional package. The class-descriptor for our extension b.o. references the TaxRegion business object.
  4. Updated data dictionary.
    • Modified the data dictionary file for our extended attribute (AccountExtension.xml) by adding a bean that extends the existing TaxRegion bean in KFS.
      • We used "dd:boAttributeRef" to extend the existing taxRegionCode.
        excerpt from kfs/work/src/edu/arizona/kfs/vnd/businessobject/datadictionary/AccountExtension.xml
        <bean id="AccountExtension-taxRegionCode" parent="AccountExtension-taxRegionCode-parentBean" />
        <dd:boAttributeRef id="AccountExtension-taxRegionCode-parentBean" abstract="true" parent="TaxRegion-taxRegionCode-parentBean"
        		attributeName="taxRegionObJ.taxRegionCode" />
    • Modified the data dictionary file for the base b.o. (Account.xml).
      • Included a reference bean in the Account bean using the merge="true" attribute and extended our AccountExtension bean. We used "dd:boAttributeRef" to define our attribute, where it has our extension bean as the parent, and the attributeName matching the property name in our business object (taxRegionCode).
        excerpt from kfs/work/src/edu/arizona/kfs/vnd/businessobject/datadictionary/Account.xml
        <bean id="Account-taxRegionCode" parent="Account-taxRegionCode-parentBean" />
        <dd:boAttributeRef id="Account-taxRegionCode-parentBean" abstract="true" parent="AccountExtension-taxRegionCode-parentBean"
        	attributeName="extension.taxRegionCodeExt" />
      • In the Account bean definition, we also had to add to the "relationships" property to establish a relationship between an Account and an existing Tax Region. The primitive attribute indicates the key fields to relate between the taxRegionCode field on the extension object and the taxRegionCode field on the TaxRegion object.
        excerpt from kfs/work/src/edu/arizona/kfs/vnd/businessobject/datadictionary/Account.xml
        <property name="relationships">
        	<list merge="true">
        		<dd:relationship objectAttribute="extension.taxRegionObj">
        			<dd:primitiveAttribute source="extension.taxRegionCodeExt" target="taxRegionCode" />
        		</dd:relationship>
        	</list>
        </property>
      • Also added our extension to the inquiry definition using the merge="true" attribute.
  5. Modified the maintenance document data dictionary (AccountMaintenanceDocument.xml).
    • Copied the defaultExistenceChecks from the delivered AccountMaintenanceDocument.xml and added our extension.
      excerpt from kfs/work/src/edu/arizona/kfs/vnd/businessobject/datadictionary/AccountMaintenanceDocument.xml
      <bean id="AccountMaintenanceDocument" parent="AccountMaintenanceDocument-parentBean">
      ...
      	<property name="defaultExistenceChecks">
                  <dd:defaultExistenceChecks>
      ... <!-- includes all delivered boAttribute definitions -->
                      <dd:check boAttribute="extension.taxRegionObj" attributeToHighlightOnFail="extension.taxRegionCodeExt" />
            	    </dd:defaultExistenceChecks>
      	</property>
      </bean>
    • Added a maintainable item for taxRegionCode to the definition of our maintenance document extended attribute bean.

View a printable version of the current page.

Browse Space
- Pages
- Labels
- Attachments
- Mail
- Bookmarks
- News
- Activity
- Advanced

Explore Confluence
- Popular Labels
- Notation Guide

Your Account
Log In

 

Add Content


Powered by Atlassian Confluence 1115, the Enterprise Wiki.. Contact administrators.