Arizona_CA_and_GL_specs.xlsx

396
The University of Arizona - Chart of Accounts and General Ledger ET Source Tables Column Names Audit Columns Null Values SCD Types This worksheet has brief explanations of our approach to help under worksheets. This is how we recorded our ETL specs for the dimension tables from the Chart of Acco (November 25, 2009) these have been prototyped with SQL scripts that do not implement loading, error handling, etc. We have also begun implementing production-ready ETL j be very happy to get any feedback, suggestions, questions, etc. similar names. (The KFS table CA_ACCOUNT_T becomes KF_H_CA_ACCOUNT.) The rows in th effective date ranges recorded in the columns EFFDT_FROM and EFFDT_TO. The history t source for our dimensional tables and the effective dates are used in the joins to en states for the target dimension table. A few of our source tables also come from Peo PeopleSoft EPM warehouse. conventions used there. audit columns that the EPM dimension tables have. These columns are SRC_SYS_ID, EFF_ CURRENT_IND, DATA_ORIGIN, CREATED_EW_DTTM, LASTUPD_EW_DTTM, and BATCH_SID. The colum business key of each of these tables. I would have used a somewhat different set of integrating with PeopleSoft EPM. NULL handling. The default values we are using in place of NULLs were picked to matc EPM. We do allow NULLs in measure columns of fact tables. This is to ensure that ag and MEDIAN() function corrrectly. We have assigned SCD types to each attribute independently, rather than to the table have applied the following general rules of thumb when assigning the SCD types: 1. If the column is a code, set it to Type II. This is because the codes (e.g. obje and we want the transactions to stay in the classification they had at the time they 2. If the column is a description of a code in the dimension, set it to Type I. The seen in our existing systems have been rewordings of the same idea. We want to avoid reports each time a code description is reworded. Also our operational people assure codes rather than repurposing the existing ones. 3. If the column is a sort code, set it to Type I. This is to ensure consistent sor different time periods.

description

etl mapping document

Transcript of Arizona_CA_and_GL_specs.xlsx

Page 1: Arizona_CA_and_GL_specs.xlsx

The University of Arizona - Chart of Accounts and General Ledger ETL Specs

This worksheet has brief explanations of our approach to help understand the rest of the worksheets.

Source Tables

Column NamesWe are integrating our KFS data into a PeopleSoft EPM warehouse. Our column names are based on the naming conventions used there.

Audit Columns

Null Values

SCD Types

3. If the column is a sort code, set it to Type I. This is to ensure consistent sorting when pulling data from different time periods.

This is how we recorded our ETL specs for the dimension tables from the Chart of Accounts. As of this writing (November 25, 2009) these have been prototyped with SQL scripts that do not implement the SCD type, incremental loading, error handling, etc. We have also begun implementing production-ready ETL jobs in IBM DataStage. I would be very happy to get any feedback, suggestions, questions, etc.

When we copy the KFS tables into the warehouse, we record ALL the changes we have found into history tables with similar names. (The KFS table CA_ACCOUNT_T becomes KF_H_CA_ACCOUNT.) The rows in these history tables have effective date ranges recorded in the columns EFFDT_FROM and EFFDT_TO. The history tables are then used as the source for our dimensional tables and the effective dates are used in the joins to ensure that we capture all valid states for the target dimension table. A few of our source tables also come from PeopleSoft HCM content in a PeopleSoft EPM warehouse.

We are integrating our KFS data into a PeopleSoft EPM warehouse. As part of doing that, we included the same set of audit columns that the EPM dimension tables have. These columns are SRC_SYS_ID, EFF_START_DT, EFF_END_DT, CURRENT_IND, DATA_ORIGIN, CREATED_EW_DTTM, LASTUPD_EW_DTTM, and BATCH_SID. The column SRC_SYS_ID is part of the business key of each of these tables. I would have used a somewhat different set of audit columns if we were not integrating with PeopleSoft EPM.

We do not allow NULL values in our dimension tables so that people writing queries do not need to remember to do NULL handling. The default values we are using in place of NULLs were picked to match the values used in PeopleSoft EPM. We do allow NULLs in measure columns of fact tables. This is to ensure that aggregate functions such as AVG() and MEDIAN() function corrrectly.

We have assigned SCD types to each attribute independently, rather than to the table as a whole. In doing so we have applied the following general rules of thumb when assigning the SCD types:

1. If the column is a code, set it to Type II. This is because the codes (e.g. object level code) classify the row and we want the transactions to stay in the classification they had at the time they were created.

2. If the column is a description of a code in the dimension, set it to Type I. The description changes we have seen in our existing systems have been rewordings of the same idea. We want to avoid having multiple rows in our reports each time a code description is reworded. Also our operational people assure us that they will create new codes rather than repurposing the existing ones.

4. If the column is a responsible party (e.g. account supervisor), set it to Type I. This is so that people always have the up-to-date contact for questions.

5. If the column is something that is only changed as a correction of the exisiting data (e.g. birth date) or our users only want to see the current value, set it to Type I.

Page 2: Arizona_CA_and_GL_specs.xlsx

ContactFeel free to contact Dylan Cooper ([email protected]) with comments, suggestions, questions, etc.

We applied these rules of thumb and tweaked them with input from our KFS functional implementation team, however, we expect to need to make changes as more and more people start looking at the data. We will be able to do this because we're holding a history of all the changes from KFS in our staging area and we will have little enough data in the beginning that rebuilds are feasible. If you have received requirements that require different SCD types than what we currently have, I would be very interested in hearing about those.

Note that implementing SCDs this way is not entirely for the faint of heart if you do not have experience with them. For example with chart code set as a Type 2 SCD and chart description set as a Type 1 SCD in the project dimension, the updates of chart description need to be based on chart code not project code.

Page 3: Arizona_CA_and_GL_specs.xlsx

Driving Table: KF_H_CA_ACCOUNTGrain: sub-account (including - for NULL sub-account)

Name Description Data Type

ACCOUNT_SID NUMBER(10,0) CHART_CD VARCHAR2(2) CHART_LD VARCHAR2(40) ACCOUNT_NBR VARCHAR2(7) ACCOUNT_LD

SUB_ACCOUNT_NBR VARCHAR2(7)

SUB_ACCOUNT_LD

ACCOUNT_FISCAL_OFFICER_ID

VARCHAR2(40)

ACCOUNT_FISCAL_OFFICER_USER_ID VARCHAR2(40)

ACCOUNT_FISCAL_OFFICER_NM VARCHAR2(160) ACCOUNT_FISCAL_OFFICER_DEPT_CD VARCHAR2(40) ACCOUNT_SUPERVISOR_ID VARCHAR2(40) ACCOUNT_SUPERVISOR_USER_ID VARCHAR2(40) ACCOUNT_SUPERVISOR_NM VARCHAR2(160) ACCOUNT_SUPERVISOR_DEPT_CD VARCHAR2(40) ACCOUNT_MANAGER_ID VARCHAR2(40) ACCOUNT_MANAGER_USER_ID VARCHAR2(40) ACCOUNT_MANAGER_NM VARCHAR2(160) ACCOUNT_MANAGER_DEPT_CD VARCHAR2(40) ACCOUNT_ORGANIZATION_CD VARCHAR2(4)

ACCOUNT_ORGANIZATION_NM VARCHAR2(40)

ACCOUNT_ORGANIZATION_TYPE_CD VARCHAR2(1)

ACCOUNT_ORGANIZATION_TYPE_LD VARCHAR2(40)

ACCOUNT_ORGANIZATION_SORT_CDVARCHAR2(2)

ACCOUNT_PARENT_ORG_CHART_CD VARCHAR2(2)

ACCOUNT_PARENT_ORG_CHART_LD VARCHAR2(40)

ACCOUNT_PARENT_ORG_CD VARCHAR2(4)

ACCOUNT_PARENT_ORG_NM

VARCHAR2(40)

ACCOUNT_TYPE_CD VARCHAR2(2)

VARCHAR2(40)

VARCHAR2(40)

Page 4: Arizona_CA_and_GL_specs.xlsx

ACCOUNT_TYPE_LD VARCHAR2(40) ACCOUNT_PHYSICAL_CAMPUS_CD VARCHAR2(2)

ACCOUNT_PHYSICAL_CAMPUS_LD VARCHAR2(40)

SUB_ACCOUNT_ACTIVE_FLG VARCHAR2(1)

SUB_ACCOUNT_REPORT_CHART_CD VARCHAR2(2)

SUB_ACCOUNT_REPORT_CHART_LD VARCHAR2(40)

SUB_ACCOUNT_REPORT_ORG_CD VARCHAR2(4)

SUB_ACCOUNT_REPORT_ORG_NMVARCHAR2(40)

SUB_ACCOUNT_REPORT_CD VARCHAR2(10)

ACCOUNT_FUND_GROUP_CD VARCHAR2(2) ACCOUNT_FUND_GROUP_LD VARCHAR2(40)ACCOUNT_FUND_GROUP_SORT_CD VARCHAR2(2) ACCOUNT_SUB_FUND_CD VARCHAR2(6) ACCOUNT_SUB_FUND_LD VARCHAR2(40) ACCOUNT_SUB_FUND_ACTIVE_FLG VARCHAR(1) ACCOUNT_SUB_FUND_TYPE_CD VARCHAR2(1) ACCOUNT_SUB_FUND_TYPE_LD VARCHAR2(40) ACCOUNT_SUB_FUND_TYPE_ACTV_FLG VARCHAR2(1) ACCOUNT_SUB_FUND_WAGE_FLG VARCHAR2(1) ACCOUNT_SUB_FUND_SORT_CD VARCHAR2(2) ACCOUNT_FRINGE_BENEFIT_CD VARCHAR2(1) ACCOUNT_HIGHER_ED_FUNCTION_CD VARCHAR2(4)

ACCOUNT_HIGHER_ED_FUNCTION_LD VARCHAR2(40)

ACCOUNT_RESTRICTION_STATUS_CD VARCHAR2(1)

ACCOUNT_RESTRICTION_STATUS_SD VARCHAR2(20)

ACCOUNT_RESTRICTION_STATUS_DT DATE ACCOUNT_CITY_NM VARCHAR2(25) ACCOUNT_STATE_CD VARCHAR2(2) ACCOUNT_STREET_ADDR VARCHAR2(30) ACCOUNT_ZIP_CD VARCHAR2(11) ACCOUNT_REPORT_CHART_CD VARCHAR2(2) ACCOUNT_REPORT_CHART_LD VARCHAR2(40) ACCOUNT_REPORT_ACCOUNT_NBR VARCHAR2(7)

Page 5: Arizona_CA_and_GL_specs.xlsx

ACCOUNT_REPORT_ACCOUNT_LD VARCHAR2(40)

ACCOUNT_CREATE_DT DATE ACCOUNT_EFFECTIVE_DT DATE ACCOUNT_EXPIRATION_DT DATE ACCOUNT_CONTINU_CHART_CD VARCHAR2(2) ACCOUNT_CONTINU_CHART_LD VARCHAR2(40) ACCOUNT_CONTINU_ACCOUNT_NBR VARCHAR2(7)

ACCOUNT_CONTINU_ACCOUNT_LD VARCHAR2(40)

ACCOUNT_ENDOWMENT_CHART_CD VARCHAR2(2)

ACCOUNT_ENDOWMENT_CHART_LD VARCHAR2(40)

ACCOUNT_ENDOWMENT_ACCOUNT_NBR VARCHAR2(7)

ACCOUNT_ENDOWMENT_ACCOUNT_LD

VARCHAR2(40)

ACCOUNT_CONTRACT_CHART_CD VARCHAR2(2)

ACCOUNT_CONTRACT_CHART_LD VARCHAR2(40)

ACCOUNT_CONTRACT_ACCOUNT_NBR VARCHAR2(7)

ACCOUNT_CONTRACT_ACCOUNT_LD

VARCHAR2(40)

ACCOUNT_INCOME_CHART_CD VARCHAR2(2) ACCOUNT_INCOME_CHART_LD VARCHAR2(40) ACCOUNT_INCOME_ACCOUNT_NBR VARCHAR2(7)

ACCOUNT_INCOME_ACCOUNT_LD VARCHAR2(40)

ACCOUNT_INDIRECT_TYPE_CD VARCHAR2(2) ACCOUNT_INDIRECT_TYPE_LD VARCHAR2(40) ACCOUNT_INDIRECT_EXCLUSION_CD VARCHAR2(1) ACCOUNT_SERIES_ID VARCHAR2(3) ACCOUNT_INDIRECT_CHART_CD VARCHAR2(2) ACCOUNT_INDIRECT_CHART_LD VARCHAR2(40) ACCOUNT_INDIRECT_ACCOUNT_NBR VARCHAR2(7)

ACCOUNT_INDIRECT_ACCOUNT_LD VARCHAR2(40)

ACCOUNT_IN_FP_CD VARCHAR2(1) ACCOUNT_BUDGET_RECORD_LEVEL_CD VARCHAR2(1)

ACCOUNT_BUDGET_RECORD_LEVEL_LD VARCHAR2(40)

Page 6: Arizona_CA_and_GL_specs.xlsx

ACCOUNT_SUF_FUNDS_CD VARCHAR2(1) ACCOUNT_SUF_FUNDS_LD VARCHAR2(40) ACCOUNT_SUF_FUNDS_PROCESS_FLG VARCHAR2(1) ACCOUNT_SUF_FUNDS_EXTERNAL_FLG VARCHAR2(1) ACCOUNT_SUF_FUNDS_INTERNAL_FLG VARCHAR2(1) ACCOUNT_SUF_FUNDS_PRE_ENC_FLG VARCHAR2(1) ACCOUNT_OBJECT_PRESENCE_FLG VARCHAR2(1) ACCOUNT_CONTRACT_CFDA_NBR VARCHAR2(6) ACCOUNT_OFF_CAMPUS_FLG VARCHAR2(1) ACCOUNT_CLOSED_FLG VARCHAR2(1) ACCOUNT_CAMPUS_LD VARCHAR2(40) ACCOUNT_ORGANIZATION_LD VARCHAR2(40) ACCOUNT_RESP_CENTER_LD VARCHAR2(40) ACCOUNT_CAMPUS_CD VARCHAR2(2) ACCOUNT_BUILDING_CD VARCHAR2(10) ACCOUNT_EXPENSE_GUIDELINE_LD VARCHAR2(400) ACCOUNT_INCOME_GUIDELINE_LD VARCHAR2(400) ACCOUNT_PURPOSE_LD VARCHAR2(400) ACCOUNT_FUNDS_TYPE_CD VARCHAR2(3) ACCOUNT_TAX_REGION_CD VARCHAR2(10) ACCOUNT_COST_SUBCATEGORY_CD VARCHAR2(3)

ACCOUNT_YEAR_END_PROCESS_CD_UA

VARCHAR2(1)

EFF_START_DT DATE

EFF_END_DT DATE

CURRENT_IND CHAR(1)SRC_SYS_ID VARCHAR2(5 BYTE)

LOAD_ERROR VARCHAR2(1 BYTE)

create a flag that can be used to determine if this is an ITD (Inception To Date) project style account or a regular fiscal year style account

Page 7: Arizona_CA_and_GL_specs.xlsx

DATA_ORIGIN VARCHAR2(1 BYTE)

CREATED_EW_DTTM DATELASTUPD_EW_DTTM DATEBATCH_SID NUMBER(10,0)

FAILED LOOKUP ERROR TABLES :Table Name Alias OrderKF_H_CA_ACCOUNT AL1

KF_H_CA_CHART AL2

KF_H_CA_ORG AL6

KF_H_CA_ACCOUNT_TYPE AL10

KF_H_CA_HIGHR_ED_FUNC AL15

KF_H_CA_RESTRICT_STAT AL16

KF_H_CA_ICR_TYPE AL27

KF_H_CA_BDGT_REC_LVL AL30

KF_H_CA_ACCT_SF AL31

KF_H_CA_ACCT_DESC AL32

KF_H_CA_ACCT_GDLNPRPS AL33

KF_H_KRNS_CAMPUS AL35

KF_H_CA_ACCOUNT_EXT AL80

KF_H_CA_SUB_FND_GRP AL12

Page 8: Arizona_CA_and_GL_specs.xlsx

KF_H_CA_SUB_FND_GRP_TYP AL14

KF_H_CA_FUND_GRP AL13

KF_H_CA_ORG_TYPE AL7

KF_H_CA_CHART AL8

KF_H_CA_ORG AL9

KF_H_CA_ACCOUNT AL18

KF_H_CA_ACCOUNT AL20

KF_H_CA_ACCOUNT AL22

KF_H_CA_ACCOUNT AL24

KF_H_CA_ACCOUNT AL26

KF_H_CA_ACCOUNT AL29

KF_H_CA_CHART AL21

KF_H_CA_CHART AL23

KF_H_CA_CHART AL25

KF_H_CA_CHART AL28

KF_H_CA_CHART AL19

Page 9: Arizona_CA_and_GL_specs.xlsx

AL90

AL50

SELECT CG.FUND_GROUP_DENOTES_CG_IND, CG.CG_DENOTING_VALUE, ITD.TXT AS SUB_FUND_GROUPS_FOR_ITD, GREATEST( CG.EFFDT_FROM, IDTD.EFFDT_FROM ) AS EFFDT_FROM LEAST( CG.EFFDT_TO, ITD.EFFDT_TO ) AS EFFDT_TO, CG.SRC_SYS_IDFROM ( SELECT IND.TEXT AS FUND_GROUP_DENOTES_CG_IND, VAL.TXT AS CG_DENOTING_VALUE, GREATEST( IND.EFFDT_FROM, VAL.EFFDT_FROM ) AS EFFDT_FROM, LEAST( IND.EFFDT_TO, VAL.EFFDT_TO ) AS EFFDT_TO, IND.SRC_SYS_ID FROM KF_H_KRNS_PARM IND INNER JOIN KF_H_KRNS_PARM VAL ON IND.EFFDT_FROM <= VAL.EFFDT_TO AND IND.EFFDT_TO >= VAL.EFFDT_FROM AND IND.SRC_SYS_ID = VAL.SRC_SYS_ID WHERE IND.PARM_NM = 'FUND_GROUP_DENOTES_CG_IND' AND VAL.PARM_NM = 'CG_DENOTING_VALUE' ) CGINNER JOIN KF_H_KRNS_PARM ITD ON CG.EFFDT_FROM <= ITD.EFFDT_TO AND CG.EFFDT_TO >= ITD.EFFDT_FROM AND CG.SRC_SYS_ID = ITD.SRC_SYS_IDWHERE AND IDTDPARM_NM = 'SUB_FUND_GROUPS_FOR_INCEPTION_TO_DATE_REPORTING'

select uaid, first_name, last_name, emplidfrom sysadm.ps_ua_eds_data awhere effdt = ( select max(effdt) from sysadm.ps_ua_eds_data b where a.uaid = b.uaid and effdt < SYSDATE

Page 10: Arizona_CA_and_GL_specs.xlsx

AL60

AL70

AL61

AL51

select uaid, first_name, last_name, emplidfrom sysadm.ps_ua_eds_data awhere effdt = ( select max(effdt) from sysadm.ps_ua_eds_data b where a.uaid = b.uaid and effdt < SYSDATE

select uaid, first_name, last_name, emplidfrom sysadm.ps_ua_eds_data awhere effdt = ( select max(effdt) from sysadm.ps_ua_eds_data b where a.uaid = b.uaid and effdt < SYSDATE

select emplid, dept_idfrom sysadm.ps_ua_ee_job_vw awhere daily_snapshot_dt = ( select max(daily_snapshot_dt) from sysadm.ps_ua_ee_job_vw b where a.emplid = b.emplid and daily_snapshot_dt < SYSDATE)

select emplid, dept_idfrom sysadm.ps_ua_ee_job_vw awhere daily_snapshot_dt = ( select max(daily_snapshot_dt) from sysadm.ps_ua_ee_job_vw b where a.emplid = b.emplid and daily_snapshot_dt < SYSDATE)

Page 11: Arizona_CA_and_GL_specs.xlsx

AL71

KF_H_CA_SUB_ACCT AL34

KF_H_CA_CHART AL100

KF_H_CA_ORG_EXT AL81

* all lookup conditions not referencing PS tables also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <main data stream>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <main data stream>.EFFDT_TO >= <lookup table>.EFFDT_FROM"* all lookup conditons return NULLs when lookup fails (aka outer-join logic)* all lookup conditions allow multiple rows to be returned from lookup

select emplid, dept_idfrom sysadm.ps_ua_ee_job_vw awhere daily_snapshot_dt = ( select max(daily_snapshot_dt) from sysadm.ps_ua_ee_job_vw b where a.emplid = b.emplid and daily_snapshot_dt < SYSDATE)

Page 12: Arizona_CA_and_GL_specs.xlsx

Replace NULL With Constraints SCD Function

2147483646 NOT NULL Surrogate Key- NOT NULL Business Key- NOT NULL Type I- NOT NULL Business Key- NOT NULL Type I

- NOT NULL Business Key

- NOT NULL Type I

- NOT NULL Type I

- NOT NULL Type I- NOT NULL Type I- NOT NULL Type I- NOT NULL Type I- NOT NULL Type I- NOT NULL Type I- NOT NULL Type I- NOT NULL Type I- NOT NULL Type I- NOT NULL Type I- NOT NULL Type I- NOT NULL Type II

- NOT NULL Type I- NOT NULL Type II

- NOT NULL Type I

- NOT NULL Type I- NOT NULL Type II

- NOT NULL Type I- NOT NULL Type II

- NOT NULL Type I- NOT NULL Type II

Page 13: Arizona_CA_and_GL_specs.xlsx

- NOT NULL Type I- NOT NULL Type II

- NOT NULL Type I

- NOT NULL Type II

- NOT NULL Type II

- NOT NULL Type I

- NOT NULL Type II

- NOT NULL Type I

- NOT NULL Type II- NOT NULL Type II- NOT NULL Type I- NOT NULL Type I- NOT NULL Type II- NOT NULL Type I- NOT NULL Type II- NOT NULL Type II- NOT NULL Type I- NOT NULL Type II- NOT NULL Type II- NOT NULL Type I- NOT NULL Type II- NOT NULL Type II

- NOT NULL Type I- NOT NULL Type II

- NOT NULL Type I1-Jan-90 NOT NULL Type I- NOT NULL Type I- NOT NULL Type I- NOT NULL Type I- NOT NULL Type I- NOT NULL Type II- NOT NULL Type I- NOT NULL Type II

Page 14: Arizona_CA_and_GL_specs.xlsx

- NOT NULL Type I1-Jan-90 NOT NULL Type I1-Jan-90 NOT NULL Type I31-Dec-99 NOT NULL Type I- NOT NULL Type II- NOT NULL Type I- NOT NULL Type II

- NOT NULL Type I- NOT NULL Type II

- NOT NULL Type I- NOT NULL Type II

- NOT NULL Type I- NOT NULL Type II

- NOT NULL Type I- NOT NULL Type II

- NOT NULL Type I- NOT NULL Type II- NOT NULL Type I- NOT NULL Type II

- NOT NULL Type I- NOT NULL Type II- NOT NULL Type I- NOT NULL Type II- NOT NULL Type II- NOT NULL Type II- NOT NULL Type I- NOT NULL Type II

- NOT NULL Type I- NOT NULL Type II- NOT NULL Type II

- NOT NULL Type I

Page 15: Arizona_CA_and_GL_specs.xlsx

- NOT NULL Type II- NOT NULL Type I- NOT NULL Type II- NOT NULL Type II- NOT NULL Type II- NOT NULL Type II- NOT NULL Type II- NOT NULL Type II- NOT NULL Type II- NOT NULL Type II- NOT NULL Type II- NOT NULL Type II- NOT NULL Type II- NOT NULL Type II- NOT NULL Type II- NOT NULL Type II- NOT NULL Type II- NOT NULL Type II- NOT NULL Type II- NOT NULL Type II- NOT NULL Type II

- NOT NULL Type II

01-JAN-1753 00:00:00NOT NULL

Effective Date

31-DEC-9999 23:59:59

NOT NULL

Effective DateY NOT NULL Effective FlagKFS NOT NULL Business Key

N NOT NULLInsert Only

Page 16: Arizona_CA_and_GL_specs.xlsx

E NOT NULLInsert Only

Start time of ETL job NOT NULL Insert OnlyStart time of ETL job NOT NULL Insert OnlyStart time of ETL job NOT NULL Insert Only

Join Logic* Failed Lookup Error Table

KF_E_CA_ACCOUNT

KF_E_CA_ACCOUNT

KF_E_CA_ACCOUNT

KF_E_CA_ACCOUNT

KF_E_CA_ACCOUNT

KF_E_CA_ACCOUNT

KF_E_CA_ACCOUNT

KF_E_CA_ACCOUNT

KF_E_CA_ACCOUNT

KF_E_CA_ACCOUNT

KF_E_CA_ACCOUNT

KF_E_CA_ACCOUNT

KF_E_CA_ACCOUNT

AL2.FIN_COA_CD=AL1.FIN_COA_CD

AL1.FIN_COA_CD=AL6.FIN_COA_CD AND AL1.ORG_CD=AL6.ORG_CD

AL1.ACCT_TYP_CD = AL10.ACCT_TYP_CD

AL1.FIN_HGH_ED_FUNC_CD=AL15.FIN_HGH_ED_FUNC_CD

AL1.ACCT_RSTRC_STAT_CD = AL16.ACCT_RSTRC_STAT_CD

AL1.ACCT_ICR_TYP_CD = AL27.ACCT_ICR_TYP_CD

AL1.BDGT_REC_LVL_CD=AL30.BDGT_REC_LVL_CD

AL1.ACCT_SF_CD=AL31.ACCT_SF_CD

AL1.FIN_COA_CD = AL32.FIN_COA_CD AND AL1.ACCOUNT_NBR = AL32.ACCOUNT_NBR

AL1.FIN_COA_CD = AL33.FIN_COA_CD AND AL1.ACCOUNT_NBR = AL33.ACCOUNT_NBR

A1.ACCT_PHYS_CMP_CD = AL35.CAMPUS_CD

AL1.FIN_COA_CD = AL80.FIN_COA_CDAND AL1.ACCOUNT_NBR = AL80.ACCOUNT_NBR

AL1.SUB_FUND_GRP_CD=AL12.SUB_FUND_GRP_CD

Page 17: Arizona_CA_and_GL_specs.xlsx

KF_E_CA_SUB_FUND_GRP_TYP

KF_E_CA_SUB_FUND_GRP_TYP

KF_E_CA_ORG

KF_E_CA_ORG

KF_E_CA_ORG

KF_E_CA_ACCOUNT

KF_E_CA_ACCOUNT

KF_E_CA_ACCOUNT

KF_E_CA_ACCOUNT

KF_E_CA_ACCOUNT

KF_E_CA_ACCOUNT

KF_E_CA_ACCOUNT

KF_E_CA_ACCOUNT

KF_E_CA_ACCOUNT

KF_E_CA_ACCOUNT

KF_E_CA_ACCOUNT

AL12.SUB_FUNDGRP_TYP_CD=AL14.SUB_FUNDGRP_TYP_CD

AL12.FUND_GRP_CD=AL13.FUND_GRP_CD

AL6.ORG_TYP_CD=AL7.ORG_TYP_CD

AL6.RPTS_TO_FIN_COA_CD=AL8.FIN_COA_CD

AL6.RPTS_TO_FIN_COA_CD=AL9.FIN_COA_CD AND AL6.RPTS_TO_ORG_CD=AL9.ORG_CD

AL1.RPTS_TO_ACCT_NBR = AL18.ACCOUNT_NBR AND AL1.RPTS_TO_FIN_COA_CD = AL18.FIN_COA_CD

AL1.CONT_FIN_COA_CD = AL20.FIN_COA_CD AND AL1.CONT_ACCOUNT_NBR = AL20.ACCOUNT_NBR

AL1.ENDOW_FIN_COA_CD = AL22.FIN_COA_CD AND AL1.ENDOW_ACCOUNT_NBR = AL22.ACCOUNT_NBR

AL1.CONTR_CTRL_FCOA_CD = AL24.FIN_COA_CD AND AL1.CONTR_CTRLACCT_NBR = AL24.ACCOUNT_NBR

AL1.INCOME_FIN_COA_CD = AL26.FIN_COA_CD AND AL1.INCOME_ACCOUNT_NBR = AL26.ACCOUNT_NBR

AL1.ICR_ACCOUNT_NBR = AL29.ACCOUNT_NBR AND AL1.ICR_FIN_COA_CD = AL29.FIN_COA_CD

AL1.ENDOW_FIN_COA_CD = AL21.FIN_COA_CD

AL1.CONTR_CTRL_FCOA_CD = AL23.FIN_COA_CD

AL1.INCOME_FIN_COA_CD = AL25.FIN_COA_CD

AL1.ICR_FIN_COA_CD = AL28.FIN_COA_CD

AL1.CONT_FIN_COA_CD=AL19.FIN_COA_CD

Page 18: Arizona_CA_and_GL_specs.xlsx

NONE

KF_E_CA_ACCOUNT

Only returns one row per date range, so just do the lookups based on src_sys_id and effective dates

AL1.ACCT_FSC_OFC_UID = AL50.UAID

Page 19: Arizona_CA_and_GL_specs.xlsx

KF_E_CA_ACCOUNT

KF_E_CA_ACCOUNT

AL60.EMPLID = AL61.EMPLID NONE

AL50.EMPLID = AL51.EMPLID NONE

AL1.ACCT_SPVSR_UNVL_ID = AL60.UAID

AL1.ACCT_MGR_UNVL_ID = AL70.UAID

Page 20: Arizona_CA_and_GL_specs.xlsx

AL70.EMPLID = AL71.EMPLID NONE

KF_E_CA_SUB_ACCT

KF_E_CA_SUB_ACCT

KF_E_CA_ORG_EXT

* all lookup conditions not referencing PS tables also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <main data stream>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <main data stream>.EFFDT_TO >= <lookup table>.EFFDT_FROM"

AL1.FIN_COA_CD = AL34.FIN_COA_CD AND AL1.ACCOUNT_NBR = AL34.ACCOUNT_NBR

AL34.FIN_RPT_CHRT_CD = AL100.FIN_COA_CD

AL1.FIN_COA_CD=AL81.FIN_COA_CD AND AL1.ORG_CD=AL81.ORG_CD

Page 21: Arizona_CA_and_GL_specs.xlsx

Type 1 SCD Dependence Source Type Source Table

N/A Generated N/AN/A Copy KF_H_CA_ACCOUNTCHART_CD Copy KF_H_CA_CHARTN/A Copy KF_H_CA_ACCOUNTMain Type 1 SCD stage Copy KF_H_CA_ACCOUNT

N/AGenerated N/ATransform KF_H_CA_SUB_ACCT

Main Type 1 SCD stageGenerated

N /ATransform KF_H_CA_SUB_ACCT

Main Type 1 SCD stage Transform KF_H_CA_ACCOUNT

Main Type 1 SCD stage Transform select distinct EMPLID, NETID_OPRID, Main Type 1 SCD stage Transform select distinct EMPLID, NETID_OPRID, Main Type 1 SCD stage Transform PS_UA_EE_JOB_VWMain Type 1 SCD stage Transform KF_H_CA_ACCOUNTMain Type 1 SCD stage Transform select distinct EMPLID, NETID_OPRID, Main Type 1 SCD stage Transform select distinct EMPLID, NETID_OPRID, Main Type 1 SCD stage Transform PS_UA_EE_JOB_VWMain Type 1 SCD stage Transform KF_H_CA_ACCOUNTMain Type 1 SCD stage Transform select distinct EMPLID, NETID_OPRID, Main Type 1 SCD stage Transform select distinct EMPLID, NETID_OPRID, Main Type 1 SCD stage Transform PS_UA_EE_JOB_VWN/A Copy KF_H_CA_ACCOUNT

Copy KF_H_CA_ORGN/A Copy KF_H_CA_ORG

ACCOUNT_ORGANIZATION_TYPE_CD Copy KF_H_CA_ORG_TYPE

Copy KF_H_CA_ORG_EXTN/A Copy KF_H_CA_ORG

ACCOUNT_PARENT_ORG_CHART_CD Copy KF_H_CA_CHARTN/A Copy KF_H_CA_ORG

Transform KF_H_CA_ORGN/A Transform KF_H_CA_ACCOUNT

ACCOUNT_ORGANIZATION_CD, CHART_CD

ACCOUNT_ORGANIZATION_CD, CHART_CD

ACCOUNT_PARENT_ORG_CD, ACCOUNT_PARENT_ORG_CHART_CD

Page 22: Arizona_CA_and_GL_specs.xlsx

ACCOUNT_TYPE_CD Transform KF_H_CA_ACCOUNT_TYPEN/A Transform KF_H_CA_ACCOUNT

ACCOUNT_PHYSICAL_CAMPUS_CD Transform KF_H_KRNS_CAMPUS

N/AGenerated N/ACopy KF_H_CA_SUB_ACCT

N/AGenerated N/ACopy KF_H_CA_SUB_ACCT

SUB_ACCOUNT_REPORT_CHART_CDGenerated N/ACopy KF_H_CA_CHART

N/AGenerated N/ACopy KF_H_CA_SUB_ACCT

Generated N/ACopy KF_H_CA_ORG

N/AGenerated N/ACopy KF_H_CA_SUB_ACCT

N/A Copy KF_H_CA_SUB_FND_GRPACCOUNT_FUND_GROUP_CD Copy KF_H_CA_FUND_GRPACCOUNT_FUND_GROUP_CD Copy KF_H_CA_FUND_GRPN/A Copy KF_H_CA_SUB_FND_GRP_TYPACCOUNT_SUB_FUND_CD Copy KF_H_CA_SUB_FUND_GRPN/A Copy KF_H_CA_SUB_FND_GRP_TYPN/A Copy KF_H_CA_SUB_FND_GRP_TYPACCOUNT_SUB_FUND_TYPE_CD Copy KF_H_CA_SUB_FND_GRP_TYPN/A Copy KF_H_CA_SUB_FND_GRP_TYPN/A Copy KF_H_CA_SUB_FND_GRP_TYPACCOUNT_SUB_FUND_CD Copy KF_H_CA_SUB_FND_GRP_TYPN/A Transform KF_H_CA_ACCOUNTN/A Copy KF_H_CA_ACCOUNT

Copy KF_H_CA_HIGHR_ED_FUNCN/A Transform KF_H_CA_ACCOUNT

ACCOUNT_RESTRICTION_STATUS_CD Transform KF_H_CA_RESTRICT_STATMain Type 1 SCD stage Copy KF_H_CA_ACCOUNTMain Type 1 SCD stage Transform KF_H_CA_ACCOUNTMain Type 1 SCD stage Transform KF_H_CA_ACCOUNTMain Type 1 SCD stage Transform KF_H_CA_ACCOUNTMain Type 1 SCD stage Transform KF_H_CA_ACCOUNTN/A Transform KF_H_CA_ACCOUNTACCOUNT_REPORT_CHART_CD Transform KF_H_CA_CHARTN/A Transform KF_H_CA_ACCOUNT

SUB_ACCOUNT_REPORT_ORG_CD, SUB_ACCOUNT_REPORT_CHART_CD

ACCOUNT_HIGHER_ED_FUNCTION_CD

Page 23: Arizona_CA_and_GL_specs.xlsx

Transform KF_H_CA_ACCOUNTMain Type 1 SCD stage Copy KF_H_CA_ACCOUNTMain Type 1 SCD stage Copy KF_H_CA_ACCOUNTMain Type 1 SCD stage Copy KF_H_CA_ACCOUNTN/A Transform KF_H_CA_ACCOUNTACCOUNT_CONTINU_CHART_CD Transform KF_H_CA_CHARTN/A Transform KF_H_CA_ACCOUNT

Transform KF_H_CA_ACCOUNTN/A Transform KF_H_CA_ACCOUNT

ACCOUNT_ENDOWMENT_CHART_CD Transform KF_H_CA_CHARTN/A Transform KF_H_CA_ACCOUNT

Transform KF_H_CA_ACCOUNTN/A Transform KF_H_CA_ACCOUNT

ACCOUNT_CONTRACT_CHART_CD Transform KF_H_CA_CHARTN/A Transform KF_H_CA_ACCOUNT

Transform KF_H_CA_ACCOUNTN/A Transform KF_H_CA_ACCOUNTACCOUNT_INCOME_CHART_CD Transform KF_H_CA_CHARTN/A Transform KF_H_CA_ACCOUNT

Transform KF_H_CA_ACCOUNTN/A Transform KF_H_CA_ACCOUNTACCOUNT_INDIRECT_TYPE_CD Transform KF_H_CA_ICR_TYPEN/A Transform KF_H_CA_ACCOUNTN/A Transform KF_H_CA_ACCOUNTN/A Transform KF_H_CA_ACCOUNTACCOUNT_INDIRECT_CHART_CD Transform KF_H_CA_CHARTN/A Transform KF_H_CA_ACCOUNT

Transform KF_H_CA_ACCOUNTN/A Transform KF_H_CA_ACCOUNTN/A Copy KF_H_CA_ACCOUNT

Copy KF_H_CA_BDGT_REC_LVL

ACCOUNT_REPORT_CHART_CD, ACCOUNT_REPORT_ACCOUNT_NBR

ACCOUNT_CONTINU_CHART_CD,ACCOUNT_CONTINU_ACCOUNT_NBR

ACCOUNT_ENDOWMENT_CHART_CD, ACCOUNT_ENDOWMENT_ACCOUNT_NBR

ACCOUNT_CONTRACT_CHART_CD, ACCOUNT_CONTRACT_ACCOUNT_NBR

ACCOUNT_INCOME_CHART_CD, ACCOUNT_INCOME_ACCOUNT_NBR

ACCOUNT_INDIRECT_CHART_CD, ACCOUNT_INDIRECT_ACCOUNT_NBR

ACCOUNT_BUDGET_RECORD_LEVEL_CD

Page 24: Arizona_CA_and_GL_specs.xlsx

N/A Copy KF_H_CA_ACCOUNTACCOUNT_SUF_FUNDS_CD Copy KF_H_CA_ACCT_SFN/A Copy KF_H_CA_ACCOUNTN/A Copy KF_H_CA_ACCOUNTN/A Copy KF_H_CA_ACCOUNTN/A Copy KF_H_CA_ACCOUNTN/A Copy KF_H_CA_ACCOUNTN/A Transform KF_H_CA_ACCOUNTN/A Copy KF_H_CA_ACCOUNTN/A Copy KF_H_CA_ACCOUNTN/A Transform KF_H_CA_ACCT_DESCN/A Transform KF_H_CA_ACCT_DESCN/A Transform KF_H_CA_ACCT_DESCN/A Transform KF_H_CA_ACCT_DESCN/A Transform KF_H_CA_ACCT_DESCN/A Transform KF_H_CA_ACCT_GDLNPRPSN/A Transform KF_H_CA_ACCT_GDLNPRPSN/A Transform KF_H_CA_ACCT_GDLNPRPSN/A Transform KF_H_CA_ACCOUNT_EXTN/A Transform KF_H_CA_ACCOUNT_EXTN/A Transform KF_H_CA_ACCOUNT_EXT

N/A Transform Multiple

N/A Transform Multiple

N/A Transform MultipleN/A Generated N/AN/A Copy KF_H_CA_ACCOUNT

N/AGenerated N/A

Page 25: Arizona_CA_and_GL_specs.xlsx

N/AGenerated

N/AN/A Generated N/AN/A Generated N/AN/A Generated N/A

Page 26: Arizona_CA_and_GL_specs.xlsx

* all lookup conditions not referencing PS tables also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <main data stream>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <main data stream>.EFFDT_TO >= <lookup table>.EFFDT_FROM"

Page 27: Arizona_CA_and_GL_specs.xlsx

Source Column Transform Logic

N/A Surrogate key generator starting at 1AL1.FIN_COA_CD N/AAL2.FIN_COA_DESC N/AAL1.ACCOUNT_NBR N/AAL1.ACCOUNT_NM N/A

N/AAL34.SUB_ACCT_NBR N/A

N/AAL34.SUB_ACCT_NM N/A

AL1.ACCT_FSC_OFC_UID N/A

AL50.NETID_OPRID UPPER(AL50.NETID_OPRID)AL50.NAME replace(AL50.NAME, ' - ', ' ')AL51.DEPT_ID N/AAL1.ACCT_SPVSR_UNVL_ID N/AAL60.NETID_OPRID UPPER(AL60.NETID_OPRID)AL60.NAME replace(AL50.NAME, ' - ', ' ')AL61.DEPT_ID N/AAL1.ACCT_MGR_UNVL_ID N/AAL70.NETID_OPRID UPPER(AL70.NETID_OPRID)AL70.NAME replace(AL50.NAME, ' - ', ' ')AL71.DEPT_ID N/AAL1.ORG_CD N/A

AL6.ORG_NM N/AAL6.ORG_TYP_CD N/A

AL7.ORG_TYP_NM N/A

AL81.REPORT_ORDER_CD N/AAL6.RPTS_TO_FIN_COA_CD N/A

AL8.FIN_COA_DESC N/AAL6.RPTS_TO_ORG_CD N/A

AL9.ORG_NM N/AAL1.ACCT_TYP_CD N/A

Generate one row with value of - for each chart of account, account number and source system id

Generate one row with value of - for each chart of account, account number and source system id

Page 28: Arizona_CA_and_GL_specs.xlsx

AL10.ACCT_TYP_NM N/AAL1.ACCT_PHYS_CMP_CD N/A

CAMPUS_NM N/A

N/ASUB_ACCT_ACTV_CD N/A

N/AFIN_RPT_CHRT_CD N/A

N/AFIN_COA_DESC N/A

N/AFIN_RPT_ORG_CD N/A

N/AORG_NM N/A

N/AFIN_RPT_CD N/AAL12.FUND_GRP_CD N/AAL13.FUNG_GRP_NM N/AAL13.FIN_REPORT_SORT_CD N/AAL12.SUB_FUND_GRP_CD N/AAL12.SUB_FUND_GRP_DESC N/AAL12.SUBFUNDGRP_ACTV_CD N/AAL12.SUB_FUNDGRP_TYP_CD N/AAL14.SUB_FND_GRP_TYP_DESC N/AAL14.SUB_FND_GRP_TYP_ACTV_N/AAL12.SUB_FUND_GRP_WAGE_INN/AAL12.FIN_REPORT_SORT_CD N/AAL1.ACCT_FRNG_BNFT_CD N/AAL1.FIN_HGH_ED_FUNC_CD N/A

AL15.FIN_HGH_ED_FUNC_NM N/AAL1.ACCT_RSTRC_STAT_CD N/A

AL16.ACCT_RSTRC_STAT_NM N/AAL1.ACCT_RSTRC_STAT_DT N/AAL1.ACCT_CITY_NM N/AAL1.ACCT_STATE_CD N/AAL1.ACCT_STREET_ADDR N/AAL1.ACCT_ZIP_CD N/AAL1.RPTS_TO_FIN_COA_CD N/AAL17.FIN_COA_DESC N/AAL1.RPTS_TO_ACCT_NBR N/A

Generate one row with value of - for each chart of account, account number and source system id

Generate one row with value of - for each chart of account, account number and source system id

Generate one row with value of - for each chart of account, account number and source system id

Generate one row with value of - for each chart of account, account number and source system id

Generate one row with value of - for each chart of account, account number and source system id

Generate one row with value of - for each chart of account, account number and source system id

Page 29: Arizona_CA_and_GL_specs.xlsx

AL18.ACCOUNT_NM N/AAL1.ACCT_CREATE_DT N/AAL1.ACCT_EFFECT_DT N/AAL1.ACCT_EXPIRATION_DT N/AAL1.CONT_FIN_COA_CD N/AAL19.FIN_COA_DESC N/AAL1.CONT_ACCOUNT_NBR N/A

AL20.ACCOUNT_NM N/AAL1.ENDOW_FIN_COA_CD N/A

AL21.FIN_COA_DESC N/AAL1.ENDOW_ACCOUNT_NBR N/A

AL22.ACCOUNT_NM N/AAL1.CONTR_CTRL_FCOA_CD N/A

AL23.FIN_COA_DESC N/AAL1.CONTR_CTRLACCT_NBR N/A

AL24.ACCOUNT_NM N/AAL1.INCOME_FIN_COA_CD N/AAL25.FIN_COA_DESC N/AAL1.INCOME_ACCOUNT_NBR N/A

AL26.ACCOUNT_NM N/AAL1.ACCT_ICR_TYP_CD N/AAL27.ACCT_ICR_TYP_DESC N/AAL1.AC_CSTM_ICREXCL_CD N/AAL1.FIN_SERIES_ID N/AAL1.ICR_FIN_COA_CD N/AAL28.FIN_COA_DESC N/AAL1.ICR_ACCOUNT_NBR N/A

AL29.ACCOUNT_NM N/AAL1.ACCT_IN_FP_CD N/AAL1.BDGT_REC_LVL_CD N/A

AL30.BDGT_REC_LVL_NM N/A

Page 30: Arizona_CA_and_GL_specs.xlsx

AL1.ACCT_SF_CD N/AAL31.ACCT_SF_NM N/AAL1.ACCT_PND_SF_CD N/AAL1.FIN_EXT_ENC_SF_CD N/AAL1.FIN_INT_ENC_SF_CD N/AAL1.FIN_PRE_ENC_SF_CD N/AAL1.FIN_OBJ_PRSCTRL_CD N/AAL1.CG_CFDA_NBR N/AAL1.ACCT_OFF_CMP_IND N/AAL1.ACCT_CLOSED_IND N/AAL32.CAMPUS_DESC N/AAL32.ORG_DESC N/AAL32.RC_DESC N/AAL32.CAMPUS_CD N/AAL32.BLDG_CD N/AAL33.ACCT_EXP_GDLN_TXT N/AAL33.ACCT_INC_GDLN_TXT N/AAL33.ACCT_PURPOSE_TXT N/AAL80.FUNDS_TYPE_CD N/AAL80.TAX_REGION_CD N/AAL80.FA_COST_SUBCAT_CD N/A

Multiple

Multiple

MultipleN/A Y for initial value N for expire value

SRC_SYS_ID N/A

N/A

IF INSTR( ';' || AL90.SUB_FUND_GROUPS_FOR_ITD || ';', ';' || AL12.SUB_FUND_GRP_CD || ';' ) <> 0 THEN 'P'ELSIF TRIM(AL90.FUND_GROUP_DENOTES_CG_IND) = 'Y' AND AL12.FUND_GRP_CD = TRIM(AL90.CG_DENOTING_VALUE) THEN 'P'ELSIF TRIM(AL90.FUND_GROUP_DENOTES_CG_IND) = 'N' AND AL12.SUB_FUND_GRP_CD = RTRIM(AL90.CG_DENOTING_VALUE) THEN 'P'ELSE 'F'END IF

This is the max EFFDT_FROM value from all the tables joined to make this record.

This is the min EFFDT_TO value from all the tables joined to make this record.

If an error occurs when creating this row (e.g. a lookup error) this is Y otherwise it is N

Page 31: Arizona_CA_and_GL_specs.xlsx

N/AN/A Start time of ETL jobN/A Start time of ETL jobN/A Batch ID of highest level ETL job that called this one.

Passed as a variable to the ETL job. Should be E for EPM-sourced data and S for source-system-sourced data.

Page 32: Arizona_CA_and_GL_specs.xlsx

Purpose Comment

Page 33: Arizona_CA_and_GL_specs.xlsx

Currently need to hard-code in SCD stage to intiial value to the Replace Nulls With value due to DataStage limitation.

Page 34: Arizona_CA_and_GL_specs.xlsx

Name Name Length Description

ACCOUNT_STATISTICS_SID 22the following rows are business keys and their text transactionsFISCAL_YEAR 11FISCAL_PERIOD_CD 16CHART_CD 8

CHART_LD 8ACCOUNT_NBR 11

ACCOUNT_LD 10OBJECT_CD 9

OBJECT_LD 9

Driving Table: KF_GL_ENTRYDriving Table Filter: Include only balance type AC. Exclude fiscal periods BB, CB, AB and 13.Driving Table Aggregation: Fiscal year, fiscal period, chart code, account number, object_code, src_sys_idLoad Strategy: do destructive first. Then when needed (probably right away) change to incremental to re-calculate any fiscal period that had a new actuals transaction.

Page 35: Arizona_CA_and_GL_specs.xlsx

OBJECT_SD 9the following rows are fiscal period measures

ACCTSTAT_MINIMUM_AMT_UA 23 Should we allow this to be null?

ACCTSTAT_MAXIMUM_AMT_UA 23 Should we allow this to be null?

ACCTSTAT_MEAN_AMT_UA 20 Should we allow this to be null?

ACCTSTAT_MEDIAN_AMT_UA 22 Should we allow this to be null?ACCTSTAT_STAND_DEV_AMT_UA 25 Should we allow this to be null?the following rows are year-to-date measures, up to the fiscal period for this row so they need to be aggregated correctly. Note that they do not include beginning balance or year close transactions becasu we are excluding fiscal periods AB, BB, CB and 13.

ACCTSTAT_YTD_MINIMUM_AMT_UA 27 Should we allow this to be null?

ACCTSTAT_YTD_MAXIMUM_AMT_UA 27 Should we allow this to be null?

ACCTSTAT_YTD_MEAN_AMT_UA 24 Should we allow this to be null?

ACCTSTAT_YTD_MEDIAN_AMT_UA 26 Should we allow this to be null?ACCTSTAT_YTD_STAND_DEV_AMT_UA 29 Should we allow this to be null?the following rows are audit columns

EFF_START_DT12

EFF_END_DT

10CURRENT_IND 11SRC_SYS_ID 10

LOAD_ERROR10

DATA_ORIGIN11

Page 36: Arizona_CA_and_GL_specs.xlsx

CREATED_EW_DTTM 15LASTUPD_EW_DTTM 15

BATCH_SID9

* All joins also include SRC_SYS_ID and KF_GL_ENTRY.TRN_POST_DT BETWEEN <lookup table>.EFFDT_FROM AND <lookup table>.EFFDT_TO

Page 37: Arizona_CA_and_GL_specs.xlsx

Data Type Replace NULL With Constraints SCD Function Type 1 SCD Update

NUMBER(10) High value SID primary key Surrogate Key N/A

NUMBER(4,0) 0 not null Business Key N/AVARCHAR2(2) - not null Business Key N/AVARCHAR2(2) - not null Business Key N/A

VARCHAR2(40)- not null Type 1 Main SCD Type 1 Stage

VARCHAR2(7) - not null Business Key N/A

- not null Type 1 Main SCD Type 1 StageVARCHAR2(4) - not null Business Key N/A

VARCHAR2(160) - not null Type 1 Main SCD Type 1 Stage

Fiscal year, fiscal period, chart code, account number, object_code, src_sys_id do destructive first. Then when needed (probably right away) change to incremental to re-calculate any fiscal period that had a new actuals transaction.

VARCHAR2(40)

Page 38: Arizona_CA_and_GL_specs.xlsx

VARCHAR2(48)

- not null Type 1 Main SCD Type 1 Stage

NUMBER(19,2) 0 not null Type 1 Main SCD Type 1 Stage

NUMBER(19,2) 0 not null Type 1 Main SCD Type 1 Stage

NUMBER(19,2) 0 not null Type 1 Main SCD Type 1 Stage

NUMBER(19,2) 0 not null Type 1 Main SCD Type 1 StageNUMBER(19,2) 0 not null Type 1 Main SCD Type 1 Stage

the following rows are year-to-date measures, up to the fiscal period for this row so they need to be aggregated correctly. Note that they do not include beginning balance or year close transactions becasu we are excluding fiscal periods AB, BB, CB and 13.

NUMBER(19,2) 0 not null Type 1 Main SCD Type 1 Stage

NUMBER(19,2) 0 not null Type 1 Main SCD Type 1 Stage

NUMBER(19,2) 0 not null Type 1 Main SCD Type 1 Stage

NUMBER(19,2) 0 not null Type 1 Main SCD Type 1 StageNUMBER(19,2) 0 not null Type 1 Main SCD Type 1 Stage

DATE01-JAN-1753 00:00:00

NOT NULLEffective Date N/A

DATE

31-DEC-9999 23:59:59

NOT NULL

Effective Date N/ACHAR(1) Y NOT NULL Effective Flag N/AVARCHAR2(5) KFS NOT NULL Business Key N/A

VARCHAR2(1) N NOT NULLInsert Only N/A

VARCHAR2(1) E NOT NULLInsert Only N/A

Page 39: Arizona_CA_and_GL_specs.xlsx

DATE Start time of ETL job NOT NULL Insert Only N/ADATE Start time of ETL job NOT NULL Insert Only N/A

NUMBER(10,0)Start time of ETL job

NOT NULLInsert Only N/A

* All joins also include SRC_SYS_ID and KF_GL_ENTRY.TRN_POST_DT BETWEEN <lookup table>.EFFDT_FROM AND <lookup table>.EFFDT_TO

Page 40: Arizona_CA_and_GL_specs.xlsx

Source Type Source Table Source Column Lookup Logic*

Generate N/A N/A N/A

Copy KF_GL_ENTRY UNIV_FISCAL_YR N/ACopy KF_GL_ENTRY UNIV_FISCAL_PRD_CD N/ACopy KF_GL_ENTRY FIN_COA_CD N/A

Copy KF_H_CA_CHART FIN_COA_DESCCopy KF_GL_ENTRY ACCOUNT_NBR N/A

Copy KF_H_CA_ACCOUNT ACCOUNT_NMCopy KF_GL_ENTRY FIN_OBJECT_CD N/A

Copy KF_H_CA_OBJECT_CODE FIN_OBJ_CD_NM

KF_H_CA_CHART.FIN_COA_CD=KF_GL_ENTRY.FIN_COA_CD

KF_H_CA_ACCOUNT.FIN_COA_CD = KF_GL_ENTRY.FIN_COA_CD AND KF_H_CA_ACCOUNT.ACCOUNT_NBR = KF_GL_ENTRY.ACCOUNT_NBR

KF_H_CA_OBJECT_CODE.UNIV_FISCAL_YR = KF_GL_ENTRY.UNIV_FISCAL_YR AND KF_CA_OBJECT_CODE.FIN_COA_CD = KF_GL_ENTRY.FIN_COA_CD AND KF_CA_OBJECT_CODE.FIN_OBJECT_CD = KF_GL_ENTRY.FIN_OBJECT_CD

Page 41: Arizona_CA_and_GL_specs.xlsx

Copy KF_H_CA_OBJECT_CODE FIN_OBJ_CD_SHRT_NM

Transform KF_GL_ENTRY TRN_LDGR_ENTR_AMTN/A

Transform KF_GL_ENTRY TRN_LDGR_ENTR_AMTN/A

Transform KF_GL_ENTRY TRN_LDGR_ENTR_AMTN/A

Transform KF_GL_ENTRY TRN_LDGR_ENTR_AMTN/ATransform KF_GL_ENTRY TRN_LDGR_ENTR_AMTN/A

the following rows are year-to-date measures, up to the fiscal period for this row so they need to be aggregated correctly. Note that they do not include beginning balance or year close transactions becasu we are excluding fiscal periods AB, BB, CB and 13.

Transform KF_GL_ENTRY TRN_LDGR_ENTR_AMTN/A

Transform KF_GL_ENTRY TRN_LDGR_ENTR_AMTN/A

Transform KF_GL_ENTRY TRN_LDGR_ENTR_AMTN/A

Transform KF_GL_ENTRY TRN_LDGR_ENTR_AMTN/ATransform KF_GL_ENTRY TRN_LDGR_ENTR_AMTN/A

N/A Transform Multiple Multiple

N/A Transform Multiple MultipleN/A Generated N/A N/AN/A Copy KF_GL_ENTRY SRC_SYS_ID

N/AGenerated N/A N/A

N/AGenerated

N/A N/A

KF_H_CA_OBJECT_CODE.UNIV_FISCAL_YR = KF_GL_ENTRY.UNIV_FISCAL_YR AND KF_CA_OBJECT_CODE.FIN_COA_CD = KF_GL_ENTRY.FIN_COA_CD AND KF_CA_OBJECT_CODE.FIN_OBJECT_CD = KF_GL_ENTRY.FIN_OBJECT_CD

Page 42: Arizona_CA_and_GL_specs.xlsx

N/A Generated N/A N/AN/A Generated N/A N/A

N/AGenerated

N/A N/A

Page 43: Arizona_CA_and_GL_specs.xlsx

Transform Logic Purpose Comment

N/AN/AN/A

N/AN/A

N/AN/A

N/A

Page 44: Arizona_CA_and_GL_specs.xlsx

N/A

MIN( ABS(TRN_LDGR_ENTR_AMT) )

MAX( ABS(TRN_LDGR_ENTR_AMT) )

ROUND( AVG( ABS(TRN_LDGR_ENTR_AMT) ), 2 )

MEDIAN( ABS(TRN_LDGR_ENTR_AMT) )

MIN( ABS(TRN_LDGR_ENTR_AMT) )

MAX( ABS(TRN_LDGR_ENTR_AMT) )

ROUND( AVG( ABS(TRN_LDGR_ENTR_AMT) ), 2 )

MEDIAN( ABS(TRN_LDGR_ENTR_AMT) )

Y for initial value N for expire valueN/A

ROUND(STDDEV(ABS(TRN_LDGR_ENTR_AMT) ) ,2)

ROUND(STDDEV(ABS(TRN_LDGR_ENTR_AMT) ) ,2)

This is the max EFFDT_FROM value from all the tables joined to make this record.

This is the min EFFDT_TO value from all the tables joined to make this record.

Currently need to hard-code in SCD stage to intiial value to the Replace Nulls With value due to DataStage limitation.

If an error occurs when creating this row (e.g. a lookup error) this is Y otherwise it is N

Passed as a variable to the ETL job. Should be E for EPM-sourced data and S for source-system-sourced data.

Page 45: Arizona_CA_and_GL_specs.xlsx

Start time of ETL jobStart time of ETL job

Batch ID of highest level ETL job that called this one.

Page 46: Arizona_CA_and_GL_specs.xlsx

Driving Table: KF_H_CA_BALANCE_TYPEGrain: balance type

Name Description Data Type

BALANCE_TYPE_SID NUMBER(10,0)BALANCE_TYPE_CD VARCHAR2(2)BALANCE_TYPE_LD VARCHAR2(40)BALANCE_TYPE_SD VARCHAR2(12)BALANCE_TYPE_OFFSET_FLG VARCHAR2(1)BALANCE_TYPE_ENCUMBRANCE_FLG VARCHAR2(1)BALANCE_TYPE_ACTIVE_FLG VARCHAR2(1)

EFF_START_DT DATE

EFF_END_DT DATE

CURRENT_IND CHAR(1)

SRC_SYS_ID VARCHAR2(5 BYTE)

LOAD_ERROR VARCHAR2(1 BYTE)

DATA_ORIGIN VARCHAR2(1 BYTE)

CREATED_EW_DTTM DATELASTUPD_EW_DTTM DATE

BATCH_SID NUMBER(10)

* all lookup conditions also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <current>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <current>.EFFDT_TO >= <lookup table>.EFFDT_FROM"* all lookup conditons return NULLs when lookup fails (aka outer-join logic)* all lookup conditions allow multiple rows to be returned from lookup

Page 47: Arizona_CA_and_GL_specs.xlsx

Replace NULL With Constraints SCD Function Source Type

2147483646 NOT NULL Surrogate Key Generated- NOT NULL Business Key Copy- NOT NULL Type I Copy- NOT NULL Type I Copy- NOT NULL Type II Copy- NOT NULL Type II Copy- NOT NULL Type II Copy

01-JAN-1753 00:00:00NOT NULL

Effective Date Transform

31-DEC-9999 23:59:59

NOT NULL

Effective Date Transform

Y NOT NULL Effective Flag Generated

KFS NOT NULL Business Key Copy

N NOT NULLInsert Only

Generated

E NOT NULL

Insert Only

Generated

Start time of ETL job NOT NULL Insert Only GeneratedStart time of ETL job NOT NULL Insert Only Generated

Start time of ETL job NOT NULL Insert OnlyGenerated

* all lookup conditions also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <current>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <current>.EFFDT_TO >= <lookup table>.EFFDT_FROM"

Page 48: Arizona_CA_and_GL_specs.xlsx

Source Table Source Column Lookup Logic*

N/A N/A N/AKF_H_CA_BALANCE_TYPE FIN_BALANCE_TYP_CD N/AKF_H_CA_BALANCE_TYPE FIN_BALANCE_TYP_NM N/AKF_H_CA_BALANCE_TYPE FIN_BALTYP_SHRT_NM N/AKF_H_CA_BALANCE_TYPE FIN_OFFST_GNRTN_CD N/AKF_H_CA_BALANCE_TYPE FIN_BALTYP_ENC_CD N/AKF_H_CA_BALANCE_TYPE ROW_ACTV_IND N/A

Multiple Multiple N/A

Multiple Multiple N/A

N/A N/A N/A

KF_H_CA_BALANCE_TYPE SRC_SYS_ID N/A

N/A N/AN/A

N/A

N/A

N/AN/A N/A N/AN/A N/A N/A

N/A N/A N/A

* all lookup conditions also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <current>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <current>.EFFDT_TO >= <lookup table>.EFFDT_FROM"

Page 49: Arizona_CA_and_GL_specs.xlsx

Transform Logic Purpose Comment

N/AN/AN/AN/AN/AN/A

Y for initial value N for expire value

N/A

Start time of ETL jobStart time of ETL job

Surrogate key generator starting at 1

This is the max EFFDT_FROM value from all the tables joined to make this record.

This is the min EFFDT_TO value from all the tables joined to make this record.

Currently need to hard-code in SCD stage to intiial value to the Replace Nulls With value due to DataStage limitation.

If an error occurs when creating this row (e.g. a lookup error) this is Y otherwise it is N

Passed as a variable to the ETL job. Should be E for EPM-sourced data and S for source-system-sourced data.

Batch ID of highest level ETL job that called this one.

Page 50: Arizona_CA_and_GL_specs.xlsx

Name Name Length Description

DAY_SID 8Regular calendar columns

DAY_DT 7 DAY_NBR 8 DAY_LD 7 DAY_SD 7 DAY_JULIAN_NBR 15 DAY_OF_WEEK_NBR 16 DAY_OF_MONTH_NBR 17 DAY_OF_YEAR_NBR 16 WEEK_SID 10 WEEK_NBR 10 WEEK_LD 8

WEEK_SD_UA 11 WEEK_OF_MONTH_NBR 19 WEEK_OF_YEAR_NBR 18 MONTH_SID 11 MONTH_NBR 12 MONTH_LD 10 MONTH_SD 10 MONTH_END_DT_UA 16 MONTH_OF_QTR_NBR 18 QUARTER_SID 13

QUARTER_NBR 12 QUARTER_LD 11 QUARTER_SD 11 QUARTER_OF_YR 14

YEAR_SID 9 YEAR_NBR 9 YEAR_LD 8 FIRST_DAY_OF_WEEK_FLG 22 LAST_DAY_OF_WEEK_FLG 21 FIRST_DAY_OF_MONTH_FLG 23 LAST_DAY_OF_MONTH_FLG 22 FIRST_DAY_OF_QTR_FLG 21 LAST_DAY_OF_QTR_FLG 20

FIRST_DAY_OF_YEAR_FLG 22

Driving Table: PS_D_DAYGrain: DayNote: Exclude columns in RED. Leaving them in spreadsheet in case we need to put them in afterall.Note: This table is created with a DESTRUCTIVE load. No dates involved in the lookups.Note: No error tables in this job.

Page 51: Arizona_CA_and_GL_specs.xlsx

LAST_DAY_OF_YEAR_FLG 21 DAYS_IN_WEEK_UA 16 DAYS_IN_MONTH_UA 17

DAYS_IN_YEAR_UA 16

MONTH_ELAPSED_PCT_UA 21

YEAR_ELAPSED_PCT_UA 20Pay calendar columns 20

DAY_OF_PAY_PERIOD_NBR_UA 25 PAY_PERIOD_START_DT 20 PAY_PERIOD_END_DT 18

PAY_PERIOD_OF_MONTH_NBR_UA 27 PAY_PERIOD_OF_YEAR_NBR_UA 26 PAY_PERIOD_OF_FY_NBR_UA 24

PAY_PERIOD_OF_FED_YEAR_NBR_UA 30

FIRST_DAY_OF_PAY_P_FLG_UA 26

LAST_DAY_OF_PAY_P_FLG_UA 25

Page 52: Arizona_CA_and_GL_specs.xlsx

DAY_FOR_PAY_TRANS_FLG_UA 25 DAY_IS_WEEKEND_FLG 19

DAY_IS_UNIV_HOLIDAY_FLG 24DAY_IS_UNIV_HOLIDAY_LD 22

DAY_IS_UNIV_CLOSURE_FLG_UA 27

DAY_IS_REGULAR_WORKDAY_FLG_UA 30

DAYS_IN_PAY_PERIOD_UA 22

PAY_PERIOD_ELAPSED_PCT_UA 26 REG_WORK_DAYS_IN_WEEK_UA 25

REG_WORK_DAYS_IN_PAY_PERIOD_UA 31 REG_WORK_DAYS_IN_MONTH_UA 26

REG_WORK_DAYS_IN_FIS_QTR_UA 28

REG_WORK_DAYS_IN_FED_QTR_UA 28 REG_WORK_DAYS_IN_YEAR_UA 25

Page 53: Arizona_CA_and_GL_specs.xlsx

REG_WORK_DAYS_IN_FY_UA 23

REG_WORK_DAYS_IN_FED_YEAR_UA 29Fiscal calendar columns 23

DAY_OF_FISCAL_QUARTER_NBR_UA 28

DAY_OF_FISCAL_YEAR_NBR_UA 26

WEEK_OF_FISCAL_YEAR_NBR_UA 27

WEEK_OF_FISCAL_YEAR_LD_UA 26

WEEK_OF_FISCAL_YEAR_SD_UA 26

Page 54: Arizona_CA_and_GL_specs.xlsx

FISCAL_MONTH_NBR_UA 20

MONTH_OF_FISCAL_QUARTER_NBR_UA 31

FISCAL_QUARTER_NBR_UA 22

FISCAL_QUARTER_LD_UA 21

FISCAL_QUARTER_SD_UA 21

Page 55: Arizona_CA_and_GL_specs.xlsx

FISCAL_YEAR_SID 16

FISCAL_YEAR_NBR_UA 19

FISCAL_YEAR_LD_UA 18

FISCAL_YEAR_SD_UA 18

FISCAL_YEAR_START_DT_UA 24

Page 56: Arizona_CA_and_GL_specs.xlsx

FISCAL_YEAR_END_DT_UA 22

FIRST_DAY_OF_FISCAL_QTR_FLG_UA 31

LAST_DAY_OF_FISCAL_QTR_FLG_UA 30

FIRST_DAY_OF_FY_FLG_UA 23

LAST_DAY_OF_FY_FLG_UA 22

FIRST_MONTH_OF_FIS_QTR_FLG_UA 30

LAST_MONTH_OF_FIS_QTR_FLG_UA 29

Page 57: Arizona_CA_and_GL_specs.xlsx

FIRST_MONTH_OF_FY_FLG_UA 25

LAST_MONTH_OF_FY_FLG_UA 24

DAYS_IN_FISCAL_QUARTER_UA 26

Page 58: Arizona_CA_and_GL_specs.xlsx

DAYS_IN_FISCAL_YEAR_UA 23

FISCAL_QUARTER_ELAPSED_PCT_UA 29

Page 59: Arizona_CA_and_GL_specs.xlsx

FISCAL_YEAR_ELAPSED_PCT_UA 27Federal fiscal year calendar columns 36

DAY_OF_FED_QUARTER_NBR_UA 25

Page 60: Arizona_CA_and_GL_specs.xlsx

DAY_OF_FED_YEAR_NBR_UA 23

WEEK_OF_FED_YEAR_NBR_UA 24

WEEK_OF_FED_YEAR_LD_UA 23

WEEK_OF_FED_YEAR_SD_UA 23

FED_MONTH_NBR_UA 17

MONTH_OF_FED_QUARTER_NBR_UA 28

FED_QUARTER_NBR_UA 19

Page 61: Arizona_CA_and_GL_specs.xlsx

FED_QUARTER_LD_UA 18

FED_QUARTER_SD_UA 18

FED_YEAR_NBR_UA 16

FED_YEAR_LD_UA 15

FED_YEAR_SD_UA 15

Page 62: Arizona_CA_and_GL_specs.xlsx

FED_YEAR_START_DT_UA 21

FED_YEAR_END_DT_UA 19

FIRST_DAY_OF_FED_QTR_FLG_UA 27

LAST_DAY_OF_FED_QTR_FLG_UA 26

FIRST_DAY_OF_FED_YEAR_FLG_UA 29

LAST_DAY_OF_FED_YEAR_FLG_UA 28

FIRST_MONTH_OF_FED_QTR_FLG_UA 30

Page 63: Arizona_CA_and_GL_specs.xlsx

LAST_MONTH_OF_FED_QTR_FLG_UA 29

FIRST_MNTH_OF_FED_YEAR_FLG_UA 30

LAST_MONTH_OF_FED_YEAR_FLG_UA 30

DAYS_IN_FED_QUARTER_UA 22

Page 64: Arizona_CA_and_GL_specs.xlsx

DAYS_IN_FED_YEAR_UA 20

FED_QUARTER_ELAPSED_PCT_UA 26

Page 65: Arizona_CA_and_GL_specs.xlsx

FED_YEAR_ELAPSED_PCT_UA 24

LOAD_ERROR 11 DATA_ORIGIN 12

CREATED_EW_DTTM 16

LASTUPD_EW_DTTM 16 BATCH_SID 10

Table Join Logic

Table Name Order Lookup Logic

PS_D_DAY 1 N/A

Page 66: Arizona_CA_and_GL_specs.xlsx

PS_PAY_CALENDAR 2

PS_HOLIDAY_DATE 3

kuali_admin.UA_UNIV_CLOSURE 4

PS_D_DAY.DAY_DT BETWEEN PS_PAY_CALENDAR.PAY_BEGIN_DT AND PS_PAY_CALENDAR.PAY_END_DT AND PS_PAY_CALENDAR.PAY_OFF_CYCLE = 'N' and PS_PAY_CALENDAR.PAYGROUP = 'CLE'

UA_D_DAY.DAY_DT=PS_HOLIDAY_DATE.HOLIDAY AND PS_HOLIDAY_DATE.HOLIDAY_SCHEDULE='HOL' AND PS_HOLIDAY_DATE.SRC_SYS_ID = 'HCM'

PS_D_DAY.DAY_DT = UA_UNIV_CLOSURE.UNIV_CLOSURE_DT

Page 67: Arizona_CA_and_GL_specs.xlsx

Data TypeConstraints Source Type

NUMBER(38) 2147483646 NOT NULL Copy

DATE Jan 1, 1990 NOT NULL CopyNUMBER(38) 0 NOT NULL Copy

VARCHAR2(30) - NOT NULL CopyVARCHAR2(3) - NOT NULL Copy

NUMBER(38) 0 NOT NULL CopyNUMBER(38) 0 NOT NULL CopyNUMBER(38) 0 NOT NULL CopyNUMBER(38) 0 NOT NULL CopyNUMBER(38) 2147483646 NOT NULL Copy

NUMBER(38) 0 NOT NULL Copy

VARCHAR2(30) - NOT NULL Copy

VARCHAR2(10) - NOT NULL Generated

NUMBER(38) 0 NOT NULL Copy

NUMBER(38) 0 NOT NULL Copy

NUMBER(38) 2147483646 NOT NULL Copy

NUMBER(38) 0 NOT NULL Copy

VARCHAR2(30) - NOT NULL Copy

VARCHAR2(3) - NOT NULL Copy

DATE 31-Dec-85 NOT NULL GeneratedNUMBER(38) 0 NOT NULL CopyNUMBER(38) 2147483646 NOT NULL Copy

NUMBER(38) 0 NOT NULL CopyVARCHAR2(30) - NOT NULL CopyVARCHAR2(5) - NOT NULL CopyNUMBER(38) 0 NOT NULL Copy

NUMBER(38) 2147483646 NOT NULL CopyNUMBER(38) 0 NOT NULL CopyVARCHAR2(30) - NOT NULL CopyVARCHAR2(1) - NOT NULL CopyVARCHAR2(1) - NOT NULL CopyVARCHAR2(1) - NOT NULL CopyVARCHAR2(1) - NOT NULL CopyVARCHAR2(1) - NOT NULL CopyVARCHAR2(1) - NOT NULL Copy

VARCHAR2(1) - NOT NULL Copy

Replace NULL With

Page 68: Arizona_CA_and_GL_specs.xlsx

VARCHAR2(1) - NOT NULL CopyNUMBER(1) 0 NOT NULL GeneratedNUMBER(2) 0 NOT NULL Generated

NUMBER(3) 0 NOT NULL Generated

NUMBER(3) 0 NOT NULL Generated

NUMBER(3) 0 NOT NULL Generated

NUMBER(2) 0 NOT NULL GeneratedDATE 31-Dec-85 NOT NULL Copy

DATE 31-Dec-85 NOT NULL Copy

NUMBER(1) 0 NOT NULL GeneratedNUMBER(2) 0 NOT NULL Generated

NUMBER(2) 0 NOT NULL Generated

NUMBER(2) 0 NOT NULL Generated

VARCHAR2(1) - NOT NULL Generated

VARCHAR2(1) - NOT NULL Generated

Page 69: Arizona_CA_and_GL_specs.xlsx

VARCHAR2(1) - NOT NULL GeneratedVARCHAR2(1) - NOT NULL Copy

VARCHAR2(1) - NOT NULL GeneratedVARCHAR2(30) - NOT NULL Copy

VARCHAR2(1) - NOT NULL Generated

VARCHAR2(1) - NOT NULL Generated

NUMBER(2) 0 NOT NULL Generated

NUMBER(3) 0 NOT NULL GeneratedNUMBER(1) 0 NOT NULL Generated

NUMBER(2) 0 NOT NULL GeneratedNUMBER(2) 0 NOT NULL Generated

NUMBER(2) 0 NOT NULL Generated

NUMBER(32) 0 NOT NULL GeneratedNUMBER(3) 0 NOT NULL Generated

Page 70: Arizona_CA_and_GL_specs.xlsx

NUMBER(3) 0 NOT NULL Generated

NUMBER(3) 0 NOT NULL Generated

NUMBER(2) 0 NOT NULL Generated

NUMBER(3) 0 NOT NULL Generated

NUMBER(2) 0 NOT NULL Generated

VARCHAR2(30) - NOT NULL Generated

VARCHAR2(15) - NOT NULL Generated

Page 71: Arizona_CA_and_GL_specs.xlsx

NUMBER(2) 0 NOT NULL Generated

NUMBER(1) 0 NOT NULL Generated

NUMBER(1) 0 NOT NULL Generated

VARCHAR2(30) - NOT NULL Generated

VARCHAR2(10) - NOT NULL Generated

Page 72: Arizona_CA_and_GL_specs.xlsx

NUMBER(4) 2147483646 NOT NULL Generated

NUMBER(4) 0 NOT NULL Generated

VARCHAR2(30) - NOT NULL Generated

VARCHAR2(10) - NOT NULL Generated

DATE 31-Dec-85 NOT NULL Generated

Page 73: Arizona_CA_and_GL_specs.xlsx

DATE 31-Dec-85 NOT NULL Generated

VARCHAR2(1) - NOT NULL Generated

VARCHAR2(1) - NOT NULL Generated

VARCHAR2(1) - NOT NULL Generated

VARCHAR2(1) - NOT NULL Generated

VARCHAR2(1) - NOT NULL Generated

VARCHAR2(1) - NOT NULL Generated

Page 74: Arizona_CA_and_GL_specs.xlsx

VARCHAR2(1) - NOT NULL Generated

VARCHAR2(1) - NOT NULL Generated

NUMBER(2) 0 NOT NULL Generated

Page 75: Arizona_CA_and_GL_specs.xlsx

NUMBER(3) 0 NOT NULL Generated

NUMBER(3) 0 NOT NULL Generated

Page 76: Arizona_CA_and_GL_specs.xlsx

NUMBER(3) 0 NOT NULL Generated

NUMBER(2) 0 NOT NULL Generated

Page 77: Arizona_CA_and_GL_specs.xlsx

NUMBER(3) 0 NOT NULL Generated

NUMBER(3) 0 NOT NULL Generated

VARCHAR2(30) - NOT NULL Generated

VARCHAR2(15) - NOT NULL Generated

NUMBER(2) 0 NOT NULL Generated

NUMBER(1) 0 NOT NULL Generated

NUMBER(1) 0 NOT NULL Generated

Page 78: Arizona_CA_and_GL_specs.xlsx

VARCHAR2(30) - NOT NULL Generated

VARCHAR2(10) - NOT NULL Generated

NUMBER(4) 0 NOT NULL Generated

VARCHAR2(30) - NOT NULL Generated

VARCHAR2(10) - NOT NULL Generated

Page 79: Arizona_CA_and_GL_specs.xlsx

DATE 31-Dec-85 NOT NULL Generated

DATE 31-Dec-85 NOT NULL Generated

VARCHAR2(1) - NOT NULL Generated

VARCHAR2(1) - NOT NULL Generated

VARCHAR2(1) - NOT NULL Generated

VARCHAR2(1) - NOT NULL Generated

VARCHAR2(1) - NOT NULL Generated

Page 80: Arizona_CA_and_GL_specs.xlsx

VARCHAR2(1) - NOT NULL Generated

VARCHAR2(1) - NOT NULL Generated

VARCHAR2(1) - NOT NULL Generated

NUMBER(2) 0 NOT NULL Generated

Page 81: Arizona_CA_and_GL_specs.xlsx

NUMBER(3) 0 NOT NULL Generated

NUMBER(3) 0 NOT NULL Generated

Page 82: Arizona_CA_and_GL_specs.xlsx

NUMBER(3) 0 NOT NULL Generated

VARCHAR2(1) N NOT NULL CopyVARCHAR2(1) S NOT NULL Copy

DATE NOT NULL Generated

DATE NOT NULL GeneratedNUMBER(10) 0 NOT NULL Generated

Error Table

None

Start Timestamp of ETL Job

Start Timestamp of ETL Job

Page 83: Arizona_CA_and_GL_specs.xlsx

None

None

None

Page 84: Arizona_CA_and_GL_specs.xlsx

Source Table Source Column

PS_D_DAY DAY_SID

PS_D_DAY DAY_DT

PS_D_DAY DAY_NUM

PS_D_DAY DAY_DESCR

PS_D_DAY DAY_ABBR

PS_D_DAY DAY_JULIAN

PS_D_DAY DAY_WK_NUM PS_D_DAY DAY_MTH_NUM PS_D_DAY DAY_YR_NUM PS_D_DAY WEEK_SID

PS_D_DAY WEEK_NUM

PS_D_DAY WEEK_DESCR

PS_D_DAY WEEK_DESCR

PS_D_DAY WEEK_MTH_NUM

PS_D_DAY WEEK_YR_NUM

PS_D_DAY MONTH_SID

PS_D_DAY MONTH_YR_NUM

PS_D_DAY MONTH_DESCR

PS_D_DAY MONTH_ABBR

PS_D_DAY DAY_DTPS_D_DAY MONTH_QTR_NUM PS_D_DAY QUARTER_SID

PS_D_DAY QUARTER_NUM PS_D_DAY QUARTER_DESC PS_D_DAY QUARTER_ABBR PS_D_DAY QUARTER_YR_NUM

PS_D_DAY YEAR_SID, PS_D_DAY YEAR_NUM PS_D_DAY YEAR_DESCR PS_D_DAY FIRSTDAYWK_FLGPS_D_DAY LASTDAYWK_FLGPS_D_DAY FIRSTDAYMTH_FLG PS_D_DAY LASTDAYMTH_FLGPS_D_DAY FIRST_DAY_QTR_FLGPS_D_DAY LASTDAYQTR_FLG

PS_D_DAY FIRSTDAYYR_FLG

Page 85: Arizona_CA_and_GL_specs.xlsx

PS_D_DAY LASTDAYYR_FLGN/A N/APS_D_DAY DAY_DT

PS_D_DAY YEAR_NUM

PS_D_DAY

PS_D_DAY

PS_PAY_CALENDAR PAY_BEGIN_DT

PS_PAY_CALENDAR PAY_END_DT

PS_PAY_CALENDAR PAY_END_DTPS_PAY_CALENDAR PAY_END_DT

PS_PAY_CALENDAR PAY_END_DT

PS_PAY_CALENDAR PAY_END_DT

PS_D_DAY

PS_D_DAY

DAY_MTH_NUM,DAY_DT

YEAR_NUM,DAY_YR_NUM

PS_D_DAY,PS_PAY_CALENDAR

DAY_DT,PAY_BEGIN_DT

DAY_DT,PAY_BEGIN_DT

DAY_DT,PAY_END_DT

Page 86: Arizona_CA_and_GL_specs.xlsx

PS_D_DAY PS_D_DAY DAY_WEEKEND_FLG

PS_HOLIDAY_DATE HOLIDAYPS_HOLIDAY_DATE DESCR

UA_UNIV_CLOSURE UNIV_CLOSURE_DT

PS_PAY_CALENDAR

PS_D_DAY N/A

PS_D_DAY, PS_PAY_CALENDAR N/APS_D_DAY N/A

PS_D_DAY N/A

PS_D_DAY N/APS_D_DAY N/A

DAY_DT,PAY_END_DT,LASTDAYMTH_FLG

PS_HOLIDAY_DATE,UA_UNIV_CLOSURE

HOLIDAY,UNIV_CLOSURE_DTPAY_END_DT,PAY_BEGIN_DT

PS_D_DAY,PS_PAY_CALENDAR

DAY_DT,PAY_BEGIN_DT,PAY_END_DT

Page 87: Arizona_CA_and_GL_specs.xlsx

PS_D_DAY N/A

PS_D_DAY N/A

PS_D_DAY N/A

PS_D_DAY

PS_D_DAY

PS_D_DAY

PS_D_DAY

DAY_YR_NUM,YEAR_NUMWEEK_YR_NUM,YEAR_NUM

WEEK_YR_NUM,YEAR_NUMWEEK_YR_NUM,YEAR_NUM

Page 88: Arizona_CA_and_GL_specs.xlsx

PS_D_DAY MONTH_YR_NUM

PS_D_DAY MONTH_YR_NUM

PS_D_DAY MONTH_YR_NUM

PS_D_DAY MONTH_YR_NUM

PS_D_DAY MONTH_YR_NUM

Page 89: Arizona_CA_and_GL_specs.xlsx

PS_D_DAY YEAR_SID

PS_D_DAY YEAR_NUM

PS_D_DAY YEAR_NUM

PS_D_DAY YEAR_NUM

PS_D_DAY YEAR_NUM

Page 90: Arizona_CA_and_GL_specs.xlsx

PS_D_DAY YEAR_NUM

PS_D_DAY

PS_D_DAY

PS_D_DAY

PS_D_DAY

PS_D_DAY MONTH_YR_NUM

PS_D_DAY MONTH_YR_NUM

FIRSTDAYMTH_FLG, MONTH_YR_NUM

LASTDAYMTH_FLG, MONTH_YR_NUM

MONTH_YR_NUM,DAY_MTH_NUM

MONTH_YR_NUM,DAY_MTH_NUM

Page 91: Arizona_CA_and_GL_specs.xlsx

PS_D_DAY MONTH_YR_NUM

PS_D_DAY MONTH_YR_NUM

PS_D_DAYYEAR_NUM, MONTH_YR_NUM

Page 92: Arizona_CA_and_GL_specs.xlsx

PS_D_DAY YEAR_NUM

PS_D_DAY

Page 93: Arizona_CA_and_GL_specs.xlsx

PS_D_DAY

PS_D_DAY

DAY_YR_NUM,YEAR_NUM

YEAR_NUM, MONTH_YR_NUM

Page 94: Arizona_CA_and_GL_specs.xlsx

PS_D_DAY

PS_D_DAY

PS_D_DAY

PS_D_DAY

PS_D_DAY MONTH_YR_NUM

PS_D_DAY MONTH_YR_NUM

PS_D_DAY MONTH_YR_NUM

DAY_YR_NUM,YEAR_NUMWEEK_YR_NUM,YEAR_NUMWEEK_YR_NUM,YEAR_NUMWEEK_YR_NUM,YEAR_NUM

Page 95: Arizona_CA_and_GL_specs.xlsx

PS_D_DAY MONTH_YR_NUM

PS_D_DAY MONTH_YR_NUM

PS_D_DAY YEAR_NUM

PS_D_DAY YEAR_NUM

PS_D_DAY YEAR_NUM

Page 96: Arizona_CA_and_GL_specs.xlsx

PS_D_DAY YEAR_NUM

PS_D_DAY YEAR_NUM

PS_D_DAY

PS_D_DAY

PS_D_DAY

PS_D_DAY

PS_D_DAY MONTH_YR_NUM

FIRSTDAYMTH_FLG, MONTH_YR_NUM

LASTDAYMTH_FLG, MONTH_YR_NUM

MONTH_YR_NUM,DAY_MTH_NUM

MONTH_YR_NUM,DAY_MTH_NUM

Page 97: Arizona_CA_and_GL_specs.xlsx

PS_D_DAY MONTH_YR_NUM

PS_D_DAY MONTH_YR_NUM

PS_D_DAY MONTH_YR_NUM

PS_D_DAYYEAR_NUM, MONTH_YR_NUM

Page 98: Arizona_CA_and_GL_specs.xlsx

PS_D_DAY YEAR_NUM

PS_D_DAYYEAR_NUM, MONTH_YR_NUM

Page 99: Arizona_CA_and_GL_specs.xlsx

PS_D_DAY

PS_D_DAY LOAD_ERROR

PS_D_DAY DATA_ORIGIN

N/A N/A

N/A N/A

N/A N/A

DAY_YR_NUM,YEAR_NUM

Page 100: Arizona_CA_and_GL_specs.xlsx

Transform Logic Purpose

N/A

N/AN/A

N/AN/A

N/AN/AN/AN/AN/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

LAST_DAY( PS_D_DAY.DAY_DT )N/AN/A

N/AN/AN/AN/A

N/AN/AN/AN/AN/AN/AN/AN/AN/A

N/A

CASE WHEN PS_D_DAY.WEEK_DESCR = '-' THEN '-' ELSE INITCAP( SUBSTR( PS_D_DAY.WEEK_DESCR, 6 ) ) END

Page 101: Arizona_CA_and_GL_specs.xlsx

N/A7

TO_NUMBER( TO_CHAR( LAST_DAY(PS_D_DAY.DAY_DT), 'DD' ) )

(PS_D_DAY.DAY_DT - PS_PAY_CALENDAR.PAY_BEGIN_DT) + 1N/A

N/A

1 through n for first, second, etc pay end date in the calendar year

1 through n for first, second, etc pay end date in the fiscal year

1 through n for first, second, etc pay end date in the federal fiscal year

CASE WHEN PS_D_DAY.YEAR_NUM = 0 THEN 0 ELSE TO_NUMBER( TO_CHAR( TO_DATE( '31-DEC-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ), 'DDD' ) ) ENDROUND( PS_D_DAY.DAY_MTH_NUM / TO_NUMBER( TO_CHAR( LAST_DAY(PS_D_DAY.DAY_DT), 'DD' ) ) * 100 )

CASE WHEN PS_D_DAY.YEAR_NUM = 0 THEN 0 ELSE ROUND( PS_D_DAY.DAY_YR_NUM / TO_NUMBER( TO_CHAR( TO_DATE( '31-DEC-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MM-YYYY' ), 'DDD' ) ) * 100 ) END

1 through 3 for first, second and third pay end date in the month. The first pay period in a month is the first one with a pay end date in that month. Days in a pay period that cross into the next month, still get the next number. But in the new month, start with 1 again.

CASE WHEN PS_D_DAY.DAY_DT = PS_PAY_CALENDAR.PAY_BEGIN_DT THEN 'Y' ELSE 'N' END

CASE WHEN PS_D_DAY.DAY_DT = PS_PAY_CALENDAR.PAY_END_DT THEN 'Y' ELSE 'N' END

Page 102: Arizona_CA_and_GL_specs.xlsx

N/A

N/A

(PS_PAY_CALENDAR.PAY_END_DT - PS_PAY_CALENDAR.PAY_BEGIN_DT) + 1

5 minus holidays minus university closure days

Days in pay period minus weekends minus holidays minus university closureDays in month minus weekends minus holidays minus university closure

Days in fiscal quarter minus weekends minus holidays minus university closure

Days in year minus weekends minus holidays minus university closure

CASE WHEN PS_D_DAY.DAY_DT = PS_PAY_CALENDAR.PAY_END_DT THEN 'Y' WHEN PS_D_DAY.LASTDAYMTH_FLG = 'Y' THEN 'Y' ELSE 'N' END

CASE WHEN fiscal year is less than min fiscal year in PS_HOLIDAY_DATE or greater than max fiscal year there THEN '-' ELSE WHEN PS_HOLIDAY_DATE.HOLIDAY IS NOT NULL THEN 'Y' ELSE 'N' END

The holiday table in HCM is not filled out very far in advance and is missing the historical information. Nargis is working with them to include historical data.

CASE WHEN fiscal year is less than min fiscal year in UA_UNIV_CLOSURE or greater than max fiscal year there THEN '-' ELSE WHEN UA_UNIV_CLOSURE.UNIV_CLOSURE_DT IS NOT NULL THEN 'Y' ELSE 'N' END

HCM does not store the winter closure days!!!! We have a hand-created table in EPM to store those days. Nargis is looking into this more with the HCM people.

CASE WHEN PS_D_DAY.DAY_WEEKEND_FLG = 'Y' THEN 'N' ELSE WHEN a holiday or winter closure THEN 'N' ELSE 'Y'END

ROUND( (PS_D_DAY.DAY_DT - PS_PAY_CALENDAR.PAY_BEGIN_DT + 1)/ (PS_PAY_CALENDAR.PAY_END_DT - PS_PAY_CALENDAR.PAY_BEGIN_DT + 1) * 100 )

Days in federal fiscal quarter minus weekends minus holidays minus university closure

Page 103: Arizona_CA_and_GL_specs.xlsx

Days in fiscal year minus weekends minus holidays minus university closure

Days in federal fiscal year minus weekends minus holidays minus university closure

Start counting with first week that contains a Thursday?

'Fiscal Week ' || <fiscal week number>

CASE WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 3 THEN PS_D_DAY.DAY_YR_NUM WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 4 AND 6 THEN PS_D_DAY.DAY_DT - TO_DATE( '01-04-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MM-YYYY' ) + 1 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 7 AND 9 THEN PS_D_DAY.DAY_DT - TO_DATE( '01-07-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MM-YYYY' ) + 1 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 10 AND 12 THEN PS_D_DAY.DAY_DT - TO_DATE( '01-10-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MM-YYYY' ) + 1 ELSE 0 END

CASE WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 6 THEN PS_D_DAY.DAY_YR_NUM + TO_CHAR( TO_DATE( '31-12-' || TO_CHAR(PS_D_DAY.YEAR_NUM - 1), 'DD-MM-YYYY' ), 'DDD' ) - TO_CHAR( TO_DATE( '30-06-' || TO_CHAR(PS_D_DAY.YEAR_NUM - 1), 'DD-MM-YYYY' ), 'DDD' ) WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 7 AND 12 THEN PS_D_DAY.DAY_YR_NUM - TO_CHAR( TO_DATE( '30-06-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MM-YYYY' ), 'DDD' ) ELSE 0 END

CASE WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 6 THEN PS_D_DAY.YEAR_NUM WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 7 AND 12 THEN PS_D_DAY.YEAR_NUM + 1 ELSE 0 END || ' Fiscal Week ' || <fiscal week number>

Page 104: Arizona_CA_and_GL_specs.xlsx

CASE WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 6 THEN PS_D_DAY.MONTH_YR_NUM + 6 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 7 AND 12 THEN PS_D_DAY.MONTH_YR_NUM - 6 ELSE 0 END

CASE WHEN PS_D_DAY.MONTH_YR_NUM IN ( 7, 10, 1, 4 ) THEN 1 WHEN PS_D_DAY.MONTH_YR_NUM IN ( 8, 11, 2, 5 ) THEN 2 WHEN PS_D_DAY.MONTH_YR_NUM IN ( 9, 12, 3, 6 ) THEN 3 ELSE 0 END

CASE WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 3 THEN 3 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 4 AND 6 THEN 4 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 7 AND 9 THEN 1 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 10 AND 12 THEN 2 ELSE 0 END

'Fiscal Quarter ' || CASE WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 3 THEN 3 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 4 AND 6 THEN 4 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 7 AND 9 THEN 1 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 10 AND 12 THEN 2 ELSE 0 END

FQtr ' || CASE WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 3 THEN 3 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 4 AND 6 THEN 4 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 7 AND 9 THEN 1 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 10 AND 12 THEN 2 ELSE 0 END

Page 105: Arizona_CA_and_GL_specs.xlsx

CASE WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 6 THEN PS_D_DAY.YEAR_SID WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 7 AND 12 THEN CASE WHEN PS_D_DAY.YEAR_SID = 0 THEN 0 ELSE PS_D_DAY.YEAR_SID + 1 END ELSE 0 END

CASE WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 6 THEN PS_D_DAY.YEAR_NUM WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 7 AND 12 THEN PS_D_DAY.YEAR_NUM + 1 ELSE 0 END

'Fiscal Year ' || CASE WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 6 THEN TO_CHAR(PS_D_DAY.YEAR_NUM - 1) || ' - ' || TO_CHAR(PS_D_DAY.YEAR_NUM) WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 7 AND 12 THEN TO_CHAR(PS_D_DAY.YEAR_NUM) || ' - ' || TO_CHAR(PS_D_DAY.YEAR_NUM + 1) ELSE '-' END AS

'FY ' || CASE WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 6 THEN TO_CHAR(PS_D_DAY.YEAR_NUM) WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 7 AND 12 THEN TO_CHAR(PS_D_DAY.YEAR_NUM + 1) ELSE '-' END AS

CASE WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 6 THEN TO_DATE( '01-07-' || TO_CHAR(PS_D_DAY.YEAR_NUM - 1), 'DD-MM-YYYY' ) WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 7 AND 12 THEN TO_DATE( '01-07-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MM-YYYY' ) ELSE TO_DATE( '01-01-1900', 'DD-MM-YYYY' ) END

Page 106: Arizona_CA_and_GL_specs.xlsx

CASE WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 6 THEN TO_DATE( '30-06-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MM-YYYY' ) WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 7 AND 12 THEN TO_DATE( '30-06-' || TO_CHAR(PS_D_DAY.YEAR_NUM + 1), 'DD-MM-YYYY' ) ELSE TO_DATE( '01-01-1900', 'DD-MM-YYYY' ) END

CASE WHEN PS_D_DAY.FIRSTDAYMTH_FLG = 'Y' AND PS_D_DAY.MONTH_YR_NUM IN ( 1, 4, 7, 10 ) THEN 'Y' ELSE 'N' END

CASE WHEN PS_D_DAY.LASTDAYMTH_FLG = 'Y' AND PS_D_DAY.MONTH_YR_NUM IN ( 3, 6, 9, 12 ) THEN 'Y' ELSE 'N' END

CASE WHEN PS_D_DAY.MONTH_YR_NUM = 7 AND PS_D_DAY.DAY_MTH_NUM = 1 THEN 'Y' ELSE 'N' END

CASE WHEN PS_D_DAY.MONTH_YR_NUM = 6 AND PS_D_DAY.DAY_MTH_NUM = 30 THEN 'Y' ELSE 'N' END

CASE WHEN PS_D_DAY.MONTH_YR_NUM IN ( 1, 4, 7, 10 ) THEN 'Y' ELSE 'N' END

CASE WHEN PS_D_DAY.MONTH_YR_NUM IN ( 3, 6, 9, 12 ) THEN 'Y' ELSE 'N' END

Page 107: Arizona_CA_and_GL_specs.xlsx

CASE WHEN PS_D_DAY.MONTH_YR_NUM = 7 THEN 'Y' ELSE 'N' END

CASE WHEN PS_D_DAY.MONTH_YR_NUM = 6 THEN 'Y' ELSE 'N' END

CASE WHEN PS_D_DAY.YEAR_NUM = 0 THEN 0 ELSE CASE WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 3 THEN TO_DATE( '31-MAR-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) - TO_DATE( '01-JAN-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) + 1 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 4 AND 6 THEN TO_DATE( '30-JUN-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) - TO_DATE( '01-APR-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) + 1 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 7 AND 9 THEN TO_DATE( '30-SEP-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) - TO_DATE( '01-JUL-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) + 1 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 10 AND 12 THEN TO_DATE( '31-DEC-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) - TO_DATE( '01-OCT-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) + 1 ELSE 0 END EN

Page 108: Arizona_CA_and_GL_specs.xlsx

CASE WHEN PS_D_DAY.YEAR_NUM = 0 THEN 0 ELSE CASE WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 6 THEN TO_NUMBER( TO_CHAR( TO_DATE( '30-JUN-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ), 'DDD' ) ) + TO_NUMBER( TO_CHAR( TO_DATE( '31-DEC-' || TO_CHAR( PS_D_DAY.YEAR_NUM - 1 ), 'DD-MON-YYYY' ), 'DDD' ) ) - TO_NUMBER( TO_CHAR( TO_DATE( '30-JUN-' || TO_CHAR( PS_D_DAY.YEAR_NUM - 1 ), 'DD-MON-YYYY' ), 'DDD' ) ) WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 7 AND 12 THEN TO_NUMBER( TO_CHAR( TO_DATE( '30-JUN-' || TO_CHAR( PS_D_DAY.YEAR_NUM + 1 ), 'DD-MON-YYYY' ), 'DDD' ) ) + TO_NUMBER( TO_CHAR( TO_DATE( '31-DEC-' || TO_CHAR( PS_D_DAY.YEAR_NUM ), 'DD-MON-YYYY' ), 'DDD' ) ) - TO_NUMBER( TO_CHAR( TO_DATE( '30-JUN-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ), 'DDD' ) ) ELSE 0 END END

CASE WHEN PS_D_DAY.YEAR_NUM = 0 THEN 0 ELSE CASE WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 3 THEN ( PS_D_DAY.DAY_DT - TO_DATE( '01-JAN-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) + 1 ) / ( TO_DATE( '31-MAR-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) - TO_DATE( '01-JAN-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) + 1 ) * 100 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 4 AND 6 THEN ( PS_D_DAY.DAY_DT - TO_DATE( '01-APR-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) + 1 ) / ( TO_DATE( '30-JUN-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) - TO_DATE( '01-APR-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) + 1 ) * 100 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 7 AND 9 THEN ( PS_D_DAY.DAY_DT - TO_DATE( '01-JUL-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) + 1 ) / ( TO_DATE( '30-SEP-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) - TO_DATE( '01-JUL-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) + 1 ) * 100 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 10 AND 12 THEN ( PS_D_DAY.DAY_DT - TO_DATE( '01-OCT-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) + 1 ) / ( TO_DATE( '31-DEC-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) - TO_DATE( '01-OCT-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) + 1 ) * 100 ELSE 0 END END

Page 109: Arizona_CA_and_GL_specs.xlsx

ALL WRONG JUST COPIED FROM FISCAL

CASE WHEN PS_D_DAY.YEAR_NUM = 0 THEN 0 ELSE ROUND( (CASE -- day of f year WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 6 THEN PS_D_DAY.DAY_YR_NUM + TO_CHAR( TO_DATE( '31-12-' || TO_CHAR(PS_D_DAY.YEAR_NUM - 1), 'DD-MM-YYYY' ), 'DDD' ) - TO_CHAR( TO_DATE( '30-06-' || TO_CHAR(PS_D_DAY.YEAR_NUM - 1), 'DD-MM-YYYY' ), 'DDD' ) WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 7 AND 12 THEN PS_D_DAY.DAY_YR_NUM - TO_CHAR( TO_DATE( '30-06-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MM-YYYY' ), 'DDD' ) ELSE 0 END) / (CASE -- days in f year WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 6 THEN TO_NUMBER( TO_CHAR( TO_DATE( '30-JUN-' || PS_D_DAY.YEAR_NUM, 'DD-MON-YYYY' ), 'DDD' ) ) + TO_NUMBER( TO_CHAR( TO_DATE( '31-DEC-' || TO_CHAR( PS_D_DAY.YEAR_NUM - 1 ), 'DD-MON-YYYY' ), 'DDD' ) ) - TO_NUMBER( TO_CHAR( TO_DATE( '30-JUN-' || TO_CHAR( PS_D_DAY.YEAR_NUM - 1 ), 'DD-MON-YYYY' ), 'DDD' ) ) WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 7 AND 12 THEN TO_NUMBER( TO_CHAR( TO_DATE( '30-JUN-' || TO_CHAR( PS_D_DAY.YEAR_NUM + 1 ), 'DD-MON-YYYY' ), 'DDD' ) ) + TO_NUMBER( TO_CHAR( TO_DATE( '31-DEC-' || PS_D_DAY.YEAR_NUM, 'DD-MON-YYYY' ), 'DDD' ) ) - TO_NUMBER( TO_CHAR( TO_DATE( '30-JUN-' || PS_D_DAY.YEAR_NUM, 'DD-MON-YYYY' ), 'DDD' ) ) ELSE 0 END) * 100 ) END

CASE WHEN PS_D_DAY.MONTH_YR_NUM IN (10, 11, 12) THEN PS_D_DAY.DAY_DT - TO_DATE( '01-10-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MM-YYYY' ) + 1 WHEN PS_D_DAY.MONTH_YR_NUM IN (1, 2, 3) THEN PS_D_DAY.DAY_DT - TO_DATE( '01-01-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MM-YYYY' ) + 1 WHEN PS_D_DAY.MONTH_YR_NUM IN (4, 5, 6) THEN PS_D_DAY.DAY_DT - TO_DATE( '01-04-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MM-YYYY' ) + 1 WHEN PS_D_DAY.MONTH_YR_NUM IN (7, 8, 9) THEN PS_D_DAY.DAY_DT - TO_DATE( '01-07-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MM-YYYY' ) + 1 ELSE 0 END

Page 110: Arizona_CA_and_GL_specs.xlsx

Start counting with first week that contains a Thursday?

CASE WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 9 THEN PS_D_DAY.DAY_YR_NUM + TO_CHAR( TO_DATE( '31-12-' || TO_CHAR(PS_D_DAY.YEAR_NUM - 1), 'DD-MM-YYYY' ), 'DDD' ) - TO_CHAR( TO_DATE( '30-09-' || TO_CHAR(PS_D_DAY.YEAR_NUM - 1), 'DD-MM-YYYY' ), 'DDD' ) WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 10 AND 12 THEN PS_D_DAY.DAY_YR_NUM - TO_CHAR( TO_DATE( '30-09-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MM-YYYY' ), 'DDD' ) ELSE 0 END

CASE WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 9 THEN PS_D_DAY.MONTH_YR_NUM + 3 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 10 AND 12 THEN PS_D_DAY.MONTH_YR_NUM - 9 ELSE 0 END

CASE WHEN PS_D_DAY.MONTH_YR_NUM IN (10, 1, 4, 7) THEN 1 WHEN PS_D_DAY.MONTH_YR_NUM IN (11, 2, 5, 8) THEN 2 WHEN PS_D_DAY.MONTH_YR_NUM IN (12, 3, 6, 9) THEN 3 ELSE 0 END

CASE WHEN PS_D_DAY.MONTH_YR_NUM IN ( 10, 11, 12 ) THEN 1 WHEN PS_D_DAY.MONTH_YR_NUM IN ( 1, 2, 3 ) THEN 2 WHEN PS_D_DAY.MONTH_YR_NUM IN ( 4, 5, 6 ) THEN 3 WHEN PS_D_DAY.MONTH_YR_NUM IN ( 7, 8, 9 ) THEN 4 ELSE 0 END

Page 111: Arizona_CA_and_GL_specs.xlsx

'Federal Quarter ' || CASE WHEN PS_D_DAY.MONTH_YR_NUM IN ( 10, 11, 12 ) THEN 1 WHEN PS_D_DAY.MONTH_YR_NUM IN ( 1, 2, 3 ) THEN 2 WHEN PS_D_DAY.MONTH_YR_NUM IN ( 4, 5, 6 ) THEN 3 WHEN PS_D_DAY.MONTH_YR_NUM IN ( 7, 8, 9 ) THEN 4 ELSE 0 END

'Fed Qtr ' || CASE WHEN PS_D_DAY.MONTH_YR_NUM IN ( 10, 11, 12 ) THEN 1 WHEN PS_D_DAY.MONTH_YR_NUM IN ( 1, 2, 3 ) THEN 2 WHEN PS_D_DAY.MONTH_YR_NUM IN ( 4, 5, 6 ) THEN 3 WHEN PS_D_DAY.MONTH_YR_NUM IN ( 7, 8, 9 ) THEN 4 ELSE 0 END

CASE WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 9 THEN PS_D_DAY.YEAR_NUM WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 10 AND 12 THEN PS_D_DAY.YEAR_NUM + 1 ELSE 0 END

'Federal Fiscal Year ' || CASE WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 9 THEN TO_CHAR(PS_D_DAY.YEAR_NUM - 1) || ' - ' || TO_CHAR(PS_D_DAY.YEAR_NUM) WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 10 AND 12 THEN TO_CHAR(PS_D_DAY.YEAR_NUM) || ' - ' || TO_CHAR(PS_D_DAY.YEAR_NUM + 1) ELSE '-' END

'Fed FY' || CASE WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 9 THEN TO_CHAR(PS_D_DAY.YEAR_NUM) WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 10 AND 12 THEN TO_CHAR(PS_D_DAY.YEAR_NUM + 1) ELSE '-' END

Page 112: Arizona_CA_and_GL_specs.xlsx

CASE WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 9 THEN TO_DATE( '01-10-' || TO_CHAR(PS_D_DAY.YEAR_NUM - 1), 'DD-MM-YYYY' ) WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 10 AND 12 THEN TO_DATE( '01-10-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MM-YYYY' ) ELSE TO_DATE( '01-01-1900', 'DD-MM-YYYY' ) END

CASE WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 9 THEN TO_DATE( '30-09-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MM-YYYY' ) WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 10 AND 12 THEN TO_DATE( '30-09-' || TO_CHAR(PS_D_DAY.YEAR_NUM + 1), 'DD-MM-YYYY' ) ELSE TO_DATE( '01-01-1900', 'DD-MM-YYYY' ) END

CASE WHEN PS_D_DAY.FIRSTDAYMTH_FLG = 'Y' AND PS_D_DAY.MONTH_YR_NUM IN ( 10, 1, 4, 7 ) THEN 'Y' ELSE 'N' END

CASE WHEN PS_D_DAY.LASTDAYMTH_FLG = 'Y' AND PS_D_DAY.MONTH_YR_NUM IN ( 12, 3, 6, 9 ) THEN 'Y' ELSE 'N' END

CASE WHEN PS_D_DAY.MONTH_YR_NUM = 10 AND PS_D_DAY.DAY_MTH_NUM = 1 THEN 'Y' ELSE 'N' END

CASE WHEN PS_D_DAY.MONTH_YR_NUM = 9 AND PS_D_DAY.DAY_MTH_NUM = 30 THEN 'Y' ELSE 'N' END

CASE WHEN PS_D_DAY.MONTH_YR_NUM IN ( 10, 1, 4, 7 ) THEN 'Y' ELSE 'N' END

Page 113: Arizona_CA_and_GL_specs.xlsx

CASE WHEN PS_D_DAY.MONTH_YR_NUM IN ( 12, 3, 6, 9 ) THEN 'Y' ELSE 'N' END

CASE WHEN PS_D_DAY.MONTH_YR_NUM = 10 THEN 'Y' ELSE 'N' END

CASE WHEN PS_D_DAY.MONTH_YR_NUM = 9 THEN 'Y' ELSE 'N' END

CASE WHEN PS_D_DAY.YEAR_NUM = 0 THEN 0 ELSE CASE WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 3 THEN TO_DATE( '31-03-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MM-YYYY' ) - TO_DATE( '01-01-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MM-YYYY' ) + 1 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 4 AND 6 THEN TO_DATE( '30-06-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MM-YYYY' ) - TO_DATE( '01-04-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MM-YYYY' ) + 1 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 7 AND 9 THEN TO_DATE( '30-09-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MM-YYYY' ) - TO_DATE( '01-07-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MM-YYYY' ) + 1 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 10 AND 12 THEN TO_DATE( '31-12-' || TO_CHAR(PS_D_DAY.YEAR_NUM + 1), 'DD-MM-YYYY' ) - TO_DATE( '01-10-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MM-YYYY' ) + 1 ELSE 0 END END

Page 114: Arizona_CA_and_GL_specs.xlsx

CASE WHEN PS_D_DAY.YEAR_NUM = 0 THEN 0 ELSE CASE WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 9 THEN TO_DATE( '30-SEP-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) - TO_DATE( '01-OCT-' || TO_CHAR( PS_D_DAY.YEAR_NUM - 1 ), 'DD-MON-YYYY' ) + 1 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 10 AND 12 THEN TO_DATE( '30-SEP-' || TO_CHAR( PS_D_DAY.YEAR_NUM + 1 ), 'DD-MON-YYYY' ) - TO_DATE( '31-DEC-' || TO_CHAR( PS_D_DAY.YEAR_NUM ), 'DD-MON-YYYY' ) + 1 ELSE 0 END END

CASE WHEN PS_D_DAY.YEAR_NUM = 0 THEN 0 ELSE CASE WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 3 THEN ( PS_D_DAY.DAY_DT - TO_DATE( '01-JAN-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) + 1 ) / ( TO_DATE( '31-MAR-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) - TO_DATE( '01-JAN-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) + 1 ) * 100 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 4 AND 6 THEN ( PS_D_DAY.DAY_DT - TO_DATE( '01-APR-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) + 1 ) / ( TO_DATE( '30-JUN-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) - TO_DATE( '01-APR-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) + 1 ) * 100 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 7 AND 9 THEN ( PS_D_DAY.DAY_DT - TO_DATE( '01-JUL-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) + 1 ) / ( TO_DATE( '30-SEP-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) - TO_DATE( '01-JUL-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) + 1 ) * 100 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 10 AND 12 THEN ( PS_D_DAY.DAY_DT - TO_DATE( '01-OCT-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) + 1 ) / ( TO_DATE( '31-DEC-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) - TO_DATE( '01-OCT-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) + 1 ) * 100 ELSE 0 END END

Page 115: Arizona_CA_and_GL_specs.xlsx

NS

Start Timestamp of ETL Job

Start Timestamp of ETL Job

ETL Job Parameter

CASE WHEN PS_D_DAY.YEAR_NUM = 0 THEN 0 ELSE ROUND ( CASE -- day of fed year WHEN PS_D_DAY.MONTH_YR_NUM IN (10, 11, 12) THEN PS_D_DAY.DAY_DT - TO_DATE( '01-10-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MM-YYYY' ) + 1 WHEN PS_D_DAY.MONTH_YR_NUM IN (1, 2, 3) THEN PS_D_DAY.DAY_DT - TO_DATE( '01-01-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MM-YYYY' ) + 1 WHEN PS_D_DAY.MONTH_YR_NUM IN (4, 5, 6) THEN PS_D_DAY.DAY_DT - TO_DATE( '01-04-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MM-YYYY' ) + 1 WHEN PS_D_DAY.MONTH_YR_NUM IN (7, 8, 9) THEN PS_D_DAY.DAY_DT - TO_DATE( '01-07-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MM-YYYY' ) + 1 ELSE 0 END / CASE -- Days in fed year WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 1 AND 9 THEN TO_DATE( '30-SEP-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MON-YYYY' ) - TO_DATE( '01-OCT-' || TO_CHAR( PS_D_DAY.YEAR_NUM - 1 ), 'DD-MON-YYYY' ) + 1 WHEN PS_D_DAY.MONTH_YR_NUM BETWEEN 10 AND 12 THEN TO_DATE( '30-SEP-' || TO_CHAR( PS_D_DAY.YEAR_NUM + 1 ), 'DD-MON-YYYY' ) - TO_DATE( '31-DEC-' || TO_CHAR( PS_D_DAY.YEAR_NUM ), 'DD-MON-YYYY' ) + 1 ELSE 0 END * 100 ) END

Page 116: Arizona_CA_and_GL_specs.xlsx

Comment

Page 117: Arizona_CA_and_GL_specs.xlsx
Page 118: Arizona_CA_and_GL_specs.xlsx
Page 119: Arizona_CA_and_GL_specs.xlsx
Page 120: Arizona_CA_and_GL_specs.xlsx
Page 121: Arizona_CA_and_GL_specs.xlsx
Page 122: Arizona_CA_and_GL_specs.xlsx
Page 123: Arizona_CA_and_GL_specs.xlsx
Page 124: Arizona_CA_and_GL_specs.xlsx
Page 125: Arizona_CA_and_GL_specs.xlsx
Page 126: Arizona_CA_and_GL_specs.xlsx
Page 127: Arizona_CA_and_GL_specs.xlsx
Page 128: Arizona_CA_and_GL_specs.xlsx
Page 129: Arizona_CA_and_GL_specs.xlsx
Page 130: Arizona_CA_and_GL_specs.xlsx
Page 131: Arizona_CA_and_GL_specs.xlsx
Page 132: Arizona_CA_and_GL_specs.xlsx

Driving Table: KF_H_KREW_DOC_TYPGrain: document type

Name Description Data Type

DOC_TYPE_SID NUMBER(10,0)DOC_TYPE_ID NUMBER(19,0)DOC_TYPE_CD VARCHAR2(255)DOC_TYPE_SD VARCHAR2(500)DOC_TYPE_LD VARCHAR2(4000)DOC_TYPE_VERSION_NBR NUMBER(10,0)DOC_TYPE_ACTIVE_FLG VARCHAR2(1)DOC_TYPE_CURRENT_FLG VARCHAR2(1)DOC_TYPE_HEADER_ID NUMBER(14,0)DOC_TYPE_HANDLER_URL VARCHAR2(255)DOC_TYPE_POST_PROCESSOR_ID VARCHAR2(255)DOC_TYPE_JNDI_URL VARCHAR2(255)

DOC_TYPE_SEARCH_URL VARCHAR2(255)DOC_TYPE_ACTION_LIST_ID VARCHAR2(255)DOC_TYPE_ACTION_EMAIL_ID VARCHAR2(255)DOC_TYPE_NTE_ID VARCHAR2(255)DOC_TYPE_ROUTE_VERSION_NBR VARCHAR2(2)DOC_TYPE_NOTIFY_ADDR VARCHAR2(255)DOC_TYPE_SERVICE_NAMESPACE_ID VARCHAR2(255)DOC_TYPE_EMAIL_XSL VARCHAR2(255)DOC_TYPE_APPROVAL_CD VARCHAR2(10)DOC_TYPE_APPROVAL_GROUP_ID VARCHAR2(40)DOC_TYPE_REPORT_GROUP_ID VARCHAR2(40)DOC_TYPE_GROUP_ID VARCHAR2(40)DOC_TYPE_HELP_URL VARCHAR2(4000)DOC_TYPE_PARENT_ID NUMBER(19,0)DOC_TYPE_PARENT_CD VARCHAR2(255)DOC_TYPE_PARENT_SD VARCHAR2(500)DOC_TYPE_PREVIOUS_VERSION_NBR NUMBER(19,0)DOC_TYPE_PREVIOUS_CD VARCHAR2(255)DOC_TYPE_PREVIOUS_SD VARCHAR2(500)

EFF_START_DT DATE

EFF_END_DT DATE

CURRENT_IND CHAR(1)SRC_SYS_ID VARCHAR2(5 BYTE)

Page 133: Arizona_CA_and_GL_specs.xlsx

LOAD_ERROR VARCHAR2(1 BYTE)

DATA_ORIGIN VARCHAR2(1 BYTE)

CREATED_EW_DTTM DATELASTUPD_EW_DTTM DATE

BATCH_SID NUMBER(10,0)

* all lookup conditions also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <current>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <current>.EFFDT_TO >= <lookup table>.EFFDT_FROM"* all lookup conditons return NULLs when lookup fails (aka outer-join logic)* all lookup conditions allow multiple rows to be returned from lookup

Page 134: Arizona_CA_and_GL_specs.xlsx

Replace NULL With Constraints SCD Function Source Type

2147483646 NOT NULL Surrogate Key Generated0 NOT NULL Business Key Copy- NOT NULL Type II Copy- NOT NULL Type I Copy- NOT NULL Type I Copy0 NOT NULL Type II Copy- NOT NULL Type II Transform- NOT NULL Type II Transform0 NOT NULL Type I Copy- NOT NULL Type I Copy- NOT NULL Type I Copy- NOT NULL Type I Copy

- NOT NULL Type I Copy- NOT NULL Type I Copy- NOT NULL Type I Copy- NOT NULL Type I Copy- NOT NULL Type I Copy- NOT NULL Type I Copy- NOT NULL Type I Copy- NOT NULL Type I Copy- NOT NULL Type II Copy- NOT NULL Type I Copy- NOT NULL Type I Copy- NOT NULL Type I Copy- NOT NULL Type I Copy0 NOT NULL Type II Copy- NOT NULL Type II Copy- NOT NULL Type I Copy0 NOT NULL Type II Copy- NOT NULL Type II Copy- NOT NULL Type I Copy

01-JAN-1753 00:00:00NOT NULL

Effective Date Transform

31-DEC-9999 23:59:59

NOT NULL

Effective Date TransformY NOT NULL Effective Flag GeneratedKFS NOT NULL Business Key Copy

Page 135: Arizona_CA_and_GL_specs.xlsx

N NOT NULLInsert Only

Generated

E NOT NULLInsert Only

Generated

Start time of ETL job NOT NULL Insert Only GeneratedStart time of ETL job NOT NULL Insert Only Generated

Start time of ETL jobNOT NULL

Insert OnlyGenerated

* all lookup conditions also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <current>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <current>.EFFDT_TO >= <lookup table>.EFFDT_FROM"

Page 136: Arizona_CA_and_GL_specs.xlsx

Source Table Source Column

N/A N/AKF_H_KREW_DOC_TYP AL1 DOC_TYP_IDKF_H_KREW_DOC_TYP AL1 DOC_TYP_NMKF_H_KREW_DOC_TYP AL1 LBLKF_H_KREW_DOC_TYP AL1 DOC_TYP_DESCKF_H_KREW_DOC_TYP AL1 DOC_TYP_VER_NBRKF_H_KREW_DOC_TYP AL1 ACTV_INDKF_H_KREW_DOC_TYP AL1 CUR_INDKF_H_KREW_DOC_TYP AL1 DOC_HDR_IDKF_H_KREW_DOC_TYP AL1 DOC_HDLR_URLKF_H_KREW_DOC_TYP AL1 POST_PRCSRKF_H_KREW_DOC_TYP AL1 JNDI_URL

KF_H_KREW_DOC_TYP AL1 ADV_DOC_SRCH_URLKF_H_KREW_DOC_TYP AL1 CSTM_ACTN_LIST_ATTRIB_CLS_NMKF_H_KREW_DOC_TYP AL1 CSTM_ACTN_EMAIL_ATTRIB_CLS_NMKF_H_KREW_DOC_TYP AL1 CSTM_DOC_NTE_ATTRIB_CLS_NMKF_H_KREW_DOC_TYP AL1 RTE_VER_NBRKF_H_KREW_DOC_TYP AL1 NOTIFY_ADDRKF_H_KREW_DOC_TYP AL1 SVC_NMSPCKF_H_KREW_DOC_TYP AL1 EMAIL_XSLKF_H_KREW_DOC_TYP AL1 BLNKT_APPR_PLCYKF_H_KREW_DOC_TYP AL1 BLNKT_APPR_GRP_IDKF_H_KREW_DOC_TYP AL1 RPT_GRP_IDKF_H_KREW_DOC_TYP AL1 GRP_IDKF_H_KREW_DOC_TYP AL1 HELP_DEF_URLKF_H_KREW_DOC_TYP AL1 PARNT_IDKF_H_KREW_DOC_TYP AL2 DOC_TYP_NMKF_H_KREW_DOC_TYP AL2 LBLKF_H_KREW_DOC_TYP AL1 PREV_DOC_TYP_VER_NBRKF_H_KREW_DOC_TYP AL3 DOC_TYP_NMKF_H_KREW_DOC_TYP AL3 LBL

Multiple Multiple

Multiple MultipleN/A N/AKF_H_KREW_DOC_TYP AL1 SRC_SYS_ID

Page 137: Arizona_CA_and_GL_specs.xlsx

N/A N/A

N/AN/A

N/A N/AN/A N/A

N/A N/A

* all lookup conditions also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <current>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <current>.EFFDT_TO >= <lookup table>.EFFDT_FROM"

Page 138: Arizona_CA_and_GL_specs.xlsx

Lookup Logic* Transform Logic

N/A Surrogate key generator starting at 1N/A N/AN/A N/AN/A N/AN/A N/AN/A N/AN/A if AL1.ACTV_IND = 1 then 'Y' else 'N'N/A if AL1.CUR_IND = 1 then 'Y' else 'N'N/A N/AN/A N/AN/A N/AN/A N/A

N/A N/AN/A N/AN/A N/AN/A N/AN/A N/AN/A N/AN/A N/AN/A N/AN/A N/AN/A N/AN/A N/AN/A N/AN/A N/AN/A N/AAL1.PARNT_ID = AL2.DOC_TYP_ID (+) N/AAL1.PARNT_ID = AL2.DOC_TYP_ID (+) N/AN/A N/AAL1.PREV_DOC_TYP_VER_NBR = AL3.DOC_TYP_ID (+) N/AAL1.PREV_DOC_TYP_VER_NBR = AL3.DOC_TYP_ID (+) N/A

N/A

N/AN/A Y for initial value N for expire value

N/A N/A

This is the max EFFDT_FROM value from all the tables joined to make this record.

This is the min EFFDT_TO value from all the tables joined to make this record.

Page 139: Arizona_CA_and_GL_specs.xlsx

N/A

N/AN/A Start time of ETL jobN/A Start time of ETL job

N/A

If an error occurs when creating this row (e.g. a lookup error) this is Y otherwise it is N

Passed as a variable to the ETL job. Should be E for EPM-sourced data and S for source-system-sourced data.

Batch ID of highest level ETL job that called this one.

Page 140: Arizona_CA_and_GL_specs.xlsx

Purpose Comment

Currently need to hard-code in SCD stage to intiial value to the Replace Nulls With value due to DataStage limitation.

Page 141: Arizona_CA_and_GL_specs.xlsx

Driving Table: KF_H_SH_ACCT_PERIODGrain: fiscal period (basically months but also year end close and year start stuff)

Name Description Data Type

FPERIOD_SID NUMBER(10, 0)FISCAL_YEAR NUMBER(4,0)FPERIOD_YEAR_NBR VARCHAR2(2 BYTE)FPERIOD_NBR_UA VARCHAR2(6 BYTE)FPERIOD_SD VARCHAR2(10 BYTE)

FPERIOD_START_DT_UA DATEFPERIOD_END_DT DATE

FPERIOD_QUARTER_NBR_UA NUMBER(*, 0)

FPERIOD_QUARTER_YEAR_NBR_UA NUMBER(*, 0)

start date for the fiscal period based on the end date, except for year-long periods

fiscal quarter number w/ year attached

fiscal quarter number within that year

Page 142: Arizona_CA_and_GL_specs.xlsx

FPERIOD_QUARTER_SD_UA

fiscal quarter name

VARCHAR2(10 BYTE)

FPERIOD_QUARTER_START_DT_UA DATE

FPERIOD_QUARTER_END_DT_UA DATE

FPERIOD_YEAR_START_DT_UA DATE

FPERIOD_YEAR_END_DT_UA DATE

fiscal quarter start and end dates are pretty easy

fiscal quarter start and end dates are pretty easy

calculate fiscal year start date as the beginning of the previous July

calculate the fiscal year end date as the end of june for that year

Page 143: Arizona_CA_and_GL_specs.xlsx

FPERIOD_YEAR_ELAPSED_PCT_UA NUMBER(3, 2)FPERIOD_ACTIVE_FLG VARCHAR2(1 BYTE)FPERIOD_BUDGET_ROLLOVER_FLG VARCHAR2(1 BYTE)

EFF_START_DT DATE

EFF_END_DT DATE

CURRENT_IND CHAR(1)SRC_SYS_ID VARCHAR2(5 BYTE)

LOAD_ERROR VARCHAR2(1 BYTE)

DATA_ORIGIN VARCHAR2(1 BYTE)

CREATED_EW_DTTM DATELASTUPD_EW_DTTM DATEBATCH_SID NUMBER(10,0)

* all lookup conditions also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <current>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <current>.EFFDT_TO >= <lookup table>.EFFDT_FROM"* all lookup conditons return NULLs when lookup fails (aka outer-join logic)* all lookup conditions allow multiple rows to be returned from lookup

calculate the percentage that this fiscal period is through the fiscal year

Page 144: Arizona_CA_and_GL_specs.xlsx

Replace NULL With Constraints SCD Function

2147483646 NOT NULL Surrogate Key0 NOT NULL Business Key- NOT NULL Business Key- NOT NULL Type I- NOT NULL Type I

- NOT NULL Type I- NOT NULL Type I

0 NOT NULL Type I

0 NOT NULL Type I

Page 145: Arizona_CA_and_GL_specs.xlsx

- NOT NULL Type I

- NOT NULL Type I

- NOT NULL Type I

- NOT NULL Type I

- NOT NULL Type I

Page 146: Arizona_CA_and_GL_specs.xlsx

0 NOT NULL Type I- NOT NULL Type I- NOT NULL Type I

01-JAN-1753 00:00:00NOT NULL

Effective Date

31-DEC-9999 23:59:59

NOT NULL

Effective DateY NOT NULL Effective FlagKFS NOT NULL Business Key

N NOT NULLInsert Only

E NOT NULLInsert Only

Start time of ETL job NOT NULL Insert OnlyStart time of ETL job NOT NULL Insert OnlyStart time of ETL job NOT NULL Insert Only

* all lookup conditions also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <current>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <current>.EFFDT_TO >= <lookup table>.EFFDT_FROM"

Page 147: Arizona_CA_and_GL_specs.xlsx

Source Type Source Table Source Column

Generated N/A N/ACopy KF_H_SH_ACCT_PERIOD UNIV_FISCAL_YRCopy KF_H_SH_ACCT_PERIOD UNIV_FISCAL_PRD_CDTransform KF_H_SH_ACCT_PERIOD UNIV_FISCAL_YR,UNIV_FISCAL_PRD_CDCopy KF_H_SH_ACCT_PERIOD UNIV_FISCAL_PRD_NM

Transform KF_H_SH_ACCT_PERIOD UNIV_FSCPD_END_DTCopy KF_H_SH_ACCT_PERIOD UNIV_FSCPD_END_DT

Transform KF_H_SH_ACCT_PERIOD UNIV_FISCAL_YR, UNIV_FISCAL_PRD_CD

Transform KF_H_SH_ACCT_PERIOD UNIV_FISCAL_PRD_CD

Page 148: Arizona_CA_and_GL_specs.xlsx

Transform KF_H_SH_ACCT_PERIOD UNIV_FISCAL_YR, UNIV_FISCAL_PRD_CD

Transform KF_H_SH_ACCT_PERIOD UNIV_FISCAL_YR , UNIV_FSCPD_END_DT

Transform KF_H_SH_ACCT_PERIOD UNIV_FISCAL_YR , UNIV_FSCPD_END_DT

Transform KF_H_SH_ACCT_PERIOD UNIV_FISCAL_YR

Transform KF_H_SH_ACCT_PERIOD UNIV_FISCAL_YR

Page 149: Arizona_CA_and_GL_specs.xlsx

Transform KF_H_SH_ACCT_PERIOD UNIV_FISCAL_PRD_CDCopy KF_H_SH_ACCT_PERIOD ROW_ACTV_INDCopy KF_H_SH_ACCT_PERIOD BDGT_ROLLOVER_CD

Transform KF_H_SH_ACCT_PERIOD EFFDT_FROM

Transform KF_H_SH_ACCT_PERIOD EFFDT_TOGenerated N/A N/ACopy KF_H_SH_ACCT_PERIOD SRC_SYS_ID

Generated N/A N/A

GeneratedN/A

N/A

Generated N/A N/AGenerated N/A N/AGenerated N/A N/A

* all lookup conditions also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <current>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <current>.EFFDT_TO >= <lookup table>.EFFDT_FROM"

Page 150: Arizona_CA_and_GL_specs.xlsx

Lookup Logic* Transform Logic

N/A Surrogate key generator starting at 1N/A N/AN/A N/AN/A to_char(p.UNIV_FISCAL_YR) || p.UNIV_FISCAL_PRD_CDN/A N/A

N/AN/A N/A

N/A

N/A

CASE WHEN p.UNIV_FISCAL_PRD_CD IN ('AB','CB','BB') THEN to_date(to_char(p.UNIV_FISCAL_YR - 1) || '-07-01', 'yyyy-mm-dd') ELSE to_date( to_char(p.UNIV_FSCPD_END_DT, 'yyyy') || '-' || cast(to_char(p.UNIV_FSCPD_END_DT, 'mm') AS VARCHAR2(2)) || '-01', 'yyyy-mm-dd' ) END as PERIOD_START_DT_UA

case when (p.UNIV_FISCAL_PRD_CD IN ('AB','CB','BB')) OR (p.UNIV_FISCAL_PRD_CD between '01' and '03') then p.UNIV_FISCAL_YR || '1' when p.UNIV_FISCAL_PRD_CD between '04' and '06' then p.UNIV_FISCAL_YR || '2' when p.UNIV_FISCAL_PRD_CD between '07' and '09' then p.UNIV_FISCAL_YR || '3' else p.UNIV_FISCAL_YR || '4' end as PERIOD_QUARTER_NBR_UA

case when (p.UNIV_FISCAL_PRD_CD IN ('AB','CB','BB')) OR (p.UNIV_FISCAL_PRD_CD between '01' and '03') then '1' when p.UNIV_FISCAL_PRD_CD between '04' and '06' then '2' when p.UNIV_FISCAL_PRD_CD between '07' and '09' then '3' else '4' end as PERIOD_QUARTER_YEAR_NBR_UA

Page 151: Arizona_CA_and_GL_specs.xlsx

N/A

N/A

N/A

N/A to_date(to_char(p.UNIV_FISCAL_YR - 1) || '-07-01', 'yyyy-mm-dd')

N/A to_date(to_char(p.UNIV_FISCAL_YR) || '-06-30', 'yyyy-mm-dd')

case when (p.UNIV_FISCAL_PRD_CD IN ('AB','CB','BB')) OR (p.UNIV_FISCAL_PRD_CD between '01' and '03') then 'Q1 ' || to_char(p.UNIV_FISCAL_YR) when p.UNIV_FISCAL_PRD_CD between '04' and '06' then 'Q2 ' || to_char(p.UNIV_FISCAL_YR) when p.UNIV_FISCAL_PRD_CD between '07' and '09' then 'Q3 ' || to_char(p.UNIV_FISCAL_YR) else 'Q4 ' || to_char(p.UNIV_FISCAL_YR) end as PERIOD_QUARTER_SD_UA

case when (p.UNIV_FISCAL_PRD_CD IN ('AB','CB','BB')) OR (p.UNIV_FISCAL_PRD_CD between '01' and '03') then to_date(to_char(p.UNIV_FISCAL_YR - 1) || '-07-01', 'yyyy-mm-dd') when p.UNIV_FISCAL_PRD_CD between '04' and '06' then to_date(to_char(p.UNIV_FISCAL_YR - 1) || '-10-01', 'yyyy-mm-dd')

when p.UNIV_FISCAL_PRD_CD between '07' and '09' then to_date(to_char(p.UNIV_FISCAL_YR) || '-01-01', 'yyyy-mm-dd') else to_date(to_char(p.UNIV_FISCAL_YR) || '-04-01', 'yyyy-mm-dd') end as PERIOD_QUARTER_START_DT_UA

case when (p.UNIV_FISCAL_PRD_CD IN ('AB','CB','BB')) OR (p.UNIV_FISCAL_PRD_CD between '01' and '03') then to_date(to_char(p.UNIV_FISCAL_YR - 1) || '-09-30', 'yyyy-mm-dd') when p.UNIV_FISCAL_PRD_CD between '04' and '06' then to_date(to_char(p.UNIV_FISCAL_YR - 1) || '-12-31', 'yyyy-mm-dd') when p.UNIV_FISCAL_PRD_CD between '07' and '09' then to_date(to_char(p.UNIV_FISCAL_YR) || '-03-31', 'yyyy-mm-dd') else to_date(to_char(p.UNIV_FISCAL_YR) || '-06-30', 'yyyy-mm-dd') end as PERIOD_QUARTER_END_DT_UA,

Page 152: Arizona_CA_and_GL_specs.xlsx

N/AN/A N/AN/A N/A

N/A

N/AN/A Y for initial value N for expire value

N/A N/A

N/A

N/AN/A Start time of ETL jobN/A Start time of ETL jobN/A Batch ID of highest level ETL job that called this one.

case when p.UNIV_FISCAL_PRD_CD in ('AB','BB','CB') then 0 else round(((to_number(p.UNIV_FISCAL_PRD_CD)-1)/12),2) end as PERIOD_YEAR_ELAPSED_PCT_UA

This is the max EFFDT_FROM value from all the tables joined to make this record.

This is the min EFFDT_TO value from all the tables joined to make this record.

If an error occurs when creating this row (e.g. a lookup error) this is Y otherwise it is N

Passed as a variable to the ETL job. Should be E for EPM-sourced data and S for source-system-sourced data.

Page 153: Arizona_CA_and_GL_specs.xlsx

Purpose Comment

Page 154: Arizona_CA_and_GL_specs.xlsx

to_date(to_char(p.UNIV_FISCAL_YR - 1) || '-07-01', 'yyyy-mm-dd')

Page 155: Arizona_CA_and_GL_specs.xlsx

Currently need to hard-code in SCD stage to intiial value to the Replace Nulls With value due to DataStage limitation.

Page 156: Arizona_CA_and_GL_specs.xlsx

Driving table: KF_H_CA_OBJECT_CODEGrain: sub-object (including - for NULL sub-objects) Don't forget sub-object is a subdivision of both object and account.

Name Description Data Type Replace NULL WithOBJECT_CODE_SID NUMBER(10,0) 2147483646FISCAL_YEAR NUMBER(4,0) 0CHART_CD VARCHAR2(2 BYTE) -

CHART_LD VARCHAR2(40 BYTE) -

OBJECT_CD VARCHAR2(16 BYTE) -OBJECT_LD VARCHAR2(160 BYTE) -OBJECT_SD VARCHAR2(48 BYTE) -

SUB_OBJECT_CD VARCHAR2(3) -

SUB_OBJECT_LD VARCHAR2(40) -

SUB_OBJECT_SD VARCHAR2(12) -

SUB_OBJECT_ACTIVE_FLG VARCHAR2(1) -

Page 157: Arizona_CA_and_GL_specs.xlsx

SUB_OBJECT_ACTIVE_FLG VARCHAR2(1) -

VARCHAR2(7) -

VARCHAR2(40) -

OBJECT_LEVEL_CD VARCHAR2(4 BYTE) -

OBJECT_LEVEL_LD VARCHAR2(40 BYTE) -

OBJECT_LEVEL_SD VARCHAR2(12 BYTE) -

VARCHAR2(1 BYTE) -

OBJECT_LEVEL_SORT_CD VARCHAR2(2 BYTE) -

OBJECT_CONSOLIDAT_CD VARCHAR2(4 BYTE) -

OBJECT_CONSOLIDAT_LD VARCHAR2(40 BYTE) -

SUB_OBJECT_ACCOUNT_NBR

SUB_OBJECT_ACCOUNT_SD

OBJECT_LEVEL_ACTIVE_FLG

Page 158: Arizona_CA_and_GL_specs.xlsx

OBJECT_CONSOLIDAT_SD VARCHAR2(12 BYTE) -

VARCHAR2(1 BYTE) -

VARCHAR2(2 BYTE) -

OBJECT_TYPE_CD VARCHAR2(2) -

OBJECT_TYPE_LD VARCHAR2(40) -

VARCHAR2(1) -

VARCHAR2(1) -

VARCHAR2(1) -

OBJECT_TYPE_SORT_CD VARCHAR2(2) -

OBJECT_CATEGORY_CD VARCHAR2(2) -

OBJECT_CATEGORY_LD VARCHAR2(40) -

OBJECT_CATEGORY_SD VARCHAR2(12) -

VARCHAR2(2) -

VARCHAR2(1) -

VARCHAR2(8 BYTE) -

VARCHAR2(40 BYTE) -

VARCHAR2(16 BYTE) -

VARCHAR2(160 BYTE) -

OBJECT_SUB_TYPE_CD VARCHAR2(2 BYTE) -

OBJECT_CONSOLIDAT_ACTIVE_FLG

OBJECT_CONSOLIDAT_SORT_CD

OBJECT_TYPE_DEBIT_CREDIT_CD

OBJECT_TYPE_INDIRECT_COST_CD

OBJECT_TYPE_BALANCE_CD

OBJECT_CATEGORY_SORT_CD

OBJECT_CATEGORY_ACTIVE_FLG

OBJECT_PARENT_CHART_CD

OBJECT_PARENT_CHART_LD

OBJECT_PARENT_OBJECT_CD

OBJECT_PARENT_OBJECT_LD

Page 159: Arizona_CA_and_GL_specs.xlsx

OBJECT_SUB_TYPE_LD VARCHAR2(40 BYTE) -

VARCHAR2(16 BYTE) -

VARCHAR2(160 BYTE) -

OBJECT_ACTIVE_FLG VARCHAR2(4 BYTE) -

VARCHAR2(4 BYTE) -

VARCHAR2(40 BYTE) -

VARCHAR2(4 BYTE) -

VARCHAR2(40 BYTE) -

VARCHAR2(4 BYTE) -

VARCHAR2(40 BYTE) -

VARCHAR2(16 BYTE) -

VARCHAR2(160 BYTE) -

EFF_START_DT DATE01-JAN-1753 00:00:00

EFF_END_DT DATE

31-DEC-9999 23:59:59CURRENT_IND CHAR(1) YSRC_SYS_ID VARCHAR2(5 BYTE) KFS

LOAD_ERROR VARCHAR2(1 BYTE) N

DATA_ORIGIN VARCHAR2(1 BYTE) E

CREATED_EW_DTTM DATE Start time of ETL job

OBJECT_LEGACY_FRS_OBJECT_CD

OBJECT_LEGACY_FRS_OBJECT_LD

OBJECT_BUDGET_AGGREGATION_CD

OBJECT_BUDGET_AGGREGATION_LD

OBJECT_MANDATORY_XFER_CD

OBJECT_MANDATORY_XFER_LD

OBJECT_FEDERALLY_FUNDED_CD

OBJECT_FEDERALLY_FUNDED_LD

OBJECT_NEXT_YEAR_OBJECT_CD

OBJECT_NEXT_YEAR_OBJECT_LD

Page 160: Arizona_CA_and_GL_specs.xlsx

LASTUPD_EW_DTTM DATE Start time of ETL job

BATCH_SID NUMBER(10,0)Start time of ETL job

* all lookup conditions also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <current>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <current>.EFFDT_TO >= <lookup table>.EFFDT_FROM"* all lookup conditons return NULLs when lookup fails (aka outer-join logic)* all lookup conditions allow multiple rows to be returned from lookup

Page 161: Arizona_CA_and_GL_specs.xlsx

Grain: sub-object (including - for NULL sub-objects) Don't forget sub-object is a subdivision of both object and account.

Constraints SCD Function Source Type Source TableNOT NULL Surrogate Key Generated N/ANOT NULL Business Key Copy KF_H_CA_OBJECT_CODENOT NULL Business Key Copy KF_H_CA_OBJECT_CODE

NOT NULL Type I CopyKF_H_CA_CHART

NOT NULL Business Key Copy KF_H_CA_OBJECT_CODENOT NULL Type I Copy KF_H_CA_OBJECT_CODENOT NULL Type I Copy KF_H_CA_OBJECT_CODE

NOT NULL Business Key

GeneratedN/A

Copy

KF_H_CA_SUB_OBJECT_CD

NOT NULL Type I

GeneratedN/A

Copy

KF_H_CA_SUB_OBJECT_CD

NOT NULL Type I

GeneratedN/A

Copy

KF_H_CA_SUB_OBJECT_CD

NOT NULL Type II

GeneratedN/A

Page 162: Arizona_CA_and_GL_specs.xlsx

NOT NULL Type II

Copy

KF_H_CA_SUB_OBJECT_CD

NOT NULL Business Key Copy

KF_GL_ENTRY_T

NOT NULL Type I

GeneratedN/A

Copy

KF_H_CA_ACCOUNTNOT NULL Type II Copy KF_H_CA_OBJECT_CODE

NOT NULL Type I Copy

KF_H_CA_OBJ_LEVEL

NOT NULL Type I Copy

KF_H_CA_OBJ_LEVEL

NOT NULL Type II Copy

KF_H_CA_OBJ_LEVEL

NOT NULL Type I Copy

KF_H_CA_OBJ_LEVEL

NOT NULL Type II Copy

KF_H_CA_OBJ_LEVEL

NOT NULL Type I Copy

KF_H_CA_OBJ_CONSOLDTN

Page 163: Arizona_CA_and_GL_specs.xlsx

NOT NULL Type I Copy

KF_H_CA_OBJ_CONSOLDTN

NOT NULL Type II Copy

KF_H_CA_OBJ_CONSOLDTN

NOT NULL Type I Transform

KF_H_CA_OBJ_CONSOLDTN

NOT NULL Type II CopyKF_H_CA_OBJ_TYPE

NOT NULL Type I CopyKF_H_CA_OBJ_TYPE

NOT NULL Type II CopyKF_H_CA_OBJ_TYPE

NOT NULL Type II CopyKF_H_CA_OBJ_TYPE

NOT NULL Type II CopyKF_H_CA_OBJ_TYPE

NOT NULL Type I CopyKF_H_CA_OBJ_TYPE

NOT NULL Type II CopyKF_H_CA_OBJ_TYPE

NOT NULL Type I CopyKF_H_CA_ACCTG_CTGRY

NOT NULL Type I CopyKF_H_CA_ACCTG_CTGRY

NOT NULL Type I CopyKF_H_CA_ACCTG_CTGRY

NOT NULL Type II CopyKF_H_CA_ACCTG_CTGRY

NOT NULL Type II CopyKF_H_CA_OBJECT_CODE

NOT NULL Type I CopyKF_H_CA_CHART

NOT NULL Type II CopyKF_H_CA_OBJECT_CODE

NOT NULL Type I Copy

KF_H_CA_OBJECT_CODENOT NULL Type II Copy KF_H_CA_OBJECT_CODE

Page 164: Arizona_CA_and_GL_specs.xlsx

NOT NULL Type I CopyKF_H_CA_OBJ_SUB_TYPE

NOT NULL Type I CopyKF_H_CA_OBJECT_CODE

NOT NULL Type I Copy

KF_H_CA_OBJECT_CODENOT NULL Type II Copy KF_H_CA_OBJECT_CODE

NOT NULL Type II CopyKF_H_CA_OBJECT_CODE

NOT NULL Type I CopyKF_H_CA_BDGT_AGGR

NOT NULL Type II CopyKF_H_CA_OBJECT_CODE

NOT NULL Type I CopyKF_H_CA_MNXFR_ELIM

NOT NULL Type II CopyKF_H_CA_OBJECT_CODE

NOT NULL Type I CopyKF_H_CA_FED_FND

NOT NULL Type I CopyKF_H_CA_OBJECT_CODE

NOT NULL Type I Copy

KF_H_CA_OBJECT_CODE

NOT NULLEffective Date Transform Multiple

NOT NULL

Effective Date Transform MultipleNOT NULL Effective Flag Generated N/ANOT NULL Business Key Copy KF_H_CA_OBJECT_CODE

NOT NULLInsert Only

Generated N/A

NOT NULLInsert Only

GeneratedN/A

NOT NULL Insert Only Generated N/A

Page 165: Arizona_CA_and_GL_specs.xlsx

NOT NULL Insert Only Generated N/A

NOT NULLInsert Only

GeneratedN/A

* all lookup conditions also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <current>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <current>.EFFDT_TO >= <lookup table>.EFFDT_FROM"

Page 166: Arizona_CA_and_GL_specs.xlsx

Source Table Alias Source Column Lookup Logic*N/A N/A NAAL1 AL1.UNIV_FISCAL_YR N/AAL1 AL1.FIN_COA_CD N/A

AL2 AL2.FIN_COA_DESC AL1.FIN_COA_CD=AL2.FIN_COA_CDAL1 AL1.FIN_OBJECT_CD N/AAL1 AL1.FIN_OBJ_CD_NM N/AAL1 AL1.FIN_OBJ_CD_SHRT_NM N/A

N/A N/A N/A

AL15 AL15.FIN_SUB_OBJ_CD

N/A N/A N/A

AL15 AL15.FIN_SUB_OBJ_CD_NM

N/A N/A N/A

A15 AL15.FIN_SUBOBJ_SHRT_NM

N/A N/A N/A

AL1.UNIV_FISCAL_YR=AL15.UNIV_FISCAL_YR AND AL1.FIN_COA_CD=AL15.FIN_COA_CD AND AL1.FIN_OBJECT_CD=AL15.FIN_OBJECT_CD AND AL15.FIN_SUB_OBJ_CD IS NOT NULL

AL1.UNIV_FISCAL_YR=AL15.UNIV_FISCAL_YR AND AL1.FIN_COA_CD=AL15.FIN_COA_CD AND AL1.FIN_OBJECT_CD=AL15.FIN_OBJECT_CD AND AL15.FIN_SUB_OBJ_CD IS NOT NULL

AL1.UNIV_FISCAL_YR=AL15.UNIV_FISCAL_YR AND AL1.FIN_COA_CD=AL15.FIN_COA_CD AND AL1.FIN_OBJECT_CD=AL15.FIN_OBJECT_CD AND AL15.FIN_SUB_OBJ_CD IS NOT NULL

Page 167: Arizona_CA_and_GL_specs.xlsx

AL15 AL15.FIN_SUBOBJ_ACTV_CD

AL20 AL20.ACCOUNT_NBR

N/A N/A N/A

AL16 AL16.ACCOUNT_NMAL1 AL1.FIN_OBJ_LEVEL_CD N/A

AL7 AL7.FIN_OBJ_LEVEL_NM

AL7 AL7.FIN_OBJLVL_SHRT_NM

AL7 AL7.FIN_OBJLVL_ACTV_CD

AL7 AL7.FIN_REPORT_SORT_CD

AL7 AL7.FIN_CONS_OBJ_CD

AL13 AL13.FIN_CONS_OBJ_NM

AL1.UNIV_FISCAL_YR=AL15.UNIV_FISCAL_YR AND AL1.FIN_COA_CD=AL15.FIN_COA_CD AND AL1.FIN_OBJECT_CD=AL15.FIN_OBJECT_CD AND AL15.FIN_SUB_OBJ_CD IS NOT NULL

AL1.FIN_COA_CD=AL20.FIN_COA_CD AND AL1.FIN_OBJECT_CD=AL20.FIN_OBJECT_CD AND AL1.UNIV_FISCAL_YR=AL20.UNIV_FISCAL_YR

AL15.ACCOUNT_NBR=AL16.ACCOUNT_NBR AND AL15.FIN_COA_CD=AL16.FIN_COA_CD

AL1.FIN_OBJ_LEVEL_CD = AL7.FIN_OBJ_LEVEL_CD AND AL1.FIN_COA_CD = AL7.FIN_COA_CD

AL1.FIN_OBJ_LEVEL_CD = AL7.FIN_OBJ_LEVEL_CD AND AL1.FIN_COA_CD = AL7.FIN_COA_CD

AL1.FIN_OBJ_LEVEL_CD = AL7.FIN_OBJ_LEVEL_CD AND AL1.FIN_COA_CD = AL7.FIN_COA_CD

AL1.FIN_OBJ_LEVEL_CD = AL7.FIN_OBJ_LEVEL_CD AND AL1.FIN_COA_CD = AL7.FIN_COA_CD

AL1.FIN_OBJ_LEVEL_CD = AL7.FIN_OBJ_LEVEL_CD AND AL1.FIN_COA_CD = AL7.FIN_COA_CD

AL7.FIN_COA_CD=AL13.FIN_COA_CD AND AL7.FIN_CONS_OBJ_CD=AL13.FIN_CONS_OBJ_CD

Page 168: Arizona_CA_and_GL_specs.xlsx

AL13 AL13.FIN_CONOBJ_SHRT_NM

AL13 AL13.FIN_CONOBJ_ACTV_CD

AL13 AL13.FIN_REPORT_SORT_CD

AL5 AL5.FIN_OBJ_TYP_CD

AL5 AL5.FIN_OBJ_TYP_NM

AL5 AL5.FIN_OBJTYP_DBCR_CD

AL5 AL5.FIN_OBJ_TYP_ICR_CD

AL5 AL5.FUND_BALANCE_CD

AL5 AL5.FIN_REPORT_SORT_CD

AL5 AL5.ACCTG_CTGRY_CD

AL14 AL14.ACCTG_CTGRY_DESC

AL14 AL14.ACCTG_CTGRY_SHRT_NM

AL14 AL14.FIN_REPORT_SORT_CD

AL14 AL14.ROW_ACTV_IND

AL1 AL1.RPTS_TO_FIN_COA_CD N/A

AL3 AL3.FIN_COA_DESC

AL1 AL1.RPTS_TO_FIN_OBJ_CD N/A

AL4 AL4.FIN_OBJ_CD_NMAL1 AL1.FIN_OBJ_SUB_TYP_CD N/A

AL7.FIN_COA_CD=AL13.FIN_COA_CD AND AL7.FIN_CONS_OBJ_CD=AL13.FIN_CONS_OBJ_CD

AL7.FIN_COA_CD=AL13.FIN_COA_CD AND AL7.FIN_CONS_OBJ_CD=AL13.FIN_CONS_OBJ_CD

AL7.FIN_COA_CD=AL13.FIN_COA_CD AND AL7.FIN_CONS_OBJ_CD=AL13.FIN_CONS_OBJ_CD

AL1.FIN_OBJ_TYP_CD = AL5.FIN_OBJ_TYP_CD

AL1.FIN_OBJ_TYP_CD = AL5.FIN_OBJ_TYP_CD

AL1.FIN_OBJ_TYP_CD = AL5.FIN_OBJ_TYP_CD

AL1.FIN_OBJ_TYP_CD = AL5.FIN_OBJ_TYP_CD

AL1.FIN_OBJ_TYP_CD = AL5.FIN_OBJ_TYP_CD

AL1.FIN_OBJ_TYP_CD = AL5.FIN_OBJ_TYP_CD

AL1.FIN_OBJ_TYP_CD = AL5.FIN_OBJ_TYP_CD

AL5.ACCTG_CTGRY_CD=AL14.ACCTG_CTGRY_CD

AL5.ACCTG_CTGRY_CD=AL14.ACCTG_CTGRY_CD

AL5.ACCTG_CTGRY_CD=AL14.ACCTG_CTGRY_CD

AL5.ACCTG_CTGRY_CD=AL14.ACCTG_CTGRY_CD

AL1.RPTS_TO_FIN_COA_CD = AL3.FIN_COA_CD

AL1.RPTS_TO_FIN_OBJ_CD = AL4.FIN_OBJECT_CD AND AL1.UNIV_FISCAL_YR = AL4.UNIV_FISCAL_YR AND AL1.RPTS_TO_FIN_COA_CD = AL4.FIN_COA_CD

Page 169: Arizona_CA_and_GL_specs.xlsx

AL6 AL6.FIN_OBJ_SUB_TYP_NM

AL1 AL1.HIST_FIN_OBJECT_CD N/A

AL8 AL8.FIN_OBJ_CD_NMAL1 AL1.FIN_OBJ_ACTIVE_CD N/A

A1 AL1.FOBJ_BDGT_AGGR_CD N/A

AL10 AL10.FIN_BDGT_AGGR_NM

AL1 AL1.FOBJ_MNXFR_ELIM_CD N/A

AL12 AL12.FOBJ_MNXFR_ELIM_NM

AL1 AL1.FIN_FED_FUNDED_CD N/A

AL11 AL11.FIN_FED_FND_NM

AL1 AL1.NXT_YR_FIN_OBJ_CD N/A

AL9 AL9.FIN_OBJ_CD_NM

N/A Multiple N/A

N/A Multiple N/AN/A N/A N/AAL1 SRC_SYS_ID N/A

N/AN/A

N/A

N/AN/A

N/AN/A N/A N/A

AL1.FIN_OBJ_SUB_TYP_CD = AL6.FIN_OBJ_SUB_TYP_CD

AL1.UNIV_FISCAL_YR = AL8.UNIV_FISCAL_YR AND AL1.FIN_COA_CD = AL8.FIN_COA_CD AND AL1.HIST_FIN_OBJECT_CD = AL8.FIN_OBJECT_CD

AL1.FOBJ_BDGT_AGGR_CD = AL10.FOBJ_BDGT_AGGR_CD

AL1.FOBJ_MNXFR_ELIM_CD = AL12.FOBJ_MNXFR_ELIM_CD

AL1.FIN_FED_FUNDED_CD = AL11.FIN_FED_FUNDED_CD

AL1.UNIV_FISCAL_YR = AL9.UNIV_FISCAL_YR AND AL1.FIN_COA_CD = AL9.FIN_COA_CD AND AL1.NXT_YR_FIN_OBJ_CD = AL9.FIN_OBJECT_CD

Page 170: Arizona_CA_and_GL_specs.xlsx

N/A N/A N/A

N/A N/A N/A

* all lookup conditions also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <current>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <current>.EFFDT_TO >= <lookup table>.EFFDT_FROM"

Page 171: Arizona_CA_and_GL_specs.xlsx

Transform Logic Purpose Comment

Surrogate key generator starting at 1N/AN/A

N/AN/AN/AN/A

N/A

N/A

N/A

Generate one row with value of - for each chart of account, financial year, source system id, object code

Generate one row with value of - for each chart of account, financial year, source system id, object code

Generate one row with value of - for each chart of account, financial year, source system id, object code

Generate one row with value of - for each chart of account, financial year, source system id, object code

Page 172: Arizona_CA_and_GL_specs.xlsx

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

Generate one row with value of - for each chart of account, financial year, source system id, object code

Page 173: Arizona_CA_and_GL_specs.xlsx

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

if length(AL13.FIN_REPORT_SORT_CD) = 1 then '0' || AL13.FIN_REPORT_SORT_CD else || AL13.FIN_REPORT_SORT_CD

Page 174: Arizona_CA_and_GL_specs.xlsx

N/A

N/A

N/A

N/AN/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

Y for initial value N for expire valueN/A

Start time of ETL job

This is the max EFFDT_FROM value from all the tables joined to make this record.

This is the min EFFDT_TO value from all the tables joined to make this record.

Currently need to hard-code in SCD stage to intiial value to the Replace Nulls With value due to DataStage limitation.

If an error occurs when creating this row (e.g. a lookup error) this is Y otherwise it is N

Passed as a variable to the ETL job. Should be E for EPM-sourced data and S for source-system-sourced data.

Page 175: Arizona_CA_and_GL_specs.xlsx

Start time of ETL job

Batch ID of highest level ETL job that called this one.

Page 176: Arizona_CA_and_GL_specs.xlsx

Driving Table: KF_H_FS_ORIGIN_CODEGrain: origin

Name Description Data Type

ORIGIN_SID NUMBER(10,0)ORIGIN_CD VARCHAR2(2 BYTE)ORIGIN_SERVER_SD VARCHAR2(20 BYTE)ORIGIN_DATABASE_SD VARCHAR2(15 BYTE)ORIGIN_DATABASE_LD VARCHAR2(40 BYTE)

EFF_START_DT DATE

EFF_END_DT DATE

CURRENT_IND CHAR(1)

SRC_SYS_ID VARCHAR2(5 BYTE)

LOAD_ERROR VARCHAR2(1 BYTE)

DATA_ORIGIN VARCHAR2(1 BYTE)

ORIGIN_ACTIVE_FLG VARCHAR2(1 BYTE)CREATED_EW_DTTM DATELASTUPD_EW_DTTM DATE

BATCH_SID NUMBER(10,0)

Page 177: Arizona_CA_and_GL_specs.xlsx

Replace NULL With Constraints SCD Function

2147483646 NOT NULL Surrogate Key- NOT NULL Business Key- NOT NULL Type II- NOT NULL Type II- NOT NULL Type II

01-JAN-1753 00:00:00

NOT NULL

Effective Date

31-DEC-9999 23:59:59

NOT NULL

Effective Date

Y NOT NULL Effective Flag

KFS NOT NULL Business Key

N NOT NULL

Insert Only

E NOT NULL

Insert Only- NOT NULL Type IIStart time of ETL job NOT NULL Insert OnlyStart time of ETL job NOT NULL Insert Only

Start time of ETL jobNOT NULL

Insert Only

Page 178: Arizona_CA_and_GL_specs.xlsx

Source Type Source Table Source Column Lookup Logic

Generated N/A N/A N/ACopy KF_H_FS_ORIGIN_CODE FS_ORIGIN_CD N/ACopy KF_H_FS_ORIGIN_CODE FS_SERVER_NM N/ACopy KF_H_FS_ORIGIN_CODE FS_DATABASE_NM N/ACopy KF_H_FS_ORIGIN_CODE FS_DATABASE_DESC N/A

Copy KF_H_FS_ORIGIN_CODE EFFDT_FROM N/A

Copy KF_H_FS_ORIGIN_CODE EFFDT_TO N/A

Generated N/A N/A N/A

Copy KF_H_FS_ORIGIN_CODE SRC_SYS_ID N/A

Generated N/A N/A

N/A

Generated

N/A

N/A

N/ACopy KF_H_FS_ORIGIN_CODE ROW_ACTV_IND N/AGenerated N/A N/A N/AGenerated N/A N/A N/A

GeneratedN/A N/A N/A

Page 179: Arizona_CA_and_GL_specs.xlsx

Transform Logic Purpose Comment

N/AN/AN/AN/A

N/A

N/AStart time of ETL jobStart time of ETL job

Surrogate key generator starting at 1

This is the max EFFDT_FROM value from all the tables joined to make this record.

This is the min EFFDT_TO value from all the tables joined to make this record.

Currently need to hard-code in SCD stage to intiial value to the Replace Nulls With value due to DataStage limitation.

Y for initial value N for expire value

If an error occurs when creating this row (e.g. a lookup error) this is Y otherwise it is N

Passed as a variable to the ETL job. Should be E for EPM-sourced data and S for source-system-sourced data.

Batch ID of highest level ETL job that called this one.

Page 180: Arizona_CA_and_GL_specs.xlsx

Column Mappings

Column Name

ORG_SID 7CHART_CD 8

CHART_LD 8ORG_CD 6

ORG_NM 6

ORG_MANAGER_ID 14

ORG_MANAGER_USER_ID 19

ORG_MANAGER_NM 14ORG_RESPONSIBILITY_CENTER_CD 28

ORG_RESPONSIBILITY_CENTER_LD 28

ORG_RESPONSIBILITY_CENTER_SD 28ORG_PHYSICAL_CAMPUS_CD 22

ORG_PHYSICAL_CAMPUS_LD 22

ORG_PHYSICAL_CAMPUS_SD 22ORG_TYPE_CD 11

ORG_TYPE_LD 11ORG_DEFAULT_ACCT_NBR 20

ORG_DEFAULT_ACCT_LD 19

ORG_ADDR1 9

Driving table: KF_H_CA_ORGDriving table filter: noneDriving table aggregation: noneGrain: organization unit as defined in KFS

Name Length

Page 181: Arizona_CA_and_GL_specs.xlsx

ORG_ADDR2 9

ORG_CITY_NM 11ORG_STATE_CD 12

ORG_ZIP_CD 10ORG_COUNTRY_CD 14

ORG_COUNTRY_NM 14ORG_COUNTRY_RESTRICTED_FLG 26ORG_PARENT_CHART_CD 19

ORG_PARENT_CHART_LD 19ORG_PARENT_ORG_CD 17

ORG_PARENT_ORG_NM 17ORG_IN_FP_FLG 13ORG_PLANT_CHART_CD 18

ORG_PLANT_CHART_LD 18ORG_PLANT_ACCOUNT_NBR 21

ORG_PLANT_ACCOUNT_LD 20ORG_CAMPUS_PLANT_CHART_CD 25

ORG_CAMPUS_PLANT_CHART_LD 25ORG_CAMPUS_PLANT_ACCOUNT_NBR 28

ORG_CAMPUS_PLANT_ACCOUNT_LD 27ORG_BEGIN_DT 12ORG_END_DT 10ORG_ACTIVE_FLG 14ORG_SORT_CD 11

ORG_ROLLUP_UNIV_CD 18

ORG_ROLLUP_UNIV_NM 18

Page 182: Arizona_CA_and_GL_specs.xlsx

ORG_ROLLUP_CAMPUS_CD 20

ORG_ROLLUP_CAMPUS_NM 20

ORG_ROLLUP_EXECUTIVE_CD 23

ORG_ROLLUP_EXECUTIVE_NM 23

ORG_ROLLUP_VP_CD 16

ORG_ROLLUP_VP_NM 16

ORG_ROLLUP_SUPER_COLLEGE_CD 27

ORG_ROLLUP_SUPER_COLLEGE_NM 27

ORG_ROLLUP_COLLEGE_CD 21

ORG_ROLLUP_COLLEGE_NM 21

ORG_ROLLUP_DEPT_CD 18

ORG_ROLLUP_DEPT_NM 18ORG_SIMPLE_ROLLUP_EXEC_CD 25

Page 183: Arizona_CA_and_GL_specs.xlsx

ORG_SIMPLE_ROLLUP_EXEC_NM 25ORG_SIMPLE_ROLLUP_COLLEGE_CD 28

ORG_SIMPLE_ROLLUP_COLLEGE_NM 28ORG_SIMPLE_ROLLUP_DEPT_CD 25

ORG_SIMPLE_ROLLUP_DEPT_NM 25

ORG_HIST_ROLLUP_UNIV_CD 23

ORG_HIST_ROLLUP_UNIV_NM 23

ORG_HIST_ROLLUP_CAMPUS_CD 25

ORG_HIST_ROLLUP_CAMPUS_NM 25

ORG_HIST_ROLLUP_EXECUTIVE_CD 28

ORG_HIST_ROLLUP_EXECUTIVE_NM 28

ORG_HIST_ROLLUP_VP_CD 21

ORG_HIST_ROLLUP_VP_NM 21

Page 184: Arizona_CA_and_GL_specs.xlsx

ORG_HIST_ROLLUP_SUPER_COLL_CD 29

ORG_HIST_ROLLUP_SUPER_COLL_NM 29

ORG_HIST_ROLLUP_COLLEGE_CD 26

ORG_HIST_ROLLUP_COLLEGE_NM 26

ORG_HIST_ROLLUP_DEPT_CD 23

ORG_HIST_ROLLUP_DEPT_NM 23

ORG_FULL_ROLLUP_LEVEL1_CD 25

ORG_FULL_ROLLUP_LEVEL1_NM 25

ORG_FULL_ROLLUP_LEVEL2_CD 25

ORG_FULL_ROLLUP_LEVEL2_NM 25

ORG_FULL_ROLLUP_LEVEL3_CD 25

ORG_FULL_ROLLUP_LEVEL3_NM 25

ORG_FULL_ROLLUP_LEVEL4_CD 25

ORG_FULL_ROLLUP_LEVEL4_NM 25

ORG_FULL_ROLLUP_LEVEL5_CD 25

Page 185: Arizona_CA_and_GL_specs.xlsx

ORG_FULL_ROLLUP_LEVEL5_NM 25

ORG_FULL_ROLLUP_LEVEL6_CD 25

ORG_FULL_ROLLUP_LEVEL6_NM 25

ORG_FULL_ROLLUP_LEVEL7_CD 25

ORG_FULL_ROLLUP_LEVEL7_NM 25

ORG_FULL_ROLLUP_LEVEL8_CD 25

ORG_FULL_ROLLUP_LEVEL8_NM 25

ORG_FULL_ROLLUP_LEVEL9_CD 25

ORG_FULL_ROLLUP_LEVEL9_NM 25

ORG_FULL_ROLLUP_LEVEL10_CD 26

ORG_FULL_ROLLUP_LEVEL10_NM 26

ORG_FULL_ROLLUP_LEVEL11_CD 26

ORG_FULL_ROLLUP_LEVEL11_NM 26

ORG_FULL_ROLLUP_LEVEL12_CD 26

ORG_FULL_ROLLUP_LEVEL12_NM 26

ORG_FULL_ROLLUP_LEVEL13_CD 26

ORG_FULL_ROLLUP_LEVEL13_NM 26

ORG_FULL_ROLLUP_LEVEL14_CD 26

ORG_FULL_ROLLUP_LEVEL14_NM 26

ORG_FULL_ROLLUP_LEVEL15_CD 26

ORG_FULL_ROLLUP_LEVEL15_NM 26

ORG_FULL_ROLLUP_LEVEL16_CD 26

ORG_FULL_ROLLUP_LEVEL16_NM 26

Page 186: Arizona_CA_and_GL_specs.xlsx

ORG_FULL_ROLLUP_LEVEL17_CD 26

ORG_FULL_ROLLUP_LEVEL17_NM 26

ORG_FULL_ROLLUP_LEVEL18_CD 26

ORG_FULL_ROLLUP_LEVEL18_NM 26

ORG_FULL_ROLLUP_LEVEL19_CD 26

ORG_FULL_ROLLUP_LEVEL19_NM 26

ORG_FULL_ROLLUP_LEVEL20_CD 26

ORG_FULL_ROLLUP_LEVEL20_NM 26

EFF_START_DT

12

EFF_END_DT

10

CURRENT_IND11

SRC_SYS_ID 10

LOAD_ERROR

10

DATA_ORIGIN

11CREATED_EW_DTTM 15LASTUPD_EW_DTTM 15

BATCH_SID9

Look-Up Logic

Page 187: Arizona_CA_and_GL_specs.xlsx

Table NameOrder

KF_H_CA_ORG 1

KF_H_CA_CHART Chart12

KF_H_CA_RC 3

KF_H_CA_ORG_TYPE 4

KF_H_CA_ORG_EXT 5

KF_H_KR_COUNTRY 6

KF_H_CA_ACCOUNT Account1 7

KF_H_CA_CHART ParentChart 8

KF_H_CA_ORG ParentOrg 9

KF_H_CA_CHART PlantChart 10

KF_H_CA_ACCOUNT PlantAccount 11

KF_H_CA_CHART CampusPlantChart 12

KF_H_CA_ACCOUNT CampusPlantAccount 13

KF_H_KRNS_CAMPUS 14

Page 188: Arizona_CA_and_GL_specs.xlsx

15

* all lookup conditions not on PS tables also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <current>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <current>.EFFDT_TO >= <lookup table>.EFFDT_FROM"* all lookup conditons return NULLs when lookup fails (aka outer-join logic)* all lookup conditions allow multiple rows to be returned from lookup

(select EMPLID, NETID_OPRID, UAID, NAMEfrom sysadm.ps_ua_eds_data awhere effdt = ( select max(effdt) from sysadm.ps_ua_eds_data b where a.uaid = b.uaid and effdt < SYSDATE )) PSPeople

Page 189: Arizona_CA_and_GL_specs.xlsx

DescriptionData Type

Constraints

NUMBER(10) 2147483646 PRIMARY KEYVARCHAR2(2) - NOT NULL

VARCHAR2(40) - NOT NULLVARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(40) - NOT NULL

Comes from HCM VARCHAR2(40) - NOT NULL

Comes from HCM - NOT NULLVARCHAR2(2) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(12) - NOT NULLVARCHAR2(2) - NOT NULL

- NOT NULL

- NOT NULLVARCHAR(2) - NOT NULL

VARCHAR2(40) - NOT NULLVARCHAR2(7) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(30) - NOT NULL

Replace NULL With

VARCHAR2(160)

VARCHAR2(250)

VARCHAR2(250)

Page 190: Arizona_CA_and_GL_specs.xlsx

VARCHAR2(30) - NOT NULL

VARCHAR2(25) - NOT NULLVARCHAR2(2) - NOT NULL

VARCHAR2(20) - NOT NULLVARCHAR2(2) - NOT NULL

VARCHAR2(40) - NOT NULLVARCHAR2(1) - NOT NULLVARCHAR2(2) - NOT NULL

VARCHAR2(40) - NOT NULLVARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULLWe do not know what this is. VARCHAR2(1) - NOT NULL

VARCHAR2(2) - NOT NULL

VARCHAR2(40) - NOT NULLVARCHAR2(7) - NOT NULL

VARCHAR2(40) - NOT NULLVARCHAR2(2) - NOT NULL

VARCHAR2(40) - NOT NULLVARCHAR2(7) - NOT NULL

VARCHAR2(40) - NOT NULLDATE 31-Dec-99 NOT NULLDATE 31-Dec-99 NOT NULLVARCHAR2(1) - NOT NULLVARCHAR2(3) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

Code of the unit with org type U to which this department reports. Or itself if it is a unversity.

Page 191: Arizona_CA_and_GL_specs.xlsx

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULLVARCHAR2(4) - NOT NULL

Page 192: Arizona_CA_and_GL_specs.xlsx

VARCHAR2(40) - NOT NULLVARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULLVARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

Code of the unit with org type U to which this department reports. Or itself if it is a unversity.

Page 193: Arizona_CA_and_GL_specs.xlsx

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

Page 194: Arizona_CA_and_GL_specs.xlsx

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

Page 195: Arizona_CA_and_GL_specs.xlsx

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

VARCHAR2(4) - NOT NULL

VARCHAR2(40) - NOT NULL

DATE Jan 1, 1753 NOT NULL

DATE 31-Dec-99 NOT NULL

VARCHAR2(1) Y NOT NULLVARCHAR2(5) KFS NOT NULL

VARCHAR2(1) N NOT NULL

VARCHAR2(1) E NOT NULLDATE ETL job starttime NOT NULLDATE ETL job starttime NOT NULL

NUMBER(10) 0 NOT NULL

Page 196: Arizona_CA_and_GL_specs.xlsx

Lookup Logic* CommentN/A N/A Driving table

KF_E_CA_ORG

KF_H_CA_ORG.RC_CD = KF_H_CA_RC.RC_CD KF_E_CA_ORG

KF_E_CA_ORG

KF_E_CA_ORG

KF_E_CA_ORG

KF_E_CA_ORG

KF_E_CA_ORG

KF_E_CA_ORG self-join

KF_E_CA_ORG

KF_E_CA_ORG

KF_E_CA_ORG

KF_E_CA_ORG

KF_E_CA_ORG

Failed Lookup Error Table

KF_H_CA_ORG.FIN_COA_CD = KF_H_CA_CHART.FIN_COA_CD

KF_H_CA_ORG.ORG_TYP_CD = KF_H_CA_ORG_TYPE.ORG_TYP_CD

KF_H_CA_ORG.FIN_COA_CD = KF_H_CA_ORG_EXT.FIN_COA_CD AND KF_H_CA_ORG.ORG_CD = KF_H_CA_ORG_EXT.ORG_CD

KF_H_CA_ORG.ORG_CNTRY_CD = KF_H_KR_COUNTRY.POSTAL_CNTRY_CD

KF_H_CA_ORG.FIN_COA_CD = Account1.FIN_COA_CD AND KF_H_CA_ORG.ORG_DFLT_ACCT_NBR = Account1.ACCOUNT_NBR

KF_H_CA_ORG.RPTS_TO_FIN_COA_CD = ParentChart.FIN_COA_CD

KF_H_CA_ORG.RPTS_TO_FIN_COA_CD = ParentOrg.FIN_COA_CD AND KF_H_CA_ORG.RPTS_TO_ORG_CD = ParentOrg.ORG_CD

KF_H_CA_ORG.ORG_PLNT_COA_CD = PlantChart.FIN_COA_CD

KF_H_CA_ORG.ORG_PLNT_COA_CD = PlantAccount.FIN_COA_CD AND KF_H_CA_ORG.ORG_PLNT_ACCT_NBR = PlantAccount.ACCOUNT_NBR

KF_H_CA_ORG.CMP_PLNT_COA_CD = CampsPlantChart.FIN_COA_CD

KF_H_CA_ORG.CMP_PLNT_COA_CD = CampusPlantAccount.FIN_COA_CD AND KF_H_CA_ORG.CMP_PLNT_ACCT_NBR = CampusPlantAccount.ACCOUNT_NBR

KF_H_CA_ORG.ORG_PHYS_CMP_CD = KF_H_KRNS_CAMPUS.CAMPUS_CD

Page 197: Arizona_CA_and_GL_specs.xlsx

KF_H_CA_ORG.ORG_MGR_UNVL_ID = PSPeople.UAID KF_E_CA_ORG

* all lookup conditions not on PS tables also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <current>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <current>.EFFDT_TO >= <lookup table>.EFFDT_FROM"* all lookup conditons return NULLs when lookup fails (aka outer-join logic)* all lookup conditions allow multiple rows to be returned from lookup

Page 198: Arizona_CA_and_GL_specs.xlsx

SCD Type Type 1 SCD Dependance Source Type Source Table

Surrogate Key N/A Generated N/ABusiness Key N/A Copy KF_H_CA_ORG

Type 1 CHART_CD Copy KF_H_CA_CHART Chart1Business Key N/A Copy KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Copy KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Copy KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Copy

Type 1 Load job SCD Type 1 stage TransformType 2 N/A Copy KF_H_CA_ORG

Type 1 ORG_RESPONSIBIITY_CENTER_CD Copy KF_H_CA_RC

Type 1 ORG_RESPONSIBIITY_CENTER_CD Copy KF_H_CA_RCType 2 N/A Copy KF_H_CA_ORG

Type 1 ORG_PHYSICAL_CAMPUS_CD Copy KF_H_KRNS_CAMPUS

Type 1 ORG_PHYSICAL_CAMPUS_CD Copy KF_H_KRNS_CAMPUSType 2 N/A Copy KF_H_CA_ORG

Type 1 ORG_TYPE_CD Copy KF_H_CA_ORG_TYPEType 2 N/A Copy KF_H_CA_ORG

Type 1 Copy KF_H_CA_ACCOUNT Account1

Type 1 Load job SCD Type 1 stage Copy KF_H_CA_ORG

(select distinct EMPLID, NETID_OPRID, UAID, NAME from PS_UA_EDS_DATA) PSPeople

(select distinct EMPLID, NETID_OPRID, UAID, NAME from PS_UA_EDS_DATA) PSPeople

CHART_CD, ORG_DEFAULT_ACCT_NBR

Page 199: Arizona_CA_and_GL_specs.xlsx

Type 1 Load job SCD Type 1 stage Copy KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Copy KF_H_CA_ORGType 1 Load job SCD Type 1 stage Copy KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Copy KF_H_CA_ORGType 1 Load job SCD Type 1 stage Copy KF_H_CA_ORG

Type 1 ORG_COUNTRY_CD Copy KF_H_KR_COUNTRYType 1 ORG_COUNTRY_CD Copy KF_H_KR_COUNTRYType 1 Load job SCD Type 1 stage Copy KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Copy KF_H_CA_CHART ParentChartType 1 Load job SCD Type 1 stage Copy KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Copy KF_H_CA_ORG ParentOrgType 1 Copy KF_H_CA_ORGType 2 N/A Copy KF_H_CA_ORG

Type 1 ORG_PLANT_CHART_CD Copy KF_H_CA_CHART PlantChartType 2 N/A Copy KF_H_CA_ORG

Type 1 CopyType 2 N/A Copy KF_H_CA_ORG

Type 1 ORG_CAMPUS_PLANT_CHART_CD CopyType 2 N/A Copy KF_H_CA_ORG

Type 1 CopyType 1 Load job SCD Type 1 stage Copy KF_H_CA_ORGType 1 Load job SCD Type 1 stage Copy KF_H_CA_ORGType 1 Load job SCD Type 1 stage Copy KF_H_CA_ORGType 1 Load job SCD Type 1 stage Copy KF_H_CA_ORG_EXT

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

ORG_PLANT_CHART_CD, ORG_PANT_ACCOUNT_NBR

KF_H_CA_ACCOUNT PlantAccount

KF_H_CA_CHART CampusPlantChart

ORG_CAMPUS_PLANT_CHART_CD, ORG_CAMPUS_PLANT_ACCOUNT_NBR

KF_H_CA_ACCOUNT CampusPlantAccount

Page 200: Arizona_CA_and_GL_specs.xlsx

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORGType 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Page 201: Arizona_CA_and_GL_specs.xlsx

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORGType 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORGType 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 2 N/A Transform KF_H_CA_ORG

Type 1 Transform KF_H_CA_ORG

Type 2 N/A Transform KF_H_CA_ORG

Type 1 Transform KF_H_CA_ORG

Type 2 N/A Transform KF_H_CA_ORG

Type 1 Transform KF_H_CA_ORG

Type 2 N/A Transform KF_H_CA_ORG

Type 1 Transform KF_H_CA_ORG

ORG_CHART_CD, ORG_HIST_ROLLUP_UNIV_CD

ORG_CHART_CD, ORG_HIST_ROLLUP_CAMPUS_CD

ORG_CHART_CD, ORG_HIST_ROLLUP_EXECUTIVE_CD

ORG_CHART_CD, ORG_HIST_ROLLUP_VP_CD

Page 202: Arizona_CA_and_GL_specs.xlsx

Type 2 N/A Transform KF_H_CA_ORG

Type 1 Transform KF_H_CA_ORG

Type 2 N/A Transform KF_H_CA_ORG

Type 1 Transform KF_H_CA_ORG

Type 2 N/A Transform KF_H_CA_ORG

Type 1 Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

ORG_CHART_CD, ORG_HIST_ROLLUP_SUPER_COLL_CD

ORG_CHART_CD, ORG_HIST_ROLLUP_COLLEGE_CD

ORG_CHART_CD,ORG_HIST_ROLLUP_DEPT_CD

Page 203: Arizona_CA_and_GL_specs.xlsx

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Page 204: Arizona_CA_and_GL_specs.xlsx

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Type 1 Load job SCD Type 1 stage Transform KF_H_CA_ORG

Effective Date N/A Transform N/A

Expiration DateN/A Transform N/A

Effective FlagN/A

GeneratedN/A

Business Key N/A Copy KF_H_CA_ORG

N/A

Generated

N/A

N/A

Generated

N/AN/A Generated N/AN/A Generated N/A

N/AGenerated

N/A

N/A

N/AN/AN/A

N/A

Page 205: Arizona_CA_and_GL_specs.xlsx

* all lookup conditions not on PS tables also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <current>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <current>.EFFDT_TO >= <lookup table>.EFFDT_FROM"

Page 206: Arizona_CA_and_GL_specs.xlsx

Source Column Transform Logic Purpose Comment

N/AFIN_COA_CD

FIN_COA_DESCORG_CD

ORG_NM

ORG_MGR_UNVL_ID

NETID_OPRID

NAME replace(NAME, ' - ', ' ')RC_CD

RC_NM

RC_SHRT_NMORG_PHYS_CMP_CD

CAMPUS_NM

CAMPUS_SHRT_NMORG_TYP_CD

ORG_TYP_NMORG_DFLT_ACCT_NBR

ACCOUNT_NM

ORG_LN1_ADDR

Page 207: Arizona_CA_and_GL_specs.xlsx

ORG_LN2_ADDR

ORG_CITY_NMORG_STATE_CD

ORG_ZIP_CDORG_CNTRY_CD

POSTAL_CNTRY_NMPSTL_CNTRY_RSTRC_IND RPTS_TO_FIN_COA_CD Doing type 1 because that is what people appear to care about the most

FIN_COA_DESCRPTS_TO_ORG_CD

ORG_NMORG_IN_FP_CDORG_PLNT_COA_CD

FIN_COA_DESCORG_PLNT_ACCT_NBR

ACCOUNT_NM CMP_PLNT_COA_CD

FIN_COA_DESC CMP_PLNT_ACCT_NBR

ACCOUNT_NM ORG_BEGIN_DTORG_END_DTORG_ACTIVE_CDREPORT_ORDER_CD

ORG_CD

ORG_NM

The highest org unit with a org type of U to which this unit reports. Or the unit itself if its type is U.

The name associated with the code.

Page 208: Arizona_CA_and_GL_specs.xlsx

ORG_CD

ORG_NM

ORG_CD

ORG_NM

ORG_CD

ORG_NM

ORG_CD

ORG_NM

ORG_CD

ORG_NM

ORG_CD

ORG_NMORG_CD

The highest org unit with an org type of L to which this unit reports. The ORG_ROLLUP_UNIV_CD if there is no such unit.

The name associated with the code.

The highest org unit with an org type of E to which this unit reports. The ORG_ROLLUP_CAMPUS_CD if there is no such unit.

The name associated with the code.

The highest org unit with an org type of V to which this unit reports. The ORG_ROLLUP_EXECUTIVE_CD if there is no such unit.

The name associated with the code.

The highest org unit with an org type of P to which this unit reports. The ORG_ROLLUP_VP_CD if there is no such unit.

The name associated with the code.

The highest org unit with an org type of C to which this unit reports. The ORG_ROLLUP_SUPER_COLLEGE_CD if there is no such unit.

The name associated with the code.

The highest org unit with an org type of O or N to which this unit reports. The ORG_ROLLUP_COLLEGE_CD if there is no such unit.

The name associated with the code.

Page 209: Arizona_CA_and_GL_specs.xlsx

ORG_NMORG_CD

ORG_NMORG_CD

ORG_NM

ORG_CD

ORG_NM

ORG_CD

ORG_NM

ORG_CD

ORG_NM

ORG_CD

ORG_NM

Same as ORG_ROLLUP_UNIV_CD but a Type 2 SCD attribute.

This set of drill downs allows you to see assign facts (e.g. transaction amounts) to the rollups that existed at the time the fact was created. For example, if a department moved colleges, this would allow you to see their transactions in the college they were in at the time that transacation were made.

The name associated with the code.

Same as ORG_ROLLUP_CAMPUS_CD but a Type 2 SCD attribute.

The name associated with the code.

Same as ORG_ROLLUP_EXECUTIVE_CD but a Type 2 SCD attribute.

The name associated with the code.

Same as ORG_ROLLUP_VP_CD but a Type 2 SCD attribute.

The name associated with the code.

Page 210: Arizona_CA_and_GL_specs.xlsx

ORG_CD

ORG_NM

ORG_CD

ORG_NM

ORG_CD

ORG_NM

ORG_CD

ORG_NM

ORG_CD

ORG_NM

ORG_CD

ORG_NM

ORG_CD

ORG_NM

ORG_CD

Same as ORG_ROLLUP_SUPER_COLLEGE_CD but a Type 2 SCD attribute.

The name associated with the code.

Same as ORG_ROLLUP_COLLEGE_CD but a Type 2 SCD attribute.

The name associated with the code.

Same as ORG_ROLLUP_DEPT_CD but a Type 2 SCD attribute.

The name associated with the code.

Org code for roots of the org tree

This set of drill-downs is meant for going down through all orgs in the hierarchy. This way duplicate levels (e.g. VPs who report to other VPs) can get their aggregates and drill to their sub-orgs.

Org name for roots of the org tree

Org code for first level under the root of the org three

Org name for first level under the root of the org three

Org code for next level of the org three

Org name for next level of the org three

Org code for next level of the org three

Org name for next level of the org three

Org code for next level of the org three

Page 211: Arizona_CA_and_GL_specs.xlsx

ORG_NM

ORG_CD

ORG_NM

ORG_CD

ORG_NM

ORG_CD

ORG_NM

ORG_CD

ORG_NM

ORG_CD

ORG_NM

ORG_CD

ORG_NM

ORG_CD

ORG_NM

ORG_CD

ORG_NM

ORG_CD

ORG_NM

ORG_CD

ORG_NM

ORG_CD

ORG_NM

Org name for next level of the org three

Org code for next level of the org three

Org name for next level of the org three

Org code for next level of the org three

Org name for next level of the org three

Org code for next level of the org three

Org name for next level of the org three

Org code for next level of the org three

Org name for next level of the org three

Org code for next level of the org three

Org name for next level of the org three

Org code for next level of the org three

Org name for next level of the org three

Org code for next level of the org three

Org name for next level of the org three

Org code for next level of the org three

Org name for next level of the org three

Org code for next level of the org three

Org name for next level of the org three

Org code for next level of the org three

Org name for next level of the org three

Org code for next level of the org three

Org name for next level of the org three

Page 212: Arizona_CA_and_GL_specs.xlsx

ORG_CD

ORG_NM

ORG_CD

ORG_NM

ORG_CD

ORG_NM

ORG_CD

ORG_NM

N/A

N/A

N/ASRC_SYS_ID N/A

N/A

N/AN/A Start time of ETL jobN/A Start time of ETL job

N/A

Org code for next level of the org three

Org name for next level of the org three

Org code for next level of the org three

Org name for next level of the org three

Org code for next level of the org three

Org name for next level of the org three

Org code for next level of the org three

Org name for next level of the org three

This is the max EFFDT_FROM value from all the tables joined to make this record.

This is the min EFFDT_TO value from all the tables joined to make this record.Y for initial value N for expire value

If an error occurs when creating this row (e.g. a lookup error) this is Y otherwise it is N

Passed as a variable to the ETL job. Should be E for EPM-sourced data and S for source-system-sourced data.

Batch ID of highest level ETL job that called this one.

Page 213: Arizona_CA_and_GL_specs.xlsx

Doing type 1 because that is what people appear to care about the most

Page 214: Arizona_CA_and_GL_specs.xlsx

This is a bridge table to allow rollup to any org, not just the ones that show up as levels in the flattened tree-structure in KF_D_ORG.

Page 215: Arizona_CA_and_GL_specs.xlsx

This is a bridge table to allow rollup to any org, not just the ones that show up as levels in the flattened tree-structure in KF_D_ORG.

Page 216: Arizona_CA_and_GL_specs.xlsx

Driving Table: KF_H_CA_PROJECTDriving Table Filter: noneDriving Table Aggregation: noneGrain: project

NameDescription

PROJECT_SIDPROJECT_CDPROJECT_SDPROJECT_ACTIVE_FLGPROJECT_LDPROJECT_MANAGER_IDPROJECT_MANAGER_USER_IDPROJECT_MANAGER_NMPROJECT_MANAGER_DEPT_CDCHART_CDCHART_LDORGANIZATION_CDORGANIZATION_NM

EFF_START_DT

EFF_END_DT

CURRENT_IND

SRC_SYS_ID

LOAD_ERROR

DATA_ORIGIN

CREATED_EW_DTTMLASTUPD_EW_DTTM

BATCH_SID

* all lookup conditions also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <current>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <current>.EFFDT_TO >= <lookup table>.EFFDT_FROM"

Page 217: Arizona_CA_and_GL_specs.xlsx

* all lookup conditons return NULLs when lookup fails (aka outer-join logic)* all lookup conditions allow multiple rows to be returned from lookup

Page 218: Arizona_CA_and_GL_specs.xlsx

Data Type Replace NULL With Constraints SCD Function

NUMBER(10,0) 2147483646 NOT NULL Surrogagte KeyVARCHAR2(10 BYTE) - NOT NULL Business KeyVARCHAR2(40 BYTE) - NOT NULL Type IVARCHAR2(1 BYTE) - NOT NULL Type IIVARCHAR2(400 BYTE) - NOT NULL Type IVARCHAR2(10 BYTE) - NOT NULL Type IVARCHAR2(32) - NOT NULL Type IVARCHAR2(80) - NOT NULL Type IVARCHAR2(10) - NOT NULL Type IVARCHAR2(2 BYTE) - NOT NULL Type IIVARCHAR2(40 BYTE) - NOT NULL Type IVARCHAR2(4 BYTE) - NOT NULL Type IIVARCHAR2(40 BYTE) - NOT NULL Type I

DATE

01-JAN-1753 00:00:00

NOT NULL

Effective Date

DATE

31-DEC-9999 23:59:59

NOT NULL

Expiration Date

CHAR(1) Y NOT NULL Effective Flag

VARCHAR2(5 BYTE) KFS NOT NULL Business Key

VARCHAR2(1 BYTE) N NOT NULL

NA

VARCHAR2(1 BYTE) E NOT NULL

NADATE Start time of ETL job NOT NULL NADATE Start time of ETL job NOT NULL NA

NUMBER(10,0)Start time of ETL job

NOT NULLNA

* all lookup conditions also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <current>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <current>.EFFDT_TO >= <lookup table>.EFFDT_FROM"

Page 219: Arizona_CA_and_GL_specs.xlsx

Source Type Source Table Source Column

Generated N/A N/ACopy KF_H_CA_PROJECT AL1 PROJECT_CDCopy KF_H_CA_PROJECT AL1 PROJECT_NMCopy KF_H_CA_PROJECT AL1 PROJ_ACTIVE_CDCopy KF_H_CA_PROJECT AL1 PROJECT_DESCCopy KF_H_CA_PROJECT AL1 PROJ_MGR_UNVL_IDTransform KF_H_KRIM_PRNCPL AL70 PRNCPL_NMCopy KF_H_KRIM_ENTITY_NM AL71 FIRST_NMCopy KF_H_KRIM_ENTITY_EMP_INFO AL72PRMRY_DEPT_CDCopy KF_H_CA_PROJECT AL1 FIN_COA_CDCopy KF_H_CA_CHART AL2 FIN_COA_DESCCopy KF_H_CA_PROJECT AL1 ORG_CDCopy KF_H_CA_ORG AL3 ORG_NM

Transform Multiple Multiple

Transform Multiple Multiple

Generated N/A N/A

Copy KF_H_CA_PROJECT AL1 SRC_SYS_ID

Generated N/A N/A

Generated

N/A

N/A

Generated N/A N/AGenerated N/A N/A

GeneratedN/A N/A

* all lookup conditions also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <current>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <current>.EFFDT_TO >= <lookup table>.EFFDT_FROM"

Page 220: Arizona_CA_and_GL_specs.xlsx

Lookup Logic* Transform Logic

NAN/A N/AN/A N/AN/A N/AN/A N/AN/A N/AAL1.PROJ_MGR_UNVL_ID = AL70.PRNCPL_IDupper(AL70.PRNCPL_NM)AL70.ENTITY_ID = AL71.ENTITY_ID N/AAL70.ENTITY_ID = AL72.ENTITY_ID N/AN/A N/AAL1.FIN_COA_CD = AL2.FIN_COA_CD N/AN/A N/AAL1.ORG_CD = AL3.ORG_CD N/A

N/A

N/A

N/A

N/A N/A

N/A

N/AN/A Start time of ETL jobN/A Start time of ETL job

N/A

Surrogate key generator starting at 1

This is the max EFFDT_FROM value from all the tables joined to make this record.

This is the min EFFDT_TO value from all the tables joined to make this record.Y for initial value N for expire value

If an error occurs when creating this row (e.g. a lookup error) this is Y otherwise it is N

Passed as a variable to the ETL job. Should be E for EPM-sourced data and S for source-system-sourced data.

Batch ID of highest level ETL job that called this one.

Page 221: Arizona_CA_and_GL_specs.xlsx

Purpose Comment

Currently need to hard-code in SCD stage to intiial value to the Replace Nulls With value due to DataStage limitation.

Page 222: Arizona_CA_and_GL_specs.xlsx

Name DescriptionData Type

next rows are SIDs to dimension tables

ACCOUNT_SID

NUMBER(10,0)

OBJECT_CODE_SID

NUMBER(10,0)

PROJECT_SID

NUMBER(10,0)

BALANCE_TYPE_SID

NUMBER(10,0)

Driving Tables: KF_GL_ENTRY and KF_GL_PENDING_ENTRY

Driving Table Filter: Filter KF_GL_PENDING_ENTRY to only include transactions on documents with Doc Status in (A (approved), F (final), I (initiated), P (processed), R (enroute))Driving Table Aggregation: None

Loading Strategy: For KF_GL_ENTRY: load incrementally by taking rows with TRN_POST_DT greater than the last run date of this job.For KF_GL_PENDING_ENTRY: destructively load by truncating the Oracle partition that holds pending transactions and taking all the unexpired rows

Grain: Actualized or pending transactions, same as row grain in driving tables

Page 223: Arizona_CA_and_GL_specs.xlsx

FISCAL_PERIOD_SID

NUMBER(10,0)

DOCUMENT_TYPE_SID

NUMBER(10,0)

ORIGIN_SID

NUMBER(10,0)

ACCOUNT_ORG_SID

NUMBER(10,0)

LEDGER_POST_DT_SIDNUMBER(10)

LEDGER_TRANSACTION_DT_SID NUMBER(10,0)LEDGER_DOC_REVERSAL_DT_SID NUMBER(10,0)ACCOUNT_STATISTICS_SID NUMBER(10,0)next rows are codes used for looking up the SIDs

FISCAL_YEARNUMBER(4,0)

CHART_CD

ACCOUNT_NBR

SUB_ACCOUNT_NBR

OBJECT_CDVARCHAR2(4)

SUB_OBJECT_CD

PROJECT_CDVARCHAR2(10)

VARCHAR2(2BYTE)

VARCHAR2(7BYTE)

VARCHAR2(5BYTE)

VARCHAR2(3BYTE)

Page 224: Arizona_CA_and_GL_specs.xlsx

BALANCE_TYPE_CD

OBJECT_TYPE_CD

FISCAL_PERIOD_CD

DOCUMENT_TYPE_CD

ORIGIN_CD

LEDGER_POST_DTDATE

LEDGER_TRANSACTION_DT DATELEDGER_DOC_REVERSAL_DT DATEnext rows are degenerate dimensions

LEDGER_ENTRY_SEQUENCE_NBRNUMBER(5)

DOCUMENT_NBRVARCHAR2(14)

LEDGER_ORG_DOCUMENT_NBR VARCHAR2(10)

LEDGER_ORG_REFERENCE_IDVARCHAR2(8)

LEDGER_DOCUMENT_REF_TYPE_CDVARCHAR2(4)

LEDGER_REFERENCE_ORIGIN_CDVARCHAR2(2)

LEDGER_DOC_REFERENCE_NBRVARCHAR2(14)

LEDGER_ENCUMBRANCE_UPDATE_CD VARCHAR2(1)

LEDGER_ENTRY_LDVARCHAR2(40)

VARCHAR2(2BYTE)

VARCHAR2(2BYTE)

VARCHAR2(2BYTE)

VARCHAR2(4BYTE)

VARCHAR2(2BYTE)

Page 225: Arizona_CA_and_GL_specs.xlsx

LEDGER_DEBIT_CREDIT_CDVARCHAR2(1)

LEDGER_ENTRY_TIMESTAMPDATE

LEDGER_TRANSACTION_TYPE_CD_UA

VARCHAR2(1)

LEDGER_PENDING_FLG_UAVARCHAR2(1)

LEDGER_AMT_0_100_FLG_UAVARCHAR2(1)

LEDGER_AMT_P100_500_FLG_UAVARCHAR2(1)

LEDGER_AMT_P500_1000_FLG_UAVARCHAR2(1)

LEDGER_AMT_P1000_5000_FLG_UAVARCHAR2(1)

LEDGER_AMT_P5000_FLG_UAVARCHAR2(1)

next rows are facts

LEDGER_ENTRY_AMTNUMBER(19,2)

LEDGER_BASE_BUDGET_AMT_UA

NUMBER(19,2)

LEDGER_CURRENT_BUDGET_AMT_UA

NUMBER(19,2)

Page 226: Arizona_CA_and_GL_specs.xlsx

LEDGER_MONTH_BUDGET_AMT_UA

NUMBER(19,2)

LEDGER_BUDGET_REVERSION_AMT_UA

NUMBER(19,2)

LEDGER_ENCUMBRANCE_AMT_UA

NUMBER(19,2)

LEDGER_ACTUALS_AMT_UA

NUMBER(19,2)

LEDGER_NOMINAL_BALANCE_AMT_UA

NUMBER(19,2)

LEDGER_ONE_PER_ROW_CNT_UA NUMBER(10,0)next rows are audit columns

SRC_SYS_ID VARCHAR2(5)LOAD_ERROR VARCHAR2(1)

DATA_ORIGINVARCHAR2(1)

CREATED_EW_DTTMDATE

LASTUPD_EW_DTTMDATE

BATCH_SID NUMBER(10)

Page 227: Arizona_CA_and_GL_specs.xlsx

Constraints Column Type Source Type Source Table

High value SID not null, fk Surrogate Key Copy KF_D_ACCOUNT

High value SID not null, fk Surrogate Key Copy KF_D_OBJECT_CODE

High value SID not null, fk Surrogate Key Copy KF_D_PROJECT

High value SID not null, fk Surrogate Key Copy KF_D_BALANCE_TYPE

Replace NULL With

Page 228: Arizona_CA_and_GL_specs.xlsx

High value SID not null, fk Surrogate Key Copy KF_D_FISCAL_PERIOD

High value SID not null, fk Surrogate Key Copy KF_D_DOC_TYPE

High value SID not null, fk Surrogate Key Copy KF_D_ORIGIN

High value SID not null, fk Surrogate Key Copy KF_D_ORG

High value SID not null, fk Surrogate Key Copy UA_D_DAYHigh value SID not null, fk Surrogate Key Copy UA_D_DAYHigh value SID not null, fk Surrogate Key Copy UA_D_DAYHigh value SID not null, fk Surrogate Key Copy KF_D_ACCOUNT_STATISTIC

0 not null Business key Copy

- not null Business key Copy

- not null Business key Copy

- not null Business key Copy

- not null Business key Copy

- not null Business key Copy

- not null Business key Copy

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

Page 229: Arizona_CA_and_GL_specs.xlsx

- not null Business key Copy

- not null Business key Copy

- not null Business key Copy

- not null Business key Copy

- not null Business key Copy

31-Dec-99 not null Business key Copy31-Dec-99 not null Business key Copy31-Dec-99 not null Business key Copy

0 not null Business key Copy

- not null Business key Copy

- not null Copy

- N/A Copy

- N/A Copy

- N/A Copy

- N/A Copy- not null Copy

- not null Copy

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

KF_GL_ENTRY, KF_GL_PENDING_ENTRYKF_GL_ENTRY, KF_GL_PENDING_ENTRYKF_GL_ENTRY, KF_GL_PENDING_ENTRY

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

Degenerate Dimension

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

Degenerate Dimension

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

Degenerate Dimension

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

Degenerate Dimension

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

Degenerate Dimension

KF_GL_ENTRY, KF_GL_PENDING_ENTRYDegenerate

DimensionKF_GL_ENTRY, KF_GL_PENDING_ENTRY

Degenerate Dimension

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

Page 230: Arizona_CA_and_GL_specs.xlsx

- not null Copy

31-Dec-99 not null Copy

- not null Transform

- not null Generated N/A

- not null Transform

- not null Transform

- not null Transform

- not null Transform

- not null Transform

N/A N/A Measure Copy

N/A N/A Measure Transform

N/A N/A Measure Transform

Degenerate Dimension

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

Degenerate Dimension

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

Degenerate Dimension

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

Degenerate Dimension

Degenerate Dimension

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

Degenerate Dimension

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

Degenerate Dimension

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

Degenerate Dimension

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

Degenerate Dimension

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

Page 231: Arizona_CA_and_GL_specs.xlsx

N/A N/A Measure Transform

N/A N/A Measure Transform

N/A N/A Measure Transform

N/A N/A Measure Transform

N/A N/A Measure TransformN/A N/A Measure Generated N/A

- not null Audit Copy- not null Audit Generated N/A

'E' not null Audit Generated N/A

not null Audit Generated N/A

not null Audit Generated N/A0 not null Audit Generated N/A

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

KF_GL_ENTRY, KF_GL_PENDING_ENTRY

Start time of ETL job

Start time of ETL job

Page 232: Arizona_CA_and_GL_specs.xlsx

Source Column

ACCOUNT_SID

OBJECT_SID

PROJECT_SID

BALANCE_TYPE_SID

Page 233: Arizona_CA_and_GL_specs.xlsx

FPERIOD_SID

DOC_TYPE_SID

ORIGIN_SID

ORG_SID

DAY_SIDDAY_SIDDAY_SIDACCOUNT_STATISTICS_SID

UNIV_FISCAL_YR

FIN_COA_CD

ACCOUNT_NBR

SUB_ACCT_NBR

FIN_OBJECT_CD

FIN_SUB_OBJ_CD

PROJECT_CD

Page 234: Arizona_CA_and_GL_specs.xlsx

FIN_BALANCE_TYP_CD

FIN_OBJ_TYP_CD

UNIV_FISCAL_PRD_CD

FDOC_TYP_CD

FS_ORIGIN_CD

TRN_POST_DTTRANSACTION_DTFDOC_REVERSAL_DT

TRN_ENTR_SEQ_NBR

FDOC_NBR

ORG_DOC_NBR

ORG_REFERENCE_ID,

FDOC_REF_TYP_CD,

FS_REF_ORIGIN_CD,

FDOC_REF_NBR,TRN_ENCUM_UPDT_CD,

TRN_LDGR_ENTR_DESC

Page 235: Arizona_CA_and_GL_specs.xlsx

TRN_DEBIT_CRDT_CD

TRUNC(SYSDATE)

fin_balance_typ_cd

N/A

TRN_LDGR_ENTR_AMT

TRN_LDGR_ENTR_AMT

TRN_LDGR_ENTR_AMT

TRN_LDGR_ENTR_AMT

TRN_LDGR_ENTR_AMT

TRN_LDGR_ENTR_AMT

TRN_LDGR_ENTR_AMT

TRN_LDGR_ENTR_AMT

Page 236: Arizona_CA_and_GL_specs.xlsx

TRN_LDGR_ENTR_AMT

TRN_LDGR_ENTR_AMT

TRN_LDGR_ENTR_AMT

TRN_LDGR_ENTR_AMT

TRN_LDGR_ENTR_AMTN/A

SRC_SYS_IDN/A

N/A

N/A

N/AN/A

Page 237: Arizona_CA_and_GL_specs.xlsx

Lookup Logic

KF_D_ACCOUNT.CHART_CD=F.FIN_COA_CD ANDKF_D_ACCOUNT.ACCOUNT_NBR=F.ACCOUNT_NBR ANDKF_D_ACCOUNT.SUB_ACCOUNT_NBR=(IF F.SUB_ACCOUNT_NBR = '-----' THEN '-' ELSE F.SUB_ACCOUNT_NBR) ANDFor KF_GL_ENTRY: F.TRN_POST_DT BETWEEN KF_D_ACCOUNT.EFF_START_DT AND KF_D_ACCOUNT.EFF_END_DATEFor KF_GL_PENDING_ENTRY: F.TRANSACTION_DT BETWEEN KF_D_ACCOUNT.EFF_START_DT AND KF_D_ACCOUNT.EFF_END_DATE

KF_D_OBJECT_CODE.FISCAL_YEAR=F.UNIV_FISCAL_YR ANDKF_D_OBJECT_CODE.CHART_CD=F.FIN_COA_CD ANDKF_D_OBJECT_CODE.OBJECT_CD=F.FIN_OBJECT_CD ANDKF_D_OBJECT_CODE.SUB_OBJECT_CD=(IF F.FIN_SUB_OBJ_CD = '---' THEN '-' ELSE F.FIN_SUB_OBJ_CD) ANDKF_D_OBJECT_CODE.SUB_OBJECT_ACCOUNT_NBR=(IF F.FIN_SUB_OBJ_CD = '---' THEN '-' ELSE F.ACCOUNT_NBR) ANDFor KF_GL_ENTRY: F.TRN_POST_DT BETWEEN KF_D_OBJECT_CODE.EFF_START_DT AND KF_D_OBJECT_CODE.EFF_END_DATEFor KF_GL_PENDING_ENTRY: F.TRANSACTION_DT BETWEEN KF_D_OBJECT_CODE.EFF_START_DT AND KF_D_OBJECT_CODE.EFF_END_DATE

KF_D_PROJECT.PROJECT_CD=F.PROJECT_CD ANDKF_D_PROJECT.SRC_SYS_ID=F.SRC_SYS_ID ANDFor KF_GL_ENTRY: F.TRN_POST_DT BETWEEN KF_D_PROJECT.EFF_START_DT AND KF_D_PROJECT.EFF_END_DATEFor KF_GL_PENDING_ENTRY: F.TRANSACTION_DT BETWEEN KF_D_PROJECT.EFF_START_DT AND KF_D_PROJECT.EFF_END_DATE

KF_D_BALANCE_TYPE.BALANCE_TYPE_CD=F.FIN_BALANCE_TYP_CD ANDKF_D_BALANCE_TYPE.SRC_SYS_ID=F.SRC_SYS_ID ANDFor KF_GL_ENTRY: F.TRN_POST_DT BETWEEN KF_D_BALANCE_TYPE.EFF_START_DT AND KF_D_BALANCE_TYPE.EFF_END_DATEFor KF_GL_PENDING_ENTRY: F.TRANSACTION_DT BETWEEN KF_D_BALANCE_TYPE.EFF_START_DT AND KF_D_BALANCE_TYPE.EFF_END_DATE

Page 238: Arizona_CA_and_GL_specs.xlsx

UA_D_DAY.DAY_DT = F.TRANSACTION_DTUA_D_DAY.DAY_DT = F.FDOC_REVERSAL_DT

ACCOUNT_STATISTICS_SID

N/A

N/A

N/A

N/A

N/A

N/A

N/A

KF_D_FISCAL_PERIOD.FISCAL_YEAR=F.UNIV_FISCAL_YR ANDKF_D_FISCAL_PERIOD.FPERIOD_YEAR_NBR=F.UNIV_FISCAL_PRD_CD ANDKF_D_FISCAL_PERIOD.SRC_SYS_ID=F.SRC_SYS_ID ANDFor KF_GL_ENTRY: F.TRN_POST_DT BETWEEN KF_D_FISCAL_PERIOD.EFF_START_DT AND KF_D_FISCAL_PERIOD.EFF_END_DATEFor KF_GL_PENDING_ENTRY: F.TRANSACTION_DT BETWEEN KF_D_FISCAL_PERIOD.EFF_START_DT AND KF_D_FISCAL_PERIOD.EFF_END_DATE

KF_D_DOC_TYPE.DOC_TYPE_CD=F.FDOC_TYP_CD ANDKF_D_DOC_TYPE.SRC_SYS_ID=F.SRC_SYS_ID ANDFor KF_GL_ENTRY: F.TRN_POST_DT BETWEEN KF_D_DOC_TYPE.EFF_START_DT AND KF_D_DOC_TYPE.EFF_END_DATEFor KF_GL_PENDING_ENTRY: F.TRANSACTION_DT BETWEEN KF_D_DOC_TYPE.EFF_START_DT AND KF_D_DOC_TYPE.EFF_END_DATE

KF_D_ORIGIN.ORIGIN_CD=F.FS_ORIGIN_CD ANDKF_D_ORIGIN.SRC_SYS_ID=F.SRC_SYS_ID ANDFor KF_GL_ENTRY: F.TRN_POST_DT BETWEEN KF_D_ORIGIN.EFF_START_DT AND KF_D_ORIGIN.EFF_END_DATEFor KF_GL_PENDING_ENTRY: F.TRANSACTION_DT BETWEEN KF_D_ORIGIN.EFF_START_DT AND KF_D_ORIGIN.EFF_END_DATE

KF_D_ORG.CHART_CD = KF_D_ACCOUNT.CHART_CDAND KF_D_ORG.ORG_CD = KF_D_ACCOUNT.ACCOUNT_ORGANIZATION_CDFor KF_GL_ENTRY: F.TRN_POST_DT BETWEEN KF_D_ORG.EFF_START_DT AND KF_D_ORG.EFF_END_DATEFor KF_GL_PENDING_ENTRY: F.TRANSACTION_DT BETWEEN KF_D_ORG.EFF_START_DT AND KF_D_ORG.EFF_END_DATE

For KF_GL_ENTRY: UA_D_DAY.DAY_DT = F.TRN_POST_DTFor KF_GL_PENDING_ENTRY: High value SID

Page 239: Arizona_CA_and_GL_specs.xlsx

N/A

N/A

N/A

N/A

N/A

N/AN/AN/A

N/A

N/A

N/A

N/A

N/A

N/A

N/AN/A

N/A

Page 240: Arizona_CA_and_GL_specs.xlsx

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

Page 241: Arizona_CA_and_GL_specs.xlsx

N/A

N/A

N/A

N/A

N/AN/A

N/AN/A

N/A

N/A

N/AN/A

Page 242: Arizona_CA_and_GL_specs.xlsx

Transform Logic

N/A

N/A

N/A

N/A

Page 243: Arizona_CA_and_GL_specs.xlsx

N/A

N/A

N/A

N/A

NAN/AN/AN/A

N/A

N/A

N/A

DECODE (SUB_ACCT_NBR,'-----','-',SUB_ACCT_NBR)

N/A

DECODE (FIN_SUB_OBJ_CD,'---','-',FIN_SUB_OBJ_CD)

DECODE (PROJECT_CD,'----------','-',PROJECT_CD)

Page 244: Arizona_CA_and_GL_specs.xlsx

N/A

N/A

N/A

N/A

N/A

N/AN/AN/A

N/A

N/A

N/A

N/A

N/A

N/A

N/AN/A

N/A

Page 245: Arizona_CA_and_GL_specs.xlsx

N/A

N/A

N if row comes from KF_GL_ENTRY and Y if it comes from KF_GL_PENDING_ENTRY

N/A

CASE WHEN fin_balance_typ_cd in ('MB','BB','CB')then 'B'WHEN fin_balance_typ_cd = 'AC'then 'A'WHEN KF_D_BALANCE_TYPE.BALANCE_TYPE_ENCUMBRANCE_FLG = 'Y'then 'E'ELSE'X'END

CASE WHEN ABS(TRN_LDGR_ENTR_AMT) <= 100then 'Y' else 'N' end

CASE WHEN ABS(TRN_LDGR_ENTR_AMT) > 100 AND ABS(TRN_LDGR_ENTR_AMT) <= 500then 'Y' else 'N' end

CASE WHEN ABS(TRN_LDGR_ENTR_AMT) > 500 AND ABS(TRN_LDGR_ENTR_AMT) <= 1000then 'Y' else 'N' end

CASE WHEN ABS(TRN_LDGR_ENTR_AMT) > 1000 AND ABS(TRN_LDGR_ENTR_AMT) <= 5000then 'Y' else 'N' end

CASE WHEN ABS(TRN_LDGR_ENTR_AMT) > 5000then 'Y' else 'N' end

CASE WHEN fin_balance_typ_cd = 'BB' then TRN_LDGR_ENTR_AMT else null END

CASE WHEN fin_balance_typ_cd = 'CB' then TRN_LDGR_ENTR_AMTELSE NULLEND

Page 246: Arizona_CA_and_GL_specs.xlsx

'1'

N/AIf an error occurs when creating this row (e.g. a lookup error) this is Y otherwise it is N

Start time of ETL job

Start time of ETL jobBatch ID of highest level ETL job that called this one.

CASE WHEN fin_balance_typ_cd = 'MB' then TRN_LDGR_ENTR_AMTELSE NULLEND

CASE WHEN fin_balance_typ_cd = 'RE' then TRN_LDGR_ENTR_AMTELSE NULLEND

CASE WHEN KF_D_BALANCE_TYPE.BALANCE_TYPE_ENCUMBRANCE_FLG = 'Y' AND F.TRN_DEBIT_CRDT_CD <> 'D'then (-1 * F.TRN_LDGR_ENTR_AMT)WHEN KF_D_BALANCE_TYPE.BALANCE_TYPE_ENCUMBRANCE_FLG = 'Y AND F.TRN_DEBIT_CRDT_CD = 'D'then F.TRN_LDGR_ENTR_AMT ELSE NULLEND

CASE WHEN fin_balance_typ_cd = 'AC' AND TRN_DEBIT_CRDT_CD <> 'D'then (-1 * TRN_LDGR_ENTR_AMT)WHEN fin_balance_typ_cd = 'AC' AND TRN_DEBIT_CRDT_CD = 'D'then TRN_LDGR_ENTR_AMTELSE NullEND

CASE WHEN fin_balance_typ_cd = 'NB' AND TRN_DEBIT_CRDT_CD <> 'D'then (-1 * TRN_LDGR_ENTR_AMT)WHEN fin_balance_typ_cd = 'NB' AND TRN_DEBIT_CRDT_CD = 'D'then TRN_LDGR_ENTR_AMTELSE NullEND

Passed as a variable to the ETL job. Should be E for EPM-sourced data and S for source-system-sourced data.

Page 247: Arizona_CA_and_GL_specs.xlsx

Purpose Comment

Page 248: Arizona_CA_and_GL_specs.xlsx

CASE WHEN fin_balance_typ_cd in ('AB','BB','CB')then 'B'WHEN fin_balance_typ_cd = 'AC'then 'A'ELSE'E'END

Page 249: Arizona_CA_and_GL_specs.xlsx

Name

the next rows are SIDs to dimension tables

FISCAL_PERIOD_SID

ACCOUNT_SID

OBJECT_CODE_SID

PROJECT_SID

ACCOUNT_ORG_SID

ACCOUNT_STATISTICS_SIDthe next rows are the values used for looking up the SIDs FISCAL_YEAR FISCAL_PERIOD_CD CHART_CD ACCOUNT_NBR SUB_ACCOUNT_NBR OBJECT_CD SUB_OBJECT_CD PROJECT_CD

Driving Table: KF_F_LEDGER_ENTRYDriving Table Filter: None

Driving Table Aggregation: FISCAL_PERIOD_SID, ACCOUNT_SID, OBJECT_CODE_SID, PROJECT_SID, ACCOUNT_ORG_SID, ACCOUNT_STATISTICS_SID, LAST_DAY_OF_POSTING_MONTH, LEDGER_PENDING_FLG_UA, SRC_SYS_ID

Grain: fiscal year, fiscal period, account, sub-account, object code, sub-object code, project, pending flag and transaction posting month. Note, however, that the second and third sets of measures have a coarser grain.

Loading Strategy: Do this initially with a destructve load to see how slow it is. We will have to change it to incremental at some point, probably right away.

Notes: ACCTACT_ contains change in fiscal period, ACCTCUM_ contains cumulative changes in fiscal year, ACCTBAL_ contains beginning balance plus cumulative changes in fiscal yearNote: exclude all rows in RED

Page 250: Arizona_CA_and_GL_specs.xlsx

the next rows are degenerate dimensions

ACCTACT_LAST_DAY_POST_MONTH_UA

ACCTACT_LAST_TRANS_DT_UA

ACCTACT_LAST_DOC_NBR_UA

ACCTACT_MINIMUM_AMT_UA ACCTACT_MAXIMUM_AMT_UA

ACCTACT_MEAN_AMT_UA

ACCTACT_MEDIAN_AMT_UA

ACCTACT_STANDARD_DEV_AMT_UA

ACCTCUM_MINIMUM_AMT_UA

ACCTCUM_MAXIMUM_AMT_UA

ACCTACT_PENDING_FLG_UA

Page 251: Arizona_CA_and_GL_specs.xlsx

ACCTCUM_MEAN_AMT_UA

ACCTCUM_MEDIAN_AMT_UA

ACCTCUM_STANDARD_DEV_AMT_UAthe next rows are measures of net fiscal period acivity

ACCTACT_BASE_BUDGET_AMT_UA

ACCTACT_CURRENT_BUDGET_AMT_UA

ACCT_MONTH_BUDGET_AMT_UA

ACCTACT_ACTUALS_AMT_UA

ACCTACT_ENCUMBRANCES_AMT_UA

ACCTACT_AVAILABLE_AMT_UA

ACCTACT_BEGIN_FUND_BAL_AMT_UA

ACCTACT_ACT_BB_BEG_BAL_AMT_UA

Page 252: Arizona_CA_and_GL_specs.xlsx

ACCTACT_BUD_BB_BEG_BAL_AMT_UA

ACCTACT_ACT_CB_BEG_BAL_AMT_UA

ACCTACT_ENCM_BB_BEG_BAL_AMT_UA

ACCTACT_ENCM_CB_BEG_BAL_AMT_UA

Page 253: Arizona_CA_and_GL_specs.xlsx

ACCTACT_BUD_CB_BEG_BAL_AMT_UA

ACCTACT_INCOME_ACT_AMT_UA

ACCTACT_EXPENSE_ACT_AMT_UA

ACCTACT_FUND_BAL_ACT_AMT_UA

ACCTACT_LIABILITY_ACT_AMT_UA

ACCTACT_ASSET_ACT_AMT_UA

ACCTACT_CASH_ACT_AMT_UA

ACCTACT_NON_CASH_ACT_AMT_UA

ACCTACT_PRESENT_BAL_AMT_UA

Page 254: Arizona_CA_and_GL_specs.xlsx

ACCTACT_1_STD_DEV_CNT_UA

ACCTACT_2_STD_DEV_CNT_UA

ACCTACT_3P_STD_DEV_CNT_UAthe next rows are measures of year-to-date net activity: these are like the previous measures but aggregate without FISCAL PERIOD (but with the fiscal year) and exclude rows with FISCAL_PERIOD_CD after the fiscal period for the current row or with FISCAL_PERIOD_CD in ( 'CB', 'BB', 'AB' ).

ACCTCUM_BASE_BUDGET_AMT_UA

ACCTCUM_CURRENT_BUDGET_AMT_UA

ACCTCUM_MONTH_BUDGET_AMT_UA

ACCTCUM_ACTUALS_AMT_UA

ACCTCUM_ENCUMBRANCES_AMT_UA

ACCTCUM_AVAILABLE_AMT_UA

ACCTCUM_BEGIN_FUND_BAL_AMT_UA

ACCTCUM_ACT_BB_BEG_BAL_AMT_UA

ACCTCUM_ACT_CB_BEG_BAL_AMT_UA

Page 255: Arizona_CA_and_GL_specs.xlsx

ACCTCUM_ENCM_BB_BEG_BAL_AMT_UA

ACCTCUM_ENCM_CB_BEG_BAL_AMT_UA

ACCTCUM_BUD_BB_BEG_BAL_AMT_UA

ACCTCUM_BUD_BB_BEG_BAL_AMT_UA

ACCTCUM_INCOME_ACT_AMT_UA

ACCTCUM_EXPENSE_ACT_AMT_UA

ACCTCUM_FUND_BAL_ACT_AMT_UA

ACCTCUM_LIABILIT_ACT_AMT_UA

Page 256: Arizona_CA_and_GL_specs.xlsx

ACCTCUM_ASSET_ACT_AMT_UA

ACCTCUM_CASH_ACT_AMT_UA

ACCTCUM_NON_CASH_ACT_AMT_UA

ACCTCUM_PRESENT_BAL_AMT_UA

ACCTCUM_1_STD_DEV_CNT_UA

ACCTCUM_2_STD_DEV_CNT_UA

ACCTCUM_3P_STD_DEV_CNT_UAthe next rows are measures of year-to-date net activity: these are like the previous measures but aggregate without the fiscal period (but with the fiscal year) instead and include all rows.

ACCTBAL_BASE_BUDGET_AMT_UA

ACCTBAL_CURRENT_BUDGET_AMT_UA

ACCTBAL_MONTH_BUDGET_AMT_UA

ACCTBAL_ACTUALS_AMT_UA

ACCTBAL_ENCUMBRANCES_AMT_UA

ACCTBAL_AVAILABLE_AMT_UA

Page 257: Arizona_CA_and_GL_specs.xlsx

ACCTBAL_BEGIN_FUND_BAL_AMT_UA

ACCTBAL_ACT_BB_BEG_BAL_AMT_UA

ACCTBAL_ACT_CB_BEG_BAL_AMT_UA

ACCTBAL_ENCM_BB_BEG_BAL_AMT_UA

ACCTBAL_ENCM_CB_BEG_BAL_AMT_UA

ACCTBAL_BUD_BB_BEG_BAL_AMT_UA

ACCTBAL_BUD_CB_BEG_BAL_AMT_UA

ACCTBAL_INCOME_ACT_AMT_UA

ACCTBAL_EXPENSE_ACT_AMT_UA

Page 258: Arizona_CA_and_GL_specs.xlsx

ACCTBAL_FUND_BAL_ACT_AMT_UA

ACCTBAL_LIABILITY_ACT_AMT_UA

ACCTBAL_ASSET_ACT_AMT_UA

ACCTBAL_CASH_ACT_AMT_UA

ACCTBAL_NON_CASH_ACT_AMT_UA

ACCTBAL_PRESENT_BAL_AMT_UAthe next rows are general measuresACCT_LAST_1_DAY_CNT_UAACCT_LAST_7_DAY_CNT_UAACCT_LAST_30_DAY_CNT_UAACCT_LAST_30P_DAY_CNT_UAACCT_ONE_PER_ROW_CNT_UAthe next rows are audit columns ACCTACT_TIMESTAMP_UA SRC_SYS_ID LOAD_ERROR

DATA_ORIGIN

CREATED_EW_DTTM

LASTUPD_EW_DTTM BATCH_SID

* Fiscal year hardcoded currently.

Page 259: Arizona_CA_and_GL_specs.xlsx

^ Run the job for periods BB, CB and then for periods 1 to 12 cumulatively.NOTE: ACCTCUM_ columns have exact same logic as ACCTBAL_ but won't include periods BB & CB in their cumulation (i.e. only periods 1 to 12)

Page 260: Arizona_CA_and_GL_specs.xlsx

Column Name Length DescriptionData Type

17 NUMBER(10,0) N/A

11 NUMBER(10,0) N/A

15 NUMBER(10,0) N/A

11 NUMBER(10,0) N/A

15 NUMBER(10,0) N/A

22 NUMBER(10,0) N/A

11 NUMBER(4,0) N/A16 VARCHAR2(2) N/A

8 VARCHAR2(2) N/A11 VARCHAR2(7) N/A15 VARCHAR2(5BYTN/A

9 VARCHAR2(16) N/A13 VARCHAR2(3BYTN/A10 VARCHAR2(10) N/A

Replace NULL With

I broke this out because it is probably more useful with the KF_F_LEDGER_ENTRIES table

Page 261: Arizona_CA_and_GL_specs.xlsx

30 DATE December 31, 189922 VARCHAR2(1) N/A24 DATE December 31, 1899

23 VARCHAR2(14) -

22 NUMBER(19,2) N/A22 NUMBER(19,2) N/A

19 NUMBER(19,2) N/A

21 NUMBER(19,2) N/A

27 NUMBER(19,2) N/A

22

NUMBER(19,2)

N/A

22

NUMBER(19,2)

N/A

Used for joining to month-end snapshots

Moved all these columns to the KF_D_ACCOUNT_STATISTICS table

The mean actual transaction amount (unsigned) for this month, account, object code, project and source system. Only counting posted transactions. Not counting adjustment transactions that are back-dated to this fiscal period (e.g. from auxillary voucher)

Minimum amount (unsigned) on an actuals transformation year-to-date, not including beginning balance.

Maximum amount (unsigned) on an actuals transformation year-to-date, not including beginning balance.

Page 262: Arizona_CA_and_GL_specs.xlsx

19

NUMBER(19,2)

N/A

21

NUMBER(19,2)

N/A

27

NUMBER(19,2)

N/A

26NUMBER(19,2)

N/A

29NUMBER(19,2)

N/A

24 NUMBER(19,2) N/A

22NUMBER(19,2)

N/A

27NUMBER(19,2)

N/A

24NUMBER(19,2)

N/A

29 NUMBER(19,2) N/A

29 NUMBER(19,2) N/A

Fund balance actuals transactions on BB and CB fiscal periods. For balance sheet type reports.

Actuals transactions on BB fiscal period. Primarily for income/expense type reports.

Page 263: Arizona_CA_and_GL_specs.xlsx

29 NUMBER(19,2) N/A

30 NUMBER(19,2) N/A

30 NUMBER(19,2) N/A

29 NUMBER(19,2) N/A

Actuals transactions on CB fiscal period. Primarily for income/expense type reports.

This is meaningless because it combines balance types BB, CB, and MB. Leave out until we figure out what we want?

Page 264: Arizona_CA_and_GL_specs.xlsx

29 NUMBER(19,2) N/A

25

NUMBER(19,2)

N/A

26

NUMBER(19,2)

N/A

27

NUMBER(19,2)

N/A

28

NUMBER(19,2)

N/A

24

NUMBER(19,2)

N/A

23

NUMBER(19,2)

N/A

27

NUMBER(19,2)

N/A

26NUMBER(19,2)

N/A

This is meaningless because it combines balance types BB, CB, and MB. Leave out until we figure out what we want?

Is this right??? What about fund balance adjustment transactions?

Page 265: Arizona_CA_and_GL_specs.xlsx

24 NUMBER(10,0) N/A

24 NUMBER(10,0) N/A

25 NUMBER(10,0) N/Athe next rows are measures of year-to-date net activity: these are like the previous measures but aggregate without FISCAL PERIOD (but with the fiscal year) and exclude rows with FISCAL_PERIOD_CD after the fiscal period for the current row or with FISCAL_PERIOD_CD in ( 'CB', 'BB', 'AB' ).

26NUMBER(19,2)

N/A

29NUMBER(19,2)

N/A

27 NUMBER(19,2) N/A

22NUMBER(19,2)

N/A

27NUMBER(19,2)

N/A

24NUMBER(19,2)

N/A

29

NUMBER(19,2)

N/A

29

NUMBER(19,2)

N/A

29

NUMBER(19,2)

N/A

Number of actuals transactions in the fiscal period within one standard deviation of the mean for this account and object code for the fiscal period

Number of actuals transactions in the fiscal period more than one but less than three standard deviations from the mean for this account and object code for the fiscal period

Number of actuals transactions in the fiscal period three standard deviations or more from the mean for this account and object code for the fiscal period

Page 266: Arizona_CA_and_GL_specs.xlsx

30

NUMBER(19,2)

N/A

30

NUMBER(19,2)

N/A

29

NUMBER(19,2)

N/A

29

NUMBER(19,2)

N/A

25

NUMBER(19,2)

N/A

26

NUMBER(19,2)

N/A

27

NUMBER(19,2)

N/A

27

NUMBER(19,2)

N/A

This is meaningless because it combines balance types BB, CB, and MB. What do we want?

This is meaningless because it combines balance types BB, CB, and MB. What do we want?

Page 267: Arizona_CA_and_GL_specs.xlsx

24

NUMBER(19,2)

N/A

23

NUMBER(19,2)

N/A

27

NUMBER(19,2)

N/A

26 Is this right???NUMBER(19,2)

N/A

24

NUMBER(10,0)

N/A

24

NUMBER(10,0)

N/A

25

NUMBER(10,0)

N/Athe next rows are measures of year-to-date net activity: these are like the previous measures but aggregate without the fiscal period (but with the fiscal year) instead and include all rows.

26NUMBER(19,2)

N/A

29NUMBER(19,2)

N/A

27 NUMBER(19,2) N/A

22NUMBER(19,2)

N/A

27NUMBER(19,2)

N/A

24NUMBER(19,2)

N/A

Page 268: Arizona_CA_and_GL_specs.xlsx

29

NUMBER(19,2)

N/A

29

NUMBER(19,2)

N/A

29

NUMBER(19,2)

N/A

30

NUMBER(19,2)

N/A

30

NUMBER(19,2)

N/A

29

NUMBER(19,2)

N/A

29

NUMBER(19,2)

N/A

25

NUMBER(19,2)

N/A

26

NUMBER(19,2)

N/A

This is meaningless because it combines balance types BB, CB, and MB. What do we want?

This is meaningless because it combines balance types BB, CB, and MB. What do we want?

Page 269: Arizona_CA_and_GL_specs.xlsx

27

NUMBER(19,2)

N/A

28

NUMBER(19,2)

N/A

24

NUMBER(19,2)

N/A

23

NUMBER(19,2)

N/A

27

NUMBER(19,2)

N/A

26NUMBER(19,2)

N/A

22 NUMBER(10,0) 022 NUMBER(10,0) 023 NUMBER(10,0) 024 NUMBER(10,0) 023 NUMBER(10,0) 0

20 Not sure what this is for. DATE December 31, 189910 VARCHAR2(5) 'KFS' 10 VARCHAR2(1) 'N'

11VARCHAR2(1),

'E'

15DATE

Start time of ETL job

15DATE

Start time of ETL job9 NUMBER(10) 0

Page 270: Arizona_CA_and_GL_specs.xlsx

NOTE: ACCTCUM_ columns have exact same logic as ACCTBAL_ but won't include periods BB & CB in their cumulation (i.e. only periods 1 to 12)

Page 271: Arizona_CA_and_GL_specs.xlsx

Constraints Column Type Source Type Source Table

Surrogate Key Copy KF_F_LEDGER_ENTRY

Surrogate Key Copy KF_F_LEDGER_ENTRY

Surrogate Key Copy KF_F_LEDGER_ENTRY

Surrogate Key Copy KF_F_LEDGER_ENTRY

Surrogate Key Copy KF_F_LEDGER_ENTRY

Surrogate Key Copy KF_F_LEDGER_ENTRY

not null Business key Copy KF_F_LEDGER_ENTRYnot null Business key Copy KF_F_LEDGER_ENTRYnot null Business key Copy KF_F_LEDGER_ENTRYnot null Business key Copy KF_F_LEDGER_ENTRYnot null Business key Copy KF_F_LEDGER_ENTRYnot null Business key Copy KF_F_LEDGER_ENTRYnot null Business key Copy KF_F_LEDGER_ENTRYnot null Business key Copy KF_F_LEDGER_ENTRY

not null, foreign key to KF_D_FISCAL_PERIOD

not null, foreign key to KF_D_ACCOUNT

not null, foreign key to KF_D_OBJECT_CODE

not null, foreign key to KD_D_PROJECT

not null, foreign key to KF_D_ORG

not null, foreign key to KF_D_ACCOUNT_STATISTICS

Page 272: Arizona_CA_and_GL_specs.xlsx

not null Business Key Transform KF_F_LEDGER_ENTRYnot null Business Key Copy KF_F_LEDGER_ENTRYnot null Degenerate Dimension Transform KF_F_LEDGER_ENTRY

not null Degenerate Dimension Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRYN/A Measure Transform KF_F_LEDGER_ENTRY

N/A Degenerate Dimension Transform KF_F_LEDGER_ENTRY

N/A Degenerate Dimension Transform KF_F_LEDGER_ENTRY

N/A Degenerate Dimension Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

Page 273: Arizona_CA_and_GL_specs.xlsx

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_L_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

Page 274: Arizona_CA_and_GL_specs.xlsx

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

Page 275: Arizona_CA_and_GL_specs.xlsx

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

Page 276: Arizona_CA_and_GL_specs.xlsx

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRYthe next rows are measures of year-to-date net activity: these are like the previous measures but aggregate without FISCAL PERIOD (but with the fiscal year) and exclude rows with FISCAL_PERIOD_CD after the fiscal period for the current row or with FISCAL_PERIOD_CD in ( 'CB', 'BB', 'AB' ).

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_L_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

Page 277: Arizona_CA_and_GL_specs.xlsx

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

Page 278: Arizona_CA_and_GL_specs.xlsx

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRYthe next rows are measures of year-to-date net activity: these are like the previous measures but aggregate without the fiscal period (but with the fiscal year) instead and include all rows.

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_L_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

Page 279: Arizona_CA_and_GL_specs.xlsx

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

Page 280: Arizona_CA_and_GL_specs.xlsx

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRY

N/A Measure Transform KF_F_LEDGER_ENTRYN/A Measure Transform KF_F_LEDGER_ENTRYN/A Measure Transform KF_F_LEDGER_ENTRYN/A Measure Transform KF_F_LEDGER_ENTRYN/A Measure Generated N/A

not null Effective Date Generated N/ANOT NULL Business Key Copy KF_F_LEDGER_ENTRYNOT NULL Audit Generated N/A

NOT NULL Audit Generated N/A

NOT NULL Audit Generated N/A

NOT NULL Audit Generated N/ANOT NULL Audit Generated N/A

Page 281: Arizona_CA_and_GL_specs.xlsx

Source Column Lookup Logic*

FISCAL_PERIOD_SID N/A

ACCOUNT_SID N/A

OBJECT_CODE_SID N/A

PROJECT_SID N/A

N/A

ACCOUNT_STATISTICS_SID N/A

FISCAL_YEAR N/A UNIV_FISCAL_PRD_CD N/A FIN_COA_CD N/A ACCOUNT_NBR N/ASUB_ACCT_NBR N/A FIN_OBJECT_CD N/AFIN_SUB_OBJ_CD N/APROJECT_CD N/A

ACCOUNT_ORG_SID

Page 282: Arizona_CA_and_GL_specs.xlsx

POSTING_DT N/ALEDGER_PENDING_FLG_UA N/ATRANSACTION_DT N/A

DOCUMENT_NBR

LEDGER_ACTUALS_AMT_UA N/ALEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

Within aggregation: document_nbr with the latest LEDGER_POST_DT value. If more than one matches, then the one with the highest LEDGER_ENTRY_SEQUENCE_NBR

Page 283: Arizona_CA_and_GL_specs.xlsx

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_BASE_BUDGET_AMT_UA N/A

LEDGER_CURRENT_BUDGET_AMT_UA N/A

LEDGER_MONTH_BUDGET_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ENCUMBRANCE_AMT_UA N/A

Multiple N/A

LEDGER_ACTUALS_AMT_UA N/A

N/ALEDGER_ACTUALS_AMT_UA

Page 284: Arizona_CA_and_GL_specs.xlsx

EDGER_ACTUALS_AMT_UA N/A

LEDGER_ENCUMBRANCE_AMT_UA N/A

LEDGER_ENCUMBRANCE_AMT_UA N/A

LEDGER_ENTRY_AMT N/A

Page 285: Arizona_CA_and_GL_specs.xlsx

LEDGER_ENTRY_AMT N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

Multiple N/A

Page 286: Arizona_CA_and_GL_specs.xlsx

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/Athe next rows are measures of year-to-date net activity: these are like the previous measures but aggregate without FISCAL PERIOD (but with the fiscal year) and exclude rows with FISCAL_PERIOD_CD after the fiscal period for the current row or with FISCAL_PERIOD_CD in ( 'CB', 'BB', 'AB' ).

LEDGER_BASE_BUDGET_AMT_UA N/A

LEDGER_CURRENT_BUDGET_AMT_UA N/A

LEDGER_MONTH_BUDGET_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ENCUMBRANCE_AMT_UA N/A

Multiple N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

Page 287: Arizona_CA_and_GL_specs.xlsx

LEDGER_ENCUMBRANCE_AMT_UA N/A

LEDGER_ENCUMBRANCE_AMT_UA N/A

LEDGER_ENTRY_AMT N/A

LEDGER_ENTRY_AMT N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

Page 288: Arizona_CA_and_GL_specs.xlsx

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

Multiple N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_BASE_BUDGET_AMT_UA N/A

LEDGER_CURRENT_BUDGET_AMT_UA N/A

LEDGER_MONTH_BUDGET_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ENCUMBRANCE_AMT_UA N/A

Multiple N/A

Page 289: Arizona_CA_and_GL_specs.xlsx

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ENCUMBRANCE_AMT_UA N/A

LEDGER_ENCUMBRANCE_AMT_UA N/A

LEDGER_ENTRY_AMT N/A

LEDGER_ENTRY_AMT N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

Page 290: Arizona_CA_and_GL_specs.xlsx

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ACTUALS_AMT_UA N/A

LEDGER_ENTRY_AMT N/A

LEDGER_ENTRY_AMT N/ALEDGER_ENTRY_AMT N/ALEDGER_ENTRY_AMT N/ALEDGER_ENTRY_AMT N/AN/A N/A

N/A N/ASRC_SYS_ID N/AN/A N/A

N/A N/A

N/A N/A

N/A N/AN/A N/A

Page 291: Arizona_CA_and_GL_specs.xlsx

Transform Logic

N/A

N/A

N/A

N/A

N/A

N/A

N/AN/AN/AN/AN/AN/AN/AN/A

Page 292: Arizona_CA_and_GL_specs.xlsx

Last day of month containing posting date.N' /'Y' max(transaction_dt) at aggregation level

N/A

MIN( ABS(LEDGER_ACTUALS_AMT_UA) )MAX( ABS(LEDGER_ACTUALS_AMT_UA) )

MAX( ABS(LEDGER_ACTUALS_AMT_UA) )

ROUND(AVG( CASE WHEN xxxxxxxx THEN ABS(EDGER_ACTUALS_AMT_UA) END ) ,2)

/* aggregate at xxxxxx MOVE THIS TO ANOTHER TABLE */ MEDIAN( CASE WHEN not pending AND ledger_post_dt in fiscal period date range THEN ABS(LEDGER_ACTUALS_AMT_UA) END )

ROUND(STDDEV( CASE WHEN xxxxx THEN ABS(LEDGER_ACTUALS_AMT_UA) END ) ,2)

/* min, max, average, median, and standard deviation of actuals transaction amounts on the account */ MIN( ABS(LEDGER_ACTUALS_AMT_UA) )

Page 293: Arizona_CA_and_GL_specs.xlsx

ROUND(AVG( CASE WHEN xxxxx THEN ABS(LEDGER_ACTUALS_AMT_UA) END ),2)

MEDIAN( CASE WHEN xxxxx THEN THEN ABS(LEDGER_ACTUALS_AMT_UA) END)

ROUND(STDDEV( CASE WHEN xxxxxx THEN ABS(LEDGER_ACTUALS_AMT_UA) END ),2)

/* original budget transactions balance */ SUM(LEDGER_BASE_BUDGET_AMT_UA)

/* current budget transactions balance */ SUM(LEDGER_CURRENT_BUDGET_AMT_UA)

/* month budget transactions balance */ SUM(LEDGER_MONTH_BUDGET_AMT_UA)

/* actuals transactions balance */ SUM(LEDGER_ACTUALS_AMT_UA)

/* encumbrance transactions balance */ SUM(LEDGER_ENCUMBRANCE_AMT_UA)

/* AVAIL should be budget - actuals - encumbrances */SUM(LEDGER_CURRENT_BUDGET_AMT_UA) - SUM(LEDGER_ACTUALS_AMT_UA) - SUM(LEDGER_ENCUMBRANCE_AMT_UA)

/* beginning balance */ SUM(CASE WHEN KF_D_OBJECT_CODE.OBJECT_CATEGORY_CD = 'FB' AND FISCAL_PERIOD_CD in ( 'BB', 'CB' ) then LEDGER_ACTUALS_AMT_UA END)

SUM(IF UNIV_FISCAL_PRD_CD = 'BB' THEN LEDGER_ACTUALS_AMT_UA)

Page 294: Arizona_CA_and_GL_specs.xlsx

SUM(IF UNIV_FISCAL_PRD_CD = 'CB' THEN LEDGER_ACTUALS_AMT_UA)

SUM(IF UNIV_FISCAL_PRD_CD = 'BB'THEN LEDGER_ENCUMBRANCE_AMT_UA)

SUM(IF UNIV_FISCAL_PRD_CD = 'CB'THEN LEDGER_ENCUMBRANCE_AMT_UA)

SUM(CASEWHEN FIN_BALANCE_TYP_CD in ('MB','BB','CB') AND UNIV_FISCAL_PRD_CD = 'BB' AND TRN_DEBIT_CRDT_CD <> 'D'then (-1 * LEDGER_ENTRY_AMT)WHEN FIN_BALANCE_TYP_CD in ('MB','BB','CB') AND UNIV_FISCAL_PRD_CD = 'BB' AND TRN_DEBIT_CRDT_CD = 'D'then LEDGER_ENTRY_AMTEND)

Page 295: Arizona_CA_and_GL_specs.xlsx

SUM(CASEWHEN FIN_BALANCE_TYP_CD in ('MB','BB','CB') AND UNIV_FISCAL_PRD_CD = 'CB' AND TRN_DEBIT_CRDT_CD <> 'D'then (-1 * LEDGER_ENTRY_AMT)WHEN FIN_BALANCE_TYP_CD in ('MB','BB','CB') AND UNIV_FISCAL_PRD_CD = 'CB' AND TRN_DEBIT_CRDT_CD = 'D'then LEDGER_ENTRY_AMTEND)

/* special INCOME ACTUALS balance */SUM( IF KF_D_OBJECT_CODE.OBJECT_CATEGORY_CD = 'IN' THEN LEDGER_ACTUALS_AMT_UA)

/* special EXPENSE ACTUALS balance */SUM( IF KF_D_OBJECT_CODE.OBJECT_CATEGORY_CD = 'EX' THEN LEDGER_ACTUALS_AMT_UA)

/* special FUND BALANCE ACTUALS balance */SUM( IF KF_D_OBJECT_CODE.OBJECT_CATEGORY_CD = 'FB' THEN LEDGER_ACTUALS_AMT_UA)

/* special LIABILITIES ACTUALS balance */SUM( IF KF_D_OBJECT_CODE.OBJECT_CATEGORY_CD = 'LI' THEN LEDGER_ACTUALS_AMT_UA)

/* special ASSETS ACTUALS balance */SUM( IF KF_D_OBJECT_CODE.OBJECT_CATEGORY_CD = 'AS' THEN LEDGER_ACTUALS_AMT_UA)

/* special CASH ASSETS ACTUALS balance */ SUM(CASE WHEN KF_D_OBJECT.OBJECT_CATEGORY_CD = 'AS' AND OBJECT_CD = '8100' then LEDGER_ACTUALS_AMT_UA END)

/* special NON-CASH ASSETS ACTUALS balance */ SUM(CASE WHEN KF_D_OBJECT.OBJECT_CATEGORY_CD = 'AS' AND OBJECT_CD <> '8100' then LEDGER_ACTUALS_AMT_UA END)

SUM(ACCTACT_BEGIN_FUND_BAL_AMT_UA + ACCTACT_INCOME_ACT_AMT_UA + ACCTACT_EXPENSE_ACT_AMT_UA)

Page 296: Arizona_CA_and_GL_specs.xlsx

SUM(CASE ABS(LEDGER_ACTUALS_AMT_UA) between (ACCTACT_MEAN_AMT_UA - ACCTACT_STANDARD_DEV_AMT_UA) and (ACCTACT_MEAN_AMT_UA + ACCTACT_STANDARD_DEV_AMT_UA) THEN 1 END)

SUM(CASE WHEN ABS(LEDGER_ACTUALS_AMT_UA) between (ACCTACT_MEAN_AMT_UA - (2 * ACCTACT_STANDARD_DEV_AMT_UA)) and (ACCTACT_MEAN_AMT_UA + (2 * ACCTACT_STANDARD_DEV_AMT_UA)) and ABS(LEDGER_ACTUALS_AMT_UA) not between (ACCTACT_MEAN_AMT_UA - ACCTACT_STANDARD_DEV_AMT_UA) and (ACCTACT_MEAN_AMT_UA + ACCTACT_STANDARD_DEV_AMT_UA) THEN 1 END)

SUM(CASE WHEN ABS(LEDGER_ACTUALS_AMT_UA) NOT between (ACCTACT_MEAN_AMT_UA - (2 * ACCTACT_STANDARD_DEV_AMT_UA)) and (ACCTACT_MEAN_AMT_UA + (2 * ACCTACT_STANDARD_DEV_AMT_UA)) THEN 1 END)

/* adjusted base budget transactions balance. */SUM(LEDGER_BASE_BUDGET_AMT_UA)

/* Current budget transactions balance. */SUM(LEDGER_CURRENT_BUDGET_AMT_UA)

"/* month budget transactions balance */ SUM(LEDGER_MONTH_BUDGET_AMT_UA)"

/* actuals transactions balance */ SUM(LEDGER_ACTUALS_AMT_UA)

/* encumbrance transactions balance */ SUM(LEDGER_ENCUMBRANCE_AMT_UA)

/* AVAIL should be budget - actuals - encumbrances */SUM(LEDGER_CURRENT_BUDGET_AMT_UA) - SUM(LEDGER_ACTUALS_AMT_UA) - SUM(LEDGER_ENCUMBRANCE_AMT_UA)

/* beginning balance, non-contracts and grants */ SUM(CASE WHEN AL2.ACCTG_CTGRY_CD = 'FB' AND UNIV_FISCAL_PRD_CD IN ( 'BB', 'CB' ) then LEDGER_ACTUALS_AMT_UA END)

SUM(IF UNIV_FISCAL_PRD_CD = 'BB' THEN LEDGER_ACTUALS_AMT_UA)

SUM(IF UNIV_FISCAL_PRD_CD = 'CB' THEN LEDGER_ACTUALS_AMT_UA)

Page 297: Arizona_CA_and_GL_specs.xlsx

SUM(IF UNIV_FISCAL_PRD_CD = 'BB'THEN LEDGER_ENCUMBRANCE_AMT_UA)

SUM(IF UNIV_FISCAL_PRD_CD = 'CB'THEN LEDGER_ENCUMBRANCE_AMT_UA)

SUM(CASEWHEN FIN_BALANCE_TYP_CD in ('MB','BB','CB') AND UNIV_FISCAL_PRD_CD = 'BB' AND TRN_DEBIT_CRDT_CD <> 'D'then (-1 * LEDGER_ENTRY_AMT)WHEN FIN_BALANCE_TYP_CD in ('MB','BB','CB') AND UNIV_FISCAL_PRD_CD = 'BB' AND TRN_DEBIT_CRDT_CD = 'D'then LEDGER_ENTRY_AMTEND)

SUM(CASEWHEN FIN_BALANCE_TYP_CD in ('MB','BB','CB') AND UNIV_FISCAL_PRD_CD = 'CB' AND TRN_DEBIT_CRDT_CD <> 'D'then (-1 * LEDGER_ENTRY_AMT)WHEN FIN_BALANCE_TYP_CD in ('MB','BB','CB') AND UNIV_FISCAL_PRD_CD = 'CB' AND TRN_DEBIT_CRDT_CD = 'D'then LEDGER_ENTRY_AMTEND)

/* special INCOME ACTUALS balance */SUM( IF KF_D_OBJECT_CODE.OBJECT_CATEGORY_CD = 'IN' THEN LEDGER_ACTUALS_AMT_UA)

/* special EXPENSE ACTUALS balance */SUM( IF KF_D_OBJECT_CODE.OBJECT_CATEGORY_CD = 'EX' THEN LEDGER_ACTUALS_AMT_UA)

/* special FUND BALANCE ACTUALS balance */SUM( IF KF_D_OBJECT_CODE.OBJECT_CATEGORY_CD = 'FB' THEN LEDGER_ACTUALS_AMT_UA)

/* special LIABILITIES ACTUALS balance */SUM( IF KF_D_OBJECT_CODE.OBJECT_CATEGORY_CD = 'LI' THEN LEDGER_ACTUALS_AMT_UA)

Page 298: Arizona_CA_and_GL_specs.xlsx

/* special ASSETS ACTUALS balance */SUM( IF KF_D_OBJECT_CODE.OBJECT_CATEGORY_CD = 'AS' THEN LEDGER_ACTUALS_AMT_UA)

/* special CASH ASSETS ACTUALS balance */ SUM(CASE WHEN KF_D_OBJECT_CODE.OBJECT_CATEGORY_CD = 'AS' AND fin_object_cd = '8100' then LEDGER_ACTUALS_AMT_UA END)

/* special NON-CASH ASSETS ACTUALS balance */ SUM(CASE WHEN KF_D_OBJECT_CODE.OBJECT_CATEGORY_CD = 'AS' AND fin_object_cd <> '8100' then LEDGER_ACTUALS_AMT_UA END)

SUM(ACCTCUM_BEGIN_BAL_AMT_UA + ACCTCUM_INCOME_ACT_AMT_UA + ACCTCUM_EXPENSE_ACT_AMT_UA)

SUM(CASE ABS(LEDGER_ACTUALS_AMT_UA) between (ACCTACT_MEAN_AMT_UA - ACCTACT_STANDARD_DEV_AMT_UA) and (ACCTACT_MEAN_AMT_UA + ACCTACT_STANDARD_DEV_AMT_UA) THEN 1 END)

SUM(CASE WHEN ABS(LEDGER_ACTUALS_AMT_UA) between (ACCTACT_MEAN_AMT_UA - (2 * ACCTACT_STANDARD_DEV_AMT_UA)) and (ACCTACT_MEAN_AMT_UA + (2 * ACCTACT_STANDARD_DEV_AMT_UA)) and ABS(LEDGER_ACTUALS_AMT_UA) not between (ACCTACT_MEAN_AMT_UA - ACCTACT_STANDARD_DEV_AMT_UA) and (ACCTACT_MEAN_AMT_UA + ACCTACT_STANDARD_DEV_AMT_UA) THEN 1 END)

SUM(CASE WHEN ABS(LEDGER_ACTUALS_AMT_UA) NOT between (ACCTACT_MEAN_AMT_UA - (2 * ACCTACT_STANDARD_DEV_AMT_UA)) and (ACCTACT_MEAN_AMT_UA + (2 * ACCTACT_STANDARD_DEV_AMT_UA)) THEN 1 END)

/* adjusted base budget transactions balance. */SUM(LEDGER_BASE_BUDGET_AMT_UA)

/* Current budget transactions balance. */SUM(LEDGER_CURRENT_BUDGET_AMT_UA)

/* month budget transactions balance */ SUM(LEDGER_MONTH_BUDGET_AMT_UA)

/* actuals transactions balance */ SUM(LEDGER_ACTUALS_AMT_UA)

/* encumbrance transactions balance */ SUM(LEDGER_ENCUMBRANCE_AMT_UA)

/* AVAIL should be budget - actuals - encumbrances */SUM(LEDGER_CURRENT_BUDGET_AMT_UA) - SUM(LEDGER_ACTUALS_AMT_UA) - SUM(LEDGER_ENCUMBRANCE_AMT_UA)

Page 299: Arizona_CA_and_GL_specs.xlsx

/* beginning balance */ SUM(CASE WHEN AL2.ACCTG_CTGRY_CD = 'FB' AND UNIV_FISCAL_PRD_CD IN ( 'BB', 'CB' ) then LEDGER_ACTUALS_AMT_UA END)

SUM(IF UNIV_FISCAL_PRD_CD = 'BB' THEN LEDGER_ACTUALS_AMT_UA)

SUM(IF UNIV_FISCAL_PRD_CD = 'CB' THEN LEDGER_ACTUALS_AMT_UA)

SUM(IF UNIV_FISCAL_PRD_CD = 'BB'THEN LEDGER_ENCUMBRANCE_AMT_UA)

SUM(IF UNIV_FISCAL_PRD_CD = 'CB'THEN LEDGER_ENCUMBRANCE_AMT_UA)

SUM(CASEWHEN FIN_BALANCE_TYP_CD in ('MB','BB','CB') AND UNIV_FISCAL_PRD_CD = 'BB' AND TRN_DEBIT_CRDT_CD <> 'D'then (-1 * LEDGER_ENTRY_AMT)WHEN FIN_BALANCE_TYP_CD in ('MB','BB','CB') AND UNIV_FISCAL_PRD_CD = 'BB' AND TRN_DEBIT_CRDT_CD = 'D'then LEDGER_ENTRY_AMTEND)

SUM(CASEWHEN FIN_BALANCE_TYP_CD in ('MB','BB','CB') AND UNIV_FISCAL_PRD_CD = 'CB' AND TRN_DEBIT_CRDT_CD <> 'D'then (-1 * LEDGER_ENTRY_AMT)WHEN FIN_BALANCE_TYP_CD in ('MB','BB','CB') AND UNIV_FISCAL_PRD_CD = 'CB' AND TRN_DEBIT_CRDT_CD = 'D'then LEDGER_ENTRY_AMTEND)

/* special INCOME ACTUALS balance */SUM( IF KF_D_OBJECT_CODE.OBJECT_CATEGORY_CD = 'IN' THEN LEDGER_ACTUALS_AMT_UA)

/* special EXPENSE ACTUALS balance */SUM( IF KF_D_OBJECT_CODE.OBJECT_CATEGORY_CD = 'EX' THEN LEDGER_ACTUALS_AMT_UA)

Page 300: Arizona_CA_and_GL_specs.xlsx

SUM(CASE WHEN TRANSACTION_DT >= (SYSDATE - 1) THEN 1 ELSE 0 END) SUM(CASE WHEN TRANSACTION_DT >= (SYSDATE - 7) THEN 1 ELSE 0 END) SUM(CASE WHEN TRANSACTION_DT >= (SYSDATE - 30) THEN 1 ELSE 0 END) SUM(CASE WHEN TRANSACTION_DT < (SYSDATE - 30) THEN 1 ELSE 0 END) '1'

Round( Job start timestamp to the nearest day ) -- if this is difficult in datastage, let me knowN/AIf any lookups fail when building the row then 'Y' else 'N'Passed as a variable to the ETL job. Should be E for EPM-sourced data and S for source-system-sourced data.

Start time of ETL job

Start time of ETL jobBatch ID of highest level ETL job that called this one.

/* special FUND BALANCE ACTUALS balance */SUM( IF KF_D_OBJECT_CODE.OBJECT_CATEGORY_CD = 'FB' THEN LEDGER_ACTUALS_AMT_UA)

/* special LIABILITIES ACTUALS balance */SUM( IF KF_D_OBJECT_CODE.OBJECT_CATEGORY_CD = 'LI' THEN LEDGER_ACTUALS_AMT_UA)

/* special ASSETS ACTUALS balance */SUM( IF KF_D_OBJECT_CODE.OBJECT_CATEGORY_CD = 'AS' THEN LEDGER_ACTUALS_AMT_UA)

/* special CASH ASSETS ACTUALS balance */ SUM(CASE WHEN KF_D_OBJECT_CODE.OBJECT_CATEGORY_CD = 'AS' AND fin_object_cd = '8100' then LEDGER_ACTUALS_AMT_UA END)

/* special NON-CASH ASSETS ACTUALS balance */ SUM(CASE WHEN KF_D_OBJECT_CODE.OBJECT_CATEGORY_CD = 'AS' AND fin_object_cd <> '8100' then LEDGER_ACTUALS_AMT_UA END)

SUM(ACCTBAL_BEGIN_FUND_BAL_AMT_UA + ACCTBAL_INCOME_ACT_AMT_UA + ACCTBAL_EXPENSE_ACT_AMT_UA) AS ACCTBAL_PRESENT_BAL_AMT_UA

Page 301: Arizona_CA_and_GL_specs.xlsx

Purpose Comment

Added because I think people will want to report at this level

Page 302: Arizona_CA_and_GL_specs.xlsx

Added to allow us to do reproducible month-end reporting

need to update sign, does this fall under stats category?need to update sign, does this fall under stats category?

Remove? Does not aggregage (e.g. by fund group.) Make account statistics dimension or add statistics to the account dimension.

Remove? Does not aggregage (e.g. by fund group.)

Remove? Define at account level and move to account dimension? Does not aggregate.

Page 303: Arizona_CA_and_GL_specs.xlsx

correct to have 'BB' and 'CB' both? drop this field? Used in FBM 61 report

New column. What is this for? Is it basically the same as the one above?

Page 304: Arizona_CA_and_GL_specs.xlsx

New column, Check naming. What about RE (year end budget reversion)?

Page 305: Arizona_CA_and_GL_specs.xlsx

Make a parameter set parameter for 8100

Make a parameter set parameter for 8100

Page 306: Arizona_CA_and_GL_specs.xlsx

Do we want this? If so, probably in the KF_F_LEDGER_ENTRIES too

Did not change criteris based on BALANCE_TYPE_ENCUMBRANCE_FLG as not in table

Changed sign for AC & encumberance, need to remove hard coded encumberance types

Is having 'CB' in there too OK?

New column, Check naming

New column, Check naming

Page 307: Arizona_CA_and_GL_specs.xlsx

New column, Check naming

New column, Check naming

New column, Check naming

New column, Check naming

Page 308: Arizona_CA_and_GL_specs.xlsx

Make a parameter set parameter for the 8100

are we using right BEGIN BALANCE amount for this field?, calculated usine merge statement

calculated using merge statement

calculated using merge statement

calculated using merge statement

Page 309: Arizona_CA_and_GL_specs.xlsx

New column, Check naming

New column, Check naming

New column, Check naming

New column, Check naming

New column, Check naming

New column, Check naming

Page 310: Arizona_CA_and_GL_specs.xlsx

are we using right BEGIN BALANCE amount for this field? What about fund balance adjustments?

Would using post date be better?

Page 311: Arizona_CA_and_GL_specs.xlsx

Remove? Does not aggregage (e.g. by fund group.) Make account statistics dimension or add statistics to the account dimension.

Remove? Define at account level and move to account dimension? Does not aggregate.

Page 312: Arizona_CA_and_GL_specs.xlsx

Changed sign for AC & encumberance, need to remove hard coded encumberance types