Sie sind auf Seite 1von 78

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 |

Implementing HR Analytics using E-Business Suite Adaptors 1. 2. 3.


3.1. 3.2.

ORACLE BI APPLICATIONS E-BUSINESS SUITE ADAPTOR (7.9.6 +) .......................... 4 GENERAL BACKGROUND OF ORACLE E-BUSINESS SUITES ADAPTORS .................... 4 KEY ETL PROCESSES AND INCREMENTAL REFRESH STRATEGIES ............................. 5
Persistent Staging Tables ...................................................................................................................... 5 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. 5. 6.
6.1.

GENERAL IMPLEMENTATION CONSIDERATIONS ............................................................ 8 IMPACT OF INCORRECT CONFIGURATIONS OF DOMAIN VALUES .............................. 9 DETAILED UNDERSTANDING OF THE KEY HR ETL PROCESSES ................................ 11
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.

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

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 ........................................................................................................................ 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 ........................................................................................................................ 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.

ETL Flow ........................................................................................................................ 72 W_PAYROLL_FS ............................................................................................................. 75 Payroll Fact (W_PAYROLL_F) ......................................................................................... 76 Payroll Aggregate Fact (W_PAYROLL_A) ....................................................................... 77

7.

KNOWN ISSUES AND PATCHES ............................................................................................. 78

Oracle Corporation |

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 |

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 Assignment A B B B

$50k Salary

$60k

$70k

$80k

GOOD Performance The fact will look something like this:


Assignment 1 1 1 1 1 1 1 1 1 Date From 1 Jan 1 Feb 1 Mar 1 Apr 1 May 1 Jun 1 Jul 1 Aug 1 Sep Date To 31 Jan 28 Feb 31 Mar 30 Apr 31 May 30 Jun 31 Jul 31 Aug End Event Hire Appraisal Review Appraisal Review Assignment Appraisal Review Assignment

BAD

UGLY

GOOD

Grade A A B B B B B B B

Grade Change N N Y N N N N N N

Salary 50 50 60 60 70 70 70 80 80

Performance GOOD BAD BAD UGLY UGLY UGLY GOOD GOOD GOOD

Oracle Corporation |

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 1 1 1 1 1 1 1 1 1 Date From 1 Jan 1 Feb 1 Mar 1 Apr 1 May 1 Jun 1 Jul 1 Aug 1 Sep Date To 31 Jan 28 Feb 31 Mar 30 Apr 31 May 30 Jun 31 Jul 31 Aug End Event Hire Appraisal Review Appraisal Review Assignment Appraisal Review Assignment Grade A A A A A B B B B Grade Change N N N N N Y N N N Salary 50 50 60 60 70 70 70 80 80 Performance 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 1 1 Event Date 1 Jan 2000 1 Jan 2003 Event Hire Review Grade A B Salary 50 60 LOAD_ID 1 1

The target table gets the same data and calculates the effective end date:
Assignment 1 1 Date From 1 Jan 2000 1 Jan 2003 Date To 31 Dec 2002 End Event Hire Review Grade A B Salary 50 60 LOAD_ID 1 1

The subsequent incremental load (ID=2) changed the source table as follows:
Assignment 1 1 1 Date From 1 Jan 2000 1 Jan 2001 1 Jan 2003 Date To 31 Dec 2000 31 Dec 2002 End Event Hire Promotion Review Grade A B B Salary 50 50 60 LOAD_ID 1 2 1 Comment New Record

Oracle Corporation |

Implementing HR Analytics using E-Business Suite Adaptors


The Event Queue Table would hold:
Assignment 1 Earliest Change Date 1 Jan 2001 Previous End Date 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 isnt 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 SQLs 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 |

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 I

Active Inactive A I OLTP 1 1 2 3 Source Active Inactive Active Suspended Terminated Domain ACTIVE INACTIVE ACTIVE INACTIVE INACTIVE

1 2 3

Active Suspended Terminated 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 cant 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 didnt configure your domain value for this column accurately, you wont 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 _

Age Band Dimension W_ AGE_ BAND_D

Period of Work Band Dimension W_PRD_OF_WRK _BAND _ D

Workforce Fact W_ WRKFC EVT_F _

Workforce Fact Staging W_ WRKFC EVT_FS _

Supervisor Status
W_ ORA_ SUPV_ STATUS _PS

Assignment Events

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
W_ ORA_ WEVT_ ASG_PS W_ ORA_ WEVT_ ASG_ TMP

FTE
W_ ORA_ WEVT_ FTE_PS W_ ORA_ WEVT_ FTE_ TMP

Salary
W_ ORA_ WEVT_ SAL_PS W_ ORA_ WEVT_ SAL_ TMP

Age
W_ ORA_ WEVT_ AGE_ TMP

Service
W_ ORA_ WEVT_ POW_ TMP

Headcount
W_ ORA_ WEVT_ HDC_PS W_ ORA_ WEVT_ HDC_ TMP

Person Type
W_ ORA_ WEVT_ PTYP_PS W_ ORA_ WEVT_ PTYP_ TMP

Appraisal
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
W_ORA_WEVT_ASG_PS

Primary Sources
PER_ALL_ASSIGNMENTS_F

Grain
As primary source + inactive record

Description
Active assignment changes plus some event interpretation from the source plus one system generated inactive record 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_HDC_PS

PER_ASSIGNMENT_BUDGET _VALUES_F Headcount Fast Formulas

One row per assignment per headcount change One row per assignment per FTE change As primary source As primary source for EMP and CWK types As primary source

W_ORA_WEVT_FTE_PS

PER_ASSIGNMENT_BUDGET _VALUES_F FTE Fast Formulas PER_PAY_PROPOSALS

W_ORA_WEVT_SAL_PS

Pay reviews plus salary annualization. Worker person type pushed down to corresponding assignment (type E or C) Appraisal ratings normalized (converted to a %) and stored against each assignment At any given time a person is a supervisor if an active assignment exists that reports to them.

W_ORA_WEVT_PTYP_PS

PER_PERSON_TYPE _USAGES_F

W_ORA_WEVT_PERF_PS

PER_APPRAISALS PER_PERFORMANCE _REVIEWS

W_ORA_SUPV_STATUS_PS

W_ORA_WEVT_ASG_PS

One row per person per change in supervisor status One row per assignment per workforce event

W_WRKFC_EVT_FS

All W_ORA_*_PS

Records workforce events for assignments from hire/start through to termination/end. Includes appraisals, salary reviews and general changes. Records workforce events for assignments from hire/start through to termination/end. Includes

W_WRKFC_EVT_F

W_WRKFC_EVT_F

One row per assignment per workforce

Oracle Corporation |

12

Implementing HR Analytics using E-Business Suite Adaptors


event appraisals, salary reviews and general changes. Records age band change events for each assignment

W_WRKFC_EVT_AGE_F

W_AGE_BAND_D W_WRKFC_EVT_F

One row per assignment per age band change One row per assignment per service band change One row per assignment per workforce or band change event One row per assignment per change event or snapshot month One row per Employment Status and category.

W_WRKFC_EVT_POW_F

W_PRD_OF_WRK_BAND_D W_WRKFC_EVT_F

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

Merges band change events with workforce events for assignments

W_WRKFC_EVT_MONTH_F

W_WRKFC_EVT_MERGE_F W_MONTH_D

Adds in monthly snapshot records along with the workforce and band change events.

W_EMPLOYMENT_STAT_CAT_D

W_EMPLOYMENT_D

This table is an aggregated dimension table on the distinct Employment Status and Category available in W_EMPLOYMENT_D table. 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. This table is an aggregate dimension based on the Event Group and Event Sub Group in the W_WRKFC_EVENT_TYPE_D dimension table. This is a Balance Aggregate table based on the

W_WRKFC_EVENT_TYPE_D

W_WRKFC_EVENT_TYPE_DS

The grain of this table is at a single Workforce Event Type level.

W_WRKFC_EVENT_GROUP_D

W_WRKFC_EVENT_TYPE_D

One row per Event group and Event Sub group

W_WRKFC_BAL_A

W_EMPLOYMENT_STAT_CAT_D

One row per employment

Oracle Corporation |

13

Implementing HR Analytics using E-Business Suite Adaptors


W_WRKFC_EVT_MONTH_F status/category and snapshot month One row per workforce event group/event sub group and employment status/category Snapshot Fact table W_WRKFC_EVT_MONTH_F.

W_WRKFC_EVT_A

W_EMPLOYMENT_STAT_CAT_D W_WRKFC_EVENT_GROUP_D W_WRKFC_EVT_MERGE_F

This is an Events Aggregate table based on the Base Event Fact table 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
W_ORA_WEVT_ASG_TMP

Primary Sources
PER_ALL_ASSIGNMENTS_F

Grain (changes)
As primary source + inactive record

Description
Stages updates before merging into the _PS table. Comparisons are made to detect changes Stages updates before merging into the _PS table. Comparisons are made to see what change occurred, if any.

W_ORA_WEVT_HDC_TMP

PER_ASSIGNMENT_BUDGET _VALUES_F Headcount Fast Formulas PER_ASSIGNMENT_BUDGET _VALUES_F FTE Fast Formulas PER_PAY_PROPOSALS

One row per assignment per headcount change One row per assignment per FTE change As primary source

W_ORA_WEVT_FTE_TMP

W_ORA_WEVT_SAL_TMP

Stages updates before merging into the _PS table. Comparisons are made to see what change occurred, if any. Stages updates before merging into the _PS table. Comparisons are made to see what change occurred, if any. Stages updates before merging into the _PS table. Comparisons are made to see what change occurred, if any. Comparison is made with date of birth in assignment table and all rows updated on change Comparison is made with date start in assignment table and all rows updated on change Assignments and their earliest date of any change Keeps track of prior supervisors (before assignments are updated) as these may have a change in supervisor status Lists people with potential changes in supervisor status

W_ORA_WEVT_PTYP_TMP

PER_PERSON_TYPE _USAGES_F

As primary source for EMP and CWK types

W_ORA_WEVT_PERF_TMP

PER_APPRAISALS PER_PERFORMANCE _REVIEWS

As primary source

W_ORA_WEVT_AGE_TMP

PER_ALL_PEOPLE_F

One row per person

W_ORA_WEVT_POW_TMP

PER_PERIODS_OF_SERVICE

One row per period of service

W_ORA_WEVT_ASG_EQ_TMP

All W_ORA_*_PS

One row per assignment One row per assignment per supervisor change

W_ORA_SUPV_OLD_TMP

W_ORA_WEVT_ASG_PS

W_ORA_SUPSTAT_EQ_TMP

W_ORA_WEVT_ASG_PS W_ORA_SUPV_OLD_TMP

One row per person

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 Expands W_WRKFC_EVT_EQ_TMP to include assignments needing new snapshots Reference table for which employment status/category have changed and the snapshot month

W_WRKFC_EVT_MONTH_EQ_TMP

W_WRKFC_EVT_EQ_TMP W_WRKFC_EVT_F W_MONTH_D

One row per changed assignment

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 One row per changed event group/sub group and employment status/category

W_WRKFC_EVT_A_EQ_TMP

W_WRKFC_EVT_EQ_TMP W_WRKFC_EVT_MERGE_F W_EMPLOYMENT_STAT_CAT_D W_WRKFC_EVENT_GROUP_D

Reference table for which event group/sub groups have changed and changed employment status/category.

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
DAC System Parameter

Name
INITIAL_EXTRACT_DATE HR_WRKFC_EXTRACT_DATE HR_WRKFC_ADJ_SERVICE_DATE

Description
Earliest date to extract data across all facts Earliest date to extract data from HR Facts Whether or not to count length of work from the adjusted service date Earliest date to generate snapshots for HR Workforce. st This should be set to the 1 of a month. Current date in WID form should not be changed Age bands need to be defined in a continuous set of ranges Period of work bands need to be defined in a continuous set of ranges Whether or not to load FTE values (FTE PS table) Whether or not to load appraisals (PERF PS table)

HR_WRKFC_SNAPSHOT _DT

HR_WRKFC_SNAPSHOT _TO_WID Domains Age Band

Period of Work Bands

Configuration Tag

Collect FTE Collect Performance Ratings

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

W_ORA_WEVT_ASG_PS

Incremental

Initial

Normal working hours standardized Previous FKs calculated Previous dates calculated Event mapped to conformed event

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

Incremental

Initial

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

Incremental

Initial

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

W_ORA_WEVT_SAL_PS

Incremental

Initial

Annualized salaries Previous salary calculated Last salary increase date calculated

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

W_ORA_WEVT_PTYP_PS

Incremental

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
W_ORA_WEVT_ASG_PS

FTE
W_ORA_WEVT_FTE_PS

Salary
W_ORA_WEVT_SAL_PS

Appraisal
W_ORA_WEVT_PERF_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

Event Queue
W_ORA_WEVT_ASG_EQ_TMP

Assignment Events

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.

Assignment
W_ORA_WEVT_ASG_PS

FTE
W_ORA_WEVT_FTE_PS

Salary
W_ORA_WEVT_SAL_PS

Supervisor Status
W_ORA_SUPV_STATUS_PS

Headcount
W_ORA_WEVT_HDC_PS

Person Type
W_ORA_WEVT_PTYP_PS

Appraisal
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 workers 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

Workforce Events

W_MONTH_D

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

PLP Load process INCR only

Workforce Dimension Aggregate W_EMPLOYMENT_STAT_CAT_D

Workforce Month Snapshot Fact


W_WRKFC_EVT_MONTH_F

Change Queue table W_WRKFC_BAL_A_EQ_TMP

PLP Dimension Aggregate Load FULL and INCR

PLP Parent level Update FULL and INCR

PLP INCR only

Dimension W_EMPLOYMENT_D

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)

Aggregate Fact is loaded directly by Employment Dimension but it is at the grain of the Employment Stat Cat Aggregate Dimension

Workforce Aggregate Fact W_WRKFC_EVT_A

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 FULL

PLP Load process INCR only

Workforce Dimension Aggregate W_EMPLOYMENT_STAT_ CAT_D

Workforce Event Merge Fact


W_WRKFC_EVT_MERGE _F

Change Queue table W_WRKFC_EVT_A_EQ_T MP

Workforce Dimension Aggregate W_WRKFC_EVENT_GRO UP_D

PLP Dimension Aggregate Load FULL and INCR

PLP Parent level Update FULL and INCR

PLP INCR only

PLP Dimension Aggregate Load FULL and INCR

PLP Parent level Update FULL and INCR

Dimension W_EMPLOYMENT_D

W_WRKFC_EVT_MERGE_F

W_WRKFC_EVT_EQ_TMP

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
DATASOURCE_NUM_ID INTEGRATION_ID (ASSIGNMENT_ID)
Either / Or

W_WRKFC_EVT_F_PE
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 1 1 1 1 01-Jan-2000 01-Jan-2001 01-Jan-2002 01-Jan-2003 End Date 31-Dec-2000 31-Dec-2001 31-Dec-2002 01-Jan-3714 Change Type HIRE REVIEW TRANSFER REVIEW Organization A A B B Salary 5000 6000 6000 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 1 1 1 01-Jan-2000 01-Jan-2001 01-Jan-2003 End Date 31-Dec-2000 31-Dec-2001 01-Jan-3714 Change Type HIRE REVIEW REVIEW Organization A A B Salary 5000 6000 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 Assignment Events W_ORA_WEVT_ASG_PS

EBS System

PER_ALL_VACANCIES, PER_REQUISITIONS

FTE Events W_ORA_WEVT_FTE_PS Headcount Events W_ORA_WEVT_HDC_PS Appraisal Events W_ORA_WEVT_PERF_PS


EBS System
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
W_ORA_APPL_EVENT_F_TMP

Primary Sources
PER_ALL_ASSIGNMENTS_F PER_PERIOD_OF_SERVICE

Grain
One row per applicant employee map (by assignment ID)

Description
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

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

Oracle Corporation |

43

Implementing HR Analytics using E-Business Suite Adaptors


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.

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

One row per job requisition per job requisition event per event date One row per job requisition One row per application per job requisition event per event date and sequence One row per application One row per recruitment event type per event date and sequence One row per job requisition per recruitment event month One row per applicants demographics per recruitment event month One row per hired applicants demographics per recruitment event month

W_APPL_EVENT_F

W_APPL_EVENT_FS

W_APPL_ACC_SNP_F W_RCRTMNT_EVENT_F

W_APPL_EVENT_F W_JOB_RQSTN_F W_APPL_EVENT_F W_JOB_RQSTN_ACC_SNP_F W_APPL_ACC_SNP_F W_RCRTMNT_EVENT_F W_MONTH_D

W_RCRTMNT_RQSTN_A

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.

W_RCRTMNT_APPL_A

W_RCRTMNT_EVENT_F W_MONTH_D

W_RCRTMNT_HIRE_A

W_RCRTMNT_EVENT_F W_MONTH_D

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<xx>.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)

file_job_requisition_status_ original_ora<ver>.csv

PER_ALL_VACANCIES

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 Appraisals (FULL & INCR)

W_ORA_APPL_EVEN T_F_TMP Assignment Events W_ORA_WEVT_ASG_ PS FTE Events W_ORA_WEVT_FTE_ PS Headcount Events W_ORA_WEVT_HDC_ PS

Applicant Events (FULL & INCR)

Applicant Terminations (FULL & INCR)

Appraisal Events W_ORA_WEVT_PERF _PS

IRC_ASSIGNMENT _STATUSES

PER_APPLICATIO NS

PER_ALL_PEOPLE _F

PER_ALL_ASSIGN MENTS_F

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

Applicant Accumulated Snapshot Fact W_APPL_ACC_SNP_F

Job Req. Age Band Events (INCR)

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.)

Full load process (Applicant)

Job Requisition Accumulated Snapshot 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

Process flow for FULL Load of the Recruitment Pipeline fact (Load process)

Recruitment Pipeline Temporary W_RCRTMNT_EVENT_F_TMP Recruitment Pipeline Event Queue W_RCRTMNT_EVENT_F_EQ_TMP

Recruitment Pipeline Fact W_RCRTMNT_EVENT_F

Job Requisition Accumulated Snapshot 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

Pre Image Process (Applicant)

Pre Image Process (Job Req.)

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

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

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 Time Dimension Month W_MONTH_ D Recruitment Requisition Aggregate W_RCRTMNT_RQSTN_A

Load process (FULL)

Recruitment Pipeline Fact W_RCRTMNT_EVENT_F

Requisition Aggregate Temp-2 W_RCRTMNT_RQSTN_A_TMP 2 Derive process (INCR)

Update process (COMMON)

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

Recruitment Pipeline Fact W_RCRTMNT_EVENT_F

Extract Process (INCR)

Load process (INCR)

Time Dimension Month W_MONTH_ D

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

Recruitment Pipeline Fact W_RCRTMNT_EVENT_F

Hire Aggregate Temporary W_RCRTMNT_HIRE_A_TMP

Recruitment Pipeline Fact W_RCRTMNT_EVENT_F

Extract Process (INCR)

Load process (INCR)

Time Dimension Month W_MONTH_D

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 Type Reason Dim Staging W_ABSENCE_TYPE_RSN_DS

Absence Event Dim Staging W_ABSENCE_EVENT_DS

EBS System

6.3.2. Key Steps and Table Descriptions


Table
W_ABSENCE_EVENT_DS

Primary Sources
PER_ABSENCE_ATTENDANCES PER_ABSENCE_ATTENDANCE_TYPES PER_ABS_ATTENDANCE_REASONS PER_ALL_ASSIGNMENTS_F

EBS System

PER_ABSENCE_ATTENDANCE_TYPES, PER_ABS_ATTENDANCE_REASONS, HR_STANDARD_LOOKUPS

PER_ABSENCE_ATTENDANCES, PER_ABSENCE_ATTENDANCE_TYPES, PER_ABS_ATTENDANCE_REASONS, PER_ALL_ASSIGNMENTS_F

Grain
One record per absence occurrence for a given employee/absentee and his/her assignment.

Description
Stores the Absence Occurrences for each Employee (Dimension Staging table). Stores absence type, reason and category information. ( Dimension Staging table)

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. One record per valid Absence Type and Reason

Stores the Absence Occurrences for each Employee Stores Absence type, reason and

W_ABSENCE_TYPE_RSN_D

W_ABSENCE_TYPE_RSN_DS

Oracle Corporation |

59

Implementing HR Analytics using E-Business Suite Adaptors


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.

W_ABSENCE_EVENT_F

W_ABSENCE_EVENT_D W_DAY_D W_WRKFC_EVT_F

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 isnt. 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 ASSIGNMENT_TYPE = Employee or Contingent Worker, PRIMARY_FLAG = Y PER_ABSENCE_ATTE NDANCE_TYPES PER_ABS_ATTENDA NCE_REASONS PER_ALL_ASSIGNME NTS_F

PER_ABSENCE_ATTE NDANCES

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

Load Process INCR

Position Hierarchy Update Process INCR

Event Queue 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 Employees 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 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
W_ORA_LM_ENROLLMENT _F_PRG_TMP

Primary Sources
OTA_CERTIFICATION_MEMBERS OTA_CERT_ENROLLMENTS OTA_LEARNING_PATH_MEMBERS OTA_LP_ENROLLMENTS

EBS System

Grain
One row per person per program type taken

Description
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

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.

Oracle Corporation |

65

Implementing HR Analytics using E-Business Suite Adaptors


TMP Flat file Sources

W_LM_GRADE_BAND_D

One row per Learning Grade Band and one row for each learning Score

W_LM_ENROLLMENT_ACC_ SNP_F

W_LM_ENROLLMENT_ACC_SNP_FS

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.

W_LM_ENROLLMENT_EVEN T_F

W_LM_ENROLLMENT_ACC_SNP_F W_LM_GRADE_BAND_D

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

SDE Extract Process FULL and INCR


CERTIFICATIONS

SDE Extract Process FULL and INCR


CURRICULUM

EBS System

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)

EBS System

OTA_CERTIFICATION_MEMBERS, OTA_CERT_ENROLLMENTS

OTA_LEARNING_PATH_MEMBERS, OTA_LP_ENROLLMENTS

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

Latest Waitlisted Date, Enrolled Date, Completed Date and Dropped Date by Booking ID. (Booking Status Types : W, P, A and C)

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.

EBS System

OTA_BOOKING_STATUS_HISTORIES, OTA_BOOKING_STATUS_TYPES

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 W_ORA_LM_ENROLLMENT_F_PRG _TMP

EBS System

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

Position Hierarchy Update Process INCR ONLY

W_LM_ENROLLMENT_ACC_SNP_FS

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 Employees 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 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).

EBS System

Oracle Corporation |

72

Implementing HR Analytics using E-Business Suite Adaptors

Key Steps and Table Descriptions


Table
W_PAYROLL_FS

Primary Sources
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 W_PAYROLL_FS

Grain
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.

Description
This table stores base and balance payroll transactions.

W_PAYROLL_F

W_PAYROLL_A_TMP

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 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.

$$TOTAL_GROSS_FOR_NETPAY_DEDUCTIONS

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 Aggregates base payroll transactions to Balances based on Classification Names selected as parameters during configuration. Loads PAY_DETAIL_FLG as N.

SDE Extract Process FULL and INCR

Loads base payroll transactions at the grain of a single pay element type. Loads PAY_DETAIL_FLG as Y.

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.)

EBS System

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

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

Position Hierarchy Update Process INCR ONLY

Payroll Fact Stage W_PAYROLL_FS

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 Employees 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

PLP Process INCR ONLY

Payroll Fact W_PAYROLL_F

PLP Process INCR ONLY

Payroll Aggregate Temporary W_PAYROLL_A_TMP

Employee Demographics Aggregate Dimension W_EMP_DEMOGRAPHI CS_D

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 <aggregate> = Old ITEM_AMT <aggregate> + New ITEM_AMT <temporary>)

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

Das könnte Ihnen auch gefallen