Escolar Documentos
Profissional Documentos
Cultura Documentos
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. 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. Contact Feel free to contact Dylan Cooper (dacooper@email.arizona.edu) with comments, suggestions, questions, etc.
SUB_ACCOUNT_LD
VARCHAR2(40)
VARCHAR2(40) ACCOUNT_FISCAL_OFFICER_ID ACCOUNT_FISCAL_OFFICER_USER_ID ACCOUNT_FISCAL_OFFICER_NM ACCOUNT_FISCAL_OFFICER_DEPT_CD ACCOUNT_SUPERVISOR_ID ACCOUNT_SUPERVISOR_USER_ID ACCOUNT_SUPERVISOR_NM ACCOUNT_SUPERVISOR_DEPT_CD ACCOUNT_MANAGER_ID ACCOUNT_MANAGER_USER_ID ACCOUNT_MANAGER_NM ACCOUNT_MANAGER_DEPT_CD ACCOUNT_ORGANIZATION_CD ACCOUNT_ORGANIZATION_NM ACCOUNT_ORGANIZATION_TYPE_CD ACCOUNT_ORGANIZATION_TYPE_LD ACCOUNT_ORGANIZATION_SORT_CD ACCOUNT_PARENT_ORG_CHART_CD ACCOUNT_PARENT_ORG_CHART_LD ACCOUNT_PARENT_ORG_CD VARCHAR2(40) VARCHAR2(160) VARCHAR2(40) VARCHAR2(40) VARCHAR2(40) VARCHAR2(160) VARCHAR2(40) VARCHAR2(40) VARCHAR2(40) VARCHAR2(160) VARCHAR2(40) VARCHAR2(4) VARCHAR2(40) VARCHAR2(1) VARCHAR2(40) VARCHAR2(2) VARCHAR2(2) VARCHAR2(40) VARCHAR2(4)
VARCHAR2(40) ACCOUNT_PARENT_ORG_NM ACCOUNT_TYPE_CD ACCOUNT_TYPE_LD ACCOUNT_PHYSICAL_CAMPUS_CD ACCOUNT_PHYSICAL_CAMPUS_LD VARCHAR2(2) VARCHAR2(40) VARCHAR2(2) VARCHAR2(40) VARCHAR2(1) SUB_ACCOUNT_ACTIVE_FLG VARCHAR2(2) SUB_ACCOUNT_REPORT_CHART_CD VARCHAR2(40) SUB_ACCOUNT_REPORT_CHART_LD VARCHAR2(4) SUB_ACCOUNT_REPORT_ORG_CD VARCHAR2(40) SUB_ACCOUNT_REPORT_ORG_NM VARCHAR2(10) SUB_ACCOUNT_REPORT_CD ACCOUNT_FUND_GROUP_CD ACCOUNT_FUND_GROUP_LD ACCOUNT_FUND_GROUP_SORT_CD ACCOUNT_SUB_FUND_CD ACCOUNT_SUB_FUND_LD ACCOUNT_SUB_FUND_ACTIVE_FLG ACCOUNT_SUB_FUND_TYPE_CD ACCOUNT_SUB_FUND_TYPE_LD ACCOUNT_SUB_FUND_TYPE_ACTV_FLG ACCOUNT_SUB_FUND_WAGE_FLG ACCOUNT_SUB_FUND_SORT_CD ACCOUNT_FRINGE_BENEFIT_CD ACCOUNT_HIGHER_ED_FUNCTION_CD ACCOUNT_HIGHER_ED_FUNCTION_LD ACCOUNT_RESTRICTION_STATUS_CD ACCOUNT_RESTRICTION_STATUS_SD ACCOUNT_RESTRICTION_STATUS_DT ACCOUNT_CITY_NM VARCHAR2(2) VARCHAR2(40) VARCHAR2(2) VARCHAR2(6) VARCHAR2(40) VARCHAR(1) VARCHAR2(1) VARCHAR2(40) VARCHAR2(1) VARCHAR2(1) VARCHAR2(2) VARCHAR2(1) VARCHAR2(4) VARCHAR2(40) VARCHAR2(1) VARCHAR2(20) DATE VARCHAR2(25)
VARCHAR2(40) ACCOUNT_INDIRECT_ACCOUNT_LD ACCOUNT_IN_FP_CD ACCOUNT_BUDGET_RECORD_LEVEL_CD ACCOUNT_BUDGET_RECORD_LEVEL_LD ACCOUNT_SUF_FUNDS_CD ACCOUNT_SUF_FUNDS_LD ACCOUNT_SUF_FUNDS_PROCESS_FLG ACCOUNT_SUF_FUNDS_EXTERNAL_FLG ACCOUNT_SUF_FUNDS_INTERNAL_FLG ACCOUNT_SUF_FUNDS_PRE_ENC_FLG ACCOUNT_OBJECT_PRESENCE_FLG ACCOUNT_CONTRACT_CFDA_NBR ACCOUNT_OFF_CAMPUS_FLG ACCOUNT_CLOSED_FLG ACCOUNT_CAMPUS_LD ACCOUNT_ORGANIZATION_LD ACCOUNT_RESP_CENTER_LD ACCOUNT_CAMPUS_CD ACCOUNT_BUILDING_CD ACCOUNT_EXPENSE_GUIDELINE_LD ACCOUNT_INCOME_GUIDELINE_LD ACCOUNT_PURPOSE_LD ACCOUNT_FUNDS_TYPE_CD ACCOUNT_TAX_REGION_CD ACCOUNT_COST_SUBCATEGORY_CD VARCHAR2(1) VARCHAR2(1) VARCHAR2(40) VARCHAR2(1) VARCHAR2(40) VARCHAR2(1) VARCHAR2(1) VARCHAR2(1) VARCHAR2(1) VARCHAR2(1) VARCHAR2(6) VARCHAR2(1) VARCHAR2(1) VARCHAR2(40) VARCHAR2(40) VARCHAR2(40) VARCHAR2(2) VARCHAR2(10) VARCHAR2(400) VARCHAR2(400) VARCHAR2(400) VARCHAR2(3) VARCHAR2(10) VARCHAR2(3)
ACCOUNT_YEAR_END_PROCESS_CD_UA EFF_START_DT
create a flag that can be VARCHAR2(1) used to determine if this is an ITD (Inception To Date) project style account or a regular fiscal year style account DATE
EFF_END_DT
DATE
CHAR(1) VARCHAR2(5 BYTE) VARCHAR2(1 BYTE) VARCHAR2(1 BYTE) DATE DATE NUMBER(10,0)
Order
KF_H_CA_ACCT_DESC
AL32
KF_H_CA_ACCT_GDLNPRPS KF_H_KRNS_CAMPUS
AL33 AL35
KF_H_CA_ACCOUNT_EXT KF_H_CA_SUB_FND_GRP
AL80 AL12
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_CHART AL19 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_ID FROM ( 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' AL90
select uaid, first_name, last_name, emplid from sysadm.ps_ua_eds_data a where effdt = ( select max(effdt) from sysadm.ps_ua_eds_data b where a.uaid = b.uaid and effdt < SYSDATE AL50 select uaid, first_name, last_name, emplid from sysadm.ps_ua_eds_data a where effdt = ( select max(effdt) from sysadm.ps_ua_eds_data b where a.uaid = b.uaid and effdt < SYSDATE AL60 select uaid, first_name, last_name, emplid from sysadm.ps_ua_eds_data a where effdt = ( select max(effdt) from sysadm.ps_ua_eds_data b where a.uaid = b.uaid and effdt < SYSDATE AL70
select emplid, dept_id from sysadm.ps_ua_ee_job_vw a where 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_id from sysadm.ps_ua_ee_job_vw a where 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_id from sysadm.ps_ua_ee_job_vw a where 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 )
AL61
AL51
AL71
KF_H_CA_SUB_ACCT KF_H_CA_CHART
AL34 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 * all lookup conditons return NULLs when lookup fails (aka outer-join logic) * all lookup conditions allow multiple rows to be returned from lookup
Constraints
SCD Function
2147483646 -
NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
Type I Type I Type I Type I Type I Type I Type I Type I Type I Type I Type I Type I Type II Type I Type II Type I Type I Type II Type I Type II
NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
NOT NULL
Type II
NOT NULL
Type II
NOT NULL
Type I
NOT NULL
Type II
NOT NULL
Type I
1-Jan-90 -
NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
Type II Type II Type I Type I Type II Type I Type II Type II Type I Type II Type II Type I Type II Type II Type I Type II Type I Type I Type I
NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
Type I Type II Type II Type I Type II Type I Type II Type II Type II Type II Type II Type II Type II Type II Type II Type II Type II Type II Type II Type II Type II Type II Type II Type II Type II
01-JAN-1753 00:00:00
NOT NULL
31-DEC-9999 23:59:59 Y KFS N E Start time of ETL job Start time of ETL job Start time of ETL job
NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
Effective Date Effective Flag Business Key Insert Only Insert Only Insert Only Insert Only Insert Only
Join Logic* 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=AL1 5.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.BD GT_REC_LVL_CD AL1.ACCT_SF_CD=AL31.ACCT_SF _CD
KF_E_CA_ACCOUNT
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_CD AND AL1.ACCOUNT_NBR = AL80.ACCOUNT_NBR AL1.SUB_FUND_GRP_CD=AL12.S UB_FUND_GRP_CD AL12.SUB_FUNDGRP_TYP_CD=AL 14.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
KF_E_CA_ACCOUNT
KF_E_CA_ACCOUNT KF_E_CA_ACCOUNT
KF_E_CA_ACCOUNT KF_E_CA_ACCOUNT
KF_E_CA_ORG
KF_E_CA_ACCOUNT
KF_E_CA_ACCOUNT
KF_E_CA_ACCOUNT
KF_E_CA_ACCOUNT
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.FI N_COA_CD
KF_E_CA_ACCOUNT
Only returns one row per date range, so just do the lookups based on src_sys_id and effective dates NONE
AL1.ACCT_FSC_OFC_UID = AL50.UAID
KF_E_CA_ACCOUNT
AL1.ACCT_SPVSR_UNVL_ID = AL60.UAID
KF_E_CA_ACCOUNT
AL1.ACCT_MGR_UNVL_ID = AL70.UAID
KF_E_CA_ACCOUNT
AL60.EMPLID = AL61.EMPLID
NONE
AL50.EMPLID = AL51.EMPLID
NONE
AL70.EMPLID = AL71.EMPLID 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
NONE
KF_E_CA_SUB_ACCT KF_E_CA_SUB_ACCT
KF_E_CA_ORG_EXT
kup table>.SRC_SYS_ID AND <main data stream>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <main data stream>.EFFDT_TO >= <look
Source Type
Source Table
Main Type 1 SCD stage Main Type 1 SCD stage Main Type 1 SCD stage Main Type 1 SCD stage Main Type 1 SCD stage Main Type 1 SCD stage Main Type 1 SCD stage Main Type 1 SCD stage Main Type 1 SCD stage Main Type 1 SCD stage Main Type 1 SCD stage Main Type 1 SCD stage N/A ACCOUNT_ORGANIZATION_CD, CHART_CD N/A
Transform Transform Transform Transform Transform Transform Transform Transform Transform Transform Transform Transform Copy Copy Copy
KF_H_CA_ACCOUNT
select distinct EMPLID, NETID_OPRID, UAID, NAME from PS_UA_E select distinct EMPLID, NETID_OPRID, UAID, NAME from PS_UA_E PS_UA_EE_JOB_VW KF_H_CA_ACCOUNT select distinct EMPLID, NETID_OPRID, UAID, NAME from PS_UA_E select distinct EMPLID, NETID_OPRID, UAID, NAME from PS_UA_E PS_UA_EE_JOB_VW KF_H_CA_ACCOUNT select distinct EMPLID, NETID_OPRID, UAID, NAME from PS_UA_E select distinct EMPLID, NETID_OPRID, UAID, NAME from PS_UA_E PS_UA_EE_JOB_VW KF_H_CA_ACCOUNT KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG_TYPE KF_H_CA_ORG_EXT KF_H_CA_ORG KF_H_CA_CHART KF_H_CA_ORG
ACCOUNT_ORGANIZATION_TYPE_CD Copy ACCOUNT_ORGANIZATION_CD, CHART_CD Copy N/A Copy ACCOUNT_PARENT_ORG_CHART_CD Copy N/A Copy
KF_H_CA_ORG KF_H_CA_ACCOUNT KF_H_CA_ACCOUNT_TYPE KF_H_CA_ACCOUNT KF_H_KRNS_CAMPUS N/A KF_H_CA_SUB_ACCT N/A KF_H_CA_SUB_ACCT N/A KF_H_CA_CHART N/A KF_H_CA_SUB_ACCT N/A KF_H_CA_ORG N/A KF_H_CA_SUB_ACCT KF_H_CA_SUB_FND_GRP KF_H_CA_FUND_GRP KF_H_CA_FUND_GRP KF_H_CA_SUB_FND_GRP_TYP KF_H_CA_SUB_FUND_GRP KF_H_CA_SUB_FND_GRP_TYP KF_H_CA_SUB_FND_GRP_TYP KF_H_CA_SUB_FND_GRP_TYP KF_H_CA_SUB_FND_GRP_TYP KF_H_CA_SUB_FND_GRP_TYP KF_H_CA_SUB_FND_GRP_TYP KF_H_CA_ACCOUNT KF_H_CA_ACCOUNT KF_H_CA_HIGHR_ED_FUNC KF_H_CA_ACCOUNT KF_H_CA_RESTRICT_STAT KF_H_CA_ACCOUNT KF_H_CA_ACCOUNT
N/A
N/A
N/A
SUB_ACCOUNT_REPORT_ORG_CD, Generated SUB_ACCOUNT_REPORT_CHART_CD Copy Generated Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Transform Copy
N/A N/A ACCOUNT_FUND_GROUP_CD ACCOUNT_FUND_GROUP_CD N/A ACCOUNT_SUB_FUND_CD N/A N/A ACCOUNT_SUB_FUND_TYPE_CD N/A N/A ACCOUNT_SUB_FUND_CD N/A N/A ACCOUNT_HIGHER_ED_FUNCTION_C D Copy N/A Transform ACCOUNT_RESTRICTION_STATUS_CD Transform Main Type 1 SCD stage Copy Main Type 1 SCD stage Transform
Main Type 1 SCD stage Main Type 1 SCD stage Main Type 1 SCD stage N/A ACCOUNT_REPORT_CHART_CD N/A ACCOUNT_REPORT_CHART_CD, ACCOUNT_REPORT_ACCOUNT_NBR Main Type 1 SCD stage Main Type 1 SCD stage Main Type 1 SCD stage N/A ACCOUNT_CONTINU_CHART_CD N/A
ACCOUNT_CONTINU_CHART_CD,ACC OUNT_CONTINU_ACCOUNT_NBR Transform N/A Transform ACCOUNT_ENDOWMENT_CHART_CD N/A ACCOUNT_ENDOWMENT_CHART_CD , ACCOUNT_ENDOWMENT_ACCOUNT_ NBR N/A ACCOUNT_CONTRACT_CHART_CD N/A ACCOUNT_CONTRACT_CHART_CD, ACCOUNT_CONTRACT_ACCOUNT_NB R N/A ACCOUNT_INCOME_CHART_CD N/A ACCOUNT_INCOME_CHART_CD, ACCOUNT_INCOME_ACCOUNT_NBR N/A ACCOUNT_INDIRECT_TYPE_CD N/A N/A N/A ACCOUNT_INDIRECT_CHART_CD N/A Transform Transform
ACCOUNT_INDIRECT_CHART_CD, ACCOUNT_INDIRECT_ACCOUNT_NBR N/A N/A ACCOUNT_BUDGET_RECORD_LEVEL_ CD N/A ACCOUNT_SUF_FUNDS_CD 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 N/A
Transform Transform Copy Copy Copy Copy Copy Copy Copy Copy Copy Transform Copy Copy Transform Transform Transform Transform Transform Transform Transform Transform Transform Transform Transform
KF_H_CA_ACCOUNT KF_H_CA_ACCOUNT KF_H_CA_ACCOUNT KF_H_CA_BDGT_REC_LVL KF_H_CA_ACCOUNT KF_H_CA_ACCT_SF KF_H_CA_ACCOUNT KF_H_CA_ACCOUNT KF_H_CA_ACCOUNT KF_H_CA_ACCOUNT KF_H_CA_ACCOUNT KF_H_CA_ACCOUNT KF_H_CA_ACCOUNT KF_H_CA_ACCOUNT KF_H_CA_ACCT_DESC KF_H_CA_ACCT_DESC KF_H_CA_ACCT_DESC KF_H_CA_ACCT_DESC KF_H_CA_ACCT_DESC KF_H_CA_ACCT_GDLNPRPS KF_H_CA_ACCT_GDLNPRPS KF_H_CA_ACCT_GDLNPRPS KF_H_CA_ACCOUNT_EXT KF_H_CA_ACCOUNT_EXT KF_H_CA_ACCOUNT_EXT
N/A N/A
Transform Transform
Multiple Multiple
Source Column
Transform Logic
Surrogate key generator starting at 1 N/A N/A N/A N/A Generate one row with value of - for each chart of account, account number and source system id N/A Generate one row with value of - for each chart of account, account number and source system id N/A
AL1.ACCT_FSC_OFC_UID AL50.NETID_OPRID AL50.NAME AL51.DEPT_ID AL1.ACCT_SPVSR_UNVL_ID AL60.NETID_OPRID AL60.NAME AL61.DEPT_ID AL1.ACCT_MGR_UNVL_ID AL70.NETID_OPRID AL70.NAME AL71.DEPT_ID AL1.ORG_CD AL6.ORG_NM AL6.ORG_TYP_CD AL7.ORG_TYP_NM AL81.REPORT_ORDER_CD AL6.RPTS_TO_FIN_COA_CD AL8.FIN_COA_DESC AL6.RPTS_TO_ORG_CD
N/A UPPER(AL50.NETID_OPRID) replace(AL50.NAME, ' - ', ' ') N/A N/A UPPER(AL60.NETID_OPRID) replace(AL50.NAME, ' - ', ' ') N/A N/A UPPER(AL70.NETID_OPRID) replace(AL50.NAME, ' - ', ' ') N/A 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, account number and source system id N/A N/A SUB_ACCT_ACTV_CD Generate one row with value of - for each chart of account, account number and source system id N/A N/A FIN_RPT_CHRT_CD Generate one row with value of - for each chart of account, account number and source system id N/A N/A FIN_COA_DESC Generate one row with value of - for each chart of account, account number and source system id N/A N/A FIN_RPT_ORG_CD Generate one row with value of - for each chart of account, account number and source system id N/A N/A ORG_NM Generate one row with value of - for each chart of account, account number and source system id N/A N/A FIN_RPT_CD N/A AL12.FUND_GRP_CD N/A AL13.FUNG_GRP_NM N/A AL13.FIN_REPORT_SORT_CD N/A AL12.SUB_FUND_GRP_CD N/A AL12.SUB_FUND_GRP_DESC AL12.SUBFUNDGRP_ACTV_CD N/A AL12.SUB_FUNDGRP_TYP_CD N/A AL14.SUB_FND_GRP_TYP_DESC N/A N/A AL14.SUB_FND_GRP_TYP_ACTV_IND N/A AL12.SUB_FUND_GRP_WAGE_IND N/A AL12.FIN_REPORT_SORT_CD N/A AL1.ACCT_FRNG_BNFT_CD N/A AL1.FIN_HGH_ED_FUNC_CD AL15.FIN_HGH_ED_FUNC_NM AL1.ACCT_RSTRC_STAT_CD AL16.ACCT_RSTRC_STAT_NM AL1.ACCT_RSTRC_STAT_DT AL1.ACCT_CITY_NM N/A N/A N/A N/A N/A
AL29.ACCOUNT_NM AL1.ACCT_IN_FP_CD AL1.BDGT_REC_LVL_CD AL30.BDGT_REC_LVL_NM AL1.ACCT_SF_CD AL31.ACCT_SF_NM AL1.ACCT_PND_SF_CD AL1.FIN_EXT_ENC_SF_CD AL1.FIN_INT_ENC_SF_CD AL1.FIN_PRE_ENC_SF_CD AL1.FIN_OBJ_PRSCTRL_CD AL1.CG_CFDA_NBR AL1.ACCT_OFF_CMP_IND AL1.ACCT_CLOSED_IND AL32.CAMPUS_DESC AL32.ORG_DESC AL32.RC_DESC AL32.CAMPUS_CD AL32.BLDG_CD AL33.ACCT_EXP_GDLN_TXT AL33.ACCT_INC_GDLN_TXT AL33.ACCT_PURPOSE_TXT AL80.FUNDS_TYPE_CD AL80.TAX_REGION_CD AL80.FA_COST_SUBCAT_CD
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 N/A N/A N/A N/A N/A 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' This is the max EFFDT_FROM value from all the tables joined to make this record.
Multiple Multiple
This is the min EFFDT_TO value from all the tables joined to make this record. Y for initial value N for expire value 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. Start time of ETL job Start time of ETL job Batch ID of highest level ETL job that called this one.
Purpose
Comment
Currently need to hard-code in SCD stage to intiial value to the Replace Nulls With value due to DataStage limitation.
Driving Table: KF_GL_ENTRY Driving 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_id Load Strategy: do destructive first. Then when needed (probably right away) change to incremental to re-calculate any fisca
Name
Name Length
Description
ACCOUNT_STATISTICS_SID 22 the following rows are business keys and their text transactions FISCAL_YEAR 11 FISCAL_PERIOD_CD 16 CHART_CD 8 CHART_LD ACCOUNT_NBR 8 11
ACCOUNT_LD OBJECT_CD
10 9
OBJECT_LD
OBJECT_SD the following rows are fiscal period measures ACCTSTAT_MINIMUM_AMT_UA ACCTSTAT_MAXIMUM_AMT_UA ACCTSTAT_MEAN_AMT_UA
23 Should we allow this to be null? 23 Should we allow this to be null? 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. No ACCTSTAT_YTD_MINIMUM_AMT_UA ACCTSTAT_YTD_MAXIMUM_AMT_UA ACCTSTAT_YTD_MEAN_AMT_UA ACCTSTAT_YTD_MEDIAN_AMT_UA ACCTSTAT_YTD_STAND_DEV_AMT_UA the following rows are audit columns EFF_START_DT 27 Should we allow this to be null? 27 Should we allow this to be null? 24 Should we allow this to be null? 26 Should we allow this to be null? 29 Should we allow this to be null?
12
* All joins also include SRC_SYS_ID and KF_GL_ENTRY.TRN_POST_DT BETWEEN <lookup table>.EFFDT_FROM AND <lookup ta
object_code, src_sys_id nge to incremental to re-calculate any fiscal period that had a new actuals transaction.
Data Type
primary key 0 not null not null not null not null not null
Surrogate Key Business Key Business Key Business Key Type 1 Business Key
VARCHAR2(40)
VARCHAR2(4)
VARCHAR2(160) -
not null
Type 1
VARCHAR2(48)
not null
Type 1
Main SCD Type 1 Stage Main SCD Type 1 Stage 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 o they need to be aggregated correctly. Note that they do not include beginning balance or year close transactions becasu we are excludin NUMBER(19,2) NUMBER(19,2) NUMBER(19,2) NUMBER(19,2) NUMBER(19,2) DATE 0 not null 0 not null 0 not null 0 not null 0 not null NOT NULL Type 1 Type 1 Type 1 Type 1 Type 1 Main SCD Type 1 Stage Main SCD Type 1 Stage Main SCD Type 1 Stage Main SCD Type 1 Stage Main SCD Type 1 Stage
01-JAN-1753 00:00:00
Effective Date
N/A
NOT NULL NOT NULL NOT NULL NOT NULL Insert Only N/A Effective Date Effective Flag Business Key N/A N/A N/A
E Start time of ETL job Start time of ETL job Start time of ETL job
NOT NULL NOT NULL NOT NULL NOT NULL Insert Only Insert Only Insert Only Insert Only N/A N/A N/A N/A
Source Type
Source Table
Source Column
Lookup Logic*
N/A
N/A
N/A UNIV_FISCAL_YR UNIV_FISCAL_PRD_CD N/A N/A FIN_COA_CD KF_H_CA_CHART.FIN_COA_CD=KF _GL_ENTRY.FIN_COA_CD FIN_COA_DESC N/A ACCOUNT_NBR
Copy Copy
KF_H_CA_ACCOUNT KF_GL_ENTRY
ACCOUNT_NM FIN_OBJECT_CD
KF_H_CA_ACCOUNT.FIN_COA_CD = KF_GL_ENTRY.FIN_COA_CD AND KF_H_CA_ACCOUNT.ACCOUNT_N BR = KF_GL_ENTRY.ACCOUNT_NBR N/A KF_H_CA_OBJECT_CODE.UNIV_FIS CAL_YR = KF_GL_ENTRY.UNIV_FISCAL_YR AND KF_CA_OBJECT_CODE.FIN_COA_C D = KF_GL_ENTRY.FIN_COA_CD AND KF_CA_OBJECT_CODE.FIN_OBJECT _CD = KF_GL_ENTRY.FIN_OBJECT_CD
Copy
KF_H_CA_OBJECT_CODE FIN_OBJ_CD_NM
Copy
KF_H_CA_OBJECT_CODE.UNIV_FIS CAL_YR = KF_GL_ENTRY.UNIV_FISCAL_YR AND KF_CA_OBJECT_CODE.FIN_COA_C D = KF_GL_ENTRY.FIN_COA_CD AND KF_CA_OBJECT_CODE.FIN_OBJECT _CD = KF_H_CA_OBJECT_CODE FIN_OBJ_CD_SHRT_NMKF_GL_ENTRY.FIN_OBJECT_CD
Transform KF_GL_ENTRY TRN_LDGR_ENTR_AMT N/A Transform KF_GL_ENTRY TRN_LDGR_ENTR_AMT N/A nsactions becasu we are excluding fiscal periods AB, BB, CB and 13. Transform Transform Transform Transform Transform KF_GL_ENTRY KF_GL_ENTRY KF_GL_ENTRY KF_GL_ENTRY KF_GL_ENTRY TRN_LDGR_ENTR_AMT N/A TRN_LDGR_ENTR_AMT N/A TRN_LDGR_ENTR_AMT N/A TRN_LDGR_ENTR_AMT N/A TRN_LDGR_ENTR_AMT N/A
N/A
Transform
Multiple
Multiple
N/A
Generated N/A N/A N/A N/A Generated Generated Generated N/A N/A N/A N/A N/A N/A N/A N/A
Transform Logic
Purpose
Comment
N/A N/A
N/A
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) ) ROUND(STDDEV(ABS(TRN_LDGR_ENTR_AMT) ) ,2)
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) ) ROUND(STDDEV(ABS(TRN_LDGR_ENTR_AMT) ) ,2) This is the max EFFDT_FROM value from all the tables joined to make this record. Currently need to hard-code in SCD stage to This is the min EFFDT_TO value from all the intiial value to the Replace Nulls With value tables joined to make this record. due to DataStage limitation. Y for initial value N for expire value 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 sourcesystem-sourced data. Start time of ETL job Start time of ETL job Batch ID of highest level ETL job that called this one.
EFF_END_DT
DATE
* all lookup conditions also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <current>.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
Constraints
SCD Function
Source Type
2147483646 -
NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
01-JAN-1753 00:00:00 NOT NULL 31-DEC-9999 23:59:59 Y KFS N NOT NULL NOT NULL NOT NULL
Effective Date
Transform
Insert Only E Start time of ETL job Start time of ETL job Start time of ETL job NOT NULL NOT NULL NOT NULL NOT NULL Insert Only Insert Only Insert Only Insert Only Generated Generated Generated Generated
S_ID AND <current>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <current>.EFFDT_TO >= <lookup table>.EFFDT_FROM"
Source Table
Source Column
Lookup Logic*
Multiple
Multiple
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
table>.EFFDT_FROM"
Transform Logic
Purpose
Comment
Surrogate key generator starting at 1 N/A N/A N/A N/A N/A N/A This is the max EFFDT_FROM value from all the tables joined to make this record. Currently need to hard-code in SCD This is the min EFFDT_TO value from stage to intiial value to the Replace all the tables joined to make this Nulls With value due to DataStage record. limitation. Y for initial value N for expire value 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. Start time of ETL job Start time of ETL job Batch ID of highest level ETL job that called this one.
Driving Table: PS_D_DAY Grain: Day Note: 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.
Name Name Length Description
DAY_SID
Regular calendar columns
8 7 8 7 7 15 16 17 16 10 10 8
DAY_DT
DAY_NBR
DAY_LD
DAY_SD
DAY_JULIAN_NBR
DAY_OF_WEEK_NBR
DAY_OF_MONTH_NBR DAY_OF_YEAR_NBR
WEEK_SID WEEK_NBR WEEK_LD
WEEK_SD_UA WEEK_OF_MONTH_NBR WEEK_OF_YEAR_NBR MONTH_SID MONTH_NBR MONTH_LD MONTH_SD MONTH_END_DT_UA MONTH_OF_QTR_NBR QUARTER_SID QUARTER_NBR QUARTER_LD QUARTER_SD QUARTER_OF_YR
11 19 18 11 12 10 10 16
18 13 12 11 11 14
9 9 8 22 21 23 22
21
LAST_DAY_OF_QTR_FLG
20
22 21 16 17
DAYS_IN_YEAR_UA MONTH_ELAPSED_PCT_UA
16 21
YEAR_ELAPSED_PCT_UA
Pay calendar columns
20
20
DAY_OF_PAY_PERIOD_NBR_UA
PAY_PERIOD_START_DT
PAY_PERIOD_END_DT
25 20 18
PAY_PERIOD_OF_MONTH_NBR_UA
PAY_PERIOD_OF_YEAR_NBR_UA PAY_PERIOD_OF_FY_NBR_UA PAY_PERIOD_OF_FED_YEAR_NBR_UA
27 26 24 30
FIRST_DAY_OF_PAY_P_FLG_UA
26
LAST_DAY_OF_PAY_P_FLG_UA
25
DAY_FOR_PAY_TRANS_FLG_UA DAY_IS_WEEKEND_FLG
25 19
DAY_IS_UNIV_HOLIDAY_FLG DAY_IS_UNIV_HOLIDAY_LD
24 22
DAY_IS_UNIV_CLOSURE_FLG_UA
27
30 22 26 25 31 26 28 28
25 23 29 23
DAY_OF_FISCAL_QUARTER_NBR_UA
28
DAY_OF_FISCAL_YEAR_NBR_UA WEEK_OF_FISCAL_YEAR_NBR_UA
26
27
WEEK_OF_FISCAL_YEAR_LD_UA WEEK_OF_FISCAL_YEAR_SD_UA
26 26
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
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
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
FIRST_MONTH_OF_FY_FLG_UA
25
LAST_MONTH_OF_FY_FLG_UA
24
DAYS_IN_FISCAL_QUARTER_UA
26
DAYS_IN_FISCAL_YEAR_UA
23
FISCAL_QUARTER_ELAPSED_PCT_UA
29
FISCAL_YEAR_ELAPSED_PCT_UA
Federal fiscal year calendar columns
27 36
DAY_OF_FED_QUARTER_NBR_UA
25
23 24 23 23
FED_MONTH_NBR_UA
17
MONTH_OF_FED_QUARTER_NBR_UA
28
FED_QUARTER_NBR_UA
19
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
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
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
DAYS_IN_FED_YEAR_UA
20
FED_QUARTER_ELAPSED_PCT_UA
26
FED_YEAR_ELAPSED_PCT_UA
24
11 12 16 16 10
PS_D_DAY
1 N/A
PS_PAY_CALENDAR
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 = 2 'CLE' UA_D_DAY.DAY_DT=PS_HOLIDAY_DATE. HOLIDAY AND PS_HOLIDAY_DATE.HOLIDAY_SCHEDULE ='HOL' AND 3 PS_HOLIDAY_DATE.SRC_SYS_ID = 'HCM' PS_D_DAY.DAY_DT = 4 UA_UNIV_CLOSURE.UNIV_CLOSURE_DT
PS_HOLIDAY_DATE
kuali_admin.UA_UNIV_CLOSURE
Data Type
Constraints
Source Type
NUMBER(38) DATE
NUMBER(38)
Copy Copy
Copy
VARCHAR2(30)
VARCHAR2(3)
NOT NULL
NOT NULL
Copy
Copy
0 0 0 0
2147483646 0 -
VARCHAR2(10) NUMBER(38) NUMBER(38) NUMBER(38) NUMBER(38) VARCHAR2(30) VARCHAR2(3) DATE NUMBER(38) NUMBER(38) NUMBER(38) VARCHAR2(30) VARCHAR2(5) NUMBER(38)
NOT NULL 0 NOT NULL 0 NOT NULL 2147483646 NOT NULL 0 NOT NULL NOT NULL NOT NULL 31-Dec-85 NOT NULL 0 NOT NULL 2147483646 NOT NULL 0 NOT NULL NOT NULL NOT NULL 0 NOT NULL
Generated Copy Copy Copy Copy Copy Copy Generated Copy Copy Copy Copy Copy Copy
2147483646 -
NOT NULL 0 NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
NOT NULL
VARCHAR2(1)
NOT NULL
Copy
NUMBER(3) NUMBER(3)
Generated Generated
NUMBER(3) NUMBER(2)
DATE
Generated Generated
Copy
DATE
Copy
NUMBER(1)
NUMBER(2) NUMBER(2) NUMBER(2)
0 NOT NULL
0 NOT NULL 0 NOT NULL 0 NOT NULL
Generated
Generated Generated Generated
VARCHAR2(1)
NOT NULL
Generated
VARCHAR2(1)
NOT NULL
Generated
VARCHAR2(1) VARCHAR2(1)
Generated Copy
VARCHAR2(1) VARCHAR2(30)
Generated Copy
VARCHAR2(1)
NOT NULL
Generated
NOT NULL 0 NOT NULL 0 NOT NULL 0 NOT NULL 0 NOT NULL 0 NOT NULL 0 NOT NULL 0 NOT NULL
NUMBER(2)
0 NOT NULL
Generated
NUMBER(3)
NUMBER(2)
NOT NULL
0 NOT NULL
Generated
Generated
VARCHAR2(30) VARCHAR2(15)
Generated Generated
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
NUMBER(4)
2147483646
NOT NULL
Generated
NUMBER(4)
0 NOT NULL
Generated
VARCHAR2(30)
NOT NULL
Generated
VARCHAR2(10)
NOT NULL
Generated
DATE
Generated
DATE
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
VARCHAR2(1)
NOT NULL
Generated
VARCHAR2(1)
NOT NULL
Generated
NUMBER(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
Generated
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
NUMBER(4)
0 NOT NULL
Generated
VARCHAR2(30)
NOT NULL
Generated
VARCHAR2(10)
NOT NULL
Generated
DATE
Generated
DATE
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
VARCHAR2(1)
NOT NULL
Generated
VARCHAR2(1)
NOT NULL
Generated
NUMBER(2)
0 NOT NULL
Generated
NUMBER(3)
0 NOT NULL
Generated
NUMBER(3)
0 NOT NULL
Generated
NUMBER(3)
0 NOT NULL
Generated
N S
Start Timestamp of ETL Job NOT NULL Start Timestamp of ETL Job NOT NULL
0 NOT NULL
Error Table
None
None
None
None
Source Table
PS_D_DAY PS_D_DAY
PS_D_DAY
PS_D_DAY
PS_D_DAY
PS_D_DAY PS_D_DAY PS_D_DAY PS_D_DAY PS_D_DAY PS_D_DAY PS_D_DAY PS_D_DAY PS_D_DAY PS_D_DAY PS_D_DAY PS_D_DAY PS_D_DAY PS_D_DAY
WEEK_DESCR WEEK_MTH_NUM WEEK_YR_NUM MONTH_SID MONTH_YR_NUM MONTH_DESCR MONTH_ABBR DAY_DT MONTH_QTR_NUM QUARTER_SID QUARTER_NUM QUARTER_DESC QUARTER_ABBR QUARTER_YR_NUM
PS_D_DAY
PS_D_DAY
LASTDAYQTR_FLG
PS_D_DAY PS_D_DAY
YEAR_NUM
DAY_MTH_NUM, DAY_DT
PS_D_DAY
PS_D_DAY, PS_PAY_CALENDAR PS_PAY_CALENDAR
PS_PAY_CALENDAR
PAY_END_DT
PS_PAY_CALENDAR
PS_PAY_CALENDAR PS_PAY_CALENDAR PS_PAY_CALENDAR
PAY_END_DT
PAY_END_DT PAY_END_DT PAY_END_DT
PS_D_DAY
DAY_DT, PAY_BEGIN_DT
PS_D_DAY
DAY_DT, PAY_END_DT
PS_D_DAY PS_D_DAY
DAY_WEEKEND_FLG
PS_HOLIDAY_DATE PS_HOLIDAY_DATE
HOLIDAY DESCR
UA_UNIV_CLOSURE
UNIV_CLOSURE_DT
PS_HOLIDAY_DATE, UA_UNIV_CLOSURE
PS_PAY_CALENDAR
PS_D_DAY, PS_PAY_CALENDAR
PS_D_DAY
N/A
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
PS_D_DAY
MONTH_YR_NUM
PS_D_DAY
MONTH_YR_NUM
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
PS_D_DAY
YEAR_NUM
PS_D_DAY
FIRSTDAYMTH_FLG, MONTH_YR_NUM
PS_D_DAY
LASTDAYMTH_FLG, MONTH_YR_NUM
PS_D_DAY
MONTH_YR_NUM, DAY_MTH_NUM
PS_D_DAY
MONTH_YR_NUM, DAY_MTH_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
PS_D_DAY
YEAR_NUM, MONTH_YR_NUM
PS_D_DAY
YEAR_NUM
PS_D_DAY
PS_D_DAY
DAY_YR_NUM, YEAR_NUM
PS_D_DAY
YEAR_NUM, 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
PS_D_DAY
MONTH_YR_NUM
PS_D_DAY
YEAR_NUM
PS_D_DAY
YEAR_NUM
PS_D_DAY
YEAR_NUM
PS_D_DAY
YEAR_NUM
PS_D_DAY
YEAR_NUM
PS_D_DAY
FIRSTDAYMTH_FLG, MONTH_YR_NUM
PS_D_DAY
LASTDAYMTH_FLG, MONTH_YR_NUM
PS_D_DAY
MONTH_YR_NUM, DAY_MTH_NUM
PS_D_DAY
MONTH_YR_NUM, DAY_MTH_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
PS_D_DAY
YEAR_NUM, MONTH_YR_NUM
PS_D_DAY
YEAR_NUM
PS_D_DAY
YEAR_NUM, MONTH_YR_NUM
PS_D_DAY
PS_D_DAY PS_D_DAY
N/A
N/A
N/A N/A
N/A N/A
Transform Logic
Purpose
N/A N/A
N/A
N/A
N/A
N/A
N/A
(PS_D_DAY.DAY_DT - PS_PAY_CALENDAR.PAY_BEGIN_DT) + 1
N/A
N/A 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.
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.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
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
N/A
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 N/A 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 CASE WHEN PS_D_DAY.DAY_WEEKEND_FLG = 'Y' THEN 'N' ELSE WHEN a holiday or winter closure THEN 'N' ELSE 'Y' END (PS_PAY_CALENDAR.PAY_END_DT - PS_PAY_CALENDAR.PAY_BEGIN_DT) +1 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 )
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. HCM does not store the winter closure days!!!! We have a handcreated table in EPM to store those days. Nargis is looking into this more with the HCM people.
5 minus holidays minus university closure days Days in pay period minus weekends minus holidays minus university closure Days in month minus weekends minus holidays minus university closure Days in fiscal quarter minus weekends minus holidays minus university closure Days in federal fiscal quarter minus weekends minus holidays minus university closure
Days in year minus weekends minus holidays minus university closure Days in fiscal year minus weekends minus holidays minus university closure Days in federal fiscal year minus weekends minus holidays minus university closure 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), 'DDMM-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), 'DDMM-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), 'DDMM-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), 'DDMM-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 Start counting with first week that contains a Thursday? 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> 'Fiscal Week ' || <fiscal week number>
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 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-MMYYYY' ) 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 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-MMYYYY' ) 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 30 THEN 'Y' ELSE 'N' END CASE WHEN PS_D_DAY.MONTH_YR_NUM 'Y' ELSE 'N' END CASE WHEN PS_D_DAY.MONTH_YR_NUM 'Y' ELSE 'N' END CASE WHEN PS_D_DAY.MONTH_YR_NUM 'Y' ELSE 'N' END CASE WHEN PS_D_DAY.MONTH_YR_NUM 'Y' ELSE 'N' END
= 6 AND PS_D_DAY.DAY_MTH_NUM =
IN ( 1, 4, 7, 10 ) THEN
IN ( 3, 6, 9, 12 ) THEN
= 7 THEN
= 6 THEN
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-MONYYYY' ) - TO_DATE( '01-JAN-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DDMON-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-MONYYYY' ) - TO_DATE( '01-APR-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DDMON-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-MONYYYY' ) - TO_DATE( '01-JUL-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DDMON-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-MONYYYY' ) - TO_DATE( '01-OCT-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DDMON-YYYY' ) + 1 ELSE 0 END 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 ), 'DDMON-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( '31MAR-' || 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( '30JUN-' || 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( '30SEP-' || 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( '31DEC-' || 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
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), 'DDMM-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
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), 'DDMM-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 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.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
'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
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-MMYYYY' ) 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-MMYYYY' ) 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 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-MMYYYY' ) - TO_DATE( '01-10-' || TO_CHAR(PS_D_DAY.YEAR_NUM), 'DD-MMYYYY' ) + 1 ELSE 0 END
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-MONYYYY' ) - 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 ), 'DDMON-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( '31MAR-' || 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( '30JUN-' || 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( '30SEP-' || 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( '31DEC-' || 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
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-MONYYYY' ) - 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 ), 'DDMON-YYYY' ) - TO_DATE( '31-DEC-' || TO_CHAR( PS_D_DAY.YEAR_NUM ), 'DD-MON-YYYY' ) + 1 ELSE 0
N S
Start Timestamp of ETL Job
Comment
DOC_TYPE_SID DOC_TYPE_ID DOC_TYPE_CD DOC_TYPE_SD DOC_TYPE_LD DOC_TYPE_VERSION_NBR DOC_TYPE_ACTIVE_FLG DOC_TYPE_CURRENT_FLG DOC_TYPE_HEADER_ID DOC_TYPE_HANDLER_URL DOC_TYPE_POST_PROCESSOR_ID DOC_TYPE_JNDI_URL
NUMBER(10,0) NUMBER(19,0) VARCHAR2(255) VARCHAR2(500) VARCHAR2(4000) NUMBER(10,0) VARCHAR2(1) VARCHAR2(1) NUMBER(14,0) VARCHAR2(255) VARCHAR2(255) VARCHAR2(255)
DOC_TYPE_SEARCH_URL DOC_TYPE_ACTION_LIST_ID DOC_TYPE_ACTION_EMAIL_ID DOC_TYPE_NTE_ID DOC_TYPE_ROUTE_VERSION_NBR DOC_TYPE_NOTIFY_ADDR DOC_TYPE_SERVICE_NAMESPACE_ID DOC_TYPE_EMAIL_XSL DOC_TYPE_APPROVAL_CD DOC_TYPE_APPROVAL_GROUP_ID DOC_TYPE_REPORT_GROUP_ID DOC_TYPE_GROUP_ID DOC_TYPE_HELP_URL DOC_TYPE_PARENT_ID DOC_TYPE_PARENT_CD DOC_TYPE_PARENT_SD DOC_TYPE_PREVIOUS_VERSION_NBR DOC_TYPE_PREVIOUS_CD DOC_TYPE_PREVIOUS_SD EFF_START_DT
VARCHAR2(255) VARCHAR2(255) VARCHAR2(255) VARCHAR2(255) VARCHAR2(2) VARCHAR2(255) VARCHAR2(255) VARCHAR2(255) VARCHAR2(10) VARCHAR2(40) VARCHAR2(40) VARCHAR2(40) VARCHAR2(4000) NUMBER(19,0) VARCHAR2(255) VARCHAR2(500) NUMBER(19,0) VARCHAR2(255) VARCHAR2(500) DATE
LOAD_ERROR
VARCHAR2(1 BYTE)
* all lookup conditions also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <current>.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
Constraints
SCD Function
Source Type
0 0 0 -
2147483646 NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
Surrogate Key Business Key Type II Type I Type I Type II Type II Type II Type I Type I Type I Type I
Generated Copy Copy Copy Copy Copy Transform Transform Copy Copy Copy Copy
0 0 01-JAN-1753 00:00:00
NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
Type I Type I Type I Type I Type I Type I Type I Type I Type II Type I Type I Type I Type I Type II Type II Type I Type II Type II Type I Effective Date
Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Transform
NOT NULL 31-DEC-9999 23:59:59 Y KFS NOT NULL NOT NULL Effective Date Effective Flag Business Key Transform Generated Copy
Generated
E Start time of ETL job Start time of ETL job Start time of ETL job
NOT NULL NOT NULL NOT NULL NOT NULL Insert Only Insert Only Insert Only Insert Only
ble>.SRC_SYS_ID AND <current>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <current>.EFFDT_TO >= <lookup table>.EFFDT_FROM"
Source Table
Source Column
N/A N/A KF_H_KREW_DOC_TYP AL1 DOC_TYP_ID KF_H_KREW_DOC_TYP AL1 DOC_TYP_NM KF_H_KREW_DOC_TYP AL1 LBL KF_H_KREW_DOC_TYP AL1 DOC_TYP_DESC KF_H_KREW_DOC_TYP AL1 DOC_TYP_VER_NBR KF_H_KREW_DOC_TYP AL1 ACTV_IND KF_H_KREW_DOC_TYP AL1 CUR_IND KF_H_KREW_DOC_TYP AL1 DOC_HDR_ID KF_H_KREW_DOC_TYP AL1 DOC_HDLR_URL KF_H_KREW_DOC_TYP AL1 POST_PRCSR KF_H_KREW_DOC_TYP AL1 JNDI_URL
KF_H_KREW_DOC_TYP AL1 ADV_DOC_SRCH_URL KF_H_KREW_DOC_TYP AL1 CSTM_ACTN_LIST_ATTRIB_CLS_NM KF_H_KREW_DOC_TYP AL1 CSTM_ACTN_EMAIL_ATTRIB_CLS_NM KF_H_KREW_DOC_TYP AL1 CSTM_DOC_NTE_ATTRIB_CLS_NM KF_H_KREW_DOC_TYP AL1 RTE_VER_NBR KF_H_KREW_DOC_TYP AL1 NOTIFY_ADDR KF_H_KREW_DOC_TYP AL1 SVC_NMSPC KF_H_KREW_DOC_TYP AL1 EMAIL_XSL KF_H_KREW_DOC_TYP AL1 BLNKT_APPR_PLCY KF_H_KREW_DOC_TYP AL1 BLNKT_APPR_GRP_ID KF_H_KREW_DOC_TYP AL1 RPT_GRP_ID KF_H_KREW_DOC_TYP AL1 GRP_ID KF_H_KREW_DOC_TYP AL1 HELP_DEF_URL KF_H_KREW_DOC_TYP AL1 PARNT_ID KF_H_KREW_DOC_TYP AL2 DOC_TYP_NM KF_H_KREW_DOC_TYP AL2 LBL KF_H_KREW_DOC_TYP AL1 PREV_DOC_TYP_VER_NBR KF_H_KREW_DOC_TYP AL3 DOC_TYP_NM KF_H_KREW_DOC_TYP AL3 LBL Multiple Multiple
N/A
N/A
<lookup table>.EFFDT_FROM"
Lookup Logic*
Transform Logic
N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
Surrogate key generator starting at 1 N/A N/A N/A N/A N/A if AL1.ACTV_IND = 1 then 'Y' else 'N' if AL1.CUR_IND = 1 then 'Y' else 'N' 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 AL1.PARNT_ID = AL2.DOC_TYP_ID (+) AL1.PARNT_ID = AL2.DOC_TYP_ID (+) N/A AL1.PREV_DOC_TYP_VER_NBR = AL3.DOC_TYP_ID (+) AL1.PREV_DOC_TYP_VER_NBR = AL3.DOC_TYP_ID (+) 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 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. Y for initial value N for expire value N/A
If an error occurs when creating this row (e.g. a lookup error) this is Y otherwise it is N N/A Passed as a variable to the ETL job. Should be E for EPM-sourced data and S for source-systemsourced data. Start time of ETL job Start time of ETL job Batch ID of highest level ETL job that called this one.
Purpose
Comment
Currently need to hard-code in SCD stage to intiial value to the Replace Nulls With value due to DataStage limitation.
Driving Table: KF_H_SH_ACCT_PERIOD Grain: fiscal period (basically months but also year end close and year start stuff)
Name Description Data Type
FPERIOD_SID FISCAL_YEAR FPERIOD_YEAR_NBR FPERIOD_NBR_UA FPERIOD_SD start date for the fiscal period based on the end date, except for year-long periods
DATE DATE
NUMBER(*, 0)
FPERIOD_QUARTER_YEAR_NBR_UA
NUMBER(*, 0)
FPERIOD_QUARTER_SD_UA fiscal quarter start and end dates are pretty easy
VARCHAR2(10 BYTE)
FPERIOD_QUARTER_START_DT_UA fiscal quarter start and end dates are pretty easy
DATE
FPERIOD_QUARTER_END_DT_UA
DATE calculate fiscal year start date as the beginning of the DATE previous July calculate the fiscal year end date as the end of june for DATE that year
FPERIOD_YEAR_START_DT_UA
FPERIOD_YEAR_END_DT_UA
calculate the percentage that this fiscal period is through the fiscal year FPERIOD_YEAR_ELAPSED_PCT_UA FPERIOD_ACTIVE_FLG FPERIOD_BUDGET_ROLLOVER_FLG EFF_START_DT NUMBER(3, 2) VARCHAR2(1 BYTE) VARCHAR2(1 BYTE) DATE
EFF_END_DT
DATE
CHAR(1) VARCHAR2(5 BYTE) VARCHAR2(1 BYTE) VARCHAR2(1 BYTE) DATE DATE NUMBER(10,0)
* all lookup conditions also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <current>.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
Constraints
SCD Function
0 -
2147483646 NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
Type I 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
0 01-JAN-1753 00:00:00
NOT NULL 31-DEC-9999 23:59:59 Y KFS N E Start time of ETL job Start time of ETL job Start time of ETL job Effective Date Effective Flag Business Key Insert Only Insert Only Insert Only Insert Only Insert Only
NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
C_SYS_ID AND <current>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <current>.EFFDT_TO >= <lookup table>.EFFDT_FROM"
Source Type
Source Table
Source Column
Transform Copy
KF_H_SH_ACCT_PERIOD KF_H_SH_ACCT_PERIOD
UNIV_FSCPD_END_DT 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
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
Lookup Logic*
Transform Logic
N/A N/A
N/A
Surrogate key generator starting at 1 N/A N/A to_char(p.UNIV_FISCAL_YR) || p.UNIV_FISCAL_PRD_CD 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 N/A 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
N/A
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
N/A
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', 'yyyymm-dd') when p.UNIV_FISCAL_PRD_CD between '04' and '06' then to_date(to_char(p.UNIV_FISCAL_YR - 1) || '-10-01', 'yyyymm-dd') when p.UNIV_FISCAL_PRD_CD between '07' and '09' then to_date(to_char(p.UNIV_FISCAL_YR) || '-01-01', 'yyyymm-dd') else to_date(to_char(p.UNIV_FISCAL_YR) || '-04-01', 'yyyymm-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', 'yyyymm-dd') when p.UNIV_FISCAL_PRD_CD between '04' and '06' then to_date(to_char(p.UNIV_FISCAL_YR - 1) || '-12-31', 'yyyymm-dd') when p.UNIV_FISCAL_PRD_CD between '07' and '09' then to_date(to_char(p.UNIV_FISCAL_YR) || '-03-31', 'yyyymm-dd') else to_date(to_char(p.UNIV_FISCAL_YR) || '-06-30', 'yyyymm-dd') end as PERIOD_QUARTER_END_DT_UA,
N/A
N/A
N/A
N/A
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 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. Y for initial value N for expire value 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 EPMsourced data and S for source-system-sourced data. Start time of ETL job Start time of ETL job Batch ID of highest level ETL job that called this one.
Purpose
Comment
yyyy-mm-dd')
Currently need to hard-code in SCD stage to intiial value to the Replace Nulls With value due to DataStage limitation.
Driving table: KF_H_CA_OBJECT_CODE Grain: 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 With
NUMBER(10,0) NUMBER(4,0) VARCHAR2(2 BYTE) VARCHAR2(40 BYTE) VARCHAR2(16 BYTE) VARCHAR2(160 BYTE) VARCHAR2(48 BYTE)
2147483646 0 -
SUB_OBJECT_CD
VARCHAR2(3)
SUB_OBJECT_LD
VARCHAR2(40)
SUB_OBJECT_SD
VARCHAR2(12)
SUB_OBJECT_ACTIVE_FLG
VARCHAR2(1)
SUB_OBJECT_ACCOUNT_N BR
VARCHAR2(7)
SUB_OBJECT_ACCOUNT_S D
VARCHAR2(40)
OBJECT_LEVEL_CD OBJECT_LEVEL_LD
OBJECT_LEVEL_SD
VARCHAR2(12 BYTE)
OBJECT_LEVEL_ACTIVE_FL G
VARCHAR2(1 BYTE)
OBJECT_LEVEL_SORT_CD
VARCHAR2(2 BYTE)
OBJECT_CONSOLIDAT_CD
VARCHAR2(4 BYTE)
OBJECT_CONSOLIDAT_LD
VARCHAR2(40 BYTE)
OBJECT_CONSOLIDAT_SD
VARCHAR2(12 BYTE)
OBJECT_CONSOLIDAT_ACT IVE_FLG
VARCHAR2(1 BYTE)
OBJECT_CONSOLIDAT_SOR T_CD
VARCHAR2(2 BYTE)
OBJECT_TYPE_CD OBJECT_TYPE_LD OBJECT_TYPE_DEBIT_CRED IT_CD OBJECT_TYPE_INDIRECT_C OST_CD OBJECT_TYPE_BALANCE_C D OBJECT_TYPE_SORT_CD OBJECT_CATEGORY_CD OBJECT_CATEGORY_LD OBJECT_CATEGORY_SD OBJECT_CATEGORY_SORT_ CD OBJECT_CATEGORY_ACTIV E_FLG OBJECT_PARENT_CHART_C D OBJECT_PARENT_CHART_L D OBJECT_PARENT_OBJECT_ CD
VARCHAR2(2) VARCHAR2(40) VARCHAR2(1) VARCHAR2(1) VARCHAR2(1) VARCHAR2(2) VARCHAR2(2) VARCHAR2(40) VARCHAR2(12) VARCHAR2(2) VARCHAR2(1) VARCHAR2(8 BYTE) VARCHAR2(40 BYTE) VARCHAR2(16 BYTE)
OBJECT_PARENT_OBJECT_ LD
VARCHAR2(160 BYTE)
OBJECT_LEGACY_FRS_OBJ ECT_LD
VARCHAR2(160 BYTE)
OBJECT_ACTIVE_FLG OBJECT_BUDGET_AGGREG ATION_CD OBJECT_BUDGET_AGGREG ATION_LD OBJECT_MANDATORY_XFE R_CD OBJECT_MANDATORY_XFE R_LD OBJECT_FEDERALLY_FUND ED_CD OBJECT_FEDERALLY_FUND ED_LD OBJECT_NEXT_YEAR_OBJE CT_CD
VARCHAR2(4 BYTE) VARCHAR2(4 BYTE) VARCHAR2(40 BYTE) VARCHAR2(4 BYTE) VARCHAR2(40 BYTE) VARCHAR2(4 BYTE) VARCHAR2(40 BYTE) VARCHAR2(16 BYTE)
OBJECT_NEXT_YEAR_OBJE CT_LD
VARCHAR2(160 BYTE)
EFF_START_DT
DATE
01-JAN-1753 00:00:00
EFF_END_DT
CURRENT_IND
CHAR(1)
SRC_SYS_ID LOAD_ERROR
KFS N
E Start time of ETL job Start time of ETL job Start time of ETL job
* all lookup conditions also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <current>.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
NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
Surrogate Key Business Key Business Key Type I Business Key Type I Type I
N/A
NOT NULL
NOT NULL
Type I Copy
NOT NULL
Type I Copy
KF_H_CA_SUB_OBJECT_CD
Generated N/A
NOT NULL
Type II Copy
KF_H_CA_SUB_OBJECT_CD
NOT NULL
Business Key
NOT NULL
Type I Copy
Type II Type I
Copy Copy
KF_H_CA_ACCOUNT KF_H_CA_OBJECT_CODE
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
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 NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
Type II Type I Type II Type II Type II Type I Type II Type I Type I Type I Type II Type II Type I Type II
Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy
KF_H_CA_OBJ_TYPE KF_H_CA_OBJ_TYPE KF_H_CA_OBJ_TYPE KF_H_CA_OBJ_TYPE KF_H_CA_OBJ_TYPE KF_H_CA_OBJ_TYPE KF_H_CA_OBJ_TYPE KF_H_CA_ACCTG_CTGRY KF_H_CA_ACCTG_CTGRY KF_H_CA_ACCTG_CTGRY KF_H_CA_ACCTG_CTGRY KF_H_CA_OBJECT_CODE KF_H_CA_CHART KF_H_CA_OBJECT_CODE
NOT NULL
Type I
NOT NULL
Type I
Copy KF_H_CA_OBJECT_CODE KF_H_CA_OBJECT_CODE KF_H_CA_OBJECT_CODE KF_H_CA_BDGT_AGGR KF_H_CA_OBJECT_CODE KF_H_CA_MNXFR_ELIM KF_H_CA_OBJECT_CODE KF_H_CA_FED_FND KF_H_CA_OBJECT_CODE
NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
NOT NULL
Type I
Copy KF_H_CA_OBJECT_CODE
NOT NULL
Effective Date
Transform
Multiple
NOT NULL Effective Date Effective Flag Transform Generated Multiple N/A
NOT NULL
Business Key
Copy Generated
KF_H_CA_OBJECT_CODE N/A
Insert Only NOT NULL NOT NULL NOT NULL NOT NULL Insert Only Insert Only Insert Only Insert Only Generated Generated Generated Generated N/A N/A N/A N/A
D AND <current>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <current>.EFFDT_TO >= <lookup table>.EFFDT_FROM"
Lookup Logic*
N/A
N/A
N/A AL1.UNIV_FISCAL_YR=AL15.UNIV_FISC AL_YR AND AL1.FIN_COA_CD=AL15.FIN_COA_CD AND AL1.FIN_OBJECT_CD=AL15.FIN_OBJEC T_CD AND AL15.FIN_SUB_OBJ_CD IS NOT NULL
AL15
AL15.FIN_SUB_OBJ_CD
N/A
N/A
N/A AL1.UNIV_FISCAL_YR=AL15.UNIV_FISC AL_YR AND AL1.FIN_COA_CD=AL15.FIN_COA_CD AND AL1.FIN_OBJECT_CD=AL15.FIN_OBJEC T_CD AND AL15.FIN_SUB_OBJ_CD IS NOT NULL
AL15
AL15.FIN_SUB_OBJ_CD_NM
N/A
N/A
N/A AL1.UNIV_FISCAL_YR=AL15.UNIV_FISC AL_YR AND AL1.FIN_COA_CD=AL15.FIN_COA_CD AND AL1.FIN_OBJECT_CD=AL15.FIN_OBJEC T_CD AND AL15.FIN_SUB_OBJ_CD IS NOT NULL
A15
AL15.FIN_SUBOBJ_SHRT_NM
N/A
N/A
N/A AL1.UNIV_FISCAL_YR=AL15.UNIV_FISC AL_YR AND AL1.FIN_COA_CD=AL15.FIN_COA_CD AND AL1.FIN_OBJECT_CD=AL15.FIN_OBJEC T_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_OBJEC T_CD AND AL1.UNIV_FISCAL_YR=AL20.UNIV_FISC AL_YR
AL15
AL15.FIN_SUBOBJ_ACTV_CD
AL20
AL20.ACCOUNT_NBR
N/A
N/A
N/A AL15.ACCOUNT_NBR=AL16.ACCOUNT _NBR AND AL15.FIN_COA_CD=AL16.FIN_COA_CD N/A 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
AL16 AL1
AL16.ACCOUNT_NM AL1.FIN_OBJ_LEVEL_CD
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
AL13
AL13.FIN_CONOBJ_SHRT_NM
AL13
AL13.FIN_CONOBJ_ACTV_CD
AL13 AL5 AL5 AL5 AL5 AL5 AL5 AL5 AL14 AL14 AL14 AL14 AL1 AL3 AL1
AL13.FIN_REPORT_SORT_CD AL5.FIN_OBJ_TYP_CD
AL7.FIN_COA_CD=AL13.FIN_COA_CD AND AL7.FIN_CONS_OBJ_CD=AL13.FIN_CO NS_OBJ_CD AL7.FIN_COA_CD=AL13.FIN_COA_CD AND AL7.FIN_CONS_OBJ_CD=AL13.FIN_CO NS_OBJ_CD AL7.FIN_COA_CD=AL13.FIN_COA_CD AND AL7.FIN_CONS_OBJ_CD=AL13.FIN_CO NS_OBJ_CD AL7.FIN_COA_CD=AL13.FIN_COA_CD AND AL7.FIN_CONS_OBJ_CD=AL13.FIN_CO NS_OBJ_CD
AL1.FIN_OBJ_TYP_CD = AL5.FIN_OBJ_TYP_CD AL1.FIN_OBJ_TYP_CD = AL5.FIN_OBJ_TYP_CD AL5.FIN_OBJ_TYP_NM AL1.FIN_OBJ_TYP_CD = AL5.FIN_OBJ_TYP_CD AL5.FIN_OBJTYP_DBCR_CD AL1.FIN_OBJ_TYP_CD = AL5.FIN_OBJ_TYP_CD AL5.FIN_OBJ_TYP_ICR_CD AL1.FIN_OBJ_TYP_CD = AL5.FIN_OBJ_TYP_CD AL5.FUND_BALANCE_CD AL1.FIN_OBJ_TYP_CD = AL5.FIN_OBJ_TYP_CD AL5.FIN_REPORT_SORT_CD AL1.FIN_OBJ_TYP_CD = AL5.FIN_OBJ_TYP_CD AL5.ACCTG_CTGRY_CD AL5.ACCTG_CTGRY_CD=AL14.ACCTG_ CTGRY_CD AL14.ACCTG_CTGRY_DESC AL5.ACCTG_CTGRY_CD=AL14.ACCTG_ AL14.ACCTG_CTGRY_SHRT_NM CTGRY_CD AL5.ACCTG_CTGRY_CD=AL14.ACCTG_ CTGRY_CD AL14.FIN_REPORT_SORT_CD AL5.ACCTG_CTGRY_CD=AL14.ACCTG_ CTGRY_CD AL14.ROW_ACTV_IND AL1.RPTS_TO_FIN_COA_CD AL3.FIN_COA_DESC AL1.RPTS_TO_FIN_OBJ_CD N/A AL1.RPTS_TO_FIN_COA_CD = AL3.FIN_COA_CD N/A
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 N/A AL1.FIN_OBJ_SUB_TYP_CD = AL6.FIN_OBJ_SUB_TYP_CD N/A 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 N/A N/A AL1.FOBJ_BDGT_AGGR_CD = AL10.FOBJ_BDGT_AGGR_CD N/A AL1.FOBJ_MNXFR_ELIM_CD = AL12.FOBJ_MNXFR_ELIM_CD N/A AL1.FIN_FED_FUNDED_CD = AL11.FIN_FED_FUNDED_CD N/A 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 N/A
AL9 N/A
AL9.FIN_OBJ_CD_NM Multiple
N/A N/A
Multiple N/A
N/A N/A
AL1
SRC_SYS_ID N/A
N/A
N/A
Transform Logic
Purpose
Comment
Surrogate key generator starting at 1 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 N/A
Generate one row with value of - for each chart of account, financial year, source system id, object code N/A
Generate one row with value of - for each chart of account, financial year, source system id, object code N/A
Generate one row with value of - for each chart of account, financial year, source system id, object code N/A
N/A
Generate one row with value of - for each chart of account, financial year, source system id, object code 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 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
This is the max EFFDT_FROM 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.
This is the min EFFDT_TO value from all the tables joined to make this record. Y for initial value N for expire value
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 sourcesystem-sourced data. Start time of ETL job Start time of ETL job Batch ID of highest level ETL job that called this one.
2147483646 -
EFF_START_DT
EFF_END_DT
Y KFS N
DATA_ORIGIN
VARCHAR2(1 BYTE)
Constraints
SCD Function
Source Type
Source Table
NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
NOT NULL Effective Date NOT NULL NOT NULL NOT NULL Insert Only Effective Flag Business Key Copy Generated Copy Generated KF_H_FS_ORIGIN_CODE N/A KF_H_FS_ORIGIN_CODE N/A
Insert Only
N/A
Source Column
Lookup Logic
Transform Logic
Purpose
Surrogate key generator starting at 1 N/A N/A N/A N/A This is the max EFFDT_FROM value from all the tables joined to make this record. Currently need to hardcode in SCD stage to intiial value to the This is the min EFFDT_TO Replace Nulls With value from all the tables value due to DataStage joined to make this record. limitation. Y for initial value N for expire value 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. N/A Start time of ETL job Start time of ETL job Batch ID of highest level ETL job that called this one.
EFFDT_FROM
N/A
N/A
N/A
N/A
Comment
Driving table: KF_H_CA_ORG Driving table filter: none Driving table aggregation: none Grain: organization unit as defined in KFS Column Mappings
Name Length
Column Name
7 8 8 6 6 14
ORG_MANAGER_USER_ID
19
ORG_MANAGER_NM ORG_RESPONSIBILITY_CENTER_CD ORG_RESPONSIBILITY_CENTER_LD ORG_RESPONSIBILITY_CENTER_SD ORG_PHYSICAL_CAMPUS_CD ORG_PHYSICAL_CAMPUS_LD ORG_PHYSICAL_CAMPUS_SD ORG_TYPE_CD ORG_TYPE_LD ORG_DEFAULT_ACCT_NBR ORG_DEFAULT_ACCT_LD
14 28 28 28 22 22 22 11 11 20 19
ORG_ADDR1 ORG_ADDR2 ORG_CITY_NM ORG_STATE_CD ORG_ZIP_CD ORG_COUNTRY_CD ORG_COUNTRY_NM ORG_COUNTRY_RESTRICTED_FLG ORG_PARENT_CHART_CD ORG_PARENT_CHART_LD ORG_PARENT_ORG_CD ORG_PARENT_ORG_NM ORG_IN_FP_FLG ORG_PLANT_CHART_CD ORG_PLANT_CHART_LD ORG_PLANT_ACCOUNT_NBR ORG_PLANT_ACCOUNT_LD ORG_CAMPUS_PLANT_CHART_CD ORG_CAMPUS_PLANT_CHART_LD ORG_CAMPUS_PLANT_ACCOUNT_NBR
9 9 11 12 10 14 14 26 19 19 17 17 13 18 18 21 20 25 25 28
27 12 10 14 11
ORG_ROLLUP_UNIV_CD ORG_ROLLUP_UNIV_NM
18 18
ORG_ROLLUP_CAMPUS_CD ORG_ROLLUP_CAMPUS_NM
20 20
ORG_ROLLUP_EXECUTIVE_CD ORG_ROLLUP_EXECUTIVE_NM
23 23
ORG_ROLLUP_VP_CD ORG_ROLLUP_VP_NM
16 16
ORG_ROLLUP_SUPER_COLLEGE_CD ORG_ROLLUP_SUPER_COLLEGE_NM
27 27
ORG_ROLLUP_COLLEGE_CD ORG_ROLLUP_COLLEGE_NM
21 21
ORG_ROLLUP_DEPT_CD
18
18 25 25 28 28 25 25
ORG_HIST_ROLLUP_UNIV_CD ORG_HIST_ROLLUP_UNIV_NM
23 23
ORG_HIST_ROLLUP_CAMPUS_CD ORG_HIST_ROLLUP_CAMPUS_NM
25 25
ORG_HIST_ROLLUP_EXECUTIVE_CD
28
ORG_HIST_ROLLUP_EXECUTIVE_NM
28
ORG_HIST_ROLLUP_VP_CD ORG_HIST_ROLLUP_VP_NM
21 21
ORG_HIST_ROLLUP_SUPER_COLL_CD
29
ORG_HIST_ROLLUP_SUPER_COLL_NM
29
ORG_HIST_ROLLUP_COLLEGE_CD ORG_HIST_ROLLUP_COLLEGE_NM
26 26
ORG_HIST_ROLLUP_DEPT_CD ORG_HIST_ROLLUP_DEPT_NM
23 23
ORG_FULL_ROLLUP_LEVEL1_CD ORG_FULL_ROLLUP_LEVEL1_NM
25 25
ORG_FULL_ROLLUP_LEVEL2_CD
25
ORG_FULL_ROLLUP_LEVEL2_NM ORG_FULL_ROLLUP_LEVEL3_CD
25 25
ORG_FULL_ROLLUP_LEVEL3_NM ORG_FULL_ROLLUP_LEVEL4_CD ORG_FULL_ROLLUP_LEVEL4_NM ORG_FULL_ROLLUP_LEVEL5_CD ORG_FULL_ROLLUP_LEVEL5_NM ORG_FULL_ROLLUP_LEVEL6_CD ORG_FULL_ROLLUP_LEVEL6_NM ORG_FULL_ROLLUP_LEVEL7_CD ORG_FULL_ROLLUP_LEVEL7_NM ORG_FULL_ROLLUP_LEVEL8_CD ORG_FULL_ROLLUP_LEVEL8_NM ORG_FULL_ROLLUP_LEVEL9_CD ORG_FULL_ROLLUP_LEVEL9_NM ORG_FULL_ROLLUP_LEVEL10_CD ORG_FULL_ROLLUP_LEVEL10_NM ORG_FULL_ROLLUP_LEVEL11_CD ORG_FULL_ROLLUP_LEVEL11_NM ORG_FULL_ROLLUP_LEVEL12_CD ORG_FULL_ROLLUP_LEVEL12_NM ORG_FULL_ROLLUP_LEVEL13_CD ORG_FULL_ROLLUP_LEVEL13_NM ORG_FULL_ROLLUP_LEVEL14_CD
25 25 25 25 25 25 25 25 25 25 25 25 25 26 26 26 26 26 26 26 26 26
ORG_FULL_ROLLUP_LEVEL14_NM ORG_FULL_ROLLUP_LEVEL15_CD ORG_FULL_ROLLUP_LEVEL15_NM ORG_FULL_ROLLUP_LEVEL16_CD ORG_FULL_ROLLUP_LEVEL16_NM ORG_FULL_ROLLUP_LEVEL17_CD ORG_FULL_ROLLUP_LEVEL17_NM ORG_FULL_ROLLUP_LEVEL18_CD ORG_FULL_ROLLUP_LEVEL18_NM ORG_FULL_ROLLUP_LEVEL19_CD ORG_FULL_ROLLUP_LEVEL19_NM ORG_FULL_ROLLUP_LEVEL20_CD ORG_FULL_ROLLUP_LEVEL20_NM EFF_START_DT
26 26 26 26 26 26 26 26 26 26 26 26 26
DATA_ORIGIN 11 15 15
9 Look-Up Logic
KF_H_CA_ORG_EXT KF_H_KR_COUNTRY
5 6
7 8
9 10
11 12
KF_H_CA_ACCOUNT CampusPlantAccount KF_H_KRNS_CAMPUS ( select EMPLID, NETID_OPRID, UAID, NAME from sysadm.ps_ua_eds_data a where effdt = ( select max(effdt) from sysadm.ps_ua_eds_data b where a.uaid = b.uaid and effdt < SYSDATE ) ) PSPeople
13 14
15
* all lookup conditions not on PS tables also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <current * all lookup conditons return NULLs when lookup fails (aka outer-join logic) * all lookup conditions allow multiple rows to be returned from lookup
Description
Data Type
Constraints
NUMBER(10) VARCHAR2(2)
2147483646 -
PRIMARY KEY NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
VARCHAR2(40) VARCHAR2(160 )
NOT NULL
NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
VARCHAR2(30) VARCHAR2(30) VARCHAR2(25) VARCHAR2(2) VARCHAR2(20) VARCHAR2(2) VARCHAR2(40) VARCHAR2(1) VARCHAR2(2) VARCHAR2(40) VARCHAR2(4) VARCHAR2(40) VARCHAR2(1) VARCHAR2(2) VARCHAR2(40) VARCHAR2(7) VARCHAR2(40) VARCHAR2(2) VARCHAR2(40) VARCHAR2(7) -
NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
NOT NULL 1-Jan-00 NOT NULL 1-Jan-00 NOT NULL NOT NULL NOT NULL
Code of the unit with org type U to which this department reports. Or itself if it is a unversity. VARCHAR2(4)
VARCHAR2(40) -
VARCHAR2(4)
VARCHAR2(40) -
VARCHAR2(4)
VARCHAR2(40) -
VARCHAR2(4)
VARCHAR2(40) -
VARCHAR2(4)
VARCHAR2(40) -
VARCHAR2(4)
VARCHAR2(40) -
VARCHAR2(4)
NOT NULL
NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
Code of the unit with org type U to which this department reports. Or itself if it is a unversity. VARCHAR2(4)
VARCHAR2(40) -
VARCHAR2(4)
VARCHAR2(40) -
VARCHAR2(4)
NOT NULL
VARCHAR2(40) -
NOT NULL
VARCHAR2(4)
VARCHAR2(40) -
VARCHAR2(4)
NOT NULL
VARCHAR2(40) -
NOT NULL
VARCHAR2(4)
VARCHAR2(40) -
VARCHAR2(4)
VARCHAR2(40) -
VARCHAR2(4)
VARCHAR2(40) -
VARCHAR2(4)
NOT NULL
VARCHAR2(40) VARCHAR2(4) -
VARCHAR2(40) VARCHAR2(4) -
NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
VARCHAR2(40) VARCHAR2(4) -
VARCHAR2(40) VARCHAR2(4) -
VARCHAR2(40) VARCHAR2(4) -
VARCHAR2(40) VARCHAR2(4) -
VARCHAR2(40) VARCHAR2(4) -
VARCHAR2(40) VARCHAR2(4) -
VARCHAR2(40) VARCHAR2(4) -
VARCHAR2(40) VARCHAR2(4) -
VARCHAR2(40) VARCHAR2(4) -
VARCHAR2(40) VARCHAR2(4) -
VARCHAR2(40) VARCHAR2(4) -
NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
VARCHAR2(40) VARCHAR2(4) -
VARCHAR2(40) VARCHAR2(4) -
VARCHAR2(40) VARCHAR2(4) -
VARCHAR2(40) VARCHAR2(4) -
VARCHAR2(40) VARCHAR2(4) -
VARCHAR2(40) -
DATE
Jan 1, 1753
NOT NULL
VARCHAR2(1)
NOT NULL
E NOT NULL ETL job starttime NOT NULL ETL job starttime NOT NULL
NUMBER(10)
0 NOT NULL
Lookup Logic* N/A KF_H_CA_ORG.FIN_COA_CD = KF_H_CA_CHART.FIN_COA_CD KF_H_CA_ORG.RC_CD = KF_H_CA_RC.RC_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_E_CA_ORG KF_E_CA_ORG
KF_E_CA_ORG KF_E_CA_ORG
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
KF_E_CA_ORG KF_E_CA_ORG
KF_E_CA_ORG KF_E_CA_ORG
KF_H_CA_ORG.ORG_MGR_UNVL_ID = PSPeople.UAID
KF_E_CA_ORG
so include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <current>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <cu lookup fails (aka outer-join logic) s to be returned from lookup
SCD Type
Source Type
Source Table
Surrogate Key N/A Business Key N/A Type 1 Business Key Type 1 Type 1 CHART_CD N/A Load job SCD Type 1 stage Load job SCD Type 1 stage
N/A KF_H_CA_ORG KF_H_CA_CHART Chart1 KF_H_CA_ORG KF_H_CA_ORG 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 KF_H_CA_ORG KF_H_CA_RC KF_H_CA_RC KF_H_CA_ORG KF_H_KRNS_CAMPUS KF_H_KRNS_CAMPUS KF_H_CA_ORG KF_H_CA_ORG_TYPE KF_H_CA_ORG KF_H_CA_ACCOUNT Account1
Type 1
Copy
Type 1 Type 2 Type 1 Type 1 Type 2 Type 1 Type 1 Type 2 Type 1 Type 2 Type 1
Load job SCD Type 1 stage N/A ORG_RESPONSIBIITY_CENTER_CD ORG_RESPONSIBIITY_CENTER_CD N/A ORG_PHYSICAL_CAMPUS_CD ORG_PHYSICAL_CAMPUS_CD N/A ORG_TYPE_CD N/A CHART_CD, ORG_DEFAULT_ACCT_NBR
Transform Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy
Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 2 Type 1 Type 2 Type 1 Type 2 Type 1 Type 2
Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage ORG_COUNTRY_CD ORG_COUNTRY_CD Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage N/A ORG_PLANT_CHART_CD N/A ORG_PLANT_CHART_CD, ORG_PANT_ACCOUNT_NBR N/A ORG_CAMPUS_PLANT_CHART_CD N/A ORG_CAMPUS_PLANT_CHART_CD, ORG_CAMPUS_PLANT_ACCOUNT_NB R Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage
Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy Copy
KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_KR_COUNTRY KF_H_KR_COUNTRY KF_H_CA_ORG KF_H_CA_CHART ParentChart KF_H_CA_ORG KF_H_CA_ORG ParentOrg KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_CHART PlantChart KF_H_CA_ORG KF_H_CA_ACCOUNT PlantAccount KF_H_CA_ORG KF_H_CA_CHART CampusPlantChart KF_H_CA_ORG
Type 1 Type 1
Load job SCD Type 1 stage Load job SCD Type 1 stage
Transform Transform
KF_H_CA_ORG KF_H_CA_ORG
Type 1 Type 1
Load job SCD Type 1 stage Load job SCD Type 1 stage
Transform Transform
KF_H_CA_ORG KF_H_CA_ORG
Type 1 Type 1
Load job SCD Type 1 stage Load job SCD Type 1 stage
Transform Transform
KF_H_CA_ORG KF_H_CA_ORG
Type 1 Type 1
Load job SCD Type 1 stage Load job SCD Type 1 stage
Transform Transform
KF_H_CA_ORG KF_H_CA_ORG
Type 1 Type 1
Load job SCD Type 1 stage Load job SCD Type 1 stage
Transform Transform
KF_H_CA_ORG KF_H_CA_ORG
Type 1 Type 1
Load job SCD Type 1 stage Load job SCD Type 1 stage
Transform Transform
KF_H_CA_ORG KF_H_CA_ORG
Type 1
Transform
KF_H_CA_ORG
Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage
Type 2 Type 1
Transform Transform
KF_H_CA_ORG KF_H_CA_ORG
Type 2 Type 1
Transform Transform
KF_H_CA_ORG KF_H_CA_ORG
Type 2
Transform
KF_H_CA_ORG
Type 1
Transform
KF_H_CA_ORG
Type 2 Type 1
Transform Transform
KF_H_CA_ORG KF_H_CA_ORG
Type 2
N/A
Transform
KF_H_CA_ORG
Type 1
KF_H_CA_ORG
Type 2 Type 1
Transform Transform
KF_H_CA_ORG KF_H_CA_ORG
Type 2 Type 1
KF_H_CA_ORG KF_H_CA_ORG
Type 1 Type 1
Load job SCD Type 1 stage Load job SCD Type 1 stage
Transform Transform
KF_H_CA_ORG KF_H_CA_ORG
Type 1
Transform
KF_H_CA_ORG
Type 1 Type 1
Load job SCD Type 1 stage Load job SCD Type 1 stage
Transform Transform
KF_H_CA_ORG KF_H_CA_ORG
Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1
Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage
Transform Transform Transform Transform Transform Transform Transform Transform Transform Transform Transform Transform Transform Transform Transform Transform Transform Transform Transform Transform Transform Transform
KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG
Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1 Type 1
Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage Load job SCD Type 1 stage
Transform Transform Transform Transform Transform Transform Transform Transform Transform Transform Transform Transform Transform
KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG KF_H_CA_ORG
Transform
N/A
N/A
N/A
N/A
Generated N/A N/A N/A N/A N/A N/A N/A N/A N/A
N/A
N/A
N/A
Source Column
Transform Logic
Purpose
Comment
NETID_OPRID
NAME RC_CD RC_NM RC_SHRT_NM ORG_PHYS_CMP_CD CAMPUS_NM CAMPUS_SHRT_NM ORG_TYP_CD ORG_TYP_NM ORG_DFLT_ACCT_NBR ACCOUNT_NM
ORG_LN1_ADDR ORG_LN2_ADDR ORG_CITY_NM ORG_STATE_CD ORG_ZIP_CD ORG_CNTRY_CD POSTAL_CNTRY_NM PSTL_CNTRY_RSTRC_IND RPTS_TO_FIN_COA_CD FIN_COA_DESC RPTS_TO_ORG_CD ORG_NM ORG_IN_FP_CD ORG_PLNT_COA_CD FIN_COA_DESC ORG_PLNT_ACCT_NBR ACCOUNT_NM CMP_PLNT_COA_CD FIN_COA_DESC CMP_PLNT_ACCT_NBR
ACCOUNT_NM ORG_BEGIN_DT ORG_END_DT ORG_ACTIVE_CD REPORT_ORDER_CD 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.
ORG_CD ORG_NM
ORG_CD ORG_NM
ORG_CD ORG_NM
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_C D 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_COLLE GE_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.
ORG_CD ORG_NM
ORG_CD ORG_NM
ORG_CD ORG_NM
ORG_CD
ORG_CD ORG_NM
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 Same as college they were in at ORG_ROLLUP_UNIV_CD but the time that a Type 2 SCD attribute. 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_C D but a Type 2 SCD attribute. The name associated with the code.
ORG_CD ORG_NM
ORG_CD
ORG_NM
ORG_CD ORG_NM
ORG_CD
Same as ORG_ROLLUP_VP_CD but a Type 2 SCD attribute. The name associated with the code. Same as ORG_ROLLUP_SUPER_COLLE GE_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. 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 Org code for roots of the org and drill to their subtree 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_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_CD ORG_NM ORG_CD ORG_NM ORG_CD ORG_NM ORG_CD ORG_NM ORG_CD
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_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 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 N/A If an error occurs when creating this row (e.g. a lookup error) this is Y otherwise it is N
N/A
N/A
Passed as a variable to the ETL job. Should be E for EPM-sourced data and S for source-system-sourced data. N/A N/A N/A Start time of ETL job Start time of ETL job Batch ID of highest level ETL job that called this one.
N/A
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_
Driving Table: KF_H_CA_PROJECT Driving Table Filter: none Driving Table Aggregation: none Grain: project
Name Description
PROJECT_SID PROJECT_CD PROJECT_SD PROJECT_ACTIVE_FLG PROJECT_LD PROJECT_MANAGER_ID PROJECT_MANAGER_USER_ID PROJECT_MANAGER_NM PROJECT_MANAGER_DEPT_CD CHART_CD CHART_LD ORGANIZATION_CD ORGANIZATION_NM EFF_START_DT
EFF_END_DT
DATA_ORIGIN
* all lookup conditions also include "<driving table>.SRC_SYS_ID = <lookup table>.SRC_SYS_ID AND <current>.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
Data Type
SCD Function
NUMBER(10,0) VARCHAR2(10 BYTE) VARCHAR2(40 BYTE) VARCHAR2(1 BYTE) VARCHAR2(400 BYTE) VARCHAR2(10 BYTE) VARCHAR2(32) VARCHAR2(80) VARCHAR2(10) VARCHAR2(2 BYTE) VARCHAR2(40 BYTE) VARCHAR2(4 BYTE) VARCHAR2(40 BYTE) DATE
2147483646 NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL
Surrogagte Key Business Key Type I Type II Type I Type I Type I Type I Type I Type II Type I Type II Type I
01-JAN-1753 00:00:00 DATE 31-DEC-9999 23:59:59 CHAR(1) VARCHAR2(5 BYTE) VARCHAR2(1 BYTE) Y KFS N NOT NULL NOT NULL NOT NULL NOT NULL
Effective Date
NA
VARCHAR2(1 BYTE)
NOT NULL NA NA NA
NA
table>.SRC_SYS_ID AND <current>.EFFDT_FROM <= <lookup table>.EFFDT_TO AND <current>.EFFDT_TO >= <lookup table>.EFFDT_FROM
Source Type
Source Table
Source Column
Generated Copy Copy Copy Copy Copy Transform Copy Copy Copy Copy Copy Copy
N/A N/A KF_H_CA_PROJECT AL1 PROJECT_CD KF_H_CA_PROJECT AL1 PROJECT_NM KF_H_CA_PROJECT AL1 PROJ_ACTIVE_CD KF_H_CA_PROJECT AL1 PROJECT_DESC KF_H_CA_PROJECT AL1 PROJ_MGR_UNVL_ID KF_H_KRIM_PRNCPL AL70 PRNCPL_NM KF_H_KRIM_ENTITY_NM AL71 FIRST_NM KF_H_KRIM_ENTITY_EMP_INFO AL72PRMRY_DEPT_CD KF_H_CA_PROJECT AL1 FIN_COA_CD KF_H_CA_CHART AL2 FIN_COA_DESC KF_H_CA_PROJECT AL1 ORG_CD KF_H_CA_ORG AL3 ORG_NM
Transform
Multiple
Multiple
N/A
N/A N/A
N/A
N/A
Lookup Logic*
Transform Logic
Surrogate key generator NA starting at 1 N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A AL1.PROJ_MGR_UNVL_ID = AL70.PRNCPL_ID upper(AL70.PRNCPL_NM) N/A AL70.ENTITY_ID = AL71.ENTITY_ID N/A AL70.ENTITY_ID = AL72.ENTITY_ID N/A N/A N/A AL1.FIN_COA_CD = AL2.FIN_COA_CD N/A N/A N/A AL1.ORG_CD = AL3.ORG_CD 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 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 EPMsourced data and S for sourcesystem-sourced data. N/A N/A N/A Start time of ETL job Start time of ETL job Batch ID of highest level ETL job that called this one.
N/A
N/A
N/A
Purpose
Comment
Currently need to hard-code in SCD stage to intiial value to the Replace Nulls With value due to DataStage limitation.
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
Name next rows are SIDs to dimension tables Description Data Type
ACCOUNT_SID
NUMBER(10,0)
OBJECT_CODE_SID
NUMBER(10,0)
PROJECT_SID
NUMBER(10,0)
BALANCE_TYPE_SID
NUMBER(10,0)
FISCAL_PERIOD_SID
NUMBER(10,0)
DOCUMENT_TYPE_SID
NUMBER(10,0)
ORIGIN_SID
NUMBER(10,0)
ACCOUNT_ORG_SID LEDGER_POST_DT_SID LEDGER_TRANSACTION_DT_SID LEDGER_DOC_REVERSAL_DT_SID ACCOUNT_STATISTICS_SID next rows are codes used for looking up the SIDs
FISCAL_YEAR
NUMBER(4,0)
CHART_CD
VARCHAR2(2BYTE)
ACCOUNT_NBR
VARCHAR2(7BYTE)
SUB_ACCOUNT_NBR
VARCHAR2(5BYTE)
OBJECT_CD
VARCHAR2(4)
SUB_OBJECT_CD
VARCHAR2(3BYTE)
PROJECT_CD
VARCHAR2(10)
BALANCE_TYPE_CD
VARCHAR2(2BYTE)
OBJECT_TYPE_CD
VARCHAR2(2BYTE)
FISCAL_PERIOD_CD
VARCHAR2(2BYTE)
DOCUMENT_TYPE_CD
VARCHAR2(4BYTE)
ORIGIN_CD
VARCHAR2(2BYTE)
LEDGER_ENTRY_SEQUENCE_NBR
NUMBER(5)
DOCUMENT_NBR
VARCHAR2(14)
LEDGER_ORG_DOCUMENT_NBR
VARCHAR2(10)
LEDGER_ORG_REFERENCE_ID
VARCHAR2(8)
LEDGER_DOCUMENT_REF_TYPE_CD
VARCHAR2(4)
LEDGER_REFERENCE_ORIGIN_CD
VARCHAR2(2)
LEDGER_DOC_REFERENCE_NBR LEDGER_ENCUMBRANCE_UPDATE_CD
VARCHAR2(14) VARCHAR2(1)
LEDGER_ENTRY_LD
VARCHAR2(40)
LEDGER_DEBIT_CREDIT_CD
VARCHAR2(1)
LEDGER_ENTRY_TIMESTAMP
DATE
LEDGER_TRANSACTION_TYPE_CD_UA LEDGER_PENDING_FLG_UA
VARCHAR2(1) VARCHAR2(1)
LEDGER_AMT_0_100_FLG_UA
VARCHAR2(1)
LEDGER_AMT_P100_500_FLG_UA
VARCHAR2(1)
LEDGER_AMT_P500_1000_FLG_UA
VARCHAR2(1)
LEDGER_AMT_P1000_5000_FLG_UA
VARCHAR2(1)
VARCHAR2(1)
LEDGER_ENTRY_AMT
NUMBER(19,2)
LEDGER_BASE_BUDGET_AMT_UA
NUMBER(19,2)
LEDGER_CURRENT_BUDGET_AMT_UA
NUMBER(19,2)
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)
NUMBER(19,2) NUMBER(10,0)
Column Type
Source Type
Source Table
not null, fk
Surrogate Key
Copy
KF_D_ACCOUNT
not null, fk
Surrogate Key
Copy
KF_D_OBJECT_CODE
not null, fk
Surrogate Key
Copy
KF_D_PROJECT
not null, fk
Surrogate Key
Copy
KF_D_BALANCE_TYPE
not null, fk
Surrogate Key
Copy
KF_D_FISCAL_PERIOD
not null, fk
Surrogate Key
Copy
KF_D_DOC_TYPE
not null, fk
Surrogate Key
Copy
KF_D_ORIGIN
High value SID High value SID High value SID High value SID High value SID
not null, fk not null, fk not null, fk not null, fk not null, fk
Surrogate Key Surrogate Key Surrogate Key Surrogate Key Surrogate Key
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
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 KF_GL_ENTRY, KF_GL_PENDING_ENTRY KF_GL_ENTRY, KF_GL_PENDING_ENTRY
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 KF_GL_ENTRY, KF_GL_PENDING_ENTRY
not null
Business key Degenerate Dimension Degenerate Dimension Degenerate Dimension Degenerate Dimension
Copy
not null
Copy
N/A
Copy
N/A
Copy
N/A
Copy
not null
Copy
not null
Copy
1-Jan-00
not null
Copy
Degenerate Dimension Degenerate Dimension Degenerate Dimension Degenerate Dimension Degenerate Dimension Degenerate Dimension Degenerate Dimension
Transform Generated
KF_GL_ENTRY, KF_GL_PENDING_ENTRY 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
not null
Transform
not null
Transform
not null
Transform
not null
Transform
not null
Transform
N/A
N/A
Measure
Copy
KF_GL_ENTRY, KF_GL_PENDING_ENTRY
N/A
N/A
Measure
Transform
KF_GL_ENTRY, KF_GL_PENDING_ENTRY
N/A
N/A
Measure
Transform
KF_GL_ENTRY, KF_GL_PENDING_ENTRY
N/A
N/A
Measure
Transform
KF_GL_ENTRY, KF_GL_PENDING_ENTRY
N/A
N/A
Measure
Transform
KF_GL_ENTRY, KF_GL_PENDING_ENTRY
N/A
N/A
Measure
Transform
KF_GL_ENTRY, KF_GL_PENDING_ENTRY
N/A
N/A
Measure
Transform
KF_GL_ENTRY, KF_GL_PENDING_ENTRY
N/A N/A
N/A N/A
Measure Measure
Transform Generated
'E'
Start time of ETL job not null Start time of ETL job not null 0 not null
Source Column
ACCOUNT_SID
OBJECT_SID
PROJECT_SID
BALANCE_TYPE_SID
FPERIOD_SID
DOC_TYPE_SID
ORIGIN_SID
UNIV_FISCAL_YR
FIN_COA_CD
ACCOUNT_NBR
SUB_ACCT_NBR
FIN_OBJECT_CD
FIN_SUB_OBJ_CD
PROJECT_CD
FIN_BALANCE_TYP_CD
FIN_OBJ_TYP_CD
UNIV_FISCAL_PRD_CD
FDOC_TYP_CD
FS_ORIGIN_CD
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
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
TRN_LDGR_ENTR_AMT
TRN_LDGR_ENTR_AMT
TRN_LDGR_ENTR_AMT
TRN_LDGR_ENTR_AMT
TRN_LDGR_ENTR_AMT N/A
Lookup Logic
KF_D_ACCOUNT.CHART_CD=F.FIN_COA_CD AND KF_D_ACCOUNT.ACCOUNT_NBR=F.ACCOUNT_NBR AND KF_D_ACCOUNT.SUB_ACCOUNT_NBR=(IF F.SUB_ACCOUNT_NBR = '-----' THEN '-' ELSE F.SUB_ACCOUNT_NBR) AND For KF_GL_ENTRY: F.TRN_POST_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 AND KF_D_OBJECT_CODE.CHART_CD=F.FIN_COA_CD AND KF_D_OBJECT_CODE.OBJECT_CD=F.FIN_OBJECT_CD AND KF_D_OBJECT_CODE.SUB_OBJECT_CD=(IF F.FIN_SUB_OBJ_CD = '---' THEN '-' ELSE F.FIN_SUB_OBJ_CD) AND KF_D_OBJECT_CODE.SUB_OBJECT_ACCOUNT_NBR=(IF F.FIN_SUB_OBJ_CD = '---' THEN '-' ELSE F.ACCOUNT_NBR) AND For KF_GL_ENTRY: F.TRN_POST_DT BETWEEN KF_D_OBJECT_CODE.EFF_START_DT AND KF_D_OBJECT_CODE.EFF_END_DATE For KF_GL_PENDING_ENTRY: F.TRANSACTION_DT BETWEEN KF_D_OBJECT_CODE.EFF_START_DT AND KF_D_PROJECT.PROJECT_CD=F.PROJECT_CD AND KF_D_PROJECT.SRC_SYS_ID=F.SRC_SYS_ID AND For KF_GL_ENTRY: F.TRN_POST_DT BETWEEN KF_D_PROJECT.EFF_START_DT AND KF_D_PROJECT.EFF_END_DATE For KF_GL_PENDING_ENTRY: F.TRANSACTION_DT BETWEEN KF_D_PROJECT.EFF_START_DT AND KF_D_BALANCE_TYPE.BALANCE_TYPE_CD=F.FIN_BALANCE_TYP_CD AND KF_D_BALANCE_TYPE.SRC_SYS_ID=F.SRC_SYS_ID AND For KF_GL_ENTRY: F.TRN_POST_DT BETWEEN KF_D_BALANCE_TYPE.EFF_START_DT AND KF_D_BALANCE_TYPE.EFF_END_DATE For KF_GL_PENDING_ENTRY: F.TRANSACTION_DT BETWEEN KF_D_BALANCE_TYPE.EFF_START_DT AND KF_D_BALANCE_TYPE.EFF_END_DATE
KF_D_FISCAL_PERIOD.FISCAL_YEAR=F.UNIV_FISCAL_YR AND KF_D_FISCAL_PERIOD.FPERIOD_YEAR_NBR=F.UNIV_FISCAL_PRD_CD AND KF_D_FISCAL_PERIOD.SRC_SYS_ID=F.SRC_SYS_ID AND For KF_GL_ENTRY: F.TRN_POST_DT BETWEEN KF_D_FISCAL_PERIOD.EFF_START_DT AND KF_D_FISCAL_PERIOD.EFF_END_DATE For 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 AND KF_D_DOC_TYPE.SRC_SYS_ID=F.SRC_SYS_ID AND For KF_GL_ENTRY: F.TRN_POST_DT BETWEEN KF_D_DOC_TYPE.EFF_START_DT AND KF_D_DOC_TYPE.EFF_END_DATE For KF_GL_PENDING_ENTRY: F.TRANSACTION_DT BETWEEN KF_D_DOC_TYPE.EFF_START_DT AND KF_D_ORIGIN.ORIGIN_CD=F.FS_ORIGIN_CD AND KF_D_ORIGIN.SRC_SYS_ID=F.SRC_SYS_ID AND For KF_GL_ENTRY: F.TRN_POST_DT BETWEEN KF_D_ORIGIN.EFF_START_DT AND KF_D_ORIGIN.EFF_END_DATE For 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_CD AND KF_D_ORG.ORG_CD = KF_D_ACCOUNT.ACCOUNT_ORGANIZATION_CD For KF_GL_ENTRY: F.TRN_POST_DT BETWEEN KF_D_ORG.EFF_START_DT AND KF_D_ORG.EFF_END_DATE For KF_GL_PENDING_ENTRY: F.TRANSACTION_DT BETWEEN KF_D_ORG.EFF_START_DT AND For KF_GL_ENTRY: UA_D_DAY.DAY_DT = F.TRN_POST_DT For KF_GL_PENDING_ENTRY: High value SID UA_D_DAY.DAY_DT = F.TRANSACTION_DT UA_D_DAY.DAY_DT = F.FDOC_REVERSAL_DT
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
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
N/A
N/A N/A
Transform Logic
N/A
N/A
N/A
N/A
N/A
N/A
N/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)
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 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 N if row comes from KF_GL_ENTRY and Y if it comes from KF_GL_PENDING_ENTRY CASE WHEN ABS(TRN_LDGR_ENTR_AMT) <= 100 then 'Y' else 'N' end CASE WHEN ABS(TRN_LDGR_ENTR_AMT) > 100 AND ABS(TRN_LDGR_ENTR_AMT) <= 500 then 'Y' else 'N' end CASE WHEN ABS(TRN_LDGR_ENTR_AMT) > 500 AND ABS(TRN_LDGR_ENTR_AMT) <= 1000 then 'Y' else 'N' end CASE WHEN ABS(TRN_LDGR_ENTR_AMT) > 1000 AND ABS(TRN_LDGR_ENTR_AMT) <= 5000 then 'Y' else 'N' end CASE WHEN ABS(TRN_LDGR_ENTR_AMT) > 5000 then 'Y' else 'N' end
N/A 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_AMT ELSE NULL END CASE WHEN fin_balance_typ_cd = 'MB' then TRN_LDGR_ENTR_AMT ELSE NULL END CASE WHEN fin_balance_typ_cd = 'RE' then TRN_LDGR_ENTR_AMT ELSE NULL END 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 NULL END 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_AMT ELSE Null END 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_AMT ELSE Null END '1'
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-systemsourced data.
Start time of ETL job Start time of ETL job Batch ID of highest level ETL job that called this one.
Purpose
Comment
CASE WHEN fin_balance_typ_cd in ('AB','BB','CB') then 'B' WHEN fin_balance_typ_cd = 'AC' then 'A' ELSE 'E' END
Driving Table: KF_F_LEDGER_ENTRY Driving 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 year Note: exclude all rows in RED
Name the next rows are SIDs to dimension tables
FISCAL_PERIOD_SID
ACCOUNT_SID
OBJECT_CODE_SID
PROJECT_SID ACCOUNT_ORG_SID
ACCOUNT_STATISTICS_SID the 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 the next rows are degenerate dimensions ACCTACT_LAST_DAY_POST_MONTH_UA ACCTACT_PENDING_FLG_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
ACCTCUM_MEAN_AMT_UA
ACCTCUM_MEDIAN_AMT_UA
ACCTCUM_STANDARD_DEV_AMT_UA the 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
ACCTACT_ACT_CB_BEG_BAL_AMT_UA
ACCTACT_ENCM_BB_BEG_BAL_AMT_UA
ACCTACT_ENCM_CB_BEG_BAL_AMT_UA
ACCTACT_BUD_BB_BEG_BAL_AMT_UA
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
ACCTACT_1_STD_DEV_CNT_UA
ACCTACT_2_STD_DEV_CNT_UA
ACCTACT_3P_STD_DEV_CNT_UA the next rows are measures of year-to-date net activity: these are like the previous measures but aggregate without FISCAL P 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
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
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_UA the next rows are measures of year-to-date net activity: these are like the previous measures but aggregate without the fisca 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
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
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_UA the next rows are general measures ACCT_LAST_1_DAY_CNT_UA ACCT_LAST_7_DAY_CNT_UA ACCT_LAST_30_DAY_CNT_UA ACCT_LAST_30P_DAY_CNT_UA ACCT_ONE_PER_ROW_CNT_UA the 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. ^ 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. on
Description
Data Type
17
NUMBER(10,0) N/A
11
NUMBER(10,0) N/A
15
NUMBER(10,0) N/A
11 15 I broke this out because it is probably more useful with the 22 KF_F_LEDGER_ENTRIES table 11 16 8 11 15 9
NUMBER(10,0) N/A NUMBER(4,0) N/A VARCHAR2(2) N/A VARCHAR2(2) N/A VARCHAR2(7) N/A VARCHAR2(5BYTE) N/A VARCHAR2(16) N/A
23
VARCHAR2(14) -
Moved all these columns to the KF_D_ACCOUNT_STATISTICS 22 table NUMBER(19,2) N/A 22 NUMBER(19,2) N/A 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 19 auxillary voucher) NUMBER(19,2) N/A
21
NUMBER(19,2) N/A
27
NUMBER(19,2) N/A
Minimum amount (unsigned) on an actuals transformation year- NUMBER(19,2) to-date, not including beginning N/A 22 balance. Maximum amount (unsigned) on an actuals transformation year-to-date, not including 22 beginning balance.
NUMBER(19,2) N/A
NUMBER(19,2) 27 N/A
26 29 24 22 27
NUMBER(19,2) N/A NUMBER(19,2) N/A NUMBER(19,2) N/A NUMBER(19,2) N/A NUMBER(19,2) N/A
24
NUMBER(19,2) N/A
Fund balance actuals transactions on BB and CB fiscal periods. For balance sheet type 29 reports. NUMBER(19,2) N/A
Actuals transactions on BB fiscal period. Primarily for 29 income/expense type reports. NUMBER(19,2) N/A
Actuals transactions on CB fiscal period. Primarily for 29 income/expense type reports. NUMBER(19,2) N/A
30
NUMBER(19,2) N/A
30
NUMBER(19,2) N/A
This is meaningless because it combines balance types BB, CB, and MB. Leave out until we 29 figure out what we want? NUMBER(19,2) N/A
This is meaningless because it combines balance types BB, CB, and MB. Leave out until we 29 figure out what we want? 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
Is this right??? What about fund balance adjustment 26 transactions? 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 24 for the fiscal period NUMBER(10,0) N/A 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 24 the fiscal period NUMBER(10,0) N/A
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 25 period NUMBER(10,0) N/A evious measures but aggregate without FISCAL PERIOD (but with the fiscal year) and exclude rows with FISCAL_PERIOD_CD after the fisca 26 29 27 22 27 NUMBER(19,2) NUMBER(19,2) N/A N/A
24
N/A
NUMBER(19,2) This is meaningless because it combines balance types BB, CB, 29 and MB. What do we want?
N/A
NUMBER(19,2) This is meaningless because it combines balance types BB, CB, 29 and MB. What do we want?
N/A
NUMBER(19,2) 25 N/A
NUMBER(19,2) 26 N/A
27
NUMBER(19,2) N/A
NUMBER(19,2) 27 N/A
NUMBER(19,2) 24 N/A
NUMBER(19,2) 23 N/A
NUMBER(10,0) 24 N/A
NUMBER(10,0)
24 NUMBER(10,0)
N/A
N/A 25 evious measures but aggregate without the fiscal period (but with the fiscal year) instead and include all rows. 26 29 27 22 NUMBER(19,2) NUMBER(19,2) N/A N/A
27
NUMBER(19,2) NUMBER(19,2)
N/A
24
N/A
NUMBER(19,2) 29 NUMBER(19,2) 29 NUMBER(19,2) 29 NUMBER(19,2) 30 NUMBER(19,2) 30 N/A N/A N/A N/A N/A
NUMBER(19,2) This is meaningless because it combines balance types BB, CB, 29 and MB. What do we want?
N/A
NUMBER(19,2) This is meaningless because it combines balance types BB, CB, 29 and MB. What do we want?
N/A
NUMBER(19,2) 25 N/A
NUMBER(19,2) 26 N/A
27
NUMBER(19,2) N/A
NUMBER(19,2) 28 N/A
NUMBER(19,2) 24 N/A
NUMBER(19,2) 23 N/A
NUMBER(19,2) 27 26 22 22 23 24 23 20 Not sure what this is for. 10 10 11 15 NUMBER(19,2) NUMBER(10,0) NUMBER(10,0) NUMBER(10,0) NUMBER(10,0) NUMBER(10,0) DATE VARCHAR2(5) VARCHAR2(1) VARCHAR2(1), DATE N/A N/A 0 0 0 0 0 January 1, 1900 'KFS' 'N' 'E' Start time of ETL job
15 9
DATE NUMBER(10)
Constraints
Column Type
not null, foreign key to KF_D_FISCAL_PERIOD Surrogate Key not null, foreign key to KF_D_ACCOUNT not null, foreign key to KF_D_OBJECT_CODE
Copy
KF_F_LEDGER_ENTRY
Surrogate Key
Copy
KF_F_LEDGER_ENTRY
Surrogate Key
Copy
KF_F_LEDGER_ENTRY
not null, foreign key to KD_D_PROJECT Surrogate Key not null, foreign key to KF_D_ORG Surrogate Key not null, foreign key to KF_D_ACCOUNT_STAT ISTICS Surrogate Key not null not null not null not null not null not null Business key Business key Business key Business key Business key Business key
Copy Copy
KF_F_LEDGER_ENTRY KF_F_LEDGER_ENTRY
Copy Copy
KF_F_LEDGER_ENTRY KF_F_LEDGER_ENTRY
not null
Degenerate Dimension
Transform
KF_F_LEDGER_ENTRY
N/A N/A
Measure Measure
Transform Transform
KF_F_LEDGER_ENTRY 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
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
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
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 with FISCAL_PERIOD_CD after the fiscal period for the current row or with FISCAL_PERIOD_CD in ( 'CB', 'BB', 'AB' ). N/A N/A N/A N/A N/A Measure Measure Measure Measure Measure Transform Transform Transform Transform Transform KF_F_LEDGER_ENTRY KF_F_LEDGER_ENTRY KF_L_LEDGER_ENTRY KF_F_LEDGER_ENTRY 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
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 N/A
Measure Measure
Transform Transform
KF_F_LEDGER_ENTRY 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
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
N/A
Measure
Transform
KF_F_LEDGER_ENTRY
N/A N/A N/A N/A N/A N/A N/A not null NOT NULL NOT NULL NOT NULL NOT NULL
Measure Measure Measure Measure Measure Measure Measure Effective Date Business Key Audit Audit Audit
Transform Transform Transform Transform Transform Transform Generated Generated Copy Generated Generated Generated
KF_F_LEDGER_ENTRY KF_F_LEDGER_ENTRY KF_F_LEDGER_ENTRY KF_F_LEDGER_ENTRY KF_F_LEDGER_ENTRY KF_F_LEDGER_ENTRY N/A N/A KF_F_LEDGER_ENTRY N/A N/A N/A
Audit Audit
Generated Generated
N/A N/A
Source Column
Lookup Logic*
FISCAL_PERIOD_SID
N/A
ACCOUNT_SID
N/A
OBJECT_CODE_SID
N/A
PROJECT_SID ACCOUNT_ORG_SID
N/A N/A
FIN_SUB_OBJ_CD PROJECT_CD
N/A N/A
N/A N/A 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
DOCUMENT_NBR
LEDGER_ACTUALS_AMT_UA LEDGER_ACTUALS_AMT_UA
N/A 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
LEDGER_ACTUALS_AMT_UA
N/A
Multiple
N/A
LEDGER_ACTUALS_AMT_UA
N/A
LEDGER_ACTUALS_AMT_UA
N/A
EDGER_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
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
LEDGER_ACTUALS_AMT_UA
N/A
LEDGER_ACTUALS_AMT_UA
N/A
N/A
Multiple
N/A
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
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 Multiple
N/A N/A
LEDGER_ACTUALS_AMT_UA
N/A
LEDGER_ACTUALS_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
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
LEDGER_ACTUALS_AMT_UA
N/A
LEDGER_ACTUALS_AMT_UA
N/A
LEDGER_ACTUALS_AMT_UA LEDGER_ENTRY_AMT LEDGER_ENTRY_AMT LEDGER_ENTRY_AMT LEDGER_ENTRY_AMT LEDGER_ENTRY_AMT N/A N/A SRC_SYS_ID 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 N/A
Transform Logic
N/A
N/A
N/A
N/A N/A
N/A N/A
Last day of month containing posting date. N' /'Y' max(transaction_dt) at aggregation level
N/A
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) )
MAX( ABS(LEDGER_ACTUALS_AMT_UA) )
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(CASE WHEN 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_AMT END)
SUM(CASE WHEN 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_AMT END) /* 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(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 ) 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(CASE WHEN FIN_BALANCE_TYP_CD in ('MB','BB','CB') AND UNIV_FISCAL_PRD_CD = 'BB' <> 'D' then (-1 * LEDGER_ENTRY_AMT) WHEN FIN_BALANCE_TYP_CD in ('MB','BB','CB') AND UNIV_FISCAL_PRD_CD = 'BB' = 'D' then LEDGER_ENTRY_AMT END) SUM(CASE WHEN FIN_BALANCE_TYP_CD in ('MB','BB','CB') AND UNIV_FISCAL_PRD_CD = 'CB' <> 'D' then (-1 * LEDGER_ENTRY_AMT) WHEN FIN_BALANCE_TYP_CD in ('MB','BB','CB') AND UNIV_FISCAL_PRD_CD = 'CB' = 'D' then LEDGER_ENTRY_AMT END) /* 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 )
AND TRN_DEBIT_CRDT_CD
AND TRN_DEBIT_CRDT_CD
AND TRN_DEBIT_CRDT_CD
AND TRN_DEBIT_CRDT_CD
/* 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(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) /* 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(CASE WHEN 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_AMT END) SUM(CASE WHEN 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_AMT END) /* 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_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 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 know N/A If 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 Batch ID of highest level ETL job that called this one.
Purpose
Comment
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 t
Remove? Define at account level and move to account dimension? Does not aggregate.
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?
New column, Check naming. What about RE (year end budget reversion)?
Changed sign for AC & encumberance, need to remove hard coded encumberance types
are we using right BEGIN BALANCE amount for this field?, calculated usine merge statement
are we using right BEGIN BALANCE amount for this field? What about fund balance adjustments? Would using post date be better?
ot aggregate.
erance types