Implementing HR Analytics using E-Business Suite Adaptors
Implementing HR Analytics using E-Business Suite Adaptors - A technical documentation of various aspects of the product as applies to Oracle Business Intelligence Applications – HR E-Business Suite Adaptors
Oracle Corporation |
1
Implementing HR Analytics using E-Business Suite Adaptors 1.
ORACLE BI APPLICATIONS E-BUSINESS SUITE ADAPTOR (7.9.6 +) .......................... 4
2.
GENERAL BACKGROUND OF ORACLE E-BUSINESS SUITES ADAPTORS .................... 4
3.
KEY ETL PROCESSES AND INCREMENTAL REFRESH STRATEGIES ............................. 5
3.1.
Persistent Staging Tables ...................................................................................................................... 5
3.2.
Incremental refresh of DW based on Event Queues .............................................................................. 6
3.2.1. 3.2.2.
An incremental refresh use case..................................................................................... 6 A worked out example of Event Queue table ................................................................. 7
4.
GENERAL IMPLEMENTATION CONSIDERATIONS ............................................................ 8
5.
IMPACT OF INCORRECT CONFIGURATIONS OF DOMAIN VALUES .............................. 9
6.
DETAILED UNDERSTANDING OF THE KEY HR ETL PROCESSES ................................ 11
6.1.
Core Workforce Fact Process .............................................................................................................. 11
6.1.1. 6.1.2. 6.1.3. 6.1.4. 6.1.5. 6.1.6. 6.1.7. 6.1.8. 6.1.9. 6.1.10. 6.1.11. 6.1.12. 6.1.13. 6.1.14. 6.1.15. 6.1.16. 6.1.17. 6.1.18. 6.1.19. 6.1.20. 6.1.21. 6.1.22. 6.1.23. 6.1.24. 6.1.25. 6.1.26.
ETL Flow ........................................................................................................................ 11 Key Steps and Table Descriptions ................................................................................. 12 Key Setup/Configuration Steps ..................................................................................... 17 Customizing the Workforce Fact ................................................................................... 18 W_ORA_WEVT_ASG_PS ................................................................................................ 19 W_ORA_WEVT_HDC_PS ............................................................................................... 20 W_ORA_WEVT_FTE_PS................................................................................................. 21 W_ORA_WEVT_SAL_PS................................................................................................. 22 W_ORA_WEVT_PTYP_PS .............................................................................................. 23 W_ORA_WEVT_PERF_PS .............................................................................................. 24 W_ORA_WEVT_ASG_EQ_TMP...................................................................................... 25 W_ORA_SUPV_STATUS_PS ........................................................................................... 26 W_WRKFC_EVT_FS ....................................................................................................... 27 Workforce Base Fact (W_WRKFC_EVT_F)..................................................................... 28 Workforce Age Fact (W_WRKFC_EVT_AGE_F) ............................................................. 29 Workforce Period of Work Fact (W_WRKFC_EVT_POW_F) ......................................... 30 Workforce Merge Fact (W_WRKFC_EVT_MERGE_F).................................................... 31 Workforce Month Snapshot Fact (W_WRKFC_EVT_MONTH_F) .................................. 32 Workforce Aggregate Fact (W_WRKFC_BAL_A) ........................................................... 33 Workforce Aggregate Event Fact (W_WRKFC_EVT_A) ................................................. 35 Handling Deletes ........................................................................................................... 38 Propagating to derived facts ......................................................................................... 39 Date-tracked Deletes .................................................................................................... 39 Purges............................................................................................................................ 39 Primary Extract.............................................................................................................. 40 Identify Delete............................................................................................................... 41 Oracle Corporation |
2
Implementing HR Analytics using E-Business Suite Adaptors 6.1.27. Soft Delete .................................................................................................................... 41 6.1.28. Date-Tracked Deletes - Worked Example ..................................................................... 42 6.2.
Recruitment Fact Process .................................................................................................................... 43
6.2.1. 6.2.2. 6.2.3. 6.2.4. 6.2.5. 6.2.6. 6.2.7. 6.2.8. 6.2.9. 6.2.10. 6.2.11. 6.2.12. 6.2.13. 6.3.
Absence Fact Process .......................................................................................................................... 59
6.3.1. 6.3.2. 6.3.3. 6.3.4. 6.3.5. 6.3.6. 6.4.
ETL Flow ........................................................................................................................ 65 Key Steps and Table Descriptions ................................................................................. 65 Key Setup/Configuration Steps ..................................................................................... 66 W_ORA_LM_ENROLLMENT_F_PRG_TMP .................................................................... 67 W_ORA_LM_ENROLLMENT_F_HST_TMP ..................................................................... 68 W_LM_EMROLLMENT_ACC_SNP_FS ............................................................................ 69 Learning Enrollment Acc. Snapshot Fact (W_LM_ENROLLMENT_ACC_SNP_F) ........... 70 Learning Enrollment Event Fact (W_LM_ENROLLMENT_EVENT_F) ............................. 71
Payroll Fact Process ............................................................................................................................ 72
6.5.1. 6.5.1. 6.5.2. 6.5.3.
7.
ETL Flow ........................................................................................................................ 59 Key Steps and Table Descriptions ................................................................................. 59 Key Setup/Configuration Steps ..................................................................................... 60 W_ABSENCE_TYPE_RSN_DS ......................................................................................... 61 W_ABSENCE_EVENT_DS ............................................................................................... 62 Absence Event Fact (W_ABSENCE_EVENT_F) ............................................................... 63
Learning Fact Process .......................................................................................................................... 65
6.4.1. 6.4.2. 6.4.3. 6.4.4. 6.4.5. 6.4.6. 6.4.7. 6.4.8. 6.5.
ETL Flow ........................................................................................................................ 43 Key Steps and Table Descriptions ................................................................................. 43 Key Setup/Configuration Steps ..................................................................................... 45 W_JOB_RQSTN_EVENT_FS ........................................................................................... 46 W_ORA_APPL_EVENT_F_TMP ...................................................................................... 46 W_APPL_EVENT_FS....................................................................................................... 47 Job Req. & Applicant Event Facts (W_JOB_RQSTN_EVENT_F & W_APPL_EVENT_F) .. 48 Job Requisition Accumulated Snapshot Fact (W_JOB_RQSTN_ACC_SNP_F) ............... 50 Applicant Accumulated Snapshot Fact (W_APPL_ACC_SNP_F) .................................... 51 Recruitment Pipeline Event Fact (W_RCRTMNT_EVENT_F) ......................................... 51 Recruitment Job Requisition Aggregate Fact (W_RCRTMNT_RQSTN_A) ..................... 54 Recruitment Applicant Aggregate Fact (W_RCRTMNT_APPL_A) ................................. 56 Recruitment Hire Aggregate Fact (W_RCRTMNT_HIRE_A)........................................... 57
ETL Flow ........................................................................................................................ 72 W_PAYROLL_FS ............................................................................................................. 75 Payroll Fact (W_PAYROLL_F) ......................................................................................... 76 Payroll Aggregate Fact (W_PAYROLL_A) ....................................................................... 77
KNOWN ISSUES AND PATCHES ............................................................................................. 78
Oracle Corporation |
3
Implementing HR Analytics using E-Business Suite Adaptors
1. Oracle BI Applications E-Business Suite Adaptor (7.9.6 +)
The purpose of this document is to provide enough information one might need while attempting an implementation of HR Analytics using the Oracle BI Applications E-Business Suite Adaptors. Apart from understanding the ‘entry points’ that are required to implement HR Analytics, it also helps to know the process details of some ‘key’ components of HR Analytics. A few of these key facts and dimensions are also discussed and an overview of their process/usages is provided towards the end. This document is intended for Oracle BI Applications Releases 7.9.6, 7.9.6.1, 7.9.6.2 as well as 7.9.6.3. For upcoming releases, this document will be updated in due course of time.
2. General Background of Oracle E-Business Suites Adaptors
Oracle BI Applications’ Data Warehouse consists of a huge set of facts, dimensions and aggregate tables. The portion of the ETL that loads to these ‘end’ tables are typically Source Independent (loaded using the Informatica folder SILOS). These ETL maps start from a staging table and load data incrementally into the corresponding end table. Aggregates are created upstream, and have no relation to which source system the data came from. The ETL portion, Source Dependent Extract, that extracts into these staging tables (also called Stage Tables) are the ones that go against a given source system, like EBS or PSFT and so on. For Universal, they go against a similarly structured CSV file. Take any Adaptor – the stage tables are exactly the same structurally. The grain expectation is also exactly the same for all adaptors. Oracle BI Applications provide packaged ETL mappings against various source OLTP systems and Oracle E-Business Suites is one of them. EBS Adaptors for Oracle BI Applications provide packaged maps supporting various business areas such as Human Resources, Supply Chain & Procurements, Order Management, Financials and Service. Depending on the Oracle BI Application product releases, a variety of EBS versions are also supported, including 11.5.10, R12, R12.1.1, R12.1.2 and R12.1.3.
Oracle Corporation |
4
Implementing HR Analytics using E-Business Suite Adaptors
3. Key ETL processes and Incremental Refresh Strategies The Oracle BI Applications E-Business Suites Adaptor comes with pre-packaged ETL maps that are designed to carry out incremental refreshes of your data warehouse. The in-built extraction logic not only supports how to figure out the ‘changes’ but also supports refreshing of your data warehouse in case there has been a correction done to your OLTP system. This is quite common in HRMS systems. There are two points to talk about in this matter:
3.1.
Persistent Staging Tables
Persisted Staging (PS) tables are similar to the Operational Data Store (ODS) concept. Usually the PS tables reflect the structure of a transaction table plus calculations/lookups. The PS layer has been brought into the ETL for a couple of different reasons. The main purpose is to filter out incremental changes that do not affect the data warehouse:
If capturing changes using LAST_UPDATE_DATE then updates to columns not used by the warehouse would trigger unnecessary updates. Also a date-tracked update causes two records to be changed – one new record to be inserted (the change we are interested in) and the old record is end-dated (not a change that affects any warehouse data)
Some OLTP tables do not have any last update timestamp, so comparing the full extract with the PS layer allows only the true incremental changes to be processed downstream.
Another purpose of the PS layer is to do some calculations (setting indicators, domain lookups). By doing this processing at the first opportunity it can be reused by other processes. This improves consistency and efficiency. Persistent Staging tables are not truncated throughout the life of the data warehouse (hence the term “persistent”). There is a specific style of modelling PS tables. Here are a few key column natures that might be worth to mention: Change indicators - Whether the assignment record has a different organization, job, grade etc. compared with the previous record. This is very common in EBS to have more than one change pushed into a single ASSIGNMENTS record, whereas theoretically, several changes were actually done to it. For example, Job Change, Grade change, Organization Change – all three of these can happen at the same time and EBS might only give you “one” new record reflecting all the changes in one shot. However, these are different equally important events for our data warehouse. To make our downstream processes simpler, we add these indicator columns, and later filter by indicator values (0 or 1) to get our required events. Obviously, populating these indicator columns efficiently is a non-trivial task, but the good thing is that it all comes pre-packaged for you. Entry dates - the date of last change for organization, job, grade etc. Oracle Corporation |
5
Implementing HR Analytics using E-Business Suite Adaptors
3.2.
Incremental refresh of DW based on Event Queues
Event Queue tables help manage the incremental refresh of a history table (e.g. fact or type 2 dimension). The EQ table columns are usually the natural key plus the earliest date of change. During incremental load it is possible for one (back-dated) change to impact many different records. For example, the workforce fact tracks assignment changes, appraisals, salary etc. If an appraisal rating was provided late, then the correct performance rating would need to be updated on any assignment changes or salary changes since the appraisal. To simplify the cost of determining the impact of changes, event queue tables only store for each assignment the date of the earliest change. Then everything from that point on is reprocessed. In “normal” loads only a small percentage of all assignments should change, and most changes would be current. So the event queue tables should usually be small. The only exception is for the monthly snapshot fact where if the load moves into a new month then a new snapshot has to be created for all active (not terminated) assignments.
3.2.1. An incremental refresh use case Like we mentioned earlier, this refresh strategy is useful where one update transaction on the source can have a much bigger impact on the warehouse. In HCM, the main fact (workforce) is a combination of mini facts from various places (assignment, appraisals, salary, budget values, length of service, supervisor). It is more about status (balance) than tracking single events. To illustrate the impact, suppose we have: Grade
A
B
B
B
Assignment
$50k
$60k
$70k
$80k
Salary
GOOD
BAD
UGLY
GOOD
Performance The fact will look something like this: Assignment
Date From
Date To
Event
Grade
Grade Change
Salary
Performance
1 1 1 1 1 1 1 1 1
1 Jan 1 Feb 1 Mar 1 Apr 1 May 1 Jun 1 Jul 1 Aug 1 Sep
31 Jan 28 Feb 31 Mar 30 Apr 31 May 30 Jun 31 Jul 31 Aug End
Hire Appraisal Review Appraisal Review Assignment Appraisal Review Assignment
A A B B B B B B B
N N Y N N N N N N
50 50 60 60 70 70 70 80 80
GOOD BAD BAD UGLY UGLY UGLY GOOD GOOD GOOD
Oracle Corporation |
6
Implementing HR Analytics using E-Business Suite Adaptors
If we correct the second assignment record so that the grade change is deferred (A, B, B, B A, A, B, B) then we will need to correct the records as highlighted below. Assignment
Date From
Date To
Event
Grade
Grade Change
Salary
Performance
1 1 1 1 1 1 1 1 1
1 Jan 1 Feb 1 Mar 1 Apr 1 May 1 Jun 1 Jul 1 Aug 1 Sep
31 Jan 28 Feb 31 Mar 30 Apr 31 May 30 Jun 31 Jul 31 Aug End
Hire Appraisal Review Appraisal Review Assignment Appraisal Review Assignment
A A A A A B B B B
N N N N N Y N N N
50 50 60 60 70 70 70 80 80
GOOD BAD BAD UGLY UGLY UGLY GOOD GOOD GOOD
Therefore a single correction on the transaction system can result in many records requiring correction on the warehouse. Because of the complexity of working out exactly what is impacted, a simple and efficient refresh strategy is to capture the earliest refresh date per person/assignment and do a refresh of that portion of the target. Usually the event queue table will contain:
Primary Key Columns (e.g. Assignment) Other Key Columns (e.g. Data Source) Earliest Change / Refresh From Date (date of earliest change e.g. 1 Mar from example above) Previous End Date (always equal to Earliest Change Date – 1 this makes the implementation more portable)
3.2.2. A worked out example of Event Queue table The source table is loaded with the initial load. Assignment
Event Date
Event
Grade
Salary
LOAD_ID
1 1
1 Jan 2000 1 Jan 2003
Hire Review
A B
50 60
1 1
The target table gets the same data and calculates the effective end date: Assignment
Date From
Date To
Event
Grade
Salary
LOAD_ID
1 1
1 Jan 2000 1 Jan 2003
31 Dec 2002 End
Hire Review
A B
50 60
1 1
The subsequent incremental load (ID=2) changed the source table as follows: Assignment
Date From
Date To
Event
Grade
Salary
LOAD_ID
Comment
1 1 1
1 Jan 2000 1 Jan 2001 1 Jan 2003
31 Dec 2000 31 Dec 2002 End
Hire Promotion Review
A B B
50 50 60
1 2 1
New Record
Oracle Corporation |
7
Implementing HR Analytics using E-Business Suite Adaptors The Event Queue Table would hold: Assignment
Earliest Change Date
Previous End Date
1
1 Jan 2001
31 Dec 2000
4. General Implementation Considerations Oracle BI Applications E-Business Suites Adaptor being a ‘packaged’ ETL application, it assumes correctness of source OLTP data. If your source data isn’t clean enough, you are bound to encounter problems down the line. We strongly recommend that you carry out a good health-check of your source data (by writing custom SQL’s etc) and detect issues upfront and have them fixed, prior to running your ETL. Areas of consideration include, but not limited to, are: The total number of Worker and Non Worker assignments as of "End Date". Periods during which Workers and Non Workers have assignment budget values totaling more than one. This check requires the initial load request set to have been run. Periods during which worker assignments do not have a supervisor. Periods during which worker and non-worker assignments have a supervisor who has been terminated. Periods during which worker assignments do not have a salary. Workers and non-workers who were terminated without providing a leaving reason. Workers who have never had a performance review or an appraisal rating. Assignment Budget Value Total by Supervisor Total salaries for the supervisor's subordinates as of “End Date”. Details of Non workers without a projected end date. Number of users who have the ability to access Oracle Business Intelligence Applications dashboards Details of current users who can access Oracle Business Intelligence Applications dashboards, but cannot view data due to security restrictions. This check requires the initial load request set to have been run. Supervisor Loops present in the system. A few of these are checks for you to compare later against the warehouse. Others are examples of possible bad data. The key is to get these results handy and on a case by case basis, have the OLTP data corrected. For example, having a loop in the reporting relationships can make the ETL behavior unpredictable or wrong.
Oracle Corporation |
8
Implementing HR Analytics using E-Business Suite Adaptors
5. Impact of incorrect configurations of domain values
Domain values constitute a very important foundation for Oracle Business Intelligence Applications. We use this concept heavily all across the board to ‘equalize’ similar aspects from a variety of source systems. The Oracle Business Intelligence Applications provide packaged data warehouse solutions for various source systems such as E-Business Suite, PeopleSoft, Siebel, JD Edwards and so on. We attempt to provide a “source dependent extract” type of a mapping that leads to a “source independent load” type of a mapping, followed by a “post load” (also source independent) type of mapping. With data possibly coming in from a variety of source systems, this equalization is necessary. Moreover, the reporting metadata (OBIEE RPD) is also source independent. The metric calculations are obviously source independent. The following diagram shows how a worker status code/value is mapped onto a warehouse domain to conform to a single target set of values. The domain is then re-used by any measures that are based on worker status.
A
Active
I
Inactive
OLTP 1
1
Active
2
Suspended
3
Terminated
Source
Domain
A
Active
ACTIVE
I
Inactive
INACTIVE
1
Active
ACTIVE
2
Suspended
INACTIVE
3
Terminated
INACTIVE
Data Warehouse
“Active” Measures
OLTP 2
Domain values help us to equalize similar aspects or attributes as they come from different source systems. We use these values in our ETL logic, sometimes even as hard-coded filters. We use these values in defining our reporting layer metrics. And hence, not configuring, incorrectly configuring, or changing the values of these domain value columns from what we expect, will lead to unpredictable results. You may have a single source system to implement, but still you have to go through all the steps and configure the domain values based on your source data. Unfortunately, this is small price you pay for going the “buy” approach VS the traditional “build” approach for your data warehouse. Oracle Corporation |
9
Implementing HR Analytics using E-Business Suite Adaptors One of the very frequently asked question is “what is the difference between domain value code/name pairs VS the regular code/name pairs that are stored in W_CODE_D”. If you look at the structure of W_CODE_D table, it appears to be also capable of standardizing code/name pairs to something common. This is correct. However, we wanted to give an extensive freedom to users to be able to do that standardization (not necessarily equalization) of their code/names and possibly use that for cleansing as well. For example, if the source supplied code/name are possibly CA/CALIF or CA/California, you can choose the W_CODE_D approach (using Master Code and Master Map tables – see configuration guide for details) to standardize on CA/CALIFORNIA. Now, to explain the difference of domain value code/name pairs Vs the regular code/name pairs, it is enough if you understand the significance of the domain value concept. To keep it simple, wherever we (Oracle Business Intelligence Applications) felt that we should equalize two similar topics that give us analytic values, metric calculation possibilities etc, we have “promoted” a regular code/name pair to a domain value code/name pair. If we have a requirement to provide a metric called “Male Headcount”, we can’t do that accurately unless we know which of the headcount is “Male” and which is “Female”. This metric therefore has easy calculation logic: Sum of headcount where sex = Male. Since PeopleSoft can call it “M” and EBS can have “male”, we decided to call it a domain value code/name pair, W_SEX_MF_CODE (available in the employee dimension table). Needless to say, if you didn’t configure your domain value for this column accurately, you won’t get this metric right.
Oracle Corporation |
10
Implementing HR Analytics using E-Business Suite Adaptors
6. Detailed understanding of the key HR ETL Processes 6.1.
Core Workforce Fact Process
6.1.1. ETL Flow Workforce Balance Aggregate W_WRKFC_BAL_A
Workforce Event Aggregate W_WRKFC_EVT_A
Dimension Aggregate W_EMPLOYMENT_STAT_CA T_D
Dimension Aggregate W_WRKFC_EVENT_GROUP_D
Workforce Month Snapshot Fact W_ WRKFC_ EVT_ MONTH_F
Month Dimension W_ MONTH_D
Workforce Merge Fact W_ WRKFC_ EVT_ MERGE_F
Workforce Age Fact W_ WRKFC_ EVT_ AGE_F
Workforce Service Fact W_ WRKFC_ EVT_ POW_F
Period of Work Band Dimension W_PRD_OF_WRK _BAND _ D
Age Band Dimension W_ AGE_ BAND_D
Workforce Fact W_ WRKFC_ EVT_F
Workforce Fact Staging W_ WRKFC_ EVT_FS
Assignment Events
Supervisor Status W_ ORA_ SUPV_ STATUS_PS
FTE Events
Headcount Events
Salary Events
Person Type Events
Appraisal Events
Supervisor Status Events
For each change type all the PS tables are joined together to produce event records with all information correct as of the event
Assignment
FTE
W_ ORA_ WEVT_ ASG_PS W_ ORA_ WEVT_ ASG_ TMP
Salary
W_ ORA_ WEVT_ FTE_PS W_ ORA_ WEVT_ FTE_ TMP
Service W_ ORA_ WEVT_ POW_ TMP
Age
W_ ORA_ WEVT_ SAL_PS W_ ORA_ WEVT_ SAL_ TMP
Headcount W_ ORA_ WEVT_ HDC_PS W_ ORA_ WEVT_ HDC_ TMP
W_ ORA_ WEVT_ AGE_ TMP
Person Type
Appraisal
W_ ORA_ WEVT_ PTYP_PS W_ ORA_ WEVT_ PTYP_ TMP
W_ ORA_ WEVT_ PERF_PS W_ ORA_ WEVT_ PERF_ TMP
Oracle Corporation |
11
Implementing HR Analytics using E-Business Suite Adaptors 6.1.2. Key Steps and Table Descriptions
Initial Extraction Tables used for initial source extraction. Table
Primary Sources
Grain
Description
W_ORA_WEVT_ASG_PS
PER_ALL_ASSIGNMENTS_F
As primary source + inactive record
Active assignment changes plus some event interpretation from the source plus one system generated inactive record
W_ORA_WEVT_HDC_PS
PER_ASSIGNMENT_BUDGET _VALUES_F Headcount Fast Formulas
One row per assignment per headcount change
W_ORA_WEVT_FTE_PS
PER_ASSIGNMENT_BUDGET _VALUES_F FTE Fast Formulas
One row per assignment per FTE change
If fast formula is used then the budget value is checked for each assignment record start and any changes are recorded. Otherwise the grain follows the ABV source table.
W_ORA_WEVT_SAL_PS
PER_PAY_PROPOSALS
As primary source
Pay reviews plus salary annualization.
W_ORA_WEVT_PTYP_PS
PER_PERSON_TYPE _USAGES_F
As primary source for EMP and CWK types
Worker person type pushed down to corresponding assignment (type E or C)
W_ORA_WEVT_PERF_PS
PER_APPRAISALS PER_PERFORMANCE _REVIEWS
As primary source
Appraisal ratings normalized (converted to a %) and stored against each assignment
W_ORA_SUPV_STATUS_PS
W_ORA_WEVT_ASG_PS
One row per person per change in supervisor status
At any given time a person is a supervisor if an active assignment exists that reports to them.
W_WRKFC_EVT_FS
All W_ORA_*_PS
One row per assignment per workforce event
Records workforce events for assignments from hire/start through to termination/end. Includes appraisals, salary reviews and general changes.
W_WRKFC_EVT_F
W_WRKFC_EVT_F
One row per assignment per workforce
Records workforce events for assignments from hire/start through to termination/end. Includes
Oracle Corporation |
12
Implementing HR Analytics using E-Business Suite Adaptors event
appraisals, salary reviews and general changes.
W_WRKFC_EVT_AGE_F
W_AGE_BAND_D W_WRKFC_EVT_F
One row per assignment per age band change
Records age band change events for each assignment
W_WRKFC_EVT_POW_F
W_PRD_OF_WRK_BAND_D W_WRKFC_EVT_F
One row per assignment per service band change
Records service band change events for each assignment
W_WRKFC_EVT_MERGE_F
W_WRKFC_EVT_F W_WRKFC_EVT_AGE_F W_WRKFC_EVT_POW_F
One row per assignment per workforce or band change event
Merges band change events with workforce events for assignments
W_WRKFC_EVT_MONTH_F
W_WRKFC_EVT_MERGE_F W_MONTH_D
One row per assignment per change event or snapshot month
Adds in monthly snapshot records along with the workforce and band change events.
W_EMPLOYMENT_STAT_CAT_D
W_EMPLOYMENT_D
One row per Employment Status and category.
This table is an aggregated dimension table on the distinct Employment Status and Category available in W_EMPLOYMENT_D table.
W_WRKFC_EVENT_TYPE_D
W_WRKFC_EVENT_TYPE_DS
The grain of this table is at a single Workforce Event Type level.
This dimension table stores information about a workforce event, such as the action, whether the organization or job has changed, whether it is a promotion or a transfer, and so on. This table is designed to be a Type-1 dimension.
W_WRKFC_EVENT_GROUP_D
W_WRKFC_EVENT_TYPE_D
One row per Event group and Event Sub group
This table is an aggregate dimension based on the Event Group and Event Sub Group in the W_WRKFC_EVENT_TYPE_D dimension table.
W_WRKFC_BAL_A
W_EMPLOYMENT_STAT_CAT_D
One row per employment
This is a Balance Aggregate table based on the
Oracle Corporation |
13
Implementing HR Analytics using E-Business Suite Adaptors
W_WRKFC_EVT_A
W_WRKFC_EVT_MONTH_F
status/category and snapshot month
Snapshot Fact table W_WRKFC_EVT_MONTH_F.
W_EMPLOYMENT_STAT_CAT_D
One row per workforce event group/event sub group and employment status/category
This is an Events Aggregate table based on the Base Event Fact table W_WRKFC_EVT_MERGE_F.
W_WRKFC_EVENT_GROUP_D W_WRKFC_EVT_MERGE_F
Oracle Corporation |
14
Implementing HR Analytics using E-Business Suite Adaptors
Incremental Extraction Additional tables used for incremental source extraction only. Grain is for new/updated records only. Last update date is used on all incremental extracts to determine the changed source data. Table
Primary Sources
Grain (changes)
Description
W_ORA_WEVT_ASG_TMP
PER_ALL_ASSIGNMENTS_F
As primary source + inactive record
Stages updates before merging into the _PS table. Comparisons are made to detect changes
W_ORA_WEVT_HDC_TMP
PER_ASSIGNMENT_BUDGET _VALUES_F Headcount Fast Formulas
One row per assignment per headcount change
Stages updates before merging into the _PS table. Comparisons are made to see what change occurred, if any.
W_ORA_WEVT_FTE_TMP
PER_ASSIGNMENT_BUDGET _VALUES_F FTE Fast Formulas
One row per assignment per FTE change
W_ORA_WEVT_SAL_TMP
PER_PAY_PROPOSALS
As primary source
Stages updates before merging into the _PS table. Comparisons are made to see what change occurred, if any.
W_ORA_WEVT_PTYP_TMP
PER_PERSON_TYPE _USAGES_F
As primary source for EMP and CWK types
Stages updates before merging into the _PS table. Comparisons are made to see what change occurred, if any.
W_ORA_WEVT_PERF_TMP
PER_APPRAISALS PER_PERFORMANCE _REVIEWS
As primary source
Stages updates before merging into the _PS table. Comparisons are made to see what change occurred, if any.
W_ORA_WEVT_AGE_TMP
PER_ALL_PEOPLE_F
One row per person
Comparison is made with date of birth in assignment table and all rows updated on change
W_ORA_WEVT_POW_TMP
PER_PERIODS_OF_SERVICE
One row per period of service
Comparison is made with date start in assignment table and all rows updated on change
W_ORA_WEVT_ASG_EQ_TMP
All W_ORA_*_PS
One row per assignment
Assignments and their earliest date of any change
W_ORA_SUPV_OLD_TMP
W_ORA_WEVT_ASG_PS
One row per assignment per supervisor change
Keeps track of prior supervisors (before assignments are updated) as these may have a change in supervisor status
W_ORA_SUPSTAT_EQ_TMP
W_ORA_WEVT_ASG_PS W_ORA_SUPV_OLD_TMP
One row per person
Lists people with potential changes in supervisor status
Oracle Corporation |
15
Implementing HR Analytics using E-Business Suite Adaptors W_WRKFC_EVT_EQ_TMP
W_WRKFC_EVT_FS
One row per changed assignment
Reference table for which assignments have changed and the earliest change dates
W_WRKFC_EVT_MONTH_EQ_TMP
W_WRKFC_EVT_EQ_TMP W_WRKFC_EVT_F W_MONTH_D
One row per changed assignment
Expands W_WRKFC_EVT_EQ_TMP to include assignments needing new snapshots
W_WRKFC_BAL_A_EQ_TMP
W_WRKFC_EVT_MONTH_EQ_TMP W_WRKFC_EVT_MONTH_F W_EMPLOYMENT_STAT_CAT_D
One row per changed employment status/category and snapshot month
Reference table for which employment status/category have changed and the snapshot month
W_WRKFC_EVT_A_EQ_TMP
W_WRKFC_EVT_EQ_TMP
One row per changed event group/sub group and employment status/category
Reference table for which event group/sub groups have changed and changed employment status/category.
W_WRKFC_EVT_MERGE_F W_EMPLOYMENT_STAT_CAT_D W_WRKFC_EVENT_GROUP_D
Oracle Corporation |
16
Implementing HR Analytics using E-Business Suite Adaptors 6.1.3. Key Setup/Configuration Steps The following table documents the minimum setup required for the target snapshot fact to be loaded successfully. For other functionality to work it is necessary to perform other setup as documented by the installation guide below. If this is not done it may be necessary to re-run initial load after completing the additional setup. Type
Name
Description
DAC System Parameter
INITIAL_EXTRACT_DATE
Earliest date to extract data across all facts
HR_WRKFC_EXTRACT_DATE
Earliest date to extract data from HR Facts
HR_WRKFC_ADJ_SERVICE_DATE
Whether or not to count length of work from the adjusted service date
HR_WRKFC_SNAPSHOT _DT
Earliest date to generate snapshots for HR Workforce. st This should be set to the 1 of a month.
HR_WRKFC_SNAPSHOT _TO_WID
Current date in WID form – should not be changed
Age Band
Age bands need to be defined in a continuous set of ranges
Period of Work Bands
Period of work bands need to be defined in a continuous set of ranges
Collect FTE
Whether or not to load FTE values (FTE PS table)
Collect Performance Ratings
Whether or not to load appraisals (PERF PS table)
Domains
Configuration Tag
Notes 1) Workforce extract date should be the earliest date from which HR data is required for reporting (including all HR facts e.g. Absences, Payroll, Recruitment). This can be later than initial extract date if other non-HR content loads need an earlier initial extract date. 2) Snapshots should be generated for recent years only in order to improve ETL performance and reduce the size of the snapshot fact.
Oracle Corporation |
17
Implementing HR Analytics using E-Business Suite Adaptors 6.1.4. Customizing the Workforce Fact
Adding new attributes/measures Modifying the existing mappings for the above tables is possible but there are many places where code has to be changed in order to fully integrate with the existing operation. The recommended way of extending the workforce fact is:
Add new tables to hold the additional content
For modifications to existing columns/content change the SA mapplet only (mplt_SA_ORA_WorkforceEventFact) and add lookup(s) to the new table(s) and modify the output columns
For new columns, rather than change all seven mappings that load the fact staging table (SDE_ORA_WorkforceEventFact_*) it would be simpler to define a single post-load update mapping that runs afterwards. This can be ordered later in the existing DAC task group (TASK_GROUP_EXTRACT_WorkforceEventFact).
For new events – add a new mapping to load the new events and include it in the existing DAC task group (TASK_GROUP_EXTRACT_WorkforceEventFact).
Integrating with incremental refresh If there are changes to the extended content that require a refresh of the data for a particular assignment (or set of assignments) then the following steps should be followed to ensure the system remains consistent:
Modify the mapping SDE_ORA_WorkforceEventQueue_Asg to include the assignments requiring a refresh. Adding another UNION to pick up assignments and earliest changes from the extended content should suffice.
Do not refresh any more data than is absolutely necessary. For example, pushing all assignments into the event queue “to be sure of detecting all the changes” is a bad idea – it will effectively do a very slow initial load.
If new events are added via a new mapping then this should have an incremental override to only process assignments and dates as per the event queue (W_ORA_WEVT_ASG_EQ_TMP).
Oracle Corporation |
18
Implementing HR Analytics using E-Business Suite Adaptors 6.1.5. W_ORA_WEVT_ASG_PS The assignment persisted staging table mirrors the assignments transaction table (per_all_assignments_f) for records active on or after the initial extract date.
End Events
End Events
Changes
W_ORA_WEVT_ASG_TMP
Incremental
Normal working hours standardized Previous FKs calculated Previous dates calculated Event mapped to conformed event
W_ORA_WEVT_ASG_PS
Initial
PER_ASSIGNMENT_STATUS_TYPES
PER_JOBS
PER_ALL_ASSIGNMENTS_F
PER_PAY_BASES
PER_ALL_PEOPLE_F (Date of Birth) PER_PERIODS_OF_SERVICE (Also _PLACEMENT for CWKs)
Initial Load Sessions
SDE_ORA_PersistedStage_WorkforceEvent_Assignment_Full (loads new active records)
SDE_ORA_PersistedStage_WorkforceEvent_Assignment_End_Full (adds inactive records)
Incremental Load Sessions
SDE_ORA_PersistedStage_WorkforceEvent_Age (loads new/changed dates of birth)
SDE_ORA_PersistedStage_WorkforceEvent_Pow (loads new/changed service dates)
SDE_ORA_PersistedStage_WorkforceEvent_Assignment_Incr (stages new/changed active assignment records in the _TMP table, including age and service changes)
SDE_ORA_PersistedStage_WorkforceEvent_AssignmentEnd_Incr (adds inactive records)
SDE_ORA_PersistedStage_WorkforceEvent_SupOld (keeps a record of old supervisors – where the supervisor is changed, as the old supervisor needs to be checked for status)
SDE_ORA_PersistedStage_WorkforceEvent_Assignment_Mntn (compares _TMP and _PS tables to detect differences, and pushes the changes into the _PS table) Oracle Corporation |
19
Implementing HR Analytics using E-Business Suite Adaptors 6.1.6. W_ORA_WEVT_HDC_PS The headcount persisted staging table stores headcount changes only. Changes
W_ORA_WEVT_HDC_TMP
W_ORA_WEVT_HDC_PS
Initial
Incremental
Sources from ABV table or Fast Formula Calculates previous Headcount values
PER_ALL_ASSIGNMENTS_F PER_ASSIGNMENT_BUDGET_VALUES_F
Fast Formula BUDGET/TEMPLATE_HEAD
Initial Load Sessions
SDE_ORA_PersistedStage_WorkforceEvent_Headcount_Full (loads new records)
Incremental Load Sessions
SDE_ORA_PersistedStage_WorkforceEvent_Headcount_Incr (loads changed records in the _TMP table)
SDE_ORA_PersistedStage_WorkforceEvent_Headcount_Mntn (compares _TMP and _PS tables to detect differences, and pushes the changes into the _PS table)
Oracle Corporation |
20
Implementing HR Analytics using E-Business Suite Adaptors 6.1.7. W_ORA_WEVT_FTE_PS The FTE persisted staging table stores FTE changes only. It can be optionally disabled to speed up ETL if FTE reporting is not required. See configuration section above. Changes
W_ORA_WEVT_FTE_TMP
W_ORA_WEVT_FTE_PS
Initial
Incremental
Sources from ABV table or Fast Formula Calculates previous FTE values
PER_ALL_ASSIGNMENTS_F PER_ASSIGNMENT_BUDGET_VALUES_F
Fast Formula BUDGET/TEMPLATE_FTE
Initial Load Sessions
SDE_ORA_PersistedStage_WorkforceEvent_FTE_Full (loads new records)
Incremental Load Sessions
SDE_ORA_PersistedStage_WorkforceEvent_FTE_Incr (loads changed records in the _TMP table)
SDE_ORA_PersistedStage_WorkforceEvent_FTE_Mntn (compares _TMP and _PS tables to detect differences, and pushes the changes into the _PS table)
Oracle Corporation |
21
Implementing HR Analytics using E-Business Suite Adaptors 6.1.8. W_ORA_WEVT_SAL_PS The salary persisted staging table stores approved salary changes only. Changes
W_ORA_WEVT_SAL_TMP
Incremental
Annualized salaries Previous salary calculated Last salary increase date calculated
W_ORA_WEVT_SAL_PS
Initial
PER_ALL_ASSIGNMENTS_F
PER_PAY_BASES
PER_PAY_PROPOSALS
PAY_INPUT_VALUES_F
PAY_ELEMENT_TYPES_F
PER_TIME_PERIOD_TYPES
PAY_ALL_PAYROLLS_F
Initial Load Sessions
SDE_ORA_PersistedStage_WorkforceEvent_Salary_Full (loads new records)
Incremental Load Sessions
SDE_ORA_PersistedStage_WorkforceEvent_Salary_Incr (loads changed records in the _TMP table)
SDE_ORA_PersistedStage_WorkforceEvent_Salary_Mntn (compares _TMP and _PS tables to detect differences, and pushes the changes into the _PS table)
Oracle Corporation |
22
Implementing HR Analytics using E-Business Suite Adaptors 6.1.9. W_ORA_WEVT_PTYP_PS The person type persisted staging table stores assignments and their corresponding EMP or CWK person types. It tracks changes in the user person type. Changes
W_ORA_WEVT_PTYP_TMP
Incremental
W_ORA_WEVT_PTYP_PS
Initial
Matches assignments to person types using: ‘E’ => ‘EMP’ ‘C’ => ‘CWK’
PER_PERSON_TYPES
PER_PERSON_TYPE_USAGES_F
PER_ALL_ASSIGNMENTS_F
Initial Load Sessions
SDE_ORA_PersistedStage_WorkforceEvent_PersonType_Full (loads new records)
Incremental Load Sessions
SDE_ORA_PersistedStage_WorkforceEvent_PersonType_Incr (loads changed records in the _TMP table)
SDE_ORA_PersistedStage_WorkforceEvent_PersonType_Mntn (compares _TMP and _PS tables to detect differences, and pushes the changes into the _PS table)
Oracle Corporation |
23
Implementing HR Analytics using E-Business Suite Adaptors 6.1.10. W_ORA_WEVT_PERF_PS The performance persisted staging table stores selected appraisal/performance ratings for performance banding. It can optionally be disabled – see the configuration section above. Performance ratings are normalized (converted to percentages) and the percentage values are banded.
Calculate previous performance ratings Add date-track start/end dates Detect changes (incremental)
W_ORA_WEVT_PERF_TMP
W_ORA_WEVT_PERF_PS
Include/Exclude Appraisal Templates Normalize Ratings (default or domain override)
PER_EVENTS
PER_PERFORMANCE_REVIEWS
PER_ALL_ASSIGNMENTS_F
PER_RATING_LEVELS PER_APPRAISALS PER_APPRAISAL_TEMPLATES
Initial Load Sessions
SDE_ORA_PersistedStage_WorkforceEvent_Performance_Full (loads new records in the _TMP table)
SDE_ORA_PersistedStage_WorkforceEvent_Performance_Mntn (moves data into the _PS table adding previous values and date-track start/end dates)
Incremental Load Sessions
SDE_ORA_PersistedStage_WorkforceEvent_Performance (loads changed records in the _TMP table)
SDE_ORA_PersistedStage_WorkforceEvent_Performance_Mntn (additionally compares _TMP and _PS tables to detect differences, and pushes the changes into the _PS table) Oracle Corporation |
24
Implementing HR Analytics using E-Business Suite Adaptors 6.1.11. W_ORA_WEVT_ASG_EQ_TMP Stores a list of assignments that have had a change in any one of the PS tables. Any change may impact several records – so the fact is refreshed based on the earliest change, and all subsequent events are re-loaded. Note that supervisor status is not included at this point. The supervisor status changes are merged into this event queue later (see W_ORA_SUPV_STATUS_PS section). Workforce Fact Event Queue W_ORA_WEVT_ASG_EQ_TMP Assignent IDs plus the earliest event (effective start) date for records that have changes (DATA_EFF_CHANGE_DT updated)
Assignment
FTE
W_ORA_WEVT_ASG_PS
Salary
W_ORA_WEVT_FTE_PS
Appraisal W_ORA_WEVT_PERF_PS
W_ORA_WEVT_SAL_PS
Headcount W_ORA_WEVT_HDC_PS
Person Type W_ORA_WEVT_PTYP_PS
Initial Load Sessions
None
Incremental Load Sessions
SDE_ORA_WorkforceEventQueue_Asg
Oracle Corporation |
25
Implementing HR Analytics using E-Business Suite Adaptors 6.1.12. W_ORA_SUPV_STATUS_PS The supervisor status persisted staging table stores for each person whether or not they are a supervisor at any point in time. A person is a supervisor at a given point in time if they supervise one or more assignments that are active at that time. W_ORA_SUPV_STATUS_PS Status changes only
Incremental
Initial
W_ORA_SUPSTAT_EQ_TMP People potentially changing status
W_ORA_SUPV_OLD_TMP Pre-refresh supervisor pending changes
Pre-refresh
W_ORA_WEVT_ASG_PS
Initial Load Sessions
SDE_ORA_PersistedStage_WorkforceEvent_SupervisorStatus_Full (loads new records)
Incremental Load Sessions
SDE_ORA_WorkforceEventQueue_SupStatus (separate task to load people whose supervisor status changed into an event queue)
SDE_ORA_WorkforceEventQueue_AsgUpdate (pushes assignments whose owners supervisor status has changed into the main assignment change queue to force the fact refresh to pick up the change in status)
SDE_ORA_PersistedStage_WorkforceEvent_SupervisorStatus_Incr (loads changed records)
SDE_ORA_PersistedStage_WorkforceEvent_SupervisorStatus_Mntn (deletes records to be re-inserted, maintains date-track)
Oracle Corporation |
26
Implementing HR Analytics using E-Business Suite Adaptors 6.1.13. W_WRKFC_EVT_FS The fact staging table is loaded from the PS tables. Workforce events may derive from any of these sources, and each source gives a workforce event with a different change type to help track the source of the event. For each change type there is one mapping that loads events into staging (sourced primarily from the one PS table corresponding to the change type). However to ensure every measure/attribute is available for each event record, all the rows are joined together for each mapping. In incremental load each mapping additionally joins to the event queue table to restrict the processing to only new/changed records – plus all subsequent events to ensure consistency.
Workforce Fact Staging W_WRKFC_EVT_FS
Assignment Events
Event Queue W_ORA_WEVT_ASG_EQ_TMP
FTE Events
Headcount Events
Salary Events
Person Type Events
Appraisal Events
Supervisor Status Events
For each change type all the PS tables are joined together to produce event records with all information correct as of the event. In incremental load the event queue is additionally joined in to ensure only actual changes (plus subsequent events) are processed.
Supervisor Status
Assignment
FTE
Salary
W_ORA_WEVT_ASG_PS
W_ORA_WEVT_FTE_PS
W_ORA_WEVT_SAL_PS
W_ORA_SUPV_STATUS_PS
Headcount
Person Type
Appraisal
W_ORA_WEVT_HDC_PS
W_ORA_WEVT_PTYP_PS
W_ORA_WEVT_PERF_PS
Initial Load Sessions
SDE_ORA_PersistedStage_WorkforceEventFact_*_Full (loads all records)
Incremental Load Sessions
SDE_ORA_PersistedStage_WorkforceEventFact_* (loads new/changed records as per event queue)
Oracle Corporation |
27
Implementing HR Analytics using E-Business Suite Adaptors 6.1.14. Workforce Base Fact (W_WRKFC_EVT_F)
Deletes any obsolete fact records Maintains effective start/end dates
Incremental only
W_WRKFC_EVT_EQ_TMP
W_WRKFC_EVT_F
Incremental only
Calculates EFFECTIVE_END_DATE based on next event date
W_WRKFC_EVT_FS
The workforce base fact is refreshed from the workforce fact staging table.
Effective end date is calculated based on the next event date Deleted events are removed (subsequent events previously loaded but no longer staged – see Incremental Load section on backdated changes)
Initial Load Sessions
SIL_WorkforceEventFact (loads new/updated records)
Incremental Load Sessions
SIL_WorkforceEventFact (loads new/updated records) PLP_WorkforceEventQueue_Asg (loads change queue table with changed (staged) assignments and their earliest change (staged event) date) PLP_WorkforceEventFact_Mntn (deletes obsolete events – see note above)
The date-track (having a continuous non-overlapping set of effective start/end dates per assignment) is critical to downstream facts and the correct operation of the reports. Deletes can also be handled separately (see deletes section below) but care needs to be taken to ensure the date-track is correctly maintained if deleting individual records.
Oracle Corporation |
28
Implementing HR Analytics using E-Business Suite Adaptors 6.1.15. Workforce Age Fact (W_WRKFC_EVT_AGE_F)
W_WRKFC_EVT_AGE_F
W_AGE_BAND_D
W_WRKFC_EVT_F
The age fact contains one starting row plus one row each time an assignment moves from one age band to the next. For example, if the last age band is 55+ years then there will be an event generated for each assignment on the 55th birthday of the worker (BIRTH_DT + 55 years). Any worker hired beyond the age of 55 will have no additional band change events, just the starting row. Note the age bands are completely configurable, but because of the dependencies between the age bands and the facts any changes to the configuration will require a reload (initial load). This fact is refreshed for an assignment whenever there is a change to the worker’s date of birth on the hire record (or the first record if the hire occurred before the fact initial extract date).
Initial Load Sessions
PLP_WorkforceEventFact_Age_Full (loads new records)
Incremental Load Sessions
PLP_WorkforceEventFact_Age_Mntn (deletes records to be refreshed or obsolete) PLP_WorkforceEventFact_Age (loads changed records)
Oracle Corporation |
29
Implementing HR Analytics using E-Business Suite Adaptors 6.1.16. Workforce Period of Work Fact (W_WRKFC_EVT_POW_F)
W_WRKFC_EVT_POW_F
W_PRD_OF_WRK_BAND_D
W_WRKFC_EVT_F
The period of work fact contains one starting row plus one row each time an assignment moves from one service band to the next. For example, if the first service band is 0-1 years then there will be an event generated for each assignment exactly one year after hire (POW_START_DT). Note the period of work bands are completely configurable, but because of the dependencies between the service bands and the facts any changes to the configuration will require a reload (initial load). This fact is refreshed whenever there is a change to the hire record (or first record if the hire was before the fact initial extract date).
Initial Load Sessions
PLP_WorkforceEventFact_Pow_Full (loads new records)
Incremental Load Sessions
PLP_WorkforceEventFact_Pow_Mntn (deletes records to be refreshed) PLP_WorkforceEventFact_Pow (loads changed records)
Oracle Corporation |
30
Implementing HR Analytics using E-Business Suite Adaptors 6.1.17. Workforce Merge Fact (W_WRKFC_EVT_MERGE_F)
W_WRKFC_EVT_MERGE_F
W_WRKFC_EVT_F
W_WRKFC_EVT_AGE_F
W_WRKFC_EVT_POW_F
This fact contains the change events from the base, age and service facts. It is refreshed based on the combination of assignments and (earliest) event dates in the fact staging table.
Initial Load Sessions
PLP_WorkforceEventFact_Merge_Full (loads new records)
Incremental Load Sessions
PLP_WorkforceEventFact_Merge_Mntn (deletes records to be refreshed) PLP_WorkforceEventFact_Merge (loads changed records)
Oracle Corporation |
31
Implementing HR Analytics using E-Business Suite Adaptors 6.1.18. Workforce Month Snapshot Fact (W_WRKFC_EVT_MONTH_F)
W_WRKFC_EVT_MONTH_F
Monthly Snapshots
W_MONTH_D
Workforce Events
W_WRKFC_EVT_MERGE_F
This fact contains the merged change events plus a generated snapshot record on the first of every month on or after the HR_WRKFC_SNAPSHOT_DT parameter. To allow future-dated reporting snapshots are created up to 6 months in advance. This fact is refreshed based on:
Combination of assignments and (earliest) event dates in the fact staging table Any snapshots required for active assignments since the last load (e.g. if the incremental load is not run for a while, or the system date moves into a new month since the last load)
Initial Load Sessions
PLP_WorkforceEventFact_Month_Full (loads new records)
Incremental Load Sessions
PLP_WorkforceEventQueue_AsgMonth (adds to the change queue table any assignments needing new snapshots since the last load) PLP_WorkforceEventFact_Month_Mntn (deletes records to be refreshed) PLP_WorkforceEventFact_Month (loads changed records)
Oracle Corporation |
32
Implementing HR Analytics using E-Business Suite Adaptors 6.1.19. Workforce Aggregate Fact (W_WRKFC_BAL_A)
Workforce Aggregate Fact W_WRKFC_BAL_A Aggregate Fact is loaded directly by Employment Dimension but it still remains at the grain of the Employment Stat Cat Aggregate Dimension
PLP Load Process FULL
Workforce Dimension Aggregate W_EMPLOYMENT_STAT_CAT_D
PLP Dimension Aggregate Load FULL and INCR
PLP Load process INCR only
Workforce Month Snapshot Fact
Change Queue table W_WRKFC_BAL_A_EQ_TMP
W_WRKFC_EVT_MONTH_F
PLP Parent level Update FULL and INCR
Dimension W_EMPLOYMENT_D
PLP INCR only
Workforce Month Fact W_WRKFC_EVT_MONTH_F
Change queue table W_WRKFC_EVT_MONTH_EQ_TM P
Aggregate dimension W_EMPLOYMENT_STAT_CAT_D is based on the distinct Employment Status and Category available in W_EMPLOYMENT_D table.
Aggregate Fact table (W_WRKFC_BAL_A) is based on the Snapshot Fact table W_WRKFC_EVT_MONTH_F and Aggregate dimension W_EMPLOYMENT_STAT_CAT_D so as to improve performance of Fact table W_WRKFC_EVT_MONTH_F. Aggregate Fact W_WRKFC_BAL_A is loaded directly by Dimension W_EMPLOYMENT_ D (essentially remains at the grain of Dimension Aggregate W_EMPLOYMENT_ STAT_CAT_D) and Workforce Month Snapshot Fact W_WRKFC_EVT_MONTH_F.
Oracle Corporation |
33
Implementing HR Analytics using E-Business Suite Adaptors
Initial Load Sessions
PLP_EmploymentDimensionAggregate_Load_Full (Loads Aggregate dimension
W_EMPLOYMENT_STAT_CAT_D based on the distinct Employment Status and Category
available in W_EMPLOYMENT_D table. PLP_EmploymentDimension_ParentLevelUpdate_Full(Aggregate dimension
W_EMPLOYMENT_STAT_CAT_D updates parent dimension W_EMPLOYMENT_D table
PLP_WorkforceBalanceAggregateFact_Load _Full (loads new records into the Balance Aggregate Fact table based on W_WRKFC_EVT_MONTH_F and the Aggregate Dimension (W_EMPLOYMENT_STAT_CAT_D).Although it gets directly loaded from W_EMPLOYMENT_D, the Balance Aggregate Fact remains at the grain of the Aggregate Dimension (W_EMPLOYMENT_STAT_CAT_D))
Incremental Load Sessions
PLP_EmploymentDimensionAggregate_Load (Loads new rows into Aggregate dimension W_EMPLOYMENT_STAT_CAT_D from current ETL run, based on the distinct Employment Status and Category available in W_EMPLOYMENT_D table.)
PLP_EmploymentDimension_ParentLevelUpdate(Aggregate dimension W_EMPLOYMENT_STAT_CAT_D updates parent dimension W_EMPLOYMENT_D table)
PLP_WorkforceBalanceAggregateFact_Load (deletes records that came in the event queue table (W_WRKFC_BAL_A_EQ_TMP)and loads new records into the Balance Aggregate Fact table)
PLP_WorkforceBalanceQueueAggregate_PostLoad (Loads Event Queue table W_WRKFC_BAL_A_EQ_TMP with records based on W_WRKFC_EVT_MONTH_EQ_TMP and W_WRKFC_EVT_MONTH_F)
Oracle Corporation |
34
Implementing HR Analytics using E-Business Suite Adaptors 6.1.20. Workforce Aggregate Event Fact (W_WRKFC_EVT_A)
Workforce Aggregate Fact W_WRKFC_EVT_A
Aggregate Fact is loaded directly by Employment Dimension but it is at the grain of the Employment Stat Cat Aggregate Dimension
PLP Load Process FULL
Workforce Dimension Aggregate W_EMPLOYMENT_STAT_ CAT_D
PLP Dimension Aggregate Load FULL and INCR
Workforce Event Merge Fact W_WRKFC_EVT_MERGE _F
PLP Parent level Update FULL and INCR
Dimension W_EMPLOYMENT_D
Aggregate Fact is loaded directly by Workforce Event Type Dimension but it is at the grain of the Workforce Event Group Aggregate Dimension
PLP Load process INCR only
Change Queue table W_WRKFC_EVT_A_EQ_T MP
PLP Dimension Aggregate Load FULL and INCR
PLP INCR only
W_WRKFC_EVT_MERGE_F
Workforce Dimension Aggregate W_WRKFC_EVENT_GRO UP_D
W_WRKFC_EVT_EQ_TMP
PLP Parent level Update FULL and INCR
Dimension W_WRKFC_EVENT_TYPE_D
Aggregate dimension (W_EMPLOYMENT_STAT_CAT_D) is based on the distinct Employment Status and Category available in W_EMPLOYMENT_D table. Aggregate dimension (W_WRKFC_EVENT_GROUP_D) is based on the Event Group and Event Sub Group in the W_WRKFC_EVENT_TYPE_D dimension table. W_WRKFC_EVT_A is an Aggregate Fact table based on the Merged Event Fact table, W_WRKFC_EVT_MERGE_F, Aggregate dimension W_WRKFC_EVENT_GROUP_D and Aggregate dimension W_EMPLOYMENT_STAT_CAT_D, to improve performance of W_WRKFC_EVT_MERGE_F. Aggregate Fact W_WRKFC_EVT_A is loaded directly by Dimension W_EMPLOYMENT_ D (essentially remains at the grain of Dimension Aggregate W_EMPLOYMENT_STAT_CAT_D), Dimension W_WRKFC_EVENT_TYPE_D (essentially remains at the grain of Dimension Aggregate W_WRKFC_EVENT_GROUP_D) and Workforce Fact W_WRKFC_EVT_MERGE_F.
Oracle Corporation |
35
Implementing HR Analytics using E-Business Suite Adaptors
Initial Load Sessions
PLP_EmploymentDimensionAggregate_Load_Full (Loads Aggregate dimension W_EMPLOYMENT_STAT_CAT_D based on the distinct Employment Status and Category available in W_EMPLOYMENT_D table.)
PLP_EmploymentDimension_ParentLevelUpdate_Full(Aggregate dimension W_EMPLOYMENT_STAT_CAT_D updates parent dimension W_EMPLOYMENT_D table)
PLP_WorkforceEventGroupDimensionAggregate_Load_Full (Loads Aggregate dimension (W_WRKFC_EVENT_GROUP_D) based on the Event Group and Event Sub Group in the W_WRKFC_EVENT_TYPE_D dimension table.)
PLP_WorkforceEventGroupDimension_ParentLevelUpdate (Aggregate dimension (W_WRKFC_EVENT_GROUP_D) updates EVENT_GROUP_WID of parent level dimension (W_WRKFC_EVENT_TYPE_D))
PLP_WorkforceEventAggregateFact_ Full (loads new records into the Event Aggregate Fact table (W_WRKFC_EVT_A) based on Workforce Fact table (W_WRKFC_EVT_MERGE_ F), Aggregate Dimension (W_EMPLOYMENT_STAT_CAT_D) and Aggregate Dimension (W_WRKFC_EVENT_GROUP_D). Although it gets directly loaded from W_EMPLOYMENT_D and W_WRKFC_EVENT_TYPE_D, the Balance Aggregate Fact remains at the grain of the Aggregate Dimensions (W_EMPLOYMENT_STAT_CAT_D and W_WRKFC_EVENT_GROUP_D))
Incremental Load Sessions
PLP_EmploymentDimensionAggregate_Load (Loads new rows into Aggregate dimension W_EMPLOYMENT_STAT_CAT_D from current ETL run, based on the distinct Employment Status and Category available in W_EMPLOYMENT_D table.)
PLP_EmploymentDimension_ParentLevelUpdate(Aggregate dimension W_EMPLOYMENT_STAT_CAT_D updates parent dimension W_EMPLOYMENT_D table)
PLP_WorkforceEventGroupDimensionAggregate_Load (Loads new rows into Aggregate dimension (W_WRKFC_EVENT_GROUP_D) from current ETL run, based on the Event Group and Event Sub Group in the W_WRKFC_EVENT_TYPE_D dimension table.)
PLP_WorkforceEventGroupDimension_ParentLevelUpdate(Aggregate dimension (W_WRKFC_EVENT_GROUP_D) updates parent level dimension (W_WRKFC_EVENT_TYPE_D) )
Oracle Corporation |
36
Implementing HR Analytics using E-Business Suite Adaptors
PLP_WorkforceEventAggregateFact (deletes records that came in the event queue table (W_WRKFC_EVT_A_EQ_TMP)and loads new records into the Workforce Event Aggregate Fact table)
PLP_WorkforceEventQueueAggregate_PostLoad (Loads Event Queue table W_WRKFC_EVT_A_EQ_TMP with records based on W_WRKFC_EVT_EQ_TMP and W_WRKFC_EVT_F)
Oracle Corporation |
37
Implementing HR Analytics using E-Business Suite Adaptors 6.1.21. Handling Deletes
W_WRKFC_EVT_F Set delete flag
W_WRKFC_EVT_DEL_F Records to be deleted
Any fact record where: Fact integration key is not in the primary extract table, or Fact assignment key is not in the primary extract table
W_WRKFC_EVT_F_PE Integration keys or assignments
Source OLTP
All the standard OBIA mappings are provided for processing deletes (Primary Extract, Identify Deletes, and Soft Delete). However because of the added complexity of maintaining the date-track (continuous set of effective start/end dates per assignment) the functionality differs slightly. There are two types of delete to make a distinction between:
Date-tracked delete – a single record is deleted for an assignment, but others remain Purge – all records for an assignment are deleted, the assignment no longer exists on the source transaction system These are discussed in more detail below.
Oracle Corporation |
38
Implementing HR Analytics using E-Business Suite Adaptors 6.1.22. Propagating to derived facts The incremental load for derived facts will automatically detect any records deleted via the delete process (W_WRKFC_EVT_F_DEL). Deleted records will be physically removed from the derived fact tables as part of the incremental refresh.
6.1.23. Date-tracked Deletes To delete individual records using the standard delete mappings the primary keys of the fact should be extracted into the primary extract table. Then the identify delete mapping will compare the primary extract table with the fact table and the soft delete mapping will flag as deleted any record in the fact which is not in the primary extract table.
6.1.24. Purges To purge all records for an assignment using the standard delete mappings the distinct assignment ids should be extracted into the primary extract table. Then the identify delete mapping will compare the primary extract table with the fact table and the soft delete mapping will flag as deleted all records for assignments in the fact which are not in the primary extract table.
Oracle Corporation |
39
Implementing HR Analytics using E-Business Suite Adaptors 6.1.25. Primary Extract
W_WRKFC_EVT_F_PE
W_WRKFC_EVT_F_PE
DATASOURCE_NUM_ID INTEGRATION_ID (ASSIGNMENT_ID)
Either / Or
DATASOURCE_NUM_ID INTEGRATION_ID
Source OLTP
Extract from the source OLTP either the valid assignments or valid integration keys for the fact. The delete process will delete fact records with no valid assignment (purge) and no valid integration key (individual record delete). This step can be skipped if there is an alternative method (e.g. source trigger) of detecting the purges or deletes and pushing the fact keys to delete directly to the W_WRKFC_EVT_F_DEL table. The recommendation is to use the purge – only extract the distinct valid assignment ids. If the other option is used then care should be taken to leave the fact consistent. See the worked example below.
Oracle Corporation |
40
Implementing HR Analytics using E-Business Suite Adaptors 6.1.26. Identify Delete
W_WRKFC_EVT_DEL_F Records to be deleted
Any fact record where: Fact integration key is not in the primary extract table, or Fact assignment key is not in the primary extract table
W_WRKFC_EVT_F_PE
W_WRKFC_EVT_F
Compares the primary extract table with the fact table to detect purges or deletes. The primary keys of fact records to be deleted are inserted into the delete table. This step can be skipped if there is an alternative method (e.g. source trigger) of detecting the purges or deletes and pushing the fact keys to delete directly to the W_WRKFC_EVT_F_DEL table. Incremental Sessions:
SIL_WorkforceEventFact_IdentifyDelete
6.1.27. Soft Delete
W_WRKFC_EVT_F Set delete flag
W_WRKFC_EVT_DEL_F
This updates the delete flag to “Y” (Yes) for fact records in the delete table. Incremental Sessions:
SIL_WorkforceEventFact_SoftDelete
Oracle Corporation |
41
Implementing HR Analytics using E-Business Suite Adaptors 6.1.28. Date-Tracked Deletes - Worked Example The recommended way of handling date-tracked deletes in the workforce fact is to always stage changed records (in the case of a delete – the previous record) and allow the fact incremental load mappings handle the changes. The following example shows what can happen if the fact is not maintained correctly when deleting records.
W_WRKFC_EVT_F
Suppose after initial load the following data was loaded in the fact table for assignment 1: Assignment Start Date
End Date
Change Type
Organization
Salary
1
01-Jan-2000
31-Dec-2000
HIRE
A
5000
1
01-Jan-2001
31-Dec-2001
REVIEW
A
6000
1
01-Jan-2002
31-Dec-2002
TRANSFER
B
6000
1
01-Jan-2003
01-Jan-3714
REVIEW
B
7000
Now suppose the transfer record was deleted on the source transaction system. If this was handled by the primary extract – identify delete – soft delete mappings then there would be the following records left in the fact table (delete flag = ‘N’): Assignment Start Date
End Date
Change Type
Organization
Salary
1
01-Jan-2000
31-Dec-2000
HIRE
A
5000
1
01-Jan-2001
31-Dec-2001
REVIEW
A
6000
1
01-Jan-2003
01-Jan-3714
REVIEW
B
7000
This is wrong on two counts: 1. The date-track is not continuous, so downstream ETL may fail or lose data. Also reports in Answers may not return data for the gaps in the date-track. 2. The data is not consistent – since the transfer has been deleted the REVIEW on 01-Jan-2003 should not still be showing organization B. The first issue would be reasonably simple to fix with an update (either pushing the updated record into the fact staging table, or if directly updating the fact it would be necessary to track the event (effective start) date of the updated row in W_WRKFC_EVT_EQ_TMP). However the second issue is more complex. By allowing the fact incremental load to take care of the deletes these issues are avoided. Oracle Corporation |
42
Implementing HR Analytics using E-Business Suite Adaptors
6.2.
Recruitment Fact Process
6.2.1. ETL Flow Recruitment Job Req Aggregate W_RCRTMNT_RQSTN_A
Recruitment Applicant Aggregate W_RCRTMNT_APPL_A
Recruitment Hire Aggregate W_RCRTMNT_HIRE_A
Recruitment Pipeline Fact W_RCRTMNT_EVENT_F
Job Requisition Accumulated Snpsht Fact W_JOB_RQSTN_ACC_SNP_F
Applicant Accumulated Snapshot Fact W_APPL_ACC_SNP_F
Job Requisition Event Fact W_JOB_RQSTN_EVENT_F
Applicant Event Fact W_APPL_EVENT_F
Job Requisition Event Fact Staging W_JOB_RQSTN_EVENT_FS
Applicant Event Fact Staging W_APPL_EVENT_FS Applicant Employee Map W_ORA_APPL_EVENT_F_TMP
EBS System
Assignment Events W_ORA_WEVT_ASG_PS PER_ALL_VACANCIES, PER_REQUISITIONS
FTE Events W_ORA_WEVT_FTE_PS Headcount Events W_ORA_WEVT_HDC_PS
EBS System
Appraisal Events W_ORA_WEVT_PERF_PS
PER_ALL_ASSIGNMENTS_F, PER_ASSIGNMENT_STATUS _TYPES, PER_ALL_VACANCIES, IRC_ASSIGNMENT_STATUS ES, PER_APPLICATIONS, PER_ALL_PEOPLE_F
6.2.2. Key Steps and Table Descriptions Table
Primary Sources
Grain
Description
W_ORA_APPL_EVENT_F_TMP
PER_ALL_ASSIGNMENTS_F PER_PERIOD_OF_SERVICE
One row per applicant – employee map (by assignment ID)
W_JOB_RQSTN_EVENT_FS
PER_ALL_VACANCIES PER_REQUISITIONS Flat file (Job Requisition Original Status)
One row per job requisition per job requisition event per event date
Records Applicant Employee map. This bridge table is used further to get workforce events for the applicant/employee once he/she gets hired (for example FTE events, Appraisal Events) Records job requisition events for all job requisitions from open through to close/fulfilment. The flat file data is used to identify the most significant previous status of the requisition since the OLTP does not maintain history. This applies more during full loads, and
Oracle Corporation |
43
Implementing HR Analytics using E-Business Suite Adaptors
W_APPL_EVENT_FS
W_JOB_RQSTN_EVENT_F
PER_ALL_ASSIGNMENTS_F PER_ASSIGNMENT_STATUS_TYPES PER_ALL_VACANCIES IRC_ASSIGNMENT_STATUSES PER_APPLICATIONS PER_ALL_PEOPLE_F W_ORA_WEVT_ASG_PS W_ORA_WEVT_FTE_PS W_ORA_WEVT_HDC_PS W_ORA_WEVT_PERF_PS W_ORA_APPL_EVENT_F_TMP W_JOB_RQSTN_EVENT_FS
One row per application per job requisition event per event date and sequence
W_JOB_RQSTN_ACC_SNP_F
W_JOB_RQSTN_EVENT_F
W_APPL_EVENT_F
W_APPL_EVENT_FS
One row per application per job requisition event per event date and sequence
W_APPL_ACC_SNP_F
W_APPL_EVENT_F
W_RCRTMNT_EVENT_F
W_JOB_RQSTN_F W_APPL_EVENT_F W_JOB_RQSTN_ACC_SNP_F W_APPL_ACC_SNP_F
One row per application One row per recruitment event type per event date and sequence
W_RCRTMNT_RQSTN_A
W_RCRTMNT_EVENT_F W_MONTH_D
W_RCRTMNT_APPL_A
W_RCRTMNT_EVENT_F W_MONTH_D
W_RCRTMNT_HIRE_A
W_RCRTMNT_EVENT_F W_MONTH_D
One row per job requisition per job requisition event per event date One row per job requisition
One row per job requisition per recruitment event month One row per applicant’s demographics per recruitment event month One row per hired applicant’s demographics per recruitment event month
incremental as well in case there has been multiple changes in requisition statuses throughout the day. Records application events for all applications from applying, screening, selection though offer extension, hire or termination of the application.
Records job requisition events for all job requisitions from open through to close/fulfilment. Records job requisition related event dates, denormalized. Records application events for all applications from applying, screening, selection though offer extension, hire or termination of the application. Records application related event dates, de-normalized. Merges the job requisition events and application events along with de-normalized event dates. Also known as the Recruitment Pipeline fact. Aggregates the job requisition related metrics at a monthly grain. Aggregates the applicant related metrics at a monthly grain.
Aggregates the applicant related metrics with a focus on hired applicants only at a monthly grain.
Oracle Corporation |
44
Implementing HR Analytics using E-Business Suite Adaptors 6.2.3. Key Setup/Configuration Steps There are a few configuration steps that are important for EBS Recruitment Analytics. In general, the data extraction happens based on typical DAC parameters like $$INITIAL_EXTRACT_DATE and $$LAST_EXTRACT_DATE. But there are a few functional parameters that need to be configured as well. Defaults are already set in the out of the box product, but it is recommended that you take a closer look in the configuration guide for the following parameters, their meanings, their impacts to the data warehouse data and so on.
$$EMP_APL_CORR_APPLICATION_ID_MATCH_REQD $$EMP_APL_CORR_VACANCY_ID_MATCH_REQD $$BUDGETED_FTE_SOURCE_COL $$BUDGETED_HEADCOUNT_SOURCE_COL $$NUMBER_OF_OPENINGS_SOURCE_COL
Apart from the parameters, it is important that you configure the domain values for the dimension W_RCRTMNT_EVENT_TYPE_D accurately. All the metrics in Recruitment Analytics depend “heavily” on the correctness of the domain value maps in this dimension. The configuration guide has a dedicated section to explain this in more detail. The list of domain values can be found in the DMR guide. Equally important, especially for EBS, is to know how to configure the values in the file_job_requisition_status_original_ora
.csv. Like others, the configuration guide has a dedicated section to illustrate the complexity. Make sure you read that section.
Oracle Corporation |
45
Implementing HR Analytics using E-Business Suite Adaptors 6.2.4. W_JOB_RQSTN_EVENT_FS Job Requisition Event Fact Stage W_JOB_RQSTN_EVENT_FS
Job Req. Event Extract (FULL & INCR)
PER_ALL_VACANCIES
file_job_requisition_status_ original_ora.csv
PER_REQUISITIONS
Initial Load Sessions
SDE_ORA_JobRequisitionEventFact_Full (Loads all job requisition events since initial extract date)
Incremental Load Sessions
SDE_ORA_JobRequisitionEventFact (loads new/changed job requisition events since last extract date)
6.2.5. W_ORA_APPL_EVENT_F_TMP Applicant Employee Map Temporary W_ORA_APPL_EVENT_F_TMP
Applicant Employee Map Extract (FULL & INCR)
PER_PERIOD_OF_SERVICE
PER_ALL_ASSIGNMENTS_F
Initial Load Sessions
SDE_ORA_ApplicantEventFact_EmpAplAssignments (Maps applicant assignment ID with employee assignment ID, in cases where an applicant gets hired. For internal candidates, this mapping also deduces the original hire date and differentiates it with the current hire date per the ongoing application/recruitment process. In order to support a variety of algorithms based on which a “match” is noted, this mapping offers couple of parameters using which part of the behavior can be altered – see key configuration steps for more) Oracle Corporation |
46
Implementing HR Analytics using E-Business Suite Adaptors
Incremental Load Sessions
SDE_ORA_ApplicantEventFact_EmpAplAssignments (Same as full. The TMP table is truncateloaded)
6.2.6. W_APPL_EVENT_FS Applicant Employee Map
Applicant Event Fact Stage W_APPL_EVENT_FS
Applicant Hires Xfers Terms (FULL & INCR)
Applicant Terminations (FULL & INCR)
IRC_ASSIGNMENT _STATUSES
PER_APPLICATIO NS
PER_ALL_PEOPLE _F
PER_ALL_ASSIGN MENTS_F
Assignment Events W_ORA_WEVT_ASG_ PS
Applicant Appraisals (FULL & INCR) Applicant Events (FULL & INCR)
W_ORA_APPL_EVEN T_F_TMP
Appraisal Events W_ORA_WEVT_PERF _PS
FTE Events W_ORA_WEVT_FTE_ PS Headcount Events W_ORA_WEVT_HDC_ PS
PER_ALL_VACAN CIES
Initial Load Sessions
SDE_ORA_ApplicantEventFact_ApplicantEvents_Full (Extracts all Applicant events other than application termination events since initial extract date)
SDE_ORA_ApplicantEventFact_ApplicantTerminations_Full (Extracts application termination events since initial extract date)
SDE_ORA_ApplicantEventFact_HiresTransfersTerminations_Full (Extracts hire events, transfer events, FTE/Headcount change events and termination events from Workforce using Applicant Employee map)
SDE_ORA_ApplicantEventFact_PerformanceReviews_Full (Extracts performance evaluation/appraisal events from Workforce using Applicant Employee map)
Incremental Load Sessions
SDE_ORA_ApplicantEventFact_ApplicantEvents (Extracts new/changed Applicant events other than application termination events since last extract date)
SDE_ORA_ApplicantEventFact_ApplicantTerminations (Extracts application termination events since last extract date)
Oracle Corporation |
47
Implementing HR Analytics using E-Business Suite Adaptors
SDE_ORA_ApplicantEventFact_HiresTransfersTerminations (Extracts hire events, transfer events, FTE/Headcount change events and termination events from Workforce using Applicant Employee map, since the last extract)
SDE_ORA_ApplicantEventFact_PerformanceReviews (Extracts performance evaluation/appraisal events from Workforce using Applicant Employee map since last extract)
6.2.7. Job Req. & Applicant Event Facts (W_JOB_RQSTN_EVENT_F & W_APPL_EVENT_F)
These two tables are loaded via the corresponding Universal Staging tables (W_JOB_RQSTN_EVENT_FS and W_APPL_EVENT_FS).
Job Requisition Accumulated Snapshot Fact W_JOB_RQSTN_ACC_SNP_F
Applicant Accumulated Snapshot Fact W_APPL_ACC_SNP_F
Job Req. Age Band Events (FULL)
Applicant Generated Events (FULL)
Job Requisition Event Fact W_JOB_RQSTN_EVENT_F
Applicant Event Fact W_APPL_EVENT_F
FULL load process (Job Req.)
FULL load process (Applicant)
Job Requisition Event Fact Stage W_JOB_RQSTN_EVENT_FS
Applicant Event Fact Stage W_APPL_EVENT_FS
Oracle Corporation |
48
Implementing HR Analytics using E-Business Suite Adaptors
Job Requisition Accumulated Snapshot Fact W_JOB_RQSTN_ACC_SNP_F
Job Req. Age Band Events (INCR)
Applicant Accumulated Snapshot Fact W_APPL_ACC_SNP_F
Applicant Generated Events (INCR)
Applicant POW Events (INCR)
Job Requisition Event Fact W_JOB_RQSTN_EVENT_F
Applicant Event Fact W_APPL_EVENT_F
INCR load process (Job Req.)
INCR load process (Applicant)
Job Requisition Event Fact Stage W_JOB_RQSTN_EVENT_FS
Applicant Event Fact Stage W_APPL_EVENT_FS
Initial Load Sessions
SIL_JobRequisitionEventFact_Full (loads new records) SIL_ApplicantEventFact_Full (loads new records) PLP_JobRequisition_AgeBandEvents_Full (deletes and creates requisition age band change event records for those job requisitions that are supposed to enter a new requisition age band based on their current age since opening, and applies this new event to the job requisition accumulated snapshot fact) PLP_ApplicantEventFact_GeneratedEvents_Full (deletes and generates pseudo applicant events that were not supplied by source system, but necessary for the complete analysis of the recruitment pipeline process)
Incremental Load Sessions
SIL_JobRequisitionEventFact (updates changed records and loads new records) PLP_JobRequisition_AgeBandEvents (deletes and creates requisition age band change event records for those job requisitions that are supposed to enter a new requisition age band based on their current age since opening and applies this new event to the job requisition accumulated snapshot fact) SIL_ApplicantEventFact (updates changed records and loads new records) PLP_ApplicantEventFact_GeneratedEvents_Full(deletes and generates pseudo applicant events that were not supplied by source system, but necessary for the complete analysis of the recruitment pipeline process) PLP_ApplicantEventFact_PeriodOfWorkEvents (generates pseudo period-work-work-bandcrossing events in case a hired applicant crosses his/her first period of work band; this is something that the source does not give and we do it for all applicants assuming all of them will be hired and stay for the first period-of-work-band timeframe)
Oracle Corporation |
49
Implementing HR Analytics using E-Business Suite Adaptors 6.2.8. Job Requisition Accumulated Snapshot Fact (W_JOB_RQSTN_ACC_SNP_F)
This table stores the de-normalized dates against various job requisition events from the Job Requisition Events base fact table. After the pseudo Age Band Change events are populated in the base Job Requisition fact table, those dates are also reflected in the Accumulated snapshot fact table. Any changes to the Hiring Manager Position Hierarchy are also updated in this accumulated snapshot fact. Note that the updates because of hierarchy changes do not apply during full ETL run.
Job Requisition Accumulated Snapshot Fact W_JOB_RQSTN_ACC_SNP_F
Job Req. Load (FULL & INCR)
Job Req. Age Band Events (FULL & INCR)
Age Band Dimension W_AGE_BAND_D
Job Requisition Event Fact W_JOB_RQSTN_EVENT_F Position Hierarchy Update Process (INCR ONLY)
Position Hierarchy Post Change Temporary W_POSITION_DH_POST_CHG_TMP Position Hierarchy Pre Change Temporary W_POSITION_DH_PRE_CHG_TMP
Initial Load Sessions
PLP_JobRequisition_AccumulatedSnapshot_Full (loads new records) PLP_JobRequisition_AgeBandEvents_Full (after the age-band-change events are recorded in the base Job Requisition fact table, this mapping updates the related date column in the accumulated snapshot fact table)
Incremental Load Sessions
PLP_JobRequisition_AccumulatedSnapshot (updates changed records and loads new records) PLP_JobRequisition_AgeBandEvents(after the age-band-change events are recorded in the base Job Requisition fact table, this mapping updates the related date column in the accumulated snapshot fact table) PLP_JobRequisition_AccumulatedSnapshot_PositionHierarchy_Update (changes in the Hiring Manager Position Hierarchy due to regular or back dated changes are applied to the accumulated snapshot fact table) Oracle Corporation |
50
Implementing HR Analytics using E-Business Suite Adaptors 6.2.9. Applicant Accumulated Snapshot Fact (W_APPL_ACC_SNP_F) This table stores the de-normalized dates against various applicant events from the Applicant Events base fact table. After the pseudo Age Band Change, Period of Work Band Change and other ‘Missing’ recruitment pipeline events are populated in the base Applicant Event fact table those dates are also reflected in the Accumulated snapshot fact table.
Applicant Accumulated Snapshot Fact W_APPL_ACC_SNP_F
Applicant Load (FULL & INCR)
Period of Work Band Events (FULL & INCR)
Period of Work Band Dimension W_PRD_OF_WRK_BAND_D
Applicant Event Fact W_APPL_EVENT_F
Initial Load Sessions
PLP_Applicant_AccumulatedSnapshot_Full (loads new records)
Incremental Load Sessions
PLP_Applicant_AccumulatedSnapshot (updates changed records and loads new records)
6.2.10. Recruitment Pipeline Event Fact (W_RCRTMNT_EVENT_F) This is the main Recruitment Pipeline event fact table that is used for the reporting needs, and also is used to build aggregate tables at three different grains for reporting purposes. The main purpose of this table is to merge both sides of the recruitment events (job requisition events as well as applicant events) and on top of that provide some value added metrics. At first, the image of this table is captured prior to loading any data into an “Event Queue” table, the purpose of which is to track all changes that are about to happen in this current run. Since this ‘preimage’ is captured by comparing to the main pipeline fact table, this ‘pre-imaging’ process does not apply during full ETL run. Note that this pre-imaging process occurs from both sides (job requisition events as well as applicant events) and apart from the event queue table; these processes also populate another temporary table (W_RCRTMNT_EVENT_F_TMP) which comes in handy during aggregate building.
Oracle Corporation |
51
Implementing HR Analytics using E-Business Suite Adaptors Next, the data from either side are brought into the pipeline fact. The Event queue table drives the merge process during incremental runs to get better performance. Once the data is loaded, a “postimage” process captures the image of the loaded pipeline fact table and writes it to the temporary table W_RCRTMNT_EVENT_F_TMP. This becomes the driver table for the rest of three aggregate building. Recruitment Pipeline Fact W_RCRTMNT_EVENT_F
Full load process (Job Req.)
Job Requisition Accumulated Snapshot Fact W_JOB_RQSTN_ACC_SNP_F
Job Requisition Event Fact W_JOB_RQSTN_EVENT_F
Full load process (Applicant)
Applicant Accumulated Snapshot Fact W_APPL_ACC_SNP_F
Applicant Event Fact W_APPL_EVENT_F
Process flow for FULL Load of the Recruitment Pipeline fact (Load process)
Recruitment Pipeline Event Queue W_RCRTMNT_EVENT_F_EQ_TMP
Pre Image Process (Applicant)
Pre Image Process (Job Req.)
Recruitment Pipeline Temporary W_RCRTMNT_EVENT_F_TMP
Recruitment Pipeline Fact W_RCRTMNT_EVENT_F
Job Requisition Accumulated Snapshot Fact W_JOB_RQSTN_ACC_SNP_F
Job Requisition Event Fact W_JOB_RQSTN_EVENT_F
Applicant Accumulated Snapshot Fact W_APPL_ACC_SNP_F
Applicant Event Fact W_APPL_EVENT_F
Oracle Corporation |
52
Implementing HR Analytics using E-Business Suite Adaptors
Recruitment Pipeline Event Queue W_RCRTMNT_EVENT_F_EQ_TMP
Incremental load process (Job Req.)
Incremental load process (Applicant)
Recruitment Pipeline Fact W_RCRTMNT_EVENT_F
Job Requisition Accumulated Snapshot Fact W_JOB_RQSTN_ACC_SNP_F
Job Requisition Event Fact W_JOB_RQSTN_EVENT_F
Applicant Accumulated Snapshot Fact W_APPL_ACC_SNP_F
Applicant Event Fact W_APPL_EVENT_F
Recruitment Pipeline Temporary W_RCRTMNT_EVENT_F_TMP
Post Image Process
Recruitment Pipeline Fact W_RCRTMNT_EVENT_F
Process flow for INCREMENTAL Load of the Recruitment Pipeline fact (Load process)
Initial Load Sessions
PLP_RecruitmentEventFact_Applicants_Full (loads new records) PLP_RecruitmentEventFact_JobRequisitions_Full (loads new records)
Incremental Load Sessions
PLP_RecruitmentEventFact_Applicants_PreImage (takes a pre-image of the pipeline fact before the new applicant events are loaded; in other words, determine what is about to change) PLP_RecruitmentEventFact_JobRequisitions_PreImage (takes a pre-image of the pipeline fact before the job requisition events are loaded; in other words, determine what is about to change) PLP_RecruitmentEventFact_Applicants (deletes old records that came in the event queue and re-processes and re-inserts them; new records are inserted)
Oracle Corporation |
53
Implementing HR Analytics using E-Business Suite Adaptors
PLP_RecruitmentEventFact_JobRequisitions (deletes old records that came in the event queue and re-processes and re-inserts them; new records are inserted) PLP_RecruitmentEventFact_PostImage (takes a post-image of the pipeline fact after all the changes are done to it)
6.2.11. Recruitment Job Requisition Aggregate Fact (W_RCRTMNT_RQSTN_A) This table stores aggregated measures applicable to Job Requisitions, at a monthly level. The load of this table drives from the Pipeline fact the temporary table W_RCRTMNT_EVENT_F_TMP that was populated during the process of loading the Pipeline fact. During full load, the metrics get aggregated into a temporary table W_RCRTMNT_RQSTN_A_TMP2, which gets subsequently updated to set the effective to date column of the end aggregate table, and finally gets loaded to the end aggregate table. During incremental, an additional process, driven by the pre-populated temporary table W_RCRTMNT_EVENT_F_TMP that tracks the changes affected in the Pipeline fact in the current ETL run, loads yet another temporary table W_RCRTMNT_RQSTN_A_TMP1. The following aggregation of metrics to the second temporary table W_RCRTMNT_RQSTN_A_TMP2 is similar to that of the full load, and so are the remaining processes (updating effective to dates, and loading the end aggregate table). The aggregate table has an EFFECTIVE_FROM_DT and EFFECTIVE_TO_DT column. In order to cater for balance metrics (non-event ones that are non-additive), these dates help to avoid create unnecessary monthly snapshots if nothing has changed for a Job Requisition. The effective from date is the date of the last event happened in the month, and the effective to date is the last day of that month minus one day. The overall ETL process for this table is explained in the following diagrams.
Oracle Corporation |
54
Implementing HR Analytics using E-Business Suite Adaptors
Requisition Aggregate Temp-2 W_RCRTMNT_RQSTN_A_TMP 2
Update Process (Common )
Derive Process (FULL) Time Dimension Day W_DAY_D
Load process (FULL)
Time Dimension Month W_MONTH_ D Recruitment Requisition Aggregate W_RCRTMNT_RQSTN_A
Recruitment Pipeline Fact W_RCRTMNT_EVENT_F
Requisition Aggregate Temp-2 W_RCRTMNT_RQSTN_A_TMP 2
Update process (COMMON)
Derive process (INCR)
Requisition Aggregate Temp-1 W_RCRTMNT_RQSTN_A_TMP 1 Extract process (INCR) Time Dimension - Month W_MONTH_D
Time Dimension - Day W_DAY_D
Load process (INCR)
Recruitment Requisition Aggregate W_RCRTMNT_RQSTN_A
Recruitment Pipeline Fact W_RCRTMNT_EVENT_F
Recruitment Pipeline Temporary W_RCRTMNT_EVENT_F_TMP
Initial Load Sessions
PLP_RecruitmentRequisitionAggregate_Load_Derive_Full (loads new records into the TMP2 table) PLP_RecruitmentRequisitionAggregate_Load_Update (updates effective to date back into the same TMP2 table) PLP_RecruitmentRequisitionAggregate_Load_Full (loads new records into the end aggregate table) Oracle Corporation |
55
Implementing HR Analytics using E-Business Suite Adaptors
Incremental Load Sessions
PLP_RecruitmentRequisitionAggregate_Extract (extracts records into a TMP1 table based on changes that happened in the Pipeline fact in the current ETL run) PLP_RecruitmentRequisitionAggregate_Load_Derive (loads new and changed records into the TMP2 table) PLP_RecruitmentRequisitionAggregate_Load_Update (updates effective to date back into the same TMP2 table) PLP_RecruitmentRequisitionAggregate_Load (deletes and re-loads new and changed records into the end aggregate table)
6.2.12. Recruitment Applicant Aggregate Fact (W_RCRTMNT_APPL_A) This mapping aggregates the applicable recruitment pipeline metrics and groups by all the dimensions in the Applicant Analysis Aggregate Fact table, at a monthly grain. All applicants that pass through the Recruitment pipeline process gets in this aggregate table. During incremental load, the process deletes the records that are about to get impacted because of changes in the Pipeline fact table, then re-processes them.
Recruitment Applicant Aggregate W_RCRTMNT_APPL_A
Load process (FULL)
Time Dimension - Day W_DAY_D
Time Dimension - Month W_MONTH_D
Recruitment Pipeline Fact W_RCRTMNT_EVENT_F
Oracle Corporation |
56
Implementing HR Analytics using E-Business Suite Adaptors
Applicant Aggregate Temporary W_RCRTMNT_APPL_A_TMP
Extract Process (INCR)
Time Dimension Month W_MONTH_ D
Recruitment Pipeline Fact W_RCRTMNT_EVENT_F
Load process (INCR)
Time Dimension Day W_DAY_D
Recruitment Applicant Aggregate W_RCRTMNT_APPL_A
Recruitment Pipeline Fact Temporary W_RCRTMNT_EVENT_F_TMP
Initial Load Sessions
PLP_RecruitmentApplicantAggregate_Load_Full (loads new records)
Incremental Load Sessions
PLP_RecruitmentApplicantAggregate_Extract (loads new and changed records into a temporary table that got impacted in the Pipeline fact during the current ETL run) PLP_RecruitmentApplicantAggregate_Load (deletes, re-processes and re-loads the data, both changed and new, into the end aggregate table)
6.2.13. Recruitment Hire Aggregate Fact (W_RCRTMNT_HIRE_A) This mapping aggregates the applicable recruitment pipeline metrics and groups by all the dimensions in the Hire Analysis Aggregate Fact table, at a monthly grain. Only applicants that are hired gets in this aggregate table. During incremental load, the process deletes the records that are about to get impacted because of changes in the Pipeline fact table, then re-processes them.
Oracle Corporation |
57
Implementing HR Analytics using E-Business Suite Adaptors
Recruitment Hire Aggregate W_RCRTMNT_HIRE_A
Load process (FULL)
Time Dimension - Day W_DAY_D
Time Dimension - Month W_MONTH_D
Hire Aggregate Temporary W_RCRTMNT_HIRE_A_TMP
Extract Process (INCR)
Time Dimension Month W_MONTH_D
Recruitment Pipeline Fact W_RCRTMNT_EVENT_F
Recruitment Pipeline Fact W_RCRTMNT_EVENT_F
Load process (INCR)
Time Dimension Day W_DAY_D
Recruitment Hire Aggregate W_RCRTMNT_HIRE_A
Recruitment Pipeline Fact Temporary W_RCRTMNT_EVENT_F_TMP
Initial Load Sessions
PLP_RecruitmentHireAggregate_Load_Full (loads new records)
Incremental Load Sessions
PLP_RecruitmentHireAggregate_Extract (loads new and changed records into a temporary table that got impacted in the Pipeline fact during the current ETL run) PLP_RecruitmentHireAggregate_Load (deletes, re-processes and re-loads the data, both changed and new, into the end aggregate table)
Oracle Corporation |
58
Implementing HR Analytics using E-Business Suite Adaptors
6.3.
Absence Fact Process
6.3.1. ETL Flow Absence Fact W_ABSENCE_EVENT_F
Absence Event Dimension W_ABSENCE_EVENT_D
Day Dimension W_DAY_D
Workforce Fact W_WRKFC_EVT_F
Absence Type Rsn Dimension W_ABSENCE_TYPE_RSN_D
Absence Event Dim Staging W_ABSENCE_EVENT_DS
PER_ABSENCE_ATTENDANCE_TYPES, PER_ABS_ATTENDANCE_REASONS, HR_STANDARD_LOOKUPS
EBS System
EBS System
Absence Type Reason Dim Staging W_ABSENCE_TYPE_RSN_DS
PER_ABSENCE_ATTENDANCES, PER_ABSENCE_ATTENDANCE_TYPES, PER_ABS_ATTENDANCE_REASONS, PER_ALL_ASSIGNMENTS_F
6.3.2. Key Steps and Table Descriptions Table
Primary Sources
Grain
Description
W_ABSENCE_EVENT_DS
PER_ABSENCE_ATTENDANCES PER_ABSENCE_ATTENDANCE_TYPES PER_ABS_ATTENDANCE_REASONS PER_ALL_ASSIGNMENTS_F
One record per absence occurrence for a given employee/absentee and his/her assignment.
W_ABSENCE_TYPE_RSN_DS
PER_ABSENCE_ATTENDANCE_TYPES PER_ABS_ATTENDANCE_REASONS HR_STANDARD_LOOKUPS
W_ABSENCE_EVENT_D
W_ABSENCE_EVENT_DS W_ABSENCE_TYPE_RSN_DS
One record per valid Absence Type and Reason combination for one set of records. To handle situations where a Reason is not available in the transaction, add another set of records for each valid Absence Type only (no reasons). One row per Absence Occurrence for a given employee and his/her assignment.
Stores the Absence Occurrences for each Employee (Dimension Staging table). Stores absence type, reason and category information. ( Dimension Staging table)
W_ABSENCE_TYPE_RSN_D
W_ABSENCE_TYPE_RSN_DS
One record per valid Absence Type and Reason
Stores the Absence Occurrences for each Employee Stores Absence type, reason and
Oracle Corporation |
59
Implementing HR Analytics using E-Business Suite Adaptors
W_ABSENCE_EVENT_F
W_ABSENCE_EVENT_D W_DAY_D W_WRKFC_EVT_F
combination for one set of records. To handle situations where a Reason is not available in the transaction, add another set of records for each valid Absence Type only (no reasons). One row per Absence day per Absence Occurrence for given employee and his/her assignment.
category information.
Stores One row per Absence day per Absence Occurrence for given employee and his/her assignment.
6.3.3. Key Setup/Configuration Steps The date from which the initial load extracts the data from OLTP is driven off of an “absence specific” parameter called $$HR_ABSNC_EXTRACT_DATE. This is to allow customers to be able to set a different extract start date for only the Absence fact, without affecting any other extracts. Note that since Absence uses Core Workforce facts to load properly, you must ensure the absence extraction date that you set is “later” that the extractions date set for Core Workforce. In other words, $$HR_ABSNC_EXTRACT_DATE should be later than $$HR_WRKFC_EXTRACT_DATE.
Oracle Corporation |
60
Implementing HR Analytics using E-Business Suite Adaptors 6.3.4. W_ABSENCE_TYPE_RSN_DS Absence Type Reason Dimension Stage W_ABSENCE_TYPE_RSN_DS
Absence Type Reason Extract (FULL & INCR)
· ·
Absence Types and Reasons UNION ALL Absence Types only. Reasons set to NULL
PER_ABSENCE_ATTENDANCE_TYPES
PER_ABS_ATTENDANCE_REASONS
Initial Load Sessions
SDE_ORA_AbsenceTypeReason_Full (Extracts all possible absence types and reasons associated with the types from the source system. During absence transactions, absence types are mandatory whereas associating a ‘reason’ for the absence is not. In order to be able to resolve the dimension FK for those transactions where reasons were not associated, the dimension must have records where only types are available but reason isn’t. This mapping unions the two datasets together while extracting the data).
Incremental Load Sessions
SDE_ORA_AbsenceTypeReason (Extracts new/changed absence types with or without reasons since the last extract date)
Oracle Corporation |
61
Implementing HR Analytics using E-Business Suite Adaptors 6.3.5. W_ABSENCE_EVENT_DS Absence Event Dimension Stage W_ABSENCE_EVENT_DS
Absence Event (Occurrence) Extract (FULL & INCR)
ASSIGNMENT_ID, BUSINESS_GROUP_ID DATE_START
PER_ABSENCE_ATTE NDANCES
ASSIGNMENT_TYPE = Employee or Contingent Worker, PRIMARY_FLAG = „Y‟ PER_ABSENCE_ATTE NDANCE_TYPES
PER_ABS_ATTENDA NCE_REASONS
PER_ALL_ASSIGNME NTS_F
hri_bpl_utilization.convert_days_to_hours() is used to deduce the number of working hours in a day
Initial Load Sessions
SDE_ORA_AbsenceEvent_Full (Extracts absence events/occurrences into the absence event dimension stage table. One occurrence is one instance of an absence. The target table is at a grain of assignment, whereas the source PER_ABSENCE_ATTENDANCES is not. The PER_ALL_ASSIGNMENTS_F table is brought into the equation for that purpose. Moreover, in order to populate the hour columns in the target table, the EBS package “hri_bpl_utilization.convert_days_to_hours” had to be used, and ASSIGNMENT_ID is one of the required parameters for that)
Incremental Load Sessions
SDE_ORA_AbsenceEvent (Extracts new/changed absence occurrences from source system since last extract date)
Oracle Corporation |
62
Implementing HR Analytics using E-Business Suite Adaptors 6.3.6. Absence Event Fact (W_ABSENCE_EVENT_F) This table is loaded using the two dimension tables W_ABSENCE_EVENT_D and W_ABSENCE_TYPE_RSN_D along with time dimension. The dimension tables are loaded via their corresponding Universal Staging area tables (W_ABSENCE_EVENT_DS and W_ABSENCE_TYPE_RSN_DS). W_ABSENCE_EVENT_F
Load Process FULL
W_ABSENCE_TYPE_RSN_D
W_ABSENCE_EVENT_D
SIL Load Process FULL
SIL Load Process FULL
W_ABSENCE_TYPE_RSN_DS
W_ABSENCE_EVENT_DS
W_ABSENCE_EVENT_F
Mntn Process INCR W_WRKFC_EVT_EQ_TMP
Event Queue Process INCR
Load Process INCR
Position Hierarchy Update Process INCR
W_ABSENCE_EVENT_EQ_TMP
W_ABSENCE_EVENT_D
SIL Incr Load Process W_ABSENCE_TYPE_RSN_D
Position Hierarchy Post Change Temporary W_POSITION_DH_POST_CHG_TM P
Position Hierarchy Pre Change Temporary W_POSITION_DH_PRE_CHG_TMP
SIL INCR Load Process
W_ABSENCE_EVENT_DS
W_ABSENCE_TYPE_RSN_ DS
Oracle Corporation |
63
Implementing HR Analytics using E-Business Suite Adaptors
Initial Load Sessions
SIL_AbsenceEventDimension _Full(loads new/updated records from Absence Event Staging Dimension and Absence Type Reason Dimension) SIL_AbsenceTypeReasonDimension_Full (loads new/updated records from Absence Type Reason Staging Dimension) PLP_AbsenceEventFact_Full (loads new/updated records from Absence Event Dimension)
Incremental Load Sessions
SIL_AbsenceEventDimension(loads new/updated records from Absence Event Staging Dimension and Absence Type Reason Dimension) SIL_AbsenceTypeReasonDimension (loads new/updated records from Absence Type Reason Staging Dimension) PLP_AbsenceEventFact (loads new/updated records from Absence Event Dimension, Day Dimension and Workforce Fact) PLP_AbsenceEventQueue_Event (loads change queue table with changed (staged) assignments and their earliest change (staged event) date for each Absence Event ) PLP_AbsenceEventFact_Mntn( deletes obsolete Absence records from Absence Fact based on the change queue table (W_ABSENCE_EVENT_EQ_TMP ) PLP_AbsenceEventFact_PositionHierarchy_Update (changes in the Absent Employee’s Position Hierarchy due to regular or back dated changes are applied to the Absence fact table)
Oracle Corporation |
64
Implementing HR Analytics using E-Business Suite Adaptors
6.4.
Learning Fact Process
6.4.1. ETL Flow Learning Enrollment Fact W_LM_ENROLLMENT_EVENT_F
Learning Enrollment Snapshot Fact W_LM_ENROLLMENT_ACC_SNP_F
Learning Grade Band Dimension W_LM_GRADE_BAND_D
FILE_LEARNING_ GRADE_BAND File Input
FILE_ROW_GEN_ BAND File Input
Learning Enrollment SNP Fact Staging W_LM_ENROLLMENT_ACC_SNP_FS
Curriculum and Certifications Temporary W_ORA_LM_ENROLLMENT_F_PRG_TMP
EBS System
Historical Enrollments Temporary W_ORA_LM_ENROLLMENT_F_HST_TMP OTA_EVENTS, PER_ALL_ASSIGNMENTS_F, OTA_DELEGATE_BOOKINGS, OTA_FINANCE_LINES
6.4.2. Key Steps and Table Descriptions Table
Primary Sources
Grain
Description
W_ORA_LM_ENROLLMENT _F_PRG_TMP
OTA_CERTIFICATION_MEMBERS OTA_CERT_ENROLLMENTS OTA_LEARNING_PATH_MEMBERS OTA_LP_ENROLLMENTS
One row per person per program type taken
W_ORA_LM_ENROLLMENT _F_HST_TMP
OTA_BOOKING_STATUS_HISTORIES OTA_BOOKING_STATUS_TYPES
One row per enrollment booking ID
W_LM_ENROLLMENT_ACC_ SNP_FS
OTA_EVENTS OTA_DELEGATE_BOOKINGS OTA_FINANCE_LINES W_ORA_LM_ENROLLMENT_F_PRG _TMP W_ORA_LM_ENROLLMENT_F_HST_
The grain of this table is a single activity related to a given course on a given enrollment status date.
This temporary table stores all program types (Certifications and Curriculum) that are taken by the person. This temporary table stores all historical dates about past enrollments by person The two temporary tables are looked up to get the enrollment dates by program type
Oracle Corporation |
65
Implementing HR Analytics using E-Business Suite Adaptors
W_LM_GRADE_BAND_D
W_LM_ENROLLMENT_ACC_ SNP_F
W_LM_ENROLLMENT_EVEN T_F
TMP Flat file Sources
W_LM_ENROLLMENT_ACC_SNP_FS
W_LM_ENROLLMENT_ACC_SNP_F W_LM_GRADE_BAND_D
One row per Learning Grade Band and one row for each learning Score
One row per enrollment per learner/Employee per learning activity For example, an employee requests, enrolls and completes a learning activity; there will be one row in this table. Its grain is Learner/Employee +Learning Activity +Status. For example, an employee requests, enrolls and completes a learning activity; there will be 3 rows in this table, one for each of the statuses.
Learning Grade Band Dimension stores data for Grade/Scoring Bands for Learning Activities Accumulated snapshot fact table captures each learner's enrollment to a learning activity.
This fact table stores the status changes for the learning enrollment process.
6.4.3. Key Setup/Configuration Steps No special parameter requirements for Learning, apart from the common ones like $$INITIAL_EXTRACT_DATE, $$LAST_EXTRACT_DATE and so on. Other task specific parameters include $$CATEGORY used by the code mappings, but nothing needs special configurations.
Oracle Corporation |
66
Implementing HR Analytics using E-Business Suite Adaptors 6.4.4. W_ORA_LM_ENROLLMENT_F_PRG_TMP Curriculum and Certifications Temporary W_ORA_LM_ENROLLMENT_F_PRG _TMP
EBS System
CERTIFICATIONS
OTA_CERTIFICATION_MEMBERS, OTA_CERT_ENROLLMENTS
SDE Extract Process FULL and INCR CURRICULUM
EBS System
SDE Extract Process FULL and INCR
OTA_LEARNING_PATH_MEMBERS, OTA_LP_ENROLLMENTS
Initial Load Sessions
SDE_ORA_LearningEnrollmentFact_Programs1 (Extracts certifications by Person from OLTP certification tables. This task truncates the target table.)
SDE_ORA_LearningEnrollmentFact_Programs2 (Extracts Learning Paths, or Curriculums by Person from OLTP. This task does not truncate the target table, rather appends data after the previous task have completed)
Incremental Load Sessions
SDE_ORA_LearningEnrollmentFact_Programs1 (There are no special incremental handling designed for this task. The entire data is re-extracted, exactly same as it behaves during initial load)
SDE_ORA_LearningEnrollmentFact_Programs2 (There are no special incremental handling designed for this task. The entire data is re-extracted, exactly same as it behaves during initial load)
Oracle Corporation |
67
Implementing HR Analytics using E-Business Suite Adaptors 6.4.5. W_ORA_LM_ENROLLMENT_F_HST_TMP Historical Enrollments Temporary W_ORA_LM_ENROLLMENT_F_HST _TMP
SDE Extract Process FULL ONLY
EBS System
Latest Waitlisted Date, Enrolled Date, Completed Date and Dropped Date by Booking ID. (Booking Status Types : „W‟, „P‟, „A‟ and „C‟)
OTA_BOOKING_STATUS_HISTORIES, OTA_BOOKING_STATUS_TYPES
Initial Load Sessions
SDE_ORA_LearningEnrollmentStatusHistory (Extracts latest status dates – using a MAX function, available for Waitlisted Date, Enrolled Date, Completed Date and Dropped Date by Booking ID. This is only for full load since the OLTP table does not store data in a historical manner. The target temporary table is never truncated after initial load is completed)
Incremental Load Sessions Does not run in incremental mode.
Oracle Corporation |
68
Implementing HR Analytics using E-Business Suite Adaptors 6.4.6. W_LM_EMROLLMENT_ACC_SNP_FS W_LM_ENROLLMENT_ACC_SNP_F S
SDE Extract Process FULL and INCR
W_ORA_LM_ENROLLMENT_F_HST _TMP
EBS System
W_ORA_LM_ENROLLMENT_F_PRG _TMP
OTA_EVENTS, OTA_DELEGATE_BOOKINGS, OTA_FINANCE_LINES, PER_ALL_ASSIGNMENTS_F
Use Primary Assignments only Assignment Type = „Employee‟
Initial Load Sessions
SDE_ORA_LearningEnrollmentAccSnpFact_Full (Extracts all learning enrollment events if form of snapshot records, getting the worker keys from PER_ALL_ASSIGNMENTS_F, and deriving the snapshot dates using a lookup from the previously loaded temporary tables – all since initial extract date)
Incremental Load Sessions
SDE_ORA_LearningEnrollmentAccSnpFact (Extracts new/updated learning enrollment snapshot records as above since last extracted date)
Oracle Corporation |
69
Implementing HR Analytics using E-Business Suite Adaptors 6.4.7. Learning Enrollment Acc. Snapshot Fact (W_LM_ENROLLMENT_ACC_SNP_F)
W_LM_ENROLLMENT_ ACC_SNP_F accumulated snapshot fact table captures each learner's enrollment to a learning activity and the status changes. The grain of this table is at Learner/Employee +Learning Activity level. For example, an employee requests, enrolls and completes a learning activity; there will be one row in this table.
PLP Load Process FULL and INCR
W_LM_ENROLLMENT_ACC_SNP_F
SIL Load Process FULL and INCR
W_LM_ENROLLMENT_ACC_SNP_FS
Position Hierarchy Update Process INCR ONLY
Position Hierarchy Post Change Temporary W_POSITION_DH_POST_CHG_TMP
Position Hierarchy Pre Change Temporary W_POSITION_DH_PRE_CHG_TMP
Initial Load Sessions
SIL_LearningEnrollmentFact_Full (This mapping is responsible for loading fact records for the table W_LM_ENROLLMENT_ACC_SNP_F based on the corresponding staging area table.)
PLP_LearningEnrollmentUpdate_Full (This mapping is used to update the initial waitlisted and enrollment initiated dates in the Learning Enrollment Accumulative Snapshot Fact table, W_LM_ENROLLMENT_ACC_SNP_F.)
Incremental Load Sessions
Oracle Corporation |
70
Implementing HR Analytics using E-Business Suite Adaptors
SIL_LearningEnrollmentFact(This mapping takes care of inserting new records as well as updating existing records in the target table W_LM_ENROLLMENT_ACC_SNP_F.)
PLP_Learning_Enrollment_Accumulated_Snapshot_PositionHierarchy_Update (changes in the Employee’s Position Hierarchy due to regular or back dated changes are applied to the Learning Snapshot Fact table)
PLP_LearningEnrollmentUpdate (This mapping is used to incrementally update the initial waitlisted and enrollment initiated dates in the Learning Enrollment Accumulative Snapshot Fact table, W_LM_ENROLLMENT_ACC_SNP_F.)
6.4.8. Learning Enrollment Event Fact (W_LM_ENROLLMENT_EVENT_F)
W_LM_ENROLLMENT_EVENT_F fact table stores the status changes for the learning enrollment process. Its grain is Learner/Employee - Learning Activity - Status. For example, an employee requests, enrolls and completes a learning activity; there will be 3 rows in this table, one for each of the statuses.
W_LM_ENROLLMENT_EVENT_F
PLP Load process FULL and INCR
W_LM_ENROLLMENT_ACC_SNP_F
Initial Load Sessions
PLP_LearningEnrollmentEventFact_Full (This mapping is used to create the learning enrollment event Fact, W_LM_ENROLLMENT_EVENT_F)
Incremental Load Sessions
PLP_LearningEnrollmentEventFact (This mapping is used to insert/update rows into the learning enrollment event Fact, W_LM_ENROLLMENT_EVENT_F)
Oracle Corporation |
71
Implementing HR Analytics using E-Business Suite Adaptors
6.5.
Payroll Fact Process
6.5.1. ETL Flow
Payroll Aggregate Fact W_PAYROLL_A Employee Demographic Aggregate Dimension W_EMP_DEMOGRAPHICS_D Job Category Aggregate Dimension W_JOB_CATEGORY_D Pay Type Group Aggregate Dimension W_PAY_TYPE_GROUP_D
Payroll Fact W_PAYROLL_F
EBS System
Payroll Fact Staging W_PAYROLL_FS PAY_ASSIGNMENT_ACTIONS, PAY_ELEMENT_CLASSIFICATIONS, PAY_ELEMENT_TYPES_F, PAY_INPUT_VALUES_F, PAY_PAYROLL_ACTIONS, PAY_RUN_RESULTS, PAY_RUN_RESULT_VALUES, PER_ALL_ASSIGNMENTS_F, PER_ALL_PEOPLE_F, PER_TIME_PERIODS
Terminology
“Pay Type” describes various types of compensations or deductions that typically come in a pay stub. Examples include Earning, Bonus, and Taxes and so on. “Pay Item Detail” describes whether the line item in the payroll fact is at a detail level (like 401K deductions, Medicare deductions, Social Security Deductions, Health Insurance Deductions etc) or if it is at a higher level of a group (like DEDUCTIONS, or EARNINGS or TAXES and so on).
Oracle Corporation |
72
Implementing HR Analytics using E-Business Suite Adaptors
Key Steps and Table Descriptions Table
Primary Sources
Grain
Description
W_PAYROLL_FS
PAY_ASSIGNMENT_ACTIONS PAY_ELEMENT_CLASSIFICATIONS PAY_ELEMENT_TYPES_F PAY_INPUT_VALUES_F PAY_PAYROLL_ACTIONS PAY_RUN_RESULTS PAY_RUN_RESULT_VALUES PER_ALL_ASSIGNMENTS_F PER_ALL_PEOPLE_F PER_TIME_PERIODS
This table stores base and balance payroll transactions.
W_PAYROLL_F
W_PAYROLL_FS
W_PAYROLL_A_TMP
W_PAYROLL_F
One row per employee and pay period per pay type. Base Pay types are sourced from the OLTP, whereas the Balance Pay types such as TOTAL_DEDUCTION or TOTAL_GROSS etc are aggregated based on configured parameters are derived from the base pay types. The grain of this table is typically at an Employee Pay type - Pay Period Start Date - Pay Period End Date level. For a given employee and pay period, each record in this table stores the amount associated with that pay type (line item). Same grain as of W_PAYROLL_F.
W_PAYROLL_A
W_PAYROLL_F W_PAYROLL_A_TMP W_EMP_DEMOGRAPHICS_D W_JOB_CATEGORY_D W_PAY_TYPE_GROUP_D
The grain of this table is at a Monthly level (Period Start and End Dates) out of box (configurable though) and to the Employee Demographics, Job Category, and Pay Type Groups aggregate dimension levels.
Stores the base Payroll Transactions. Examples of fact information stored in this table include Pay Check Date, Pay Item Amount, Currency Codes, and Exchange Rates and so on. This temporary table is used to extract incremental changes that happened on the base fact and used to drive the incremental aggregate refresh. Stores Payroll transactions aggregated at a Monthly (configurable) level on top of the base fact table W_PAYROLL_F
Key Setup/Configuration Steps
All the set up and configuration steps that are required for core Workforce also applies for Payroll (see the same section for Workforce). The time grain (OOTB Monthly) of the payroll aggregate table can be configured to become Weekly or Quarterly or Yearly. Check the configuration steps for the parameter $$GRAIN.
Oracle Corporation |
73
Implementing HR Analytics using E-Business Suite Adaptors Base Pay Types are aggregated to form the Balance Pay types. The supported balances are TOTAL_DEDUCTIONS, TOTAL_TAXES, TOTAL_GROSS and NET_PAY. There are configurable parameters that allow customers to choose the appropriate Element Classifications owing to these balances. Following are those 5 parameters you should go through in the configuration guide for more details. $$GROSS_PAY_CLASSIFICATION_NAME $$TOTAL_DEDUCTION_CLASSIFICATION_NAME $$TOTAL_TAXES_CLASSIFICATION_NAME $$TOTAL_GROSS_FOR_NETPAY_EARNINGS
$$TOTAL_GROSS_FOR_NETPAY_DEDUCTIONS
Classification Names that add up to the Total Gross Pay. Classification Names that correspond to any deduction. Classification Names that correspond to various Taxes, State or Federal. Earnings Classification Names that are realized in Net pay. Note that some Classification Names are considered for Gross pay, but do not feature in the Net Pay (for example, Imputed Income). This is the major difference between this parameter and the $$GROSS_PAY_CLASSIFICATION_NAME parameter. This is same as the parameter $$TOTAL_DEDUCTION_CLASSIFICATION_NAME. However, in case some additional Classification Names are required to be added or removed for Net Pay, this parameter should be used for that.
Oracle Corporation |
74
Implementing HR Analytics using E-Business Suite Adaptors 6.5.1. W_PAYROLL_FS
W_PAYROLL_FS
SDE aggregate Process FULL and INCR
SDE Extract Process FULL and INCR
EBS System
Loads base payroll transactions at the grain of a single pay element type. Loads PAY_DETAIL_FLG as „Y‟.
Aggregates base payroll transactions to “Balances” based on Classification Names selected as parameters during configuration. Loads PAY_DETAIL_FLG as „N‟.
PAY_ASSIGNMENT_ACTIONS PAY_ELEMENT_CLASSIFICATIONS PAY_ELEMENT_TYPES_F PAY_INPUT_VALUES_F PAY_PAYROLL_ACTIONS PAY_RUN_RESULTS PAY_RUN_RESULT_VALUES PER_ALL_ASSIGNMENTS_F PER_ALL_PEOPLE_F PER_TIME_PERIODS
PAY_RUN_RESULTS.SOURCE_TYPE IN ('V', 'R', 'I', 'E') [Adjustments, Reversal, Indirect Entry, Normal Entry]
Initial Load Sessions SDE_ORA_PayrollFact_Full (This task is responsible for extracting base payroll transaction fact records for the table W_PAYROLL_FS from OLTP, since initial extract date.) SDE_ORA_PayrollFact_Agg_Items_ORCL (This task aggregates the base payroll transactions extracted by the previous task to the Payroll Balance level, using configured parameters on choices of Classification Names against each balance. Note: If the target database is an Oracle database, the task is specially optimized. For other target databases like MSSQL, DB2 or TERADATA, the task name does not have the “_ORCL” suffix. This switch happens automatically though.)
Incremental Load Sessions SDE_ORA_PayrollFact (This task is responsible for extracting base payroll transaction fact records for the table W_PAYROLL_FS from OLTP, since the last extract date.) SDE_ORA_PayrollFact_Agg_Items_ORCL (Same as above. No special incremental handling.)
Oracle Corporation |
75
Implementing HR Analytics using E-Business Suite Adaptors 6.5.2. Payroll Fact (W_PAYROLL_F)
W_PAYROLL_F fact table stores the base Payroll Transactions. Examples of fact information stored in this table include Pay Check Date, Pay Item Amount, Currency Codes, and Exchange Rates and so on. The grain of this table is typically at an Employee - Pay type - Pay Period Start Date - Pay Period End Date level. For a given employee and pay period, each record in this table stores the amount associated with that pay type (line item).
Payroll Fact W_PAYROLL_F
SIL Load Process FULL and INCR
Payroll Fact Stage W_PAYROLL_FS
Position Hierarchy Update Process INCR ONLY
Position Hierarchy Post Change Temporary W_POSITION_DH_POST_CHG_TMP
Position Hierarchy Pre Change Temporary W_POSITION_DH_PRE_CHG_TMP
Initial Load Sessions
SIL_PayrollFact_Full (This mapping is responsible for loading fact records for the table W_PAYROLL_F based on the corresponding staging area table)
Incremental Load Sessions
SIL_PayrollFact (This mapping is responsible for loading fact records for the table W_PAYROLL_F based on the corresponding staging area table, since the last refresh date)
PLP_PayrollFact_PositionHierarchy_Update (changes in the Employee’s Position Hierarchy due to regular or back dated changes are applied to the Payroll Fact table)
Oracle Corporation |
76
Implementing HR Analytics using E-Business Suite Adaptors 6.5.3. Payroll Aggregate Fact (W_PAYROLL_A)
W_PAYROLL_A aggregate fact table stores Payroll transactions aggregated at a Monthly level on top of the base fact table W_PAYROLL_F. The grain of this table is at a Monthly level (Period Start and End Dates) out of box (configurable though) and to the Employee Demographics, Job Category, and Pay Type Groups aggregate dimension levels.
Payroll Aggregate Fact W_PAYROLL_A
PLP Process FULL And INCR
Payroll Fact W_PAYROLL_F
Employee Demographics Aggregate Dimension W_EMP_DEMOGRAPHI CS_D
PLP Process INCR ONLY
Payroll Aggregate Temporary W_PAYROLL_A_TMP
PLP Process INCR ONLY
Job Category Aggregate Dimension W_JOB_CATEGORY_D
Pay Type Group Aggregate Dimension W_PAY_TYPE_GROUP _D
Initial Load Sessions
PLP_PayrollAggregate_Load_Full (Aggregates all base Payroll transactions from W_PAYROLL_F at the grain of the designed Aggregate dimensions like Demographics, Job Category and Pay type Group at a monthly level)
Incremental Load Sessions
PLP_PayrollAggregate_Extract (Loads new or changed payroll base transaction records from W_PAYROLL_F into a temporary table W_PAYROLL_A_TMP. This mapping resolves the aggregate dimension keys by looking up the aggregate dimensions. Also, based on the time granularity chosen, this mapping looks up the correct time-bucket. With these two steps done, the final Payroll Aggregate refresh becomes simpler) Oracle Corporation |
77
Implementing HR Analytics using E-Business Suite Adaptors
PLP_PayrollAggregate_Load (Refreshes the Payroll Aggregate table W_PAYROLL_A driving from the temporary table loaded in the prior step, W_PAYROLL_A_TMP. The incremental refresh policy relies on the fact that for Payroll, there can practically be no updates. It could well be an ‘adjustment run’ or a ‘reversal run’ or likewise. The ITEM_AMT value in the base payroll transaction will also carry the appropriate ‘sign’ to indicate whether the adjustment was a negative effect or a positive effect. Reversal run typically comes with negative value of ITEM_AMT. With this assumption, when a repeat record (key matches) comes in, we update the value of the ITEM_AMT simply as: Final ITEM_AMT = Old ITEM_AMT + New ITEM_AMT )
7. Known Issues and Patches The following Oracle Internal document lists all the known issues of HR Analytics (all Adaptors together) and the patches produced for them, so far, Oracle BI Applications release-wise. Here is the link to the Patch Library. We will make every attempt to keep this up to date.
Oracle Corporation |
78