University of Arizona
Dashboard > Kuali Implementation Technical Team > ... > Technical Specifications > Object Sub-Type Code Routing Technical Specification
Site Search:

View Attachments (0) Info

Object Sub-Type Code Routing Technical Specification

Jira Tasks

Revision History

Version Date User Description
1.0 06/30/2009 Heather Lo Initial Spec
1.1 07/01/2009 Heather Lo, Julie Wingate Second Draft of Spec
1.2 07/06/2009 Heather Lo, Julie Wingate Third Draft of Spec
2.0 07/13/2009 Heather Lo Spec With Some Development Steps Completed
2.1 08/03/2009 Heather Lo Spec With Development Steps Completed
3.0 10/27/2009 Heather Lo Spec Modified To Include Other Financial Processing Documents (for KFSI-694 Jira)
3.1 11/05/2009 Heather Lo Spec With Development Steps Completed
3.2 11/09/2009 Heather Lo Removed Pre-Encumbrance Doc

Technical Description

FRS is currently able to route requisitions for approval based on a combination of object codes and account numbers. This functionality can be reproduced in KFS by using an Object Code's Object Sub-Type Code to determine requisition document routing. It requires an additional route node and a new role that is for reviewing and approving the Object Sub-Type Code routing.

This feature needs to be used in all financial processing e-docs.

Details

  • Database Requirements
    1. Create new role type of "ObjectSubTypeCode".
    2. Create new role of "Object Sub Type Code Reviewer".
    3. Create role's responsibility and responsibility attributes.
  • UI Design
    1. No UI design changes needed.
  • Development Checklist
    1. Modify document data dictionary to add new route node called "ObjectSubTypeCode".
      • Define new bean for route node in edu/arizona version of FinancialSystemDataDictionaryBaseTypes.xml.
      • Also define beans for the routing attribute, the document collection path, the document value path groups (for source and target accounting lines), and the different routing types.
    2. Modify the document data dictionary for each document to define the route node order. (Use beans from FinancialSystemDataDictionaryBaseTypes.xml.)
      • Redefine the routingTypeDefinitions property of the RequisitionDocument-workflowAttributes bean in edu/arizona version of RequisitionDocument.xml. Insert new route node bean reference in between "AccountingOrganizationHierarchy" and "Commodity" route nodes.
      • Redefine routingTypeDefinitions property to the AuxiliaryVoucherDocument-workflowAttributes bean in edu/arizona version of AuxiliaryVoucherDocument.xml. Insert new route node bean reference that has the value-ref for "sourceOnly" after "AccountingOrganizationHierarchy".
      • Redefine routingTypeDefinitions property of the BudgetAdjustmentDocument-workflowAttributes bean in edu/arizona version of BudgetAdjustmentDocument.xml. Insert new route node bean reference that has the value-ref that includes source and target accounting lines in between "AccountingOrganizationHierarchy" and "SubFund".
      • Redefine routingTypeDefinitions property of the DisbursementVoucherDocument-workflowAttributes bean in edu/arizona version of DisbursementVoucherDocument.xml. Insert new route node bean reference that has the value-ref for "sourceOnly" in between "AccountingOrganizationHierarchy" and "Campus".
      • Redefine routingTypeDefinitions property of the DistributionOfIncomeAndExpenseDocument-workflowAttributes bean in edu/arizona version of DistributionOfIncomeAndExpenseDocument.xml. Insert new route node bean reference that has the value-ref that includes source and target accounting lines in between "AccountingOrganizationHierarchy" and "SubFund".
      • Redefine routingTypeDefinitions property of the GeneralErrorCorrectionDocument-workflowAttributes bean in edu/arizona version of GeneralErrorCorrectionDocument.xml. Insert new route node bean reference that has the value-ref that includes source and target accounting lines in between "AccountingOrganizationHierarchy" and "SubFund".
      • Redefine routingTypeDefinitions property of the IndirectCostAdjustmentDocument-workflowAttributes bean in edu/arizona version of IndirectCostAdjustmentDocument.xml. Insert new route node bean reference that has the value-ref that includes source and target accounting lines in between "AccountingOrganizationHierarchy" and "SubFund".
      • Redefine routingTypeDefinitions property of the InternalBillingDocument-workflowAttributes bean in edu/arizona version of InternalBillingDocument.xml. Insert new route node bean reference that has the value-ref that includes source and target accounting lines in between "AccountingOrganizationHierarchy" and "SubFund".
      • Redefine routingTypeDefinitions property of the TransferOfFundsDocument-workflowAttributes bean in edu/arizona version of TransferOfFundsDocument.xml. Insert new route node bean reference that has the value-ref that includes source and target accounting lines in between "AccountingOrganizationHierarchy" and "SubFund".
      • Redefine routingTypeDefinitions property of the NonCheckDisbursementDocument-workflowAttributes bean in edu/arizona version of NonCheckDisbursementDocument.xml. Insert new route node bean reference that has the value-ref for "sourceOnly" in between "AccountingOrganizationHierarchy" and "SubFund".
    3. Modify workflow data dictionary to add new route node for all financial processing transactional documents.
      • Create edu/arizona version of FinancialSystemTransactionalDocument.xml (contains contents of org.kuali version so that entire xml file can be ingested).
      • Define route path to include "ObjectSubTypeCode".
      • Define route nodes to include "ObjectSubTypeCode".
    4. Modify the workflow data dictionary for each document to add new route node and role ("ObjectSubTypeCode") for reviewing and approving new object sub-type codes routing.
      • Define new route path and role in edu/arizona version of kfs/module/purap/document/workflow/RequisitionDocument.xml in between "AccountingOrganizationHierarchy" and "Commodity".
      • Define new route path and role in edu/arizona version of kfs/fp/document/workflow/AuxiliaryVoucherDocument after "AccountingOrganizationHierarchy".
      • Define new route path and role in edu/arizona version of kfs/fp/document/workflow/BudgetAdjustmentDocument in between "AccountingOrganizationHierarchy" and "SubFund".
      • Define new route path and role in edu/arizona version of kfs/fp/document/workflow/DisbursementVoucherDocument in between "AccountingOrganizationHierarchy" and "Tax".
      • Define new route path and role in edu/arizona version of kfs/fp/document/workflow/DistributionOfIncomeAndExpenseDocument in between "AccountingOrganizationHierarchy" and "SubFund".
      • Define new route path and role in edu/arizona version of kfs/fp/document/workflow/GeneralErrorCorrectionDocument in between "AccountingOrganizationHierarchy" and "SubFund".
      • Define new route path and role in edu/arizona version of kfs/fp/document/workflow/IndirectCostAdjustmentDocument in between "AccountingOrganizationHierarchy" and "SubFund".
      • Define new route path and role in edu/arizona version of kfs/fp/document/workflow/InternalBillingDocument in between "AccountingOrganizationHierarchy" and "SubFund".
      • Define new route path and role in edu/arizona version of kfs/fp/document/workflow/TransferOfFundsDocument in between "AccountingOrganizationHierarchy" and "SubFund".
      • Define new route path and role in edu/arizona version of kfs/fp/document/workflow/NonCheckDisbursementDocument in between "AccountingOrganizationHierarchy" and "SubFund".
    5. Add constant to edu/arizona version of kfs/sys/identity/KfsKimAttributes.java to represent the object sub type code.
      • Name the business object class ArizonaKfsKimAttributes.java.
      • Make sure to extend the org.kuali version.
      • Also include an ObjectSubType variable with getter and setter methods.
    6. Modify business object data dictionary file.
      • Create an edu/arizona version of kfs/sys/businessobject/datadictionary/KfsKimAttributes.xml.
      • Name the data dictionary file ArizonaKfsKimAttributes.xml.
      • Define an AZ version of the KimAttributes bean.
      • Add an object sub type code bean.
    7. Create new role service called ObjectSubTypeCodeRoleTypeServiceImpl.java in edu/arizona/kfs/coa/identity.
      • Extend KimRoleTypeServiceBase.
    8. Define the new role service in edu/arizona/kfs/coa/spring-coa.xml and edu/arizona/kfs/fp/spring-fp.xml.

Development Steps Completed

  1. Added the role, role type, and responsibility attributes to the database.
    • Wrote SQL insert into KRIM_ROLE_T, KRIM_TYP_T, KRIM_RSP_ATTR_DATA_T (four responsibility attributes), KRIM_ROLE_RSP_T (to link the role and responsibilities), KRIM_ATTR_DEFN_T (to create ObjectSubTypeCode attribute), and KRIM_TYP_ATTR_T (to create mapping between ObjectSubTypeCode KIM role type and both the ObjectSubTypeCode attribute and the documentTypeName attribute). Added to work/db/scripts/arizona/data.sql.
      excerpt from work/db/scripts/arizona/data.sql
      --ObjectSubTypeCode KIM role type
      INSERT INTO KRIM_TYP_T (KIM_TYP_ID,OBJ_ID,VER_NBR,NM,SRVC_NM,ACTV_IND,NMSPC_CD)
      VALUES ('71',SYS_GUID(),1,'Object Sub-Type & Document Type','objectSubTypeCodeRoleTypeService','Y','KFS-COA');
      
      --Object Sub Type Code Reviewer role
      INSERT INTO KRIM_ROLE_T (ROLE_ID,OBJ_ID,VER_NBR,ROLE_NM,NMSPC_CD,DESC_TXT,KIM_TYP_ID,ACTV_IND,LAST_UPDT_DT)
      VALUES ('1003',SYS_GUID(),1,'Object Sub Type Code Reviewer','KFS-SYS',null,'71','Y',null);
      
      --Object Sub Type Code responsibility
      INSERT INTO KRIM_RSP_T (RSP_ID,OBJ_ID,VER_NBR,RSP_TMPL_ID,NM,DESC_TXT,ACTV_IND,NMSPC_CD)
      VALUES ('1004',SYS_GUID(),1,'1','Review',null,'Y','KFS-SYS');
      
      --Object Sub Type Code responsibility attributes 
      INSERT INTO KRIM_RSP_ATTR_DATA_T (ATTR_DATA_ID,OBJ_ID,VER_NBR,RSP_ID,KIM_TYP_ID,KIM_ATTR_DEFN_ID,ATTR_VAL)
      VALUES ('1024',SYS_GUID(),1,'1004','71','13','KFS');
      INSERT INTO KRIM_RSP_ATTR_DATA_T (ATTR_DATA_ID,OBJ_ID,VER_NBR,RSP_ID,KIM_TYP_ID,KIM_ATTR_DEFN_ID,ATTR_VAL)
      VALUES ('1025',SYS_GUID(),1,'1004','71','16','ObjectSubTypeCode');
      INSERT INTO KRIM_RSP_ATTR_DATA_T (ATTR_DATA_ID,OBJ_ID,VER_NBR,RSP_ID,KIM_TYP_ID,KIM_ATTR_DEFN_ID,ATTR_VAL)
      VALUES ('1026',SYS_GUID(),1,'1004','71','40','true');
      INSERT INTO KRIM_RSP_ATTR_DATA_T (ATTR_DATA_ID,OBJ_ID,VER_NBR,RSP_ID,KIM_TYP_ID,KIM_ATTR_DEFN_ID,ATTR_VAL)
      VALUES ('1027',SYS_GUID(),1,'1004','71','41','true');
      
      --Object Sub Type Code: link the roles and the responsibilities
      INSERT INTO KRIM_ROLE_RSP_T (ROLE_RSP_ID,OBJ_ID,VER_NBR,ROLE_ID,RSP_ID,ACTV_IND)
      VALUES ('100004',SYS_GUID(),1,'1003','1004','Y');
      
      --Create ObjectSubTypeCode attribute
      insert into KRIM_ATTR_DEFN_T(KIM_ATTR_DEFN_ID,OBJ_ID,VER_NBR,NM,ACTV_IND,LBL,NMSPC_CD,CMPNT_NM,APPL_URL)
      values('91',SYS_GUID(),1,'financialObjectSubTypeCode','Y','Object Sub Type Code','KFS-COA','edu.arizona.kfs.sys.identity.ArizonaKfsKimAttributes','${application.url}');
      
      --Create mapping between "Object Sub-Type & Document Type KIM role type" and ObjectSubTypeCode attribute
      insert into KRIM_TYP_ATTR_T(KIM_TYP_ATTR_ID,OBJ_ID,VER_NBR,KIM_TYP_ID,KIM_ATTR_DEFN_ID,ACTV_IND,SORT_CD)
      values('200',SYS_GUID(),1,'71','91','Y','a');
      
      --Create mapping between "Object Sub-Type & Document Type KIM role type" and documentTypeName attribute
      insert into KRIM_TYP_ATTR_T(KIM_TYP_ATTR_ID,OBJ_ID,VER_NBR,KIM_TYP_ID,KIM_ATTR_DEFN_ID,ACTV_IND,SORT_CD)
      values('201',SYS_GUID(),1,'71','13','Y','b');
    • Ran SQL in SQuirrel.
  2. Modified document data dictionary to added new route node called "ObjectSubTypeCode".
    • Defined new bean for route node (RoutingType-AccountingDocument-ObjectSubTypeCode) in edu/arizona version of FinancialSystemDataDictionaryBaseTypes.xml.
    • Also defined beans for the routing attribute (RoutingAttribute-objectSubTypeCode), the document collection path (DocumentCollectionPath-AccountingLine-objectSubTypeCode), the document value path groups (for source and target accounting lines), and the different routing types (RoutingType-AccountingDocument-ObjectSubTypeCode, RoutingType-AccountingDocument-ObjectSubTypeCode-sourceOnly, RoutingType-AccountingDocument-ObjectSubTypeCode-targetOnly).
    • Redefined the routingTypeDefinitions property of the workflowAttributes bean in each edu/arizona document's document data dictionary.
      • RequisitionDocument.xml: Inserted new route node bean reference that has the value-ref of "RoutingType-AccountingDocument-ObjectSubTypeCode-sourceOnly" in between "AccountingOrganizationHierarchy" and "Commodity" route nodes.
      • AuxiliaryVoucherDocument.xml: Inserted new route node bean reference that has the value-ref of "RoutingType-AccountingDocument-ObjectSubTypeCode-sourceOnly" after "AccountingOrganizationHierarchy".
      • BudgetAdjustmentDocument.xml: Inserted new route node bean reference that has the value-ref of "RoutingType-AccountingDocument-ObjectSubTypeCode" in between "AccountingOrganizationHierarchy" and "SubFund".
      • DisbursementVoucherDocument.xml: Inserted new route node bean reference that has the value-ref of "RoutingType-AccountingDocument-ObjectSubTypeCode-sourceOnly" in between "AccountingOrganizationHierarchy" and "Campus".
      • DistributionOfIncomeAndExpenseDocument.xml: Inserted new route node bean reference that has the value-ref of "RoutingType-AccountingDocument-ObjectSubTypeCode" in between "AccountingOrganizationHierarchy" and "SubFund".
      • GeneralErrorCorrectionDocument.xml: Inserted new route node bean reference that has the value-ref of "RoutingType-AccountingDocument-ObjectSubTypeCode" in between "AccountingOrganizationHierarchy" and "SubFund".
      • IndirectCostAdjustmentDocument.xml: Inserted new route node bean reference that has the value-ref of "RoutingType-AccountingDocument-ObjectSubTypeCode" in between "AccountingOrganizationHierarchy" and "SubFund".
      • InternalBillingDocument.xml: Inserted new route node bean reference that has the value-ref of "RoutingType-AccountingDocument-ObjectSubTypeCode" in between "AccountingOrganizationHierarchy" and "SubFund".
      • TransferOfFundsDocument.xml: Inserted new route node bean reference that has the value-ref of "RoutingType-AccountingDocument-ObjectSubTypeCode" in between "AccountingOrganizationHierarchy" and "SubFund".
      • NonCheckDisbursementDocument.xml: Insert new route node bean reference that has the value-ref of "RoutingType-AccountingDocument-ObjectSubTypeCode-sourceOnly" in between "AccountingOrganizationHierarchy" and "SubFund".
  3. Modified workflow data dictionary to add new route node for all financial processing transactional documents.
    • Created edu/arizona version of FinancialSystemTransactionalDocument.xml (contains contents of org.kuali version so that entire xml file can be ingested).
    • Defined route path to include "ObjectSubTypeCode".
    • Defined route nodes to include "ObjectSubTypeCode".
  4. Modified workflow data dictionary for each document to add new role ("ObjectSubTypeCode") and route node for reviewing and approving new object sub-type codes routing.
    • Defined new route path and role in edu/arizona version of:
      • kfs/module/purap/document/workflow/RequisitionDocument.xml
      • kfs/fp/document/workflow/AuxiliaryVoucherDocument.xml
      • kfs/fp/document/workflow/BudgetAdjustmentDocument.xml
      • kfs/fp/document/workflow/DisbursementVoucherDocument.xml
      • kfs/fp/document/workflow/DistributionOfIncomeAndExpenseDocument.xml
      • kfs/fp/document/workflow/GeneralErrorCorrectionDocument.xml
      • kfs/fp/document/workflow/IndirectCostAdjustmentDocument.xml
      • kfs/fp/document/workflow/InternalBillingDocument.xml
      • kfs/fp/document/workflow/TransferOfFundsDocument.xml
      • kfs/fp/document/workflow/NonCheckDisbursementDocument.xml
  5. Added constant to edu/arizona version of kfs/sys/identity/KfsKimAttributes.java to represent the object sub type code.
    • Extended the org.kuali version.
    • Included an ObjectSubType variable with getter and setter methods.
  6. Modified business object data dictionary file.
    • Created an edu/arizona version of kfs/sys/businessobject/datadictionary/KfsKimAttributes.xml called ArizonaKfsKimAttributes.xml.
    • Defined an AZ version of the KimAttributes bean with KimAttributes-parentBean as the parent.
    • Added an object sub type code bean with ObjectCode-financialObjectSubTypeCode-parentBean as the parent.
  7. Created new role service called ObjectSubTypeCodeRoleTypeServiceImpl.java in edu/arizona/kfs/coa/identity.
    • Extended KimRoleTypeServiceBase.
  8. Defined the new role service in edu/arizona/kfs/coa/spring-coa.xml and edu/arizona/kfs/fp/spring-fp.xml.

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.