implementing hr analytics - oracle ebs adaptors
TRANSCRIPT
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 1
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
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 2
1. ORACLE BI APPLICATIONS E-BUSINESS SUITE ADAPTOR (7.9.6 +) .......................... 4
2. GENERAL BACKGROUND OF ORACLE E-BUSINESS SUITES ADAPTORS .................... 4
3. KEY ETL PROCESSES AND INCREMENTAL REFRESH STRATEGIES ............................. 5
3.1. Persistent Staging Tables ...................................................................................................................... 5
3.2. Incremental refresh of DW based on Event Queues .............................................................................. 6
3.2.1. An incremental refresh use case ..................................................................................... 6
3.2.2. A worked out example of Event Queue table ................................................................. 7
4. GENERAL IMPLEMENTATION CONSIDERATIONS ............................................................ 8
5. IMPACT OF INCORRECT CONFIGURATIONS OF DOMAIN VALUES .............................. 9
6. DETAILED UNDERSTANDING OF THE KEY HR ETL PROCESSES ................................ 11
6.1. Core Workforce Fact Process .............................................................................................................. 11
6.1.1. ETL Flow ........................................................................................................................ 11
6.1.2. Key Steps and Table Descriptions ................................................................................. 12
6.1.3. Key Setup/Configuration Steps ..................................................................................... 17
6.1.4. Customizing the Workforce Fact ................................................................................... 18
6.1.5. W_ORA_WEVT_ASG_PS ................................................................................................ 19
6.1.6. W_ORA_WEVT_HDC_PS ............................................................................................... 20
6.1.7. W_ORA_WEVT_FTE_PS ................................................................................................. 21
6.1.8. W_ORA_WEVT_SAL_PS................................................................................................. 22
6.1.9. W_ORA_WEVT_PTYP_PS .............................................................................................. 23
6.1.10. W_ORA_WEVT_PERF_PS .............................................................................................. 24
6.1.11. W_ORA_WEVT_ASG_EQ_TMP ...................................................................................... 25
6.1.12. W_ORA_SUPV_STATUS_PS ........................................................................................... 26
6.1.13. W_WRKFC_EVT_FS ....................................................................................................... 27
6.1.14. Workforce Base Fact (W_WRKFC_EVT_F) ..................................................................... 28
6.1.15. Workforce Age Fact (W_WRKFC_EVT_AGE_F) ............................................................. 29
6.1.16. Workforce Period of Work Fact (W_WRKFC_EVT_POW_F) ......................................... 30
6.1.17. Workforce Merge Fact (W_WRKFC_EVT_MERGE_F) .................................................... 31
6.1.18. Workforce Month Snapshot Fact (W_WRKFC_EVT_MONTH_F) .................................. 32
6.1.19. Workforce Aggregate Fact (W_WRKFC_BAL_A) ........................................................... 33
6.1.20. Workforce Aggregate Event Fact (W_WRKFC_EVT_A) ................................................. 35
6.1.21. Handling Deletes ........................................................................................................... 38
6.1.22. Propagating to derived facts ......................................................................................... 39
6.1.23. Date-tracked Deletes .................................................................................................... 39
6.1.24. Purges ............................................................................................................................ 39
6.1.25. Primary Extract .............................................................................................................. 40
6.1.26. Identify Delete............................................................................................................... 41
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 3
6.1.27. Soft Delete .................................................................................................................... 41
6.1.28. Date-Tracked Deletes - Worked Example ..................................................................... 42
6.2. Recruitment Fact Process .................................................................................................................... 43
6.2.1. ETL Flow ........................................................................................................................ 43
6.2.2. Key Steps and Table Descriptions ................................................................................. 43
6.2.3. Key Setup/Configuration Steps ..................................................................................... 45
6.2.4. W_JOB_RQSTN_EVENT_FS ........................................................................................... 46
6.2.5. W_ORA_APPL_EVENT_F_TMP ...................................................................................... 46
6.2.6. W_APPL_EVENT_FS ....................................................................................................... 47
6.2.7. Job Req. & Applicant Event Facts (W_JOB_RQSTN_EVENT_F & W_APPL_EVENT_F) .. 48
6.2.8. Job Requisition Accumulated Snapshot Fact (W_JOB_RQSTN_ACC_SNP_F) ............... 50
6.2.9. Applicant Accumulated Snapshot Fact (W_APPL_ACC_SNP_F) .................................... 51
6.2.10. Recruitment Pipeline Event Fact (W_RCRTMNT_EVENT_F) ......................................... 51
6.2.11. Recruitment Job Requisition Aggregate Fact (W_RCRTMNT_RQSTN_A) ..................... 54
6.2.12. Recruitment Applicant Aggregate Fact (W_RCRTMNT_APPL_A) ................................. 56
6.2.13. Recruitment Hire Aggregate Fact (W_RCRTMNT_HIRE_A) ........................................... 57
6.3. Absence Fact Process .......................................................................................................................... 59
6.3.1. ETL Flow ........................................................................................................................ 59
6.3.2. Key Steps and Table Descriptions ................................................................................. 59
6.3.3. Key Setup/Configuration Steps ..................................................................................... 60
6.3.4. W_ABSENCE_TYPE_RSN_DS ......................................................................................... 61
6.3.5. W_ABSENCE_EVENT_DS ............................................................................................... 62
6.3.6. Absence Event Fact (W_ABSENCE_EVENT_F) ............................................................... 63
6.4. Learning Fact Process .......................................................................................................................... 65
6.4.1. ETL Flow ........................................................................................................................ 65
6.4.2. Key Steps and Table Descriptions ................................................................................. 65
6.4.3. Key Setup/Configuration Steps ..................................................................................... 66
6.4.4. W_ORA_LM_ENROLLMENT_F_PRG_TMP .................................................................... 67
6.4.5. W_ORA_LM_ENROLLMENT_F_HST_TMP ..................................................................... 68
6.4.6. W_LM_EMROLLMENT_ACC_SNP_FS ............................................................................ 69
6.4.7. Learning Enrollment Acc. Snapshot Fact (W_LM_ENROLLMENT_ACC_SNP_F) ........... 70
6.4.8. Learning Enrollment Event Fact (W_LM_ENROLLMENT_EVENT_F) ............................. 71
6.5. Payroll Fact Process ............................................................................................................................ 72
6.5.1. ETL Flow ........................................................................................................................ 72
6.5.1. W_PAYROLL_FS ............................................................................................................. 75
6.5.2. Payroll Fact (W_PAYROLL_F) ......................................................................................... 76
6.5.3. Payroll Aggregate Fact (W_PAYROLL_A) ....................................................................... 77
7. KNOWN ISSUES AND PATCHES ............................................................................................. 78
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 4
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.
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 5
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.
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 6
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:
The fact will look something like this:
Assignment Date From Date To Event Grade Grade Change Salary Performance
1 1 Jan 31 Jan Hire A N 50 GOOD
1 1 Feb 28 Feb Appraisal A N 50 BAD
1 1 Mar 31 Mar Review B Y 60 BAD
1 1 Apr 30 Apr Appraisal B N 60 UGLY
1 1 May 31 May Review B N 70 UGLY
1 1 Jun 30 Jun Assignment B N 70 UGLY
1 1 Jul 31 Jul Appraisal B N 70 GOOD
1 1 Aug 31 Aug Review B N 80 GOOD
1 1 Sep End Assignment B N 80 GOOD
Assignment
A Grade B B B
Salary
Performance
$50k $60k $70k $80k
GOOD BAD UGLY GOOD
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 7
If we correct the second assignment record so that the grade change is deferred (A, B, B, B A, A,
B, B) then we will need to correct the records as highlighted below.
Assignment Date From Date To Event Grade Grade Change Salary Performance
1 1 Jan 31 Jan Hire A N 50 GOOD
1 1 Feb 28 Feb Appraisal A N 50 BAD
1 1 Mar 31 Mar Review A N 60 BAD
1 1 Apr 30 Apr Appraisal A N 60 UGLY
1 1 May 31 May Review A N 70 UGLY
1 1 Jun 30 Jun Assignment B Y 70 UGLY
1 1 Jul 31 Jul Appraisal B N 70 GOOD
1 1 Aug 31 Aug Review B N 80 GOOD
1 1 Sep End Assignment B N 80 GOOD
Therefore a single correction on the transaction system can result in many records requiring
correction on the warehouse. Because of the complexity of working out exactly what is impacted, a
simple and efficient refresh strategy is to capture the earliest refresh date per person/assignment
and do a refresh of that portion of the target.
Usually the event queue table will contain:
Primary Key Columns (e.g. Assignment)
Other Key Columns (e.g. Data Source)
Earliest Change / Refresh From Date (date of earliest change e.g. 1 Mar from example
above)
Previous End Date (always equal to Earliest Change Date – 1 this makes the implementation
more portable)
3.2.2. A worked out example of Event Queue table
The source table is loaded with the initial load.
Assignment Event Date Event Grade Salary LOAD_ID
1 1 Jan 2000 Hire A 50 1
1 1 Jan 2003 Review B 60 1
The target table gets the same data and calculates the effective end date:
Assignment Date From Date To Event Grade Salary LOAD_ID
1 1 Jan 2000 31 Dec 2002 Hire A 50 1
1 1 Jan 2003 End Review B 60 1
The subsequent incremental load (ID=2) changed the source table as follows:
Assignment Date From Date To Event Grade Salary LOAD_ID Comment
1 1 Jan 2000 31 Dec 2000 Hire A 50 1
1 1 Jan 2001 31 Dec 2002 Promotion B 50 2 New Record
1 1 Jan 2003 End Review B 60 1
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 8
The Event Queue Table would hold:
Assignment Earliest Change Date Previous End Date
1 1 Jan 2001 31 Dec 2000
4. General Implementation Considerations
Oracle BI Applications E-Business Suites Adaptor being a ‘packaged’ ETL application, it assumes
correctness of source OLTP data. If your source data isn’t clean enough, you are bound to encounter
problems down the line. We strongly recommend that you carry out a good health-check of your
source data (by writing custom SQL’s etc) and detect issues upfront and have them fixed, prior to
running your ETL. Areas of consideration include, but not limited to, are:
The total number of Worker and Non Worker assignments as of "End Date".
Periods during which Workers and Non Workers have assignment budget values totaling
more than one. This check requires the initial load request set to have been run.
Periods during which worker assignments do not have a supervisor.
Periods during which worker and non-worker assignments have a supervisor who has been
terminated.
Periods during which worker assignments do not have a salary.
Workers and non-workers who were terminated without providing a leaving reason.
Workers who have never had a performance review or an appraisal rating.
Assignment Budget Value Total by Supervisor
Total salaries for the supervisor's subordinates as of “End Date”.
Details of Non workers without a projected end date.
Number of users who have the ability to access Oracle Business Intelligence Applications
dashboards
Details of current users who can access Oracle Business Intelligence Applications
dashboards, but cannot view data due to security restrictions. This check requires the initial
load request set to have been run.
Supervisor Loops present in the system.
A few of these are checks for you to compare later against the warehouse. Others are examples of
possible bad data. The key is to get these results handy and on a case by case basis, have the OLTP
data corrected. For example, having a loop in the reporting relationships can make the ETL behavior
unpredictable or wrong.
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 9
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.
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.
OLTP 2
Data Warehouse
OLTP 1
A
I
Active
Inactive
2
3
Suspended
Terminated
1 Active
A
I
Active
Inactive
2
3
Suspended
Terminated
1 Active
ACTIVE
INACTIVE
INACTIVE
INACTIVE
ACTIVE
Source Domain
“Active”
Measures
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 10
One of the very frequently asked question is “what is the difference between domain value
code/name pairs VS the regular code/name pairs that are stored in W_CODE_D”.
If you look at the structure of W_CODE_D table, it appears to be also capable of standardizing
code/name pairs to something common. This is correct. However, we wanted to give an extensive
freedom to users to be able to do that standardization (not necessarily equalization) of their
code/names and possibly use that for cleansing as well. For example, if the source supplied
code/name are possibly CA/CALIF or CA/California, you can choose the W_CODE_D approach (using
Master Code and Master Map tables – see configuration guide for details) to standardize on
CA/CALIFORNIA.
Now, to explain the difference of domain value code/name pairs Vs the regular code/name pairs, it
is enough if you understand the significance of the domain value concept. To keep it simple,
wherever we (Oracle Business Intelligence Applications) felt that we should equalize two similar
topics that give us analytic values, metric calculation possibilities etc, we have “promoted” a regular
code/name pair to a domain value code/name pair.
If we have a requirement to provide a metric called “Male Headcount”, we can’t do that accurately
unless we know which of the headcount is “Male” and which is “Female”. This metric therefore has
easy calculation logic: Sum of headcount where sex = Male. Since PeopleSoft can call it “M” and EBS
can have “male”, we decided to call it a domain value code/name pair, W_SEX_MF_CODE (available
in the employee dimension table). Needless to say, if you didn’t configure your domain value for this
column accurately, you won’t get this metric right.
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 11
6. Detailed understanding of the key HR ETL Processes
6.1. Core Workforce Fact Process
6.1.1. ETL Flow
AssignmentW_ORA_ WEVT_ASG_PS
W_ORA_ WEVT_ASG_TMP
Headcount W_ORA_ WEVT_HDC_PS
W_ORA_ WEVT_HDC_TMP
FTEW_ORA_ WEVT_FTE_PS
W_ORA_ WEVT_FTE_TMP
Person TypeW_ORA_ WEVT_ PTYP_PS
W_ORA_ WEVT_ PTYP_TMP
SalaryW_ORA_ WEVT_SAL_PS
W_ORA_ WEVT_SAL_TMP
AppraisalW_ORA_ WEVT_ PERF_PS
W_ORA_ WEVT_ PERF_TMP
Age
W_ORA_ WEVT_AGE_TMP
Service
W_ORA_ WEVT_ POW_TMP
Supervisor StatusW_ORA_ SUPV_ STATUS_PS
Assignment FTE Headcount Salary Person Type Appraisal Supervisor Status
Events Events Events Events Events Events Events
For each change type all the PS tables are joined together to produce event records with all information correct as of the event
Workforce FactW_ WRKFC_EVT_F
Age Band DimensionW_AGE_ BAND_D
Period of Work Band Dimension
W_PRD_OF_ WRK _BAND_D
Workforce Age FactW_ WRKFC_EVT_AGE_F
Workforce Service FactW_ WRKFC_EVT_POW_F
Workforce Merge FactW_ WRKFC_EVT_ MERGE_F
Month DimensionW_ MONTH_D
Workforce Month Snapshot FactW_ WRKFC_EVT_ MONTH_F
Workforce Fact StagingW_ WRKFC_EVT_FS
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
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 12
6.1.2. Key Steps and Table Descriptions
Initial Extraction
Tables used for initial source extraction.
Table Primary Sources Grain Description
W_ORA_WEVT_ASG_PS PER_ALL_ASSIGNMENTS_F As primary
source +
inactive record
Active assignment changes
plus some event
interpretation from the
source plus one system
generated inactive record
W_ORA_WEVT_HDC_PS PER_ASSIGNMENT_BUDGET
_VALUES_F
Headcount Fast Formulas
One row per
assignment per
headcount
change
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_FTE_PS PER_ASSIGNMENT_BUDGET
_VALUES_F
FTE Fast Formulas
One row per
assignment per
FTE change
W_ORA_WEVT_SAL_PS PER_PAY_PROPOSALS As primary
source
Pay reviews plus salary
annualization.
W_ORA_WEVT_PTYP_PS PER_PERSON_TYPE
_USAGES_F
As primary
source for EMP
and CWK types
Worker person type pushed
down to corresponding
assignment (type E or C)
W_ORA_WEVT_PERF_PS PER_APPRAISALS
PER_PERFORMANCE
_REVIEWS
As primary
source
Appraisal ratings
normalized (converted to a
%) and stored against each
assignment
W_ORA_SUPV_STATUS_PS W_ORA_WEVT_ASG_PS One row per
person per
change in
supervisor
status
At any given time a person
is a supervisor if an active
assignment exists that
reports to them.
W_WRKFC_EVT_FS All W_ORA_*_PS One row per
assignment per
workforce
event
Records workforce events
for assignments from
hire/start through to
termination/end. Includes
appraisals, salary reviews
and general changes.
W_WRKFC_EVT_F W_WRKFC_EVT_F One row per
assignment per
workforce
Records workforce events
for assignments from
hire/start through to
termination/end. Includes
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 13
event appraisals, salary reviews
and general changes.
W_WRKFC_EVT_AGE_F W_AGE_BAND_D
W_WRKFC_EVT_F
One row per
assignment per
age band
change
Records age band change
events for each assignment
W_WRKFC_EVT_POW_F W_PRD_OF_WRK_BAND_D
W_WRKFC_EVT_F
One row per
assignment per
service band
change
Records service band
change events for each
assignment
W_WRKFC_EVT_MERGE_F W_WRKFC_EVT_F
W_WRKFC_EVT_AGE_F
W_WRKFC_EVT_POW_F
One row per
assignment per
workforce or
band change
event
Merges band change
events with workforce
events for assignments
W_WRKFC_EVT_MONTH_F W_WRKFC_EVT_MERGE_F
W_MONTH_D
One row per
assignment per
change event
or snapshot
month
Adds in monthly snapshot
records along with the
workforce and band change
events.
W_EMPLOYMENT_STAT_CAT_D W_EMPLOYMENT_D One row per
Employment
Status and
category.
This table is an aggregated
dimension table on the
distinct Employment Status
and Category available in
W_EMPLOYMENT_D table.
W_WRKFC_EVENT_TYPE_D W_WRKFC_EVENT_TYPE_DS The grain of
this table is at a
single
Workforce
Event Type
level.
This dimension table stores
information about a
workforce event, such as
the action, whether the
organization or job has
changed, whether it is a
promotion or a transfer,
and so on. This table is
designed to be a Type-1
dimension.
W_WRKFC_EVENT_GROUP_D W_WRKFC_EVENT_TYPE_D One row per
Event group
and Event Sub
group
This table is an aggregate
dimension based on the
Event Group and Event Sub
Group in the
W_WRKFC_EVENT_TYPE_D
dimension table.
W_WRKFC_BAL_A W_EMPLOYMENT_STAT_CAT_D One row per
employment
This is a Balance Aggregate
table based on the
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 14
W_WRKFC_EVT_MONTH_F
status/category
and snapshot
month
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
One row per
workforce
event
group/event
sub group and
employment
status/category
This is an Events Aggregate
table based on the Base
Event Fact table
W_WRKFC_EVT_MERGE_F.
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 15
Incremental Extraction
Additional tables used for incremental source extraction only. Grain is for new/updated records only.
Last update date is used on all incremental extracts to determine the changed source data.
Table Primary Sources Grain (changes) Description
W_ORA_WEVT_ASG_TMP PER_ALL_ASSIGNMENTS_F As primary source +
inactive record
Stages updates before merging
into the _PS table. Comparisons
are made to detect changes
W_ORA_WEVT_HDC_TMP PER_ASSIGNMENT_BUDGET
_VALUES_F
Headcount Fast Formulas
One row per
assignment per
headcount change
Stages updates before merging
into the _PS table. Comparisons
are made to see what change
occurred, if any. W_ORA_WEVT_FTE_TMP PER_ASSIGNMENT_BUDGET
_VALUES_F
FTE Fast Formulas
One row per
assignment per FTE
change
W_ORA_WEVT_SAL_TMP PER_PAY_PROPOSALS As primary source Stages updates before merging
into the _PS table. Comparisons
are made to see what change
occurred, if any.
W_ORA_WEVT_PTYP_TMP PER_PERSON_TYPE
_USAGES_F
As primary source
for EMP and CWK
types
Stages updates before merging
into the _PS table. Comparisons
are made to see what change
occurred, if any.
W_ORA_WEVT_PERF_TMP PER_APPRAISALS
PER_PERFORMANCE
_REVIEWS
As primary source Stages updates before merging
into the _PS table. Comparisons
are made to see what change
occurred, if any.
W_ORA_WEVT_AGE_TMP PER_ALL_PEOPLE_F One row per person Comparison is made with date
of birth in assignment table and
all rows updated on change
W_ORA_WEVT_POW_TMP PER_PERIODS_OF_SERVICE One row per period
of service
Comparison is made with date
start in assignment table and all
rows updated on change
W_ORA_WEVT_ASG_EQ_TMP All W_ORA_*_PS One row per
assignment
Assignments and their earliest
date of any change
W_ORA_SUPV_OLD_TMP W_ORA_WEVT_ASG_PS One row per
assignment per
supervisor change
Keeps track of prior supervisors
(before assignments are
updated) as these may have a
change in supervisor status
W_ORA_SUPSTAT_EQ_TMP W_ORA_WEVT_ASG_PS
W_ORA_SUPV_OLD_TMP
One row per person Lists people with potential
changes in supervisor status
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 16
W_WRKFC_EVT_EQ_TMP W_WRKFC_EVT_FS One row per
changed
assignment
Reference table for which
assignments have changed
and the earliest change
dates
W_WRKFC_EVT_MONTH_EQ_TMP W_WRKFC_EVT_EQ_TMP
W_WRKFC_EVT_F
W_MONTH_D
One row per
changed
assignment
Expands
W_WRKFC_EVT_EQ_TMP
to include assignments
needing new snapshots
W_WRKFC_BAL_A_EQ_TMP W_WRKFC_EVT_MONTH_EQ_TMP
W_WRKFC_EVT_MONTH_F
W_EMPLOYMENT_STAT_CAT_D
One row per
changed
employment
status/category
and snapshot
month
Reference table for which
employment
status/category have
changed and the snapshot
month
W_WRKFC_EVT_A_EQ_TMP W_WRKFC_EVT_EQ_TMP
W_WRKFC_EVT_MERGE_F
W_EMPLOYMENT_STAT_CAT_D
W_WRKFC_EVENT_GROUP_D
One row per
changed event
group/sub
group and
employment
status/category
Reference table for which
event group/sub groups
have changed and changed
employment
status/category.
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 17
6.1.3. Key Setup/Configuration Steps
The following table documents the minimum setup required for the target snapshot fact to be
loaded successfully. For other functionality to work it is necessary to perform other setup as
documented by the installation guide below. If this is not done it may be necessary to re-run initial
load after completing the additional setup.
Type Name Description
DAC System Parameter INITIAL_EXTRACT_DATE Earliest date to extract data across all facts
HR_WRKFC_EXTRACT_DATE Earliest date to extract data from HR Facts
HR_WRKFC_ADJ_SERVICE_DATE Whether or not to count length of work from the
adjusted service date
HR_WRKFC_SNAPSHOT _DT Earliest date to generate snapshots for HR
Workforce.
This should be set to the 1st
of a month.
HR_WRKFC_SNAPSHOT _TO_WID Current date in WID form – should not be changed
Domains Age Band Age bands need to be defined in a continuous set
of ranges
Period of Work Bands Period of work bands need to be defined in a
continuous set of ranges
Configuration Tag Collect FTE Whether or not to load FTE values (FTE PS table)
Collect Performance Ratings Whether or not to load appraisals (PERF PS table)
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.
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 18
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).
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 19
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.
W_ORA_WEVT_ASG_PS
PER_ALL_ASSIGNMENTS_F
PER_ALL_PEOPLE_F
(Date of Birth)
PER_PERIODS_OF_SERVICE
(Also _PLACEMENT for CWKs)
PER_ASSIGNMENT_STATUS_TYPES
PER_JOBS
PER_PAY_BASES
Normal working hours standardized
Previous FKs calculated
Previous dates calculated
Event mapped to conformed event
W_ORA_WEVT_ASG_TMP
IncrementalInitial
End Events End Events
Changes
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)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 20
6.1.6. W_ORA_WEVT_HDC_PS
The headcount persisted staging table stores headcount changes only.
W_ORA_WEVT_HDC_PS
PER_ASSIGNMENT_BUDGET_VALUES_F
PER_ALL_ASSIGNMENTS_F
Sources from ABV table or Fast Formula
Calculates previous Headcount values
W_ORA_WEVT_HDC_TMP
IncrementalInitial
Changes
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)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 21
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.
W_ORA_WEVT_FTE_PS
PER_ASSIGNMENT_BUDGET_VALUES_F
PER_ALL_ASSIGNMENTS_F
Sources from ABV table or Fast Formula
Calculates previous FTE values
W_ORA_WEVT_FTE_TMP
IncrementalInitial
Changes
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)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 22
6.1.8. W_ORA_WEVT_SAL_PS
The salary persisted staging table stores approved salary changes only.
W_ORA_WEVT_SAL_PS
PER_PAY_PROPOSALS
PAY_ELEMENT_TYPES_F
PER_TIME_PERIOD_TYPES
PER_ALL_ASSIGNMENTS_F
PER_PAY_BASES
PAY_INPUT_VALUES_F
Annualized salaries
Previous salary calculated
Last salary increase date calculated
W_ORA_WEVT_SAL_TMP
IncrementalInitial
Changes
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)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 23
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.
W_ORA_WEVT_PTYP_PS
PER_PERSON_TYPE_USAGES_F
PER_PERSON_TYPES
PER_ALL_ASSIGNMENTS_F
Matches assignments to person types
using:
‘E’ => ‘EMP’
‘C’ => ‘CWK’
W_ORA_WEVT_PTYP_TMP
IncrementalInitial
Changes
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)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 24
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.
W_ORA_WEVT_PERF_PS
PER_PERFORMANCE_REVIEWS
PER_EVENTS
PER_ALL_ASSIGNMENTS_F
Include/Exclude Appraisal Templates
Normalize Ratings (default or domain override)
W_ORA_WEVT_PERF_TMP
PER_APPRAISALS
PER_RATING_LEVELS
PER_APPRAISAL_TEMPLATES
Calculate previous performance ratings
Add date-track start/end dates
Detect changes (incremental)
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)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 25
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).
AssignmentW_ORA_WEVT_ASG_PS
Headcount W_ORA_WEVT_HDC_PS
FTEW_ORA_WEVT_FTE_PS
Person TypeW_ORA_WEVT_PTYP_PS
SalaryW_ORA_WEVT_SAL_PS
AppraisalW_ORA_WEVT_PERF_PS
Workforce Fact Event QueueW_ORA_WEVT_ASG_EQ_TMP
Assignent IDs plus the earliest event (effective start) date for records that have changes (DATA_EFF_CHANGE_DT updated)
Initial Load Sessions
None
Incremental Load Sessions
SDE_ORA_WorkforceEventQueue_Asg
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 26
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_WEVT_ASG_PS
W_ORA_SUPV_OLD_TMPPre-refresh supervisor pending changes
W_ORA_SUPV_STATUS_PSStatus changes only
W_ORA_SUPSTAT_EQ_TMPPeople potentially changing status
Pre-refresh
Incremental Initial
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)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 27
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.
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)
AssignmentW_ORA_WEVT_ASG_PS
Headcount W_ORA_WEVT_HDC_PS
FTEW_ORA_WEVT_FTE_PS
Person TypeW_ORA_WEVT_PTYP_PS
SalaryW_ORA_WEVT_SAL_PS
AppraisalW_ORA_WEVT_PERF_PS
Event QueueW_ORA_WEVT_ASG_EQ_TMP
Workforce Fact StagingW_WRKFC_EVT_FS
Assignment FTE Headcount Salary Person Type Appraisal Supervisor Status Events Events Events Events Events Events Events
For each change type all the PS tables are joined together to produce event records with all information correct as of the event. In incremental load the event queue is additionally joined in to ensure only actual changes (plus subsequent events) are processed.
Supervisor StatusW_ORA_SUPV_STATUS_PS
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 28
6.1.14. Workforce Base Fact (W_WRKFC_EVT_F)
Calculates EFFECTIVE_END_DATE based
on next event date
W_WRKFC_EVT_F
W_WRKFC_EVT_FS
W_WRKFC_EVT_EQ_TMP
Incremental
only
Deletes any obsolete fact records
Maintains effective start/end dates
Incremental
only
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.
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 29
6.1.15. Workforce Age Fact (W_WRKFC_EVT_AGE_F)
W_WRKFC_EVT_AGE_F
W_WRKFC_EVT_FW_AGE_BAND_D
The age fact contains one starting row plus one row each time an assignment moves from one age
band to the next. For example, if the last age band is 55+ years then there will be an event generated
for each assignment on the 55th birthday of the worker (BIRTH_DT + 55 years). Any worker hired
beyond the age of 55 will have no additional band change events, just the starting row.
Note the age bands are completely configurable, but because of the dependencies between the age
bands and the facts any changes to the configuration will require a reload (initial load).
This fact is refreshed for an assignment whenever there is a change to the worker’s date of birth on
the hire record (or the first record if the hire occurred before the fact initial extract date).
Initial Load Sessions
PLP_WorkforceEventFact_Age_Full (loads new records)
Incremental Load Sessions
PLP_WorkforceEventFact_Age_Mntn (deletes records to be refreshed or obsolete)
PLP_WorkforceEventFact_Age (loads changed records)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 30
6.1.16. Workforce Period of Work Fact (W_WRKFC_EVT_POW_F)
W_WRKFC_EVT_POW_F
W_WRKFC_EVT_FW_PRD_OF_WRK_BAND_D
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)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 31
6.1.17. Workforce Merge Fact (W_WRKFC_EVT_MERGE_F)
W_WRKFC_EVT_MERGE_F
W_WRKFC_EVT_AGE_FW_WRKFC_EVT_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)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 32
6.1.18. Workforce Month Snapshot Fact (W_WRKFC_EVT_MONTH_F)
W_WRKFC_EVT_MONTH_F
W_WRKFC_EVT_MERGE_FW_MONTH_D
Workforce
EventsMonthly
Snapshots
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)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 33
6.1.19. Workforce Aggregate Fact (W_WRKFC_BAL_A)
Dimension
W_EMPLOYMENT_D
Workforce Dimension Aggregate
W_EMPLOYMENT_STAT_CAT_D
Workforce Month Snapshot Fact
W_WRKFC_EVT_MONTH_F
Workforce Aggregate Fact
W_WRKFC_BAL_A
PLP
Dimension
Aggregate Load
FULL and INCR
PLP Load Process
FULL
Change Queue table
W_WRKFC_BAL_A_EQ_TMP
PLP
Parent level
Update
FULL and
INCR
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
INCR only
Workforce Month Fact
W_WRKFC_EVT_MONTH_F
Change queue tableW_WRKFC_EVT_MONTH_EQ_TM
P
PLP
INCR only
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.
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 34
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)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 35
6.1.20. Workforce Aggregate Event Fact (W_WRKFC_EVT_A)
Dimension
W_EMPLOYMENT_D
Workforce Dimension
Aggregate
W_EMPLOYMENT_STAT_
CAT_D
Workforce Event Merge Fact
W_WRKFC_EVT_MERGE
_F
Workforce Aggregate Fact
W_WRKFC_EVT_A
PLP
Dimension
Aggregate Load
FULL and INCR
PLP Load Process
FULL
Change Queue table
W_WRKFC_EVT_A_EQ_T
MP
PLP
Parent level
Update
FULL and
INCR
Aggregate Fact is loaded
directly by Employment
Dimension but it is at the
grain of
the Employment Stat Cat
Aggregate Dimension
Workforce Dimension
Aggregate
W_WRKFC_EVENT_GRO
UP_D
Dimension
W_WRKFC_EVENT_TYPE_D
PLP
Dimension
Aggregate Load
FULL and INCR
PLP
Parent level
Update
FULL and
INCR
Aggregate Fact is loaded
directly by Workforce Event
Type Dimension but it is at
the grain of
the Workforce Event Group
Aggregate Dimension
W_WRKFC_EVT_MERGE_F W_WRKFC_EVT_EQ_TMP
PLP
INCR only
PLP Load process
INCR only
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.
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 36
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) )
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 37
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)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 38
6.1.21. Handling Deletes
W_WRKFC_EVT_F
W_WRKFC_EVT_F_PE
W_WRKFC_EVT_DEL_F
Source OLTP
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
Integration keys
or assignments
Set delete
flag
Records to
be deleted
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.
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 39
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.
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 40
6.1.25. Primary Extract
W_WRKFC_EVT_F_PEDATASOURCE_NUM_ID
INTEGRATION_ID (ASSIGNMENT_ID)
Source OLTP
W_WRKFC_EVT_F_PEDATASOURCE_NUM_ID
INTEGRATION_IDEither / Or
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.
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 41
6.1.26. Identify Delete
W_WRKFC_EVT_FW_WRKFC_EVT_F_PE
W_WRKFC_EVT_DEL_F
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
Records to
be deleted
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
W_WRKFC_EVT_DEL_F
Set delete
flag
This updates the delete flag to “Y” (Yes) for fact records in the delete table.
Incremental Sessions:
SIL_WorkforceEventFact_SoftDelete
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 42
6.1.28. Date-Tracked Deletes - Worked Example
The recommended way of handling date-tracked deletes in the workforce fact is to always stage
changed records (in the case of a delete – the previous record) and allow the fact incremental load
mappings handle the changes. The following example shows what can happen if the fact is not
maintained correctly when deleting records.
W_WRKFC_EVT_F
Suppose after initial load the following data was loaded in the fact table for assignment 1:
Assignment Start Date End Date Change Type Organization Salary
1 01-Jan-2000 31-Dec-2000 HIRE A 5000
1 01-Jan-2001 31-Dec-2001 REVIEW A 6000
1 01-Jan-2002 31-Dec-2002 TRANSFER B 6000
1 01-Jan-2003 01-Jan-3714 REVIEW B 7000
Now suppose the transfer record was deleted on the source transaction system. If this was handled
by the primary extract – identify delete – soft delete mappings then there would be the following
records left in the fact table (delete flag = ‘N’):
Assignment Start Date End Date Change Type Organization Salary
1 01-Jan-2000 31-Dec-2000 HIRE A 5000
1 01-Jan-2001 31-Dec-2001 REVIEW A 6000
1 01-Jan-2003 01-Jan-3714 REVIEW B 7000
This is wrong on two counts:
1. The date-track is not continuous, so downstream ETL may fail or lose data. Also reports in
Answers may not return data for the gaps in the date-track.
2. The data is not consistent – since the transfer has been deleted the REVIEW on 01-Jan-2003
should not still be showing organization B.
The first issue would be reasonably simple to fix with an update (either pushing the updated record
into the fact staging table, or if directly updating the fact it would be necessary to track the event
(effective start) date of the updated row in W_WRKFC_EVT_EQ_TMP).
However the second issue is more complex. By allowing the fact incremental load to take care of the
deletes these issues are avoided.
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 43
6.2. Recruitment Fact Process
6.2.1. ETL Flow
Job Requisition Event Fact
W_JOB_RQSTN_EVENT_F
Job Requisition Accumulated Snpsht Fact
W_JOB_RQSTN_ACC_SNP_F
Recruitment Pipeline Fact
W_RCRTMNT_EVENT_F
Recruitment Job Req Aggregate
W_RCRTMNT_RQSTN_A
Job Requisition Event Fact Staging
W_JOB_RQSTN_EVENT_FS
Applicant Event Fact Staging
W_APPL_EVENT_FS
Applicant Event Fact
W_APPL_EVENT_F
Applicant Accumulated Snapshot Fact
W_APPL_ACC_SNP_F
Recruitment Applicant Aggregate
W_RCRTMNT_APPL_A
Recruitment Hire Aggregate
W_RCRTMNT_HIRE_A
EB
S
Syste
m
EB
S
Syste
m
PER_ALL_VACANCIES,
PER_REQUISITIONS
PER_ALL_ASSIGNMENTS_F,
PER_ASSIGNMENT_STATUS
_TYPES,
PER_ALL_VACANCIES,
IRC_ASSIGNMENT_STATUS
ES, PER_APPLICATIONS,
PER_ALL_PEOPLE_F
Appraisal Events
W_ORA_WEVT_PERF_PS
Applicant Employee Map
W_ORA_APPL_EVENT_F_TMP
Assignment Events
W_ORA_WEVT_ASG_PS
FTE Events
W_ORA_WEVT_FTE_PS
Headcount Events
W_ORA_WEVT_HDC_PS
6.2.2. Key Steps and Table Descriptions
Table Primary Sources Grain Description
W_ORA_APPL_EVENT_F_TMP PER_ALL_ASSIGNMENTS_F
PER_PERIOD_OF_SERVICE
One row per
applicant –
employee map (by
assignment ID)
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)
W_JOB_RQSTN_EVENT_FS PER_ALL_VACANCIES
PER_REQUISITIONS
Flat file (Job Requisition Original
Status)
One row per job
requisition per job
requisition event
per event date
Records 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
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 44
incremental as well in case
there has been multiple
changes in requisition
statuses throughout the day.
W_APPL_EVENT_FS 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
One row per
application per job
requisition event
per event date and
sequence
Records application events for
all applications from applying,
screening, selection though
offer extension, hire or
termination of the
application.
W_JOB_RQSTN_EVENT_F W_JOB_RQSTN_EVENT_FS One row per job
requisition per job
requisition event
per event date
Records job requisition events
for all job requisitions from
open through to
close/fulfilment.
W_JOB_RQSTN_ACC_SNP_F W_JOB_RQSTN_EVENT_F One row per job
requisition
Records job requisition
related event dates, de-
normalized.
W_APPL_EVENT_F W_APPL_EVENT_FS One row per
application per job
requisition event
per event date and
sequence
Records application events for
all applications from applying,
screening, selection though
offer extension, hire or
termination of the
application.
W_APPL_ACC_SNP_F W_APPL_EVENT_F One row per
application
Records application related
event dates, de-normalized.
W_RCRTMNT_EVENT_F W_JOB_RQSTN_F
W_APPL_EVENT_F
W_JOB_RQSTN_ACC_SNP_F
W_APPL_ACC_SNP_F
One row per
recruitment event
type per event
date and sequence
Merges the job requisition
events and application events
along with de-normalized
event dates. Also known as
the Recruitment Pipeline fact.
W_RCRTMNT_RQSTN_A W_RCRTMNT_EVENT_F
W_MONTH_D
One row per job
requisition per
recruitment event
month
Aggregates the job requisition
related metrics at a monthly
grain.
W_RCRTMNT_APPL_A W_RCRTMNT_EVENT_F
W_MONTH_D
One row per
applicant’s
demographics per
recruitment event
month
Aggregates the applicant
related metrics at a monthly
grain.
W_RCRTMNT_HIRE_A W_RCRTMNT_EVENT_F
W_MONTH_D
One row per hired
applicant’s
demographics per
recruitment event
month
Aggregates the applicant
related metrics with a focus
on hired applicants only at a
monthly grain.
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 45
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.
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 46
6.2.4. W_JOB_RQSTN_EVENT_FS
PER_ALL_VACANCIES
Job Requisition Event Fact
Stage
W_JOB_RQSTN_EVENT_FS
Job Req. Event
Extract (FULL &
INCR)
PER_REQUISITIONS
file_job_requisition_status_
original_ora<ver>.csv
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
PER_PERIOD_OF_SERVICE
Applicant Employee Map
Temporary
W_ORA_APPL_EVENT_F_TMP
Applicant
Employee Map
Extract (FULL &
INCR)
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)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 47
Incremental Load Sessions
SDE_ORA_ApplicantEventFact_EmpAplAssignments (Same as full. The TMP table is truncate-loaded)
6.2.6. W_APPL_EVENT_FS
IRC_ASSIGNMENT
_STATUSES
Applicant Event Fact Stage
W_APPL_EVENT_FS
Applicant Events
(FULL & INCR)
Applicant
Appraisals (FULL
& INCR)Applicant
Terminations
(FULL & INCR)
Applicant Hires
Xfers Terms
(FULL & INCR)
PER_ALL_PEOPLE
_F
PER_ALL_VACAN
CIES
PER_ALL_ASSIGN
MENTS_F
PER_APPLICATIO
NS
W_ORA_APPL_EVEN
T_F_TMP
W_ORA_WEVT_ASG_
PS
W_ORA_WEVT_FTE_
PS
W_ORA_WEVT_HDC_
PS
W_ORA_WEVT_PERF
_PS
Applicant Employee Map
Assignment Events
FTE Events
Headcount EventsAppraisal Events
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)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 48
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 Event Fact
W_JOB_RQSTN_EVENT_F
Job Requisition Accumulated
Snapshot Fact
W_JOB_RQSTN_ACC_SNP_F
Applicant Event Fact
W_APPL_EVENT_F
Applicant Accumulated Snapshot
Fact
W_APPL_ACC_SNP_F
FULL load
process (Job
Req.)
FULL load
process
(Applicant)
Job Req. Age
Band Events
(FULL)
Applicant
Generated
Events (FULL)
Job Requisition Event Fact
Stage
W_JOB_RQSTN_EVENT_FS
Applicant Event Fact Stage
W_APPL_EVENT_FS
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 49
Job Requisition Event Fact
W_JOB_RQSTN_EVENT_F
Job Requisition Accumulated
Snapshot Fact
W_JOB_RQSTN_ACC_SNP_F
Applicant Event Fact
W_APPL_EVENT_F
Applicant Accumulated Snapshot
Fact
W_APPL_ACC_SNP_F
INCR load
process (Job
Req.)
INCR load
process
(Applicant)
Job Req. Age
Band Events
(INCR)
Applicant
Generated
Events (INCR)
Job Requisition Event Fact
Stage
W_JOB_RQSTN_EVENT_FS
Applicant Event Fact Stage
W_APPL_EVENT_FS
Applicant POW
Events (INCR)
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-band-
crossing 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)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 50
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 Event Fact
W_JOB_RQSTN_EVENT_F
Job Requisition Accumulated
Snapshot Fact
W_JOB_RQSTN_ACC_SNP_F
Position Hierarchy Post Change Temporary
W_POSITION_DH_POST_CHG_TMP
Job Req. Age
Band Events
(FULL & INCR)
Position Hierarchy Update Process
(INCR ONLY)
Job Req. Load
(FULL & INCR)
Age Band Dimension
W_AGE_BAND_D
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)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 51
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 Event Fact
W_APPL_EVENT_F
Applicant Accumulated Snapshot
Fact
W_APPL_ACC_SNP_F
Period of
Work Band
Events
(FULL &
INCR)
Applicant
Load (FULL
& INCR)
Period of Work Band Dimension
W_PRD_OF_WRK_BAND_D
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 ‘pre-
image’ 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.
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 52
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 “post-
image” 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.
Job Requisition Event Fact
W_JOB_RQSTN_EVENT_F
Job Requisition Accumulated
Snapshot Fact
W_JOB_RQSTN_ACC_SNP_F
Recruitment Pipeline Fact
W_RCRTMNT_EVENT_F
Applicant Event Fact
W_APPL_EVENT_F
Applicant Accumulated Snapshot
Fact
W_APPL_ACC_SNP_F
Full load
process
(Job Req.)
Full load
process
(Applicant)
Process flow for FULL Load of the Recruitment Pipeline fact (Load process)
Job Requisition Event Fact
W_JOB_RQSTN_EVENT_F
Job Requisition Accumulated
Snapshot Fact
W_JOB_RQSTN_ACC_SNP_F
Recruitment Pipeline Fact
W_RCRTMNT_EVENT_F
Applicant Event Fact
W_APPL_EVENT_F
Applicant Accumulated Snapshot
Fact
W_APPL_ACC_SNP_F
Recruitment Pipeline Event Queue
W_RCRTMNT_EVENT_F_EQ_TMP
Recruitment Pipeline Temporary
W_RCRTMNT_EVENT_F_TMP
Pre
Im
ag
e
Pro
ce
ss
(Jo
b R
eq
.)
Pre
Im
ag
e
Pro
ce
ss
(Ap
plic
an
t)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 53
Job Requisition Event Fact
W_JOB_RQSTN_EVENT_F
Job Requisition Accumulated
Snapshot Fact
W_JOB_RQSTN_ACC_SNP_F
Recruitment Pipeline Fact
W_RCRTMNT_EVENT_F
Applicant Event Fact
W_APPL_EVENT_F
Applicant Accumulated Snapshot
Fact
W_APPL_ACC_SNP_F
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
Recruitment Pipeline Temporary
W_RCRTMNT_EVENT_F_TMP
Post
Image
Process
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)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 54
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.
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 55
Recruitment Pipeline Fact
W_RCRTMNT_EVENT_F
Recruitment Requisition
Aggregate
W_RCRTMNT_RQSTN_A
Derive
Process
(FULL)
Update
Process
(Common
)
Time
Dimension -
Day
W_DAY_D
Time
Dimension -
Month
W_MONTH_
D
Requisition Aggregate Temp-2
W_RCRTMNT_RQSTN_A_TMP
2
Load process
(FULL)
Recruitment Pipeline Temporary
W_RCRTMNT_EVENT_F_TMP
Recruitment Pipeline Fact
W_RCRTMNT_EVENT_F
Recruitment Requisition
Aggregate
W_RCRTMNT_RQSTN_A
Load process
(INCR)
Time Dimension
- Day
W_DAY_D
Time Dimension
- Month
W_MONTH_D
Requisition Aggregate Temp-1
W_RCRTMNT_RQSTN_A_TMP
1
Requisition Aggregate Temp-2
W_RCRTMNT_RQSTN_A_TMP
2
Derive process
(INCR)
Update
process
(COMMON)
Extract
process
(INCR)
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)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 56
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 Pipeline Fact
W_RCRTMNT_EVENT_F
Recruitment Applicant Aggregate
W_RCRTMNT_APPL_A
Time Dimension
- Day
W_DAY_D
Time Dimension
- Month
W_MONTH_D
Load process (FULL)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 57
Recruitment Pipeline Fact
W_RCRTMNT_EVENT_F
Recruitment Applicant Aggregate
W_RCRTMNT_APPL_A
Extract
Process
(INCR)
Time
Dimension -
Day
W_DAY_D
Time
Dimension -
Month
W_MONTH_
D
Applicant Aggregate Temporary
W_RCRTMNT_APPL_A_TMP
Load process (INCR)
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.
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 58
Recruitment Pipeline Fact
W_RCRTMNT_EVENT_F
Recruitment Hire Aggregate
W_RCRTMNT_HIRE_A
Time Dimension
- Day
W_DAY_D
Time Dimension
- Month
W_MONTH_D
Load process (FULL)
Recruitment Pipeline Fact
W_RCRTMNT_EVENT_F
Recruitment Hire Aggregate
W_RCRTMNT_HIRE_A
Extract
Process
(INCR)
Time
Dimension -
Day
W_DAY_D
Time
Dimension -
Month
W_MONTH_D
Hire Aggregate Temporary
W_RCRTMNT_HIRE_A_TMP
Load process (INCR)
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)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 59
6.3. Absence Fact Process
6.3.1. ETL Flow
Absence Event Dimension
W_ABSENCE_EVENT_D
Day Dimension
W_DAY_D
Absence Fact
W_ABSENCE_EVENT_F
Absence Event Dim Staging
W_ABSENCE_EVENT_DSAbsence Type Reason Dim Staging
W_ABSENCE_TYPE_RSN_DS
Workforce Fact
W_WRKFC_EVT_F
Absence Type Rsn Dimension
W_ABSENCE_TYPE_RSN_D
EB
S
Syste
m
PER_ABSENCE_ATTENDANCE_TYPES,
PER_ABS_ATTENDANCE_REASONS,
HR_STANDARD_LOOKUPS
EB
S
Syste
m
PER_ABSENCE_ATTENDANCES,
PER_ABSENCE_ATTENDANCE_TYPES,
PER_ABS_ATTENDANCE_REASONS,
PER_ALL_ASSIGNMENTS_F
6.3.2. Key Steps and Table Descriptions
Table Primary Sources Grain Description
W_ABSENCE_EVENT_DS PER_ABSENCE_ATTENDANCES
PER_ABSENCE_ATTENDANCE_TYPES
PER_ABS_ATTENDANCE_REASONS
PER_ALL_ASSIGNMENTS_F
One record per absence
occurrence for a given
employee/absentee and
his/her assignment.
Stores the
Absence
Occurrences for
each Employee
(Dimension
Staging table).
W_ABSENCE_TYPE_RSN_DS PER_ABSENCE_ATTENDANCE_TYPES
PER_ABS_ATTENDANCE_REASONS
HR_STANDARD_LOOKUPS
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).
Stores absence
type, reason and
category
information.
( Dimension
Staging table)
W_ABSENCE_EVENT_D W_ABSENCE_EVENT_DS
W_ABSENCE_TYPE_RSN_DS
One row per Absence
Occurrence for a given
employee and his/her
assignment.
Stores the
Absence
Occurrences for
each Employee
W_ABSENCE_TYPE_RSN_D W_ABSENCE_TYPE_RSN_DS One record per valid
Absence Type and Reason
Stores Absence
type, reason and
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 60
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).
category
information.
W_ABSENCE_EVENT_F W_ABSENCE_EVENT_D
W_DAY_D
W_WRKFC_EVT_F
One row per Absence day
per Absence Occurrence for
given employee and his/her
assignment.
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.
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 61
6.3.4. W_ABSENCE_TYPE_RSN_DS
Absence Type Reason Dimension
Stage
W_ABSENCE_TYPE_RSN_DS
Absence Type
Reason Extract
(FULL & INCR)
PER_ABS_ATTENDANCE_REASONSPER_ABSENCE_ATTENDANCE_TYPES
· Absence Types and Reasons
UNION ALL
· Absence Types only. Reasons set to NULL
Initial Load Sessions
SDE_ORA_AbsenceTypeReason_Full (Extracts all possible absence types and reasons
associated with the types from the source system. During absence transactions, absence
types are mandatory whereas associating a ‘reason’ for the absence is not. In order to be
able to resolve the dimension FK for those transactions where reasons were not associated,
the dimension must have records where only types are available but reason isn’t. This
mapping unions the two datasets together while extracting the data).
Incremental Load Sessions
SDE_ORA_AbsenceTypeReason (Extracts new/changed absence types with or without
reasons since the last extract date)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 62
6.3.5. W_ABSENCE_EVENT_DS
Absence Event Dimension Stage
W_ABSENCE_EVENT_DS
Absence Event
(Occurrence) Extract
(FULL & INCR)
PER_ABSENCE_ATTE
NDANCES
PER_ABSENCE_ATTE
NDANCE_TYPES
PER_ABS_ATTENDA
NCE_REASONS
PER_ALL_ASSIGNME
NTS_F
hri_bpl_utilization.convert_days_to_hours() is
used to deduce the number of working hours
in a day
ASSIGNMENT_ID,
BUSINESS_GROUP_ID
DATE_START ASSIGNMENT_TYPE =
Employee or Contingent
Worker,
PRIMARY_FLAG = „Y‟
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)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 63
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_DS
W_ABSENCE_EVENT_DW_ABSENCE_TYPE_RSN_D
W_ABSENCE_TYPE_RSN_DS
W_ABSENCE_EVENT_F
SIL Load
Process
FULL
SIL Load
Process
FULL
Load
Process
FULL
Position Hierarchy Post Change
Temporary
W_POSITION_DH_POST_CHG_TM
P
Position Hierarchy Update
Process
INCR
Position Hierarchy Pre Change
Temporary
W_POSITION_DH_PRE_CHG_TMP
W_ABSENCE_EVENT_DS
W_ABSENCE_EVENT_D
W_ABSENCE_TYPE_RSN_D
W_ABSENCE_TYPE_RSN_
DS
W_ABSENCE_EVENT_F
SIL INCR Load
Process
SIL Incr Load
Process
Load Process
INCR
W_ABSENCE_EVENT_EQ_TMP
W_WRKFC_EVT_EQ_TMP
Mntn Process
INCR
Event Queue
Process INCR
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 64
Initial Load Sessions
SIL_AbsenceEventDimension _Full(loads new/updated records from Absence Event Staging
Dimension and Absence Type Reason Dimension)
SIL_AbsenceTypeReasonDimension_Full (loads new/updated records from Absence Type
Reason Staging Dimension)
PLP_AbsenceEventFact_Full (loads new/updated records from Absence Event Dimension)
Incremental Load Sessions
SIL_AbsenceEventDimension(loads new/updated records from Absence Event Staging
Dimension and Absence Type Reason Dimension)
SIL_AbsenceTypeReasonDimension (loads new/updated records from Absence Type Reason
Staging Dimension)
PLP_AbsenceEventFact (loads new/updated records from Absence Event Dimension, Day
Dimension and Workforce Fact) PLP_AbsenceEventQueue_Event (loads change queue table with changed (staged)
assignments and their earliest change (staged event) date for each Absence Event )
PLP_AbsenceEventFact_Mntn( deletes obsolete Absence records from Absence Fact based
on the change queue table (W_ABSENCE_EVENT_EQ_TMP )
PLP_AbsenceEventFact_PositionHierarchy_Update (changes in the Absent Employee’s
Position Hierarchy due to regular or back dated changes are applied to the Absence fact
table)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 65
6.4. Learning Fact Process
6.4.1. ETL Flow
Learning Enrollment SNP Fact Staging
W_LM_ENROLLMENT_ACC_SNP_FS
Learning Enrollment Snapshot Fact
W_LM_ENROLLMENT_ACC_SNP_F
Learning Enrollment Fact
W_LM_ENROLLMENT_EVENT_F
Learning Grade Band
Dimension
W_LM_GRADE_BAND_D
FILE_LEARNING_
GRADE_BAND
File Input
FILE_ROW_GEN_
BAND
File Input
EB
S
Syste
m
OTA_EVENTS,
PER_ALL_ASSIGNMENTS_F,
OTA_DELEGATE_BOOKINGS,
OTA_FINANCE_LINES
Curriculum and Certifications Temporary
W_ORA_LM_ENROLLMENT_F_PRG_TMP
Historical Enrollments Temporary
W_ORA_LM_ENROLLMENT_F_HST_TMP
6.4.2. Key Steps and Table Descriptions
Table Primary Sources Grain Description
W_ORA_LM_ENROLLMENT
_F_PRG_TMP
OTA_CERTIFICATION_MEMBERS
OTA_CERT_ENROLLMENTS
OTA_LEARNING_PATH_MEMBERS
OTA_LP_ENROLLMENTS
One row per person per
program type taken
This temporary
table stores all
program types
(Certifications and
Curriculum) that
are taken by the
person.
W_ORA_LM_ENROLLMENT
_F_HST_TMP
OTA_BOOKING_STATUS_HISTORIES
OTA_BOOKING_STATUS_TYPES
One row per enrollment
booking ID
This temporary
table stores all
historical dates
about past
enrollments by
person
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.
The two temporary
tables are looked
up to get the
enrollment dates
by program type
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 66
TMP
W_LM_GRADE_BAND_D Flat file Sources One row per Learning
Grade Band and one row
for each learning Score
Learning Grade
Band Dimension
stores data for
Grade/Scoring
Bands for Learning
Activities
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.
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
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.
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.
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 67
6.4.4. W_ORA_LM_ENROLLMENT_F_PRG_TMP
SDE Extract Process
FULL and INCR
Curriculum and Certifications
Temporary
W_ORA_LM_ENROLLMENT_F_PRG
_TMP
SDE Extract Process
FULL and INCR
EB
S
Syste
m OTA_CERTIFICATION_MEMBERS,
OTA_CERT_ENROLLMENTS
EB
S
Syste
m OTA_LEARNING_PATH_MEMBERS,
OTA_LP_ENROLLMENTS
CERTIFICATIONS CURRICULUM
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)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 68
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
EB
S
Syste
m OTA_BOOKING_STATUS_HISTORIES,
OTA_BOOKING_STATUS_TYPES
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.
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 69
6.4.6. W_LM_EMROLLMENT_ACC_SNP_FS
W_LM_ENROLLMENT_ACC_SNP_F
S
SDE Extract Process
FULL and INCR
EB
S S
yste
m
OTA_EVENTS,
OTA_DELEGATE_BOOKINGS,
OTA_FINANCE_LINES,
PER_ALL_ASSIGNMENTS_F
Use Primary Assignments only
Assignment Type = „Employee‟
W_ORA_LM_ENROLLMENT_F_PRG
_TMP
W_ORA_LM_ENROLLMENT_F_HST
_TMP
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)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 70
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.
Position Hierarchy Post Change
Temporary
W_POSITION_DH_POST_CHG_TMP
Position Hierarchy
Update Process
INCR ONLY
Position Hierarchy Pre Change
Temporary
W_POSITION_DH_PRE_CHG_TMPW_LM_ENROLLMENT_ACC_SNP_FS
SIL Load Process
FULL and INCR
PLP Load Process
FULL and INCR
W_LM_ENROLLMENT_ACC_SNP_F
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
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 71
SIL_LearningEnrollmentFact(This mapping takes care of inserting new records as well as
updating existing records in the target table W_LM_ENROLLMENT_ACC_SNP_F.)
PLP_Learning_Enrollment_Accumulated_Snapshot_PositionHierarchy_Update (changes in
the Employee’s Position Hierarchy due to regular or back dated changes are applied to the
Learning Snapshot Fact table)
PLP_LearningEnrollmentUpdate (This mapping is used to incrementally update the initial
waitlisted and enrollment initiated dates in the Learning Enrollment Accumulative Snapshot
Fact table, W_LM_ENROLLMENT_ACC_SNP_F.)
6.4.8. Learning Enrollment Event Fact (W_LM_ENROLLMENT_EVENT_F)
W_LM_ENROLLMENT_EVENT_F fact table stores the status changes for the learning enrollment process. Its grain is Learner/Employee - Learning Activity - Status. For example, an employee requests, enrolls and completes a learning activity; there will be 3 rows in this table, one for each of the statuses.
W_LM_ENROLLMENT_ACC_SNP_F
W_LM_ENROLLMENT_EVENT_F
PLP Load process
FULL and INCR
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)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 72
6.5. Payroll Fact Process
6.5.1. ETL Flow
Payroll Fact Staging
W_PAYROLL_FS
Payroll Fact
W_PAYROLL_F
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
EB
S
Syste
m
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).
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 73
Key Steps and Table Descriptions
Table Primary Sources Grain Description
W_PAYROLL_FS PAY_ASSIGNMENT_ACTIONS
PAY_ELEMENT_CLASSIFICATIONS
PAY_ELEMENT_TYPES_F
PAY_INPUT_VALUES_F
PAY_PAYROLL_ACTIONS
PAY_RUN_RESULTS
PAY_RUN_RESULT_VALUES
PER_ALL_ASSIGNMENTS_F
PER_ALL_PEOPLE_F
PER_TIME_PERIODS
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.
This table stores base
and balance payroll
transactions.
W_PAYROLL_F W_PAYROLL_FS 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).
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.
W_PAYROLL_A_TMP W_PAYROLL_F Same grain as of
W_PAYROLL_F.
This temporary table is
used to extract
incremental changes
that happened on the
base fact and used to
drive the incremental
aggregate refresh.
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 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.
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 74
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 Classification Names that add up to the Total
Gross Pay.
$$TOTAL_DEDUCTION_CLASSIFICATION_NAME Classification Names that correspond to any
deduction.
$$TOTAL_TAXES_CLASSIFICATION_NAME Classification Names that correspond to various
Taxes, State or Federal.
$$TOTAL_GROSS_FOR_NETPAY_EARNINGS 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.
$$TOTAL_GROSS_FOR_NETPAY_DEDUCTIONS 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.
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 75
6.5.1. W_PAYROLL_FS
W_PAYROLL_FS
SDE Extract Process
FULL and INCR
EB
S
Syste
m
PAY_ASSIGNMENT_ACTIONS
PAY_ELEMENT_CLASSIFICATIONS
PAY_ELEMENT_TYPES_F
PAY_INPUT_VALUES_F
PAY_PAYROLL_ACTIONS
PAY_RUN_RESULTS
PAY_RUN_RESULT_VALUES
PER_ALL_ASSIGNMENTS_F
PER_ALL_PEOPLE_F
PER_TIME_PERIODS
PAY_RUN_RESULTS.SOURCE_TYPE IN
('V', 'R', 'I', 'E') [Adjustments, Reversal, Indirect
Entry, Normal Entry]
SDE aggregate Process
FULL and INCR
Loads base payroll
transactions at the grain of
a single pay element type.
Loads PAY_DETAIL_FLG
as „Y‟.
Aggregates base payroll
transactions to “Balances”
based on Classification
Names selected as
parameters during
configuration. Loads
PAY_DETAIL_FLG as „N‟.
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.)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 76
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).
Position Hierarchy Post Change
Temporary
W_POSITION_DH_POST_CHG_TMP
Position
Hierarchy
Update Process
INCR ONLY
Position Hierarchy Pre Change
Temporary
W_POSITION_DH_PRE_CHG_TMP
Payroll Fact Stage
W_PAYROLL_FS
SIL Load
Process
FULL and INCR
Payroll Fact
W_PAYROLL_F
Initial Load Sessions
SIL_PayrollFact_Full (This mapping is responsible for loading fact records for the table W_PAYROLL_F based on the corresponding staging area table)
Incremental Load Sessions
SIL_PayrollFact (This mapping is responsible for loading fact records for the table
W_PAYROLL_F based on the corresponding staging area table, since the last refresh date)
PLP_PayrollFact_PositionHierarchy_Update (changes in the Employee’s Position Hierarchy
due to regular or back dated changes are applied to the Payroll Fact table)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 77
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.
PLP Process
INCR ONLY
Payroll Fact
W_PAYROLL_F
PLP Process
FULL And INCR
Payroll Aggregate Fact
W_PAYROLL_A
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
Payroll Aggregate
Temporary
W_PAYROLL_A_TMP
PLP Process
INCR ONLY
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)
Implementing HR Analytics using E-Business Suite Adaptors
Oracle Corporation | 78
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.