Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Person Model
Fusion person model is designed to separate local attributes from global attributes. In eBusiness
Suite, person details – name, national identifier, gender, ethnicity etc. are stored in one table, while
in Fusion, it is stored in normalized set of tables.
Technically, in fusion all the information is stored in same table. For ex: Job data in Fusion is stored
in per_jobs_f table while in EBS, it is stored in per_jobs_f and per_job_definitions.
PER_ALL_PEOPLE_F PAP
F
PER_PERSON PP PAPF.PERSON_ID = PP.PERSON_ID
AND TRUNC(SYSDATE) BETWEEN
PAPF.EFFECTIVE_START_DATE AND
PAPF.EFFECTIVE_END_DATE
PER_NATIONAL_IDEN NID PAPF.PERSON_ID = NID.PERSON_ID
TIFIERS AND NID.NATIONAL_IDENTIFIER_TYPE = 'SSN'
PER_ETHNICITIES PE PAPF.PERSON_ID=PE.PERSON_ID
PER_PERSON_NAMES PPN PAPF.PERSON_ID = PPNF.PERSON_ID
_F F AND UPPER(PPNF.NAME_TYPE)='GLOBAL'
AND TRUNC(SYSDATE) BETWEEN
PPNF.EFFECTIVE_START_DATE AND
PPNF.EFFECTIVE_END_DATE
PER_PHONES PPH PAPF.PERSON_ID = PPH.PERSON_ID
PPH.PHONE_TYPE = 'H1'
PER_PEOPLE_LEGISL PPL PAPF.PERSON_ID = PPLF.PERSON_ID
ATIVE_F F AND TRUNC(SYSDATE) BETWEEN
PPLF.EFFECTIVE_START_DATE AND
PPLF.EFFECTIVE_END_DATE
PER_EMAIL_ADDRESS PEA PAPF.PERSON_ID = PEA.PERSON_ID
ES AND PEA.EMAIL_TYPE = 'W1'
AND TRUNC(SYSDATE) BETWEEN
PEA.EFFECTIVE_START_DATE AND
PEA.EFFECTIVE_END_DATE
PER_PERSON_ADDR_ ADR PAPF.PERSON_ID=ADRU.PERSON_ID
USAGES_F U AND ADRU.ADDRESS_TYPE = 'HOME'
AND TRUNC(SYSDATE) BETWEEN
ADRU.EFFECTIVE_START_DATE AND
ADRU.EFFECTIVE_END_DATE
PER_ADDRESSES_F PA ADRU.ADDRESS_ID = PA.ADDRESS_ID
AND TRUNC(SYSDATE) BETWEEN
PA.EFFECTIVE_START_DATE AND
PA.EFFECTIVE_END_DATE
PER_PERSON_TYPE_U PPT PAPF.PERSON_ID = PPTU.PERSON_ID
SAGES_M U AND TRUNC(SYSDATE)
BETWEEN PPTU.EFFECTIVE_START_DATE
AND PPTU.EFFECTIVE_END_DATE
PER_PERSON_TYPES PT AND PUF.PERSON_TYPE_ID =
PT.PERSON_TYPE_ID
AND PT.SYSTEM_PERSON_TYPE IN
('CON',’EMP’)
CMP_SALARY CS PAAM.ASSIGNMENT_ID=CS.ASSIGNMENT_ID
CMP_SALARY_BASES CSB CS.SALARY_BASIS_ID=CSB.SALARY_BASIS_ID
Compensation
Salary details in Fusion are stored in below tables -
EBS Fusion
Salary Details PER_PAY_PROPOSALS CMP_SALARY
CMP_SALARY_COMPONENTS
Salary Basis PER_PAY_BASES CMP_SALARY_BASES
Payroll
After hiring an employee, Work Relationship and Payroll Relationship is created with the start date
as the Hire Date. This is different from the eBusiness suite where payroll is linked with assignment.
In Fusion HR, a person can have multiple payroll relationship with different Payroll.
EBS Fusion
Employee PAY_ALL_PAYROLLS_F PAY_ALL_PAYROLLS_F
Payroll PAY_REL_GROUPS_DN
Details PAY_ASSIGNED_PAYROLLS_DN
Payment PAY_PAYMENT_TYPES PAY_PAYMENT_TYPES
Types
Organizatio PAY_ORG_PAYMENT_METHODS_F PAY_ORG_PAY_METHODS_F
n Payment PAY_ORG_PAY_METHOD_USAGES
Method _F
Personal PAY_PERSONAL_PAYMENT_METHOD PAY_PERSON_PAY_METHODS_F
Payment S_F
Methods
People PAY_PEOPLE_GROUPS PAY_PEOPLE_GROUPS
Group
Element PAY_ELEMENT_TYPES_F PAY_ELEMENT_TYPES_F
Types
Element PAY_ELEMENT_INPUT_VALUES_F PAY_ELEMENT_INPUT_VALUES_F
Input
Values
Element PAY_ELEMENT_LINKS_F PAY_ELEMENT_LINKS_F
Links
Element PAY_ELEMENT_ENTRY_VALUES_F PAY_ELEMENT_ENTRY_VALUES_F
Entry
Element PAY_ELEMENT_ENTRIES_F PAY_ELEMENT_ENTRIES_F
Entry
Values
Work Relationship - Relationship between a person and a legal employer. All work relationships
must contain at least one assignment.
Employment terms - Set of terms and conditions to govern one or more assignments
Assignment - set of information, including job, position, pay, compensation, managers, working
hours, and work location, which defines a worker's or nonworker's role in a legal employer. A person
can have multiple assignments in a single work relationship.
Technical Details
Employment details are captured in following tables
EBS Fusion
PER_ALL_ASSIGNMENTS_F PER_ALL_ASSIGNMENTS_M
PER_PERIODS_OF_SERVICE PER_PERIODS_OF_SERVICE
PER_ASSIGNMENT_BUDGET_VALUES_F PER_ASSIGN_WORK_MEASURES_F
PER_ASSIGNMENT_STATUS_TYPES PER_ASSIGNMENT_STATUS_TYPES
Assignment Type
Work Term and Assignment details are captured in same table – PER_ALL_ASSIGNMENTS_M.
The assignment_type determines whether the row is Work term or assignment details.
Worker Type – It is classification of the person's work relationship, which can be employee,
contingent worker, or nonworker.
o User Person Type and System Person Type are stored on Assignment Record –
PER_ALL_ASSIGNMENTS_M
o Person can have only one Work Relationship with a Legal Employer of a particular type at any point of
time
Worker Type System person Type User Person Type
PER_PERSON_NAMES_F
PER_NATIONAL_IDENTIFIERS
PER_PEOPLE_LEGISLATIVE_F
PER_ETHNICITIES
PER_PERSON_TYPE_USAGES_F PER_PERSON_TYPE_USAGES_M
PER_PERSON_ADDR_USAGES_F
1) Name Format – Name is stored in separate table. A person can have a “Global” name and a “Local”
in different character set.
2) National Identifier – A separate table to store national identifier. A person can have multiple national
identifiers. One for each country or different type within same country
a. Row only created if NID was entered
https://fusionappsoer.oracle.com
To set the person number generate, navigate to Setup and Maintenance -> Manage Enterprise HCM
Information -> Search for your enterprise
o Automatic Prior to submission - Generate upfront in which case they will see person number in the UI, but
might get gap
o Automatic upon final save - Generate at the end once the hire is approved, in which case they will not see
person number in the UI, but would avoid gaps
o Formula
o Manual
By default the person number generation is Automatic.
Formula
Few things to note when using above “Automatic” person number generation
a. If the person number is left blank then the person number is generated automatically and assigned.
b. If the “Person Number” attribute is populated in the data file, value given in the file is used for person
number even though the Person Number Generation Method is set to Automatic.
Note: SR should be logged with Oracle to reset the “person number” to highest person number used in the
data file. In release 7 onward, this can controlled using attribute “Initial Person Number” available in the
Enterprise HCM Information.
2. When using FBL to convert employees, the user is forced to enter the person number in the data files.
Person Number generation while initial data migration using File Based Loader
(FBL)
If the requirement is to convert existing person numbers, but then wants to make the person
number as automatic then –
Set the attribute “Initial Person Number” available in the Enterprise HCM Information to “max”
existing employee number (this is available release 7 onward). In release 5, you need to log SR with
Oracle to reset the person number.
Convert the employees, by passing the legacy person numbers in the data files
Some important Oracle notes –
Fusion Global HR: How to Have Person/Assignment Number Generated to Own Corporate
Requirements (Doc ID 1502884.1)
Send Pending LDAP Creates or update users, role and Yes Daily
Requests role grants in LDAP
Update Person Search Make the person data searchable in Yes When data
Keywords Fusion loaded using
FBL
Calculate Relationship Build relationship strength for search Yes When data
Strength loaded using
FBL
Synchronize Person Synchronizes any changes to person Yes Daily
Records and assignment details to consuming
applications
User Account is created and new phone number and email address is provisioned in enterprise
LDAP (i.e. Active Directory)
Same user account and other details are entered in Oracle Identity management (OIM) used by
Fusion Applications
This could be via manual entry or
via single sign-on
The “Retrieve Latest LDAP Changes” scheduled in Fusion
The changed details from OIM is copied to fusion
User Name (i.e. UID in OID) is matched with Fusion Database (i.e. USERNAME in
PER_LDAP_USERS). When User Name is matched, all this user's information will be copied from
OID to Fusion Database
If LDAP user has no User Name, or the User Name is not found in Fusion Application Database,
then a user can be matched by USER GUID (i.e. ORCLGUID in OID, USER_GUID in Fusion
Database). When a user is matched by USER GUID, all this user's information will be copied from
OID to Fusion Database
If no matching USER_ID, no matching USER_GUID, then a user can be matched by NAME (i.e.
DISTINGUISHED NAME in OID and, USER_DISTINGUISHED_NAME in Fusion Database). When
a user is matched, all this user's information including USER GUID and USERNAME is copied from
OID to Fusion Database
if none of the above matches, a new user record will be created in Fusion Database
Send Pending LDAP Requests
The process manages requests to create or update users, role and role grants in LDAP. Anytime an
employee is created or loaded via File Based Loader (FBL), SendPending LDAP Requests should
be run or scheduled to provision user and roles for created employee in OIM/OID.
The process has two parameters - User Type and Batch Size.
User type – Required. Values could be – All, Person or Party. In most cases it will be All
Batch Size – Default is A for Automatic. To run the failed requests, enters AF which stands for FAULTY.
Navigate to Administration ->Setup & Maintenance and search for task named Manage HCM Role
Provisioning Rules
Search mapping name and make changes
Click on the button for Apply Autoprovisioning buttonNOTE: After running the auto provisioning
process, it is NOT necessary to run any other jobs, i.e. Send Pending LDAP Requests or Retrieve
Latest LDAP Changes
Several attributes of person, employment, and profile records are used as person-search keywords.
This process copies keyword values from the originating records to the PER_KEYWORDS table,
where they are indexed to improve search performance.
The process should be run when activities are less on the server as the process refresh whole
PER_KEYWORDS table.
This process should be scheduled to run hourly or should be run immediately after making changes
in supervisor so that supervisor based approval is routed correctly.
It should be also run after loading person data through File Based Loader, Web Services or
Spreadsheet Loader.
Oracle Internet Directory (OID) - is a LDAP server inbuilt inside the OIM
OIM is different from Authorization Policy Manager (APM) server
OIM is used for managing – users, job roles, and provision Job roles to users
APM is used for managing – duties and data security policies
Overall Process
By default, user name is created using “Email Address” specified during conversion or while entering
data. In case email address is not provided, Fusion creates user using <first name>.<last
name>@<domain name> where the “domain name” is defaulted to “oracle.com”. This domain name
can be changed in OIM.
When converting data using File Based Loader (FBL), user name creation can be customized. Mostly
this is done to match user name in existing LDAP server (i.e. Active Directory).
For ex: if existing user account name in Active Directory is “TJOHN”, the same can be used to login
in Fusion Applications
Below are the steps to achieve this –
Identify a field in File Based Loader (FBL) data file to store “User Name”. while creating data files, use
the field and populate user name
loaderCtx.getPersonAttr("PersonNumber")
loaderCtx.getAssignmentAttr("AssignmentNumber")
Scheduled programs
This process sends the user and role creation requests stored in “PER_LDAP_%” tables to
Fusion HCM applications and OIM to create/update the user name or roles.
After this process is run, the PER_USER, and PER_USER_ROLES tables get populated with
Employee user name and role information
The process synchronizes any modification/additions to the roles and user details in LDAP with
Fusion Applications. For ex. Grant or revoke of a role, change in user name
This process also synchronizes any change made in APM Duty Roles (Note: Sometimes the
changes might reflect in Fusion application without running this process, however if not, then
scheduled this process for synchronization)
Data flow
When employee is created using FBL, User and Role creation request is captured, but LDAP tables
are not populated with user details. When this process runs, it processes the request and all LDAP
and Fusion tables are populated with user details.
USR Row
Created/Updated
Showing additional
roles which were
assigned in OIM to the
particular user
Sample Query
pu.username,
pu.user_id
per_users pu
pur.user_id,
pr.role_common_name
per_users pu,
per_user_roles pur,
per_roles_dn pr
puh.user_history_id
per_users pu,
per_user_history puh
plr.ldap_request_id
per_users pu,
per_ldap_requests plr
plu.username,
plu.ldap_user_id
per_users pu,
per_ldap_requests plr,
roles.role_name,
roles.ldap_role_id
per_ldap_roles roles
PER_LDAP_ROLE_MEMBERSHIPS select
per.person_number, plrm.ldap_role_membership_id
PER.PERSON_NUMBER ,
NAMES.FIRST_NAME,
NAMES.LAST_NAME,
PT.SYSTEM_PERSON_TYPE ,
PR.ROLE_COMMON_NAME ,
USERS.REQUEST_TYPE ,
REQUEST.REQUEST_STATUS ,
REQUEST.REQUEST_DATE,
REQUEST.ERROR_DESCRIPTION,
REQUEST.ERROR_CODE
--, REQUEST.REQUESTING_PRODUCT,
REQUEST.REQUESTING_REFERENCE_ID, PER.PERSON_ID
"PER_PERSON_ID"
REQUEST.CREATION_DATE REQUEST_CREATION_DATE ,
REQUEST.LAST_UPDATE_DATE
REQUEST_EXECUTION_DATE ,
EMAIL.EMAIL_TYPE,
EMAIL.EMAIL_ADDRESS
PER_LDAP_REQUESTS REQUEST ,
PER_USERS PU ,
PER_USER_ROLES PUR,
PER_ROLES_DN PR ,
PER_ALL_PEOPLE_F PER ,
PER_PERSON_TYPE_USAGES_M PUF,
PER_PERSON_TYPES PT ,
PER_PERSON_NAMES_F NAMES ,
PER_EMAIL_ADDRESSES EMAIL
USERS.LDAP_REQUEST_ID =
REQUEST.LDAP_REQUEST_ID
AND PER.PERSON_ID =
REQUEST.REQUESTING_REFERENCE_ID(+)
OR PUF.EFFECTIVE_LATEST_CHANGE IS NULL)
AND PER.PRIMARY_EMAIL_ID =
EMAIL.EMAIL_ADDRESS_ID(+)
Overview
One of the most critical technical work streams associated with implementing Oracle Fusion HCM is
building and deploying new Inbound and Outbound interfaces with the system. Fusion Applications
support both inbound and outbound integration; however different tools are available to build each
kind of integration. Some of the considerations while designing interfaces are –
This document outlines details of above considerations and proven approaches to build inbound and
outbound integration in Fusion.
BI Publisher
Web Services
The requirement should be evaluated to identify if changes only (i.e. Delta) or full file will meet the
needs.
Outbound Integration
Outbound integration in Fusion is based on following Oracle delivered tools –
HCM Extract
BI Publisher
Simple Integration Oracle Transaction Business Intelligence HCM Extract and Bi Publisher
(OTBI) or BI Publisher Report
Advanced Integration HCM Extract and Bi Publisher HCM Extract and Bi Publisher
Output Type
The delivered tool can be used to generate output in different formats – XML, Excel, CSV, Flat Files
Using Fusion BI Publisher for developing interfaces and reports involves these steps -
Inbound Integration
Integration using Oracle File-Based Loader (FBL)
Oracle File Based Loader (FBL) tool has been released by Oracle in Release 4 of Fusion HCM
Applications and further refined in current release. The interface design using File Based Loader (FBL) is
based below assumptions –
All foundation data should be converted using File Based loader tool
The integration is based on Comma Separated File (CSV) in File Based Loader(FBL) format
Once FBL data file is generated, the batch is created and processed
Integration using Web Services
Oracle Fusion Applications exposes many web services which can be used to build inbound integration.
Note: Fusion Applications Releases 7 is expected to expose web services that are available for external
use. The list of available Web Services and Business Events are published in Oracle Enterprise
Repository (OER). Though Oracle Fusion Applications are designed using the Service-Oriented
Architecture (SOA) principles, not all services are necessarily suited for integration purposes. Those
services that are tagged in OER with the “EXTERNAL” keyword and have Compatibility equal to
“Supported – Backward Compatibility Assured” should be used for Interface and Integration purposes.
In this approach java program is used to call web services. This approach needs a third party scheduler
to schedule the interface
Interface Scheduling
Interfaces can be scheduled to run as per the requirement – Hourly, Daily, Weekly etc. Before scheduling
interfaces, following steps should be performed –
Legal Employer Hire Date Date Start Stores the last hire date or company
transfer date of the employee.
Legal Employer Seniority Date Adjusted Service Date User entered field that can be used to
maintain the current hire date for
employees
Enterprise Hire Date Calculated Field in Fusion Can be used to store the latest
hire/rehire date
(min of date_start of all
relationship record for the
person)
Enterprise Seniority Date Original Hire Date Used to store the seniority date which is
given to certain employees if they rejoin
the company
While some of PII data like National Identifiers (i.e. SSN), home address in Fusion is protected by a
PII VPD security policy which usages data roles to secure data. Only authenticated Applications
session with the right data roles can access PII data.
While protection using VPD will work for most of the scenarios, but in test instances it is always safer
to scramble PII data. This ensures that no one sees PII data even if person gets access to see
everything like
people in IT organization.
National Identifier
Home Address
Date of Birth
Salary
Alternative approach could be to write custom SQL script to scramble data based on custom logic
and log SR with Oracle to execute the script. A sample script is give below.
l_random_value number;
cursor get_all_person is
select distinct person_id, date_of_birth
from PER_PERSONS;
cursor get_all_assignment is
select distinct assignment_id
from CMP_SALARY;
l_date_of_birth Date;
l_national_identifier_number Varchar2(20);
l_salary_amount Number(15,2);
BEGIN
DBMS_OUTPUT.PUT_LINE('Update DOB..');
-- Scrable NID
DBMS_OUTPUT.PUT_LINE('Update SSN..');
SET nid.NATIONAL_IDENTIFIER_NUMBER =
TRUNC(DBMS_RANDOM.value(100,999))||'-'||
TRUNC(DBMS_RANDOM.value(10,99))||'-'||
TRUNC(DBMS_RANDOM.value(1000,9999))
WHERE PERSON_ID = per.person_id;
DBMS_OUTPUT.PUT_LINE('Update Email..');
end loop;
-- Scramble Salary
for asg in get_all_assignment loop
Commit;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line(sqlerrm);
rollback;
END;
/
Production to Test (P2T) post go-live - FAQ
FAQ - Production to Test post go-live
Currently, there is no delivered way to scramble PII data like Date of Birth, National Identifier and Salary.
However, this can be done VPD technique, but this may results in data not visible in User interface.
Alternative approach could be to write custom SQL script to scramble data based on custom logic and log
SR with Oracle to execute the script. A sample script could be -
------------------------------------------------------------------------
Declare
pragma autonomous_transaction;
l_random_value number;
cursor get_all_person is
from PER_PERSONS;
cursor get_all_assignment is
select distinct assignment_id
from CMP_SALARY;
l_date_of_birth Date;
l_national_identifier_number Varchar2(20);
l_salary_amount Number(15,2);
BEGIN
l_date_of_birth := per.DATE_OF_BIRTH+TRUNC(DBMS_RANDOM.value(100,999));
DBMS_OUTPUT.PUT_LINE('Update DOB..');
-- Scrable NID
DBMS_OUTPUT.PUT_LINE('Update SSN..');
TRUNC(DBMS_RANDOM.value(10,99))||'-'||
TRUNC(DBMS_RANDOM.value(1000,9999))
end loop;
-- Scramble Salary
end loop;
Commit;
EXCEPTION
dbms_output.put_line(sqlerrm);
rollback;
END;
/
4) Additional task requires post P2T
Fusion Application is very flexible in generating and delivery output files. Files can be generated in
any format – XML, CSV, Fixed format etc.
Also, generated files can be delivered to target system using multiple approach including emails and
FTP. One of the commonly used approach is using secured FTP server.
A good FTP strategy is needed to ensure secure and on time transfer of data files. In Addition -
By default, Oracle provides access to one SFTP server (SFTP.ORACLE.COM) and one user
account for each pod. Sharing this user account with multiple third parties could expose enterprise
data.
Approach
To ensure, all the files are transferred correctly and not overwritten by program, following strategy will be
used –