Sunteți pe pagina 1din 45

Fusion Person Model - Technical Details

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.

Some of the commonly used tables in Person

Entity EBS Fusion


Person PER_PERSON
Details PER_ALL_PEOPLE_F PER_ALL_PEOPLE_F
PER_PERSON_NAMES_F
PER_NATIONAL_IDENTIFIERS
PER_PEOPLE_LEGISLATIVE_F
PER_ETHNICITIES
Person Type PER_PERSON_TYPES PER_PERSON_TYPES
PER_PERSON_TYPE_USAGES_F PER_PERSON_TYPE_USAGES_M
Address PER_ADDRESSES PER_ADDRESSES_F
PER_PERSON_ADDR_USAGES_F
Phone PER_PHONES PER_PHONES
Email Stored in PER_ALL_PEOPLE_F PER_EMAIL_ADDRESSES
Address
Contact PER_CONTACT_RELATIONSHIPS PER_CONTACT_RELATIONSHIPS
Relationship

Some of the major changes are –


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
b. Dated, but not date-effective
3) Legislative Information - Separate table for person’s legislative info. Ex: gender, marital status
a. Row only created if country’s data needs to be entered
b. Date-effective to record historical changes
c. Person can have multiple legislative data rows
d. Concurrent rows with different legislation, but
e. Only one row for a given legislation

4) Contact Relationships are stored in same way as in EBS.

Key FlexFields in Fusion and Comparison to EBS


Fusion Application has only two key flex fields compared to six in Oracle EBS.

Key Flexfields in Fusion


- PeopleGroup - hr
- CostAllocation - pay

Key FlexField in EBS


- Personal Analysis
- Grade
- Job
- Position
- People Group
- Cost Allocation

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.

Commonly used database tables in Fusion HR application


Most of the tables in Fusion Applications are inherited from Oracle eBusiness Suite, but there are
additions and modifications in the data model. The tables are more normalized and represents the
information it is storing. Some of the commonly used tables are -

Table Name Alias Suggested Join


Nam
e

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

FND_LOOKUP_VALUE FLV AND PE.ETHNICITY=FLVT7.LOOKUP_CODE


S_TL T7 AND FLVT7.LOOKUP_TYPE='PER_ETHNICITY'
AND FLVT7.LANGUAGE='US'
FND_LOOKUP_VALUE FLV AND
S_TL T8 PPLF.MARITAL_STATUS=FLVT8.LOOKUP_CO
DE
AND FLVT8.LOOKUP_TYPE='MAR_STATUS'
AND FLVT8.LANGUAGE='US'

PER_ALL_ASSIGNMEN PAA PAPF.PERSON_ID = PAAM.PERSON_ID


TS_M M AND PAM.ASSIGNMENT_TYPE IN (‘E’,’C’)
AND TRUNC(SYSDATE) BETWEEN
PAAM.EFFECTIVE_START_DATE AND
PAAM.EFFECTIVE_END_DATE
PER_ASSIGNMENT_ST PAS PAAM.ASSIGNMENT_STATUS_TYPE_ID=PAST
ATUS_TYPES_TL TT T.ASSIGNMENT_STATUS_TYPE_ID
PER_ASSIGN_WORK_ PAW PAAM.ASSIGNMENT_ID=PAWMF.ASSIGNMEN
MEASURES_F MF T_ID
PAWMF.UNIT='FTE'
PER_ASSIGNMENT_SU PAS PASF.MANAGER_ID=PAPF.PERSON_ID
PERVISORS_F F AND TRUNC(SYSDATE) BETWEEN
PASF.EFFECTIVE_START_DATE AND
PASF.EFFECTIVE_END_DATE
PER_PERIODS_OF_SE PPO PAAM.PERIOD_OF_SERVICE_ID=PPOS.PERIO
RVICE S D_OF_SERVICE_ID

CMP_SALARY CS PAAM.ASSIGNMENT_ID=CS.ASSIGNMENT_ID
CMP_SALARY_BASES CSB CS.SALARY_BASIS_ID=CSB.SALARY_BASIS_ID

HR_LOCATIONS_ALL_ HLA PAAM.LOCATION_ID=HLAFV.LOCATION_ID


F_VL FV AND TRUNC(SYSDATE) BETWEEN
HLAFV.EFFECTIVE_START_DATE AND
HLAFV.EFFECTIVE_END_DATE
PER_DEPARTMENTS PD PAAMV.ORGANIZATION_ID=PD.ORGANIZATI
ON_ID
AND TRUNC(SYSDATE) BETWEEN
PD.EFFECTIVE_START_DATE AND
PD.EFFECTIVE_END_DATE
PER_JOBS_F_VL HLA PAAM.JOB_ID=PJFV.JOB_ID
FV AND TRUNC(SYSDATE) BETWEEN
HLAFV.EFFECTIVE_START_DATE AND
HLAFV.EFFECTIVE_END_DATE
PER_GRADES_F_TL PGF PAAMV.GRADE_ID=PGFT.GRADE_ID
T AND TRUNC(SYSDATE) BETWEEN
PGFT.EFFECTIVE_START_DATE AND
PGFT.EFFECTIVE_END_DATE
AND PGFT.LANGUAGE(+)='US'
HR_ORGANIZATION_ HOU PAAMV.BUSINESS_UNIT_ID =
UNITS_F_TL _TL HOU_TL.ORGANIZATION_ID
AND HOU_TL.LANGUAGE='US'
AND TRUNC(SYSDATE) BETWEEN
HOU_TL_TL.EFFECTIVE_START_DATE AND
HO.EFFECTIVE_END_DATE

Posted 13th August 2014 by Adarsh

Fusion Payroll/Compensation - Technical Details


Payroll and Compensation Model

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

Fusion Employment/Assignment Model - Technical Details


Employment/Assignment Model
Assignment in Fusion could be 2 tiers or 3 Tiers or Single or multiple assignments. The employment
model consists of –

 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_SUPERVISORS_F (In EBS,


supervisor details are captured in
PER_ALL_ASSIGNMENTS_F)

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.

Employment Details Assignment

Work Relationship PER_PERIODS_OF_SERVICE (TYPE = E)

Employment Terms PER_ALL_ASSIGNMENTS_M (Assignment Type = ET)

Note: This record is always created. In 2 tier model, it is a


placement holder

Assignment PER_ALL_ASSIGNMENTS_M (Assignment Type = E)

Supervisor Details PER_ASSIGNMENT_SUPERVISORS_F

Work Measure details – FTE, FTE PER_ASSIGN_WORK_MEASURES_F


Unit

 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

Employee EMP Employee, Developer,


Architect, Professional

Contingent Worker CWK Consultant, Buyer

Pending Worker PENDING WORKER Pending Worker

Nonworker. Examples – NONW,VOLUNTEER, Nonworker, Nonworker Paid,


Volunteer, Pensioner PENSIONER Nonworker Unpaid

Note: none worker person


types are defined in lookup
type
- PER_NON_WORKER_TYPES

Contact CON Contact

 Work Measure details - PER_ASSIGN_WORK_MEASURES_F, This new table in Fusion is used to


store headcount, FTE (full time equivalent) information. The information is used to calculate budget
during compensation cycle.

Fusion Person Model - Technical Details


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.

Some of the commonly used tables in Person

Entity EBS Fusion

Person Details PER_PERSON


PER_ALL_PEOPLE_F PER_ALL_PEOPLE_F

PER_PERSON_NAMES_F

PER_NATIONAL_IDENTIFIERS

PER_PEOPLE_LEGISLATIVE_F

PER_ETHNICITIES

Person Type PER_PERSON_TYPES PER_PERSON_TYPES

PER_PERSON_TYPE_USAGES_F PER_PERSON_TYPE_USAGES_M

Address PER_ADDRESSES PER_ADDRESSES_F

PER_PERSON_ADDR_USAGES_F

Phone PER_PHONES PER_PHONES

Email Address Stored in PER_ALL_PEOPLE_F PER_EMAIL_ADDRESSES

Contact PER_CONTACT_RELATIONSHIPS PER_CONTACT_RELATIONSHIPS


Relationship

Some of the major changes are –

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

b. Dated, but not date-effective


3) Legislative Information - Separate table for person’s legislative info. Ex: gender, marital status
a. Row only created if country’s data needs to be entered
b. Date-effective to record historical changes

c. Person can have multiple legislative data rows


d. Concurrent rows with different legislation, but
e. Only one row for a given legislation

4) Contact Relationships are stored in same way as in EBS.


eTRM/Technical Repository for Fusion Applications

Oracle Enterprise Repository(OER) for Fusion Applications


Oracle Enterprise Repository(OER) is the replacement for Oracle EBS eTRM. The repository
contains detailed information about Fusion schema tables, web services, view, reports etc.
OER cab be accessed using following link.

https://fusionappsoer.oracle.com

Fusion OER can be access using "Guest" user.

Fusion HCM Application - Person Number generation

Person Number Generation


In Fusion, person number (i.e. Employee Number) generation is done using database sequence
“PER_NUM_1_DYD”. The number generation can be configured from user interface -

 To set the person number generate, navigate to Setup and Maintenance -> Manage Enterprise HCM
Information -> Search for your enterprise

 There are four available options –

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.

Automatic Person Number Generation

Person number is generated automatically when generation method is set to –

 Automatic Prior to submission

 Automatic upon final save

 Formula

Few things to note when using above “Automatic” person number generation

1. User can’t modify Person Number from the user interface.

2. While using File Based Loader –

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.

Manual Person Number Generation

1. User is forced to enter a person number in the User Interface.

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 Person number generation method to automatic.

 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 –

 Set The Employee Number/Person Number To Certain Value (Doc ID 1500596.1)

 Fusion Global HR: How to Have Person/Assignment Number Generated to Own Corporate
Requirements (Doc ID 1502884.1)

Commonly used scheduled processes in Fusion Applications


Important Delivered Processes in Fusion Applications
Fusion Applications comes with many delivered process that should be –

 Scheduled to run post go-live


 Run after mass data upload
  Run after certain type of data changes
Some of the important processes are –

Process Name Description Scheduled Frequency

Retrieve Latest LDAP Process synchronizes users, roles, Yes Daily


Changes and role grants with definitions in
LDAP with Fusion database

Send Pending LDAP Creates or update users, role and Yes Daily
Requests role grants in LDAP

Auto provisioning (Not a Allows creation of role provisioning No


scheduled process) rules to automatically grant the
correct roles to users

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

Refresh Manager Refresh flattened manager hierarchy Yes Daily


Hierarchy

Retrieve Latest LDAP Changes


The process synchronizes users, roles, and role grants with definitions in LDAP with Fusion
database. Here LDAP is Oracle Identify store (i.e. OIM). Please note, organization existing LDAP
could be different from OIM LDAP. The process will either update an existing record, or create a new
record.
Note: this in inbound from OIM to Fusion database.
Ideally the process can be scheduled to run once every day, but existing LDAP update process
should be taken into account before deciding on schedule. Consider this scenario –

 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

The Retrieve Latest LDAP Changes process uses following logic –

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

This process should be scheduled to run daily.


Process for Auto provisioning (Not a scheduled process)
Roles in Fusion allow users to access the system and allow people to have right access based on
the security needs. Within Fusion, the Role Mapping definitions or Role Provisioning Rules is the
mechanism used both to automatically grant the correct roles to users, and to restrict who has
access to request roles for themselves or assign roles to others.
Role mapping process can be automated using “Auto Provisioning”.
To run “Auto Provisioning” –

 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

Update Person Search Keywords


The process is also known as “Person Keyword Crawler”. This process should be run after loading
person data through File Based Loader, Web Services or Spreadsheet Loader. Until this process is
run, person data is not searchable and visible in Fusion.

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.

Calculate Relationship Strength


Also known as “Relationship Strength Calculator”. This process should be run after loading person
data through File Based Loader, Web Services or Spreadsheet Loader.
Person search results can appear in order of the strength of the relationship between the person
performing the search and each person whose assignment is in the search results: the stronger the
relationship, the nearer to the top of the results an assignment appears.

Synchronize Person Records


This process should be run after loading person data through File Based Loader, Web Services or
Spreadsheet Loader.
The process synchronizes any changes to person and assignment details to consuming applications
like Oracle Fusion Trading Community Model (TCA) and Oracle Identify Management (OIM)

Refresh Manager Hierarchy


In fusion, manager hierarchy is stored in flattened table (i.e.PER_MANAGER_HRCHY_DN) for
performance reasons. The process populates the de-normalized manager hierarchy table with latest
information after each data load.

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.

Understanding User and Roles creation


Understanding user creation and roles
Fusion Applications uses Oracle Identity Management (OIM) to authenticate user accounts. Some of
the facts related to OIM are -

 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

 Employee is created in Fusion Applications. A request is created and captured in ‘PER_LDAP_%


tables
 Job and duty roles are auto provisioned based on “Auto Provisioning” rules setup in Fusion
Applications. A request is created and captured in ‘PER_LDAP_% tables
 “Send Pending LDAP requests” process sends request - Fusion user accounts details to OIM’s
LDAP
 “Retrieve Latest LDAP changes” process brings back any add/update/delete duty roles to users
in APM or user details in OIM into Fusion database

How User Accounts/Roles are created/maintained in Fusion?


Employees can be created in Fusion either from user interface or File Based Loader tool. Depending
upon method used, “User Accounts” is created automatically or can be customized.

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

Note: This can be customized in Fusion on-premise.

 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

 Navigate to Administration -> Setup and Maintenance

 Search for task – manage HCM Configuration for coexistence

 Set the parameter “User Name Expression”


Syntax for setting this parameter is –

 loaderCtx.getPersonAttr("PersonNumber")

 loaderCtx.getAssignmentAttr("AssignmentNumber")

Where the user data is stored in Fusion Database?


User and role details are stored in Fusion database along with OIM database. Below is the listing
some of the important tables -

Oracle Identity Management (OIM) Fusion Database

Table Referred and their Usages

Table Name Alias Descriptio Column Join


n

USR USR User table USR_LOGIN


is in OIM
schema
PER_USERS PU Store one USERNAME,
record per PERSON_ID
fusion
system
user. Maps
to a single
LDAP user
unless the
user is
deleted in
LDAP

PER_USER_ROLES PUR store one ROLE_GUID


record for
each Role
Membersh
ip that the
user has
been
provisione
d in LDAP

PER_USER_HISTORY PUH User


historical
informatio
n of the
users

PER_LDAP_REQUESTS PLRE one record LDAP_REQUEST PLRE.LDAP_REQUEST


per OIM _ID _ID =
request PLU.LDAP_REQUEST_
made by ID
the calling
system

PER_LDAP_USERS PLU one record USERNAME PLRE.LDAP_REQUEST


for each _ID =
user to be PLU.LDAP_REQUEST_
processed ID
in OIM

PER_LDAP_ROLES PLR one record ROLE_NAME PLR.LDAP_REQUEST_


for each ID =
Role PLU.LDAP_REQUEST_
Addition or ID
Removal
to be
processed
in OIM

PER_LDAP_ROLE_MEMBERS PLR one record ROLE_GUID PLR.LDAP_REQUEST_


HIPS M for each ID =
Role PLU.LDAP_REQUEST_
Membersh ID
ip to be
processed
in OIM
when
creating
new users,
maintainin
g the roles
allocated
to a user
or
terminatin
g a user’s
employme
nt

Scheduled programs

 Send Pending LDAP Requests

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

 Retrieve Latest LDAP Changes

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

 Employee hired from Fusion User Interface

Name of the table Action

PER_USERS Row created

PER_USER_ROLES Row created

PER_USER_HISTORY Row created

PER_LDAP_REQUESTS Row created

PER_LDAP_USERS Row created

PER_LDAP_ROLES Row not Row is created if new


created data role is created in
Fusion Application

PER_LDAP_ROLE_MEMBERSHIPS Row created

 Employee created using File Based Loader (FBL)

Name of the table Action Comment

PER_USERS Row Not created

PER_USER_ROLES Row Not created

PER_USER_HISTORY Row Not created

PER_LDAP_REQUESTS Row created


PER_LDAP_USERS Row created

PER_LDAP_ROLES Row not created This table holds the


information about the data
Roles created in Fusion
application

PER_LDAP_ROLE_MEMBERSHIPS Row created

 Run “Send Pending LDAP Requests”

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.

Name of the table Action Comment

USR Row
Created/Updated

PER_USERS Row created

PER_USER_ROLES Row created

PER_USER_HISTORY Row created

PER_LDAP_USERS Row created

PER_LDAP_ROLES Row created Row is created if new data


role is created in Fusion
Application

PER_LDAP_ROLE_MEMBERSHIPS Row created

 Run “Retrieve Latest LDAP Changes” process

Name of the table Action Comment

PER_USERS Row created in the


table reflecting the
modified username
from OIM

PER_USER_ROLES Row created

Showing additional
roles which were
assigned in OIM to the
particular user

Sample Query

Name of the table Query

PER_USERS select per.person_number,

pu.username,

pu.user_id

from per_all_people_f per,

per_users pu

where per.person_id = pu.person_id(+)

and trunc(sysdate) between per.effective_start_date


and per.effective_end_date

and per.person_number = ‘622035’

PER_USER_ROLES select per.person_number,

pur.user_id,

pr.role_common_name

from per_all_people_f per,

per_users pu,

per_user_roles pur,

per_roles_dn pr

where per.person_id = pu.person_id(+)

and pu.user_id = pur.user_id(+)

and pur.role_id = pr.role_id(+)


and trunc(sysdate) between per.effective_start_date
and per.effective_end_date

and per.person_number = 622035’

PER_USER_HISTORY Select per.person_number,

puh.user_history_id

from per_all_people_f per,

per_users pu,

per_user_history puh

where per.person_id = pu.person_id(+)

and pu.user_id = puh.user_id(+)

and trunc(sysdate) between per.effective_start_date


and per.effective_end_date

and per.person_number = '622035'

PER_LDAP_REQUESTS select per.person_number,

plr.ldap_request_id

from per_all_people_f per,

per_users pu,

per_ldap_requests plr

where per.person_id = pu.person_id(+)

and per.person_id = plr.requesting_reference_id

and plr.requesting_product in ('PER','HCM')

and trunc(sysdate) between per.effective_start_date


and per.effective_end_date

and per.person_number = ‘622035’

PER_LDAP_USERS select per.person_number,

plu.username,

plu.ldap_user_id

from per_all_people_f per,

per_users pu,
per_ldap_requests plr,

per_ldap_users plu where per.person_id


= pu.person_id(+)

and per.person_id = plr.requesting_reference_id

and plr.requesting_product in ('PER','HCM')

and plr.ldap_request_id = plu.ldap_request_id(+)

and plu.request_type = 'CREATE'

and trunc(sysdate) between per.effective_start_date and


per.effective_end_date

and per.person_number = ‘622035’

PER_LDAP_ROLES select per.person_number,

roles.role_name,

roles.ldap_role_id

from per_all_people_f per, per_users


pu, per_ldap_requests plr,

per_ldap_roles roles

where per.person_id = pu.person_id(+)

and per.person_id = plr.requesting_reference_id

and plr.requesting_product in ('PER','HCM')

and plr.ldap_request_id = roles.ldap_request_id(+)

and trunc(sysdate) between per.effective_start_date


and per.effective_end_date

and per.person_number = ‘622035’

PER_LDAP_ROLE_MEMBERSHIPS select
per.person_number, plrm.ldap_role_membership_id

from per_all_people_f per, per_users pu,

per_ldap_requests plr, per_ldap_role_memberships


plrm

where per.person_id = pu.person_id(+)

and per.person_id = plr.requesting_reference_id


and plr.requesting_product in ('PER','HCM')

and plr.ldap_request_id = plrm.ldap_request_id(+)

and trunc(sysdate) between per.effective_start_date


and per.effective_end_date

and per.person_number = ‘622035’

All Tables SELECT --COUNT(DISTINCT USERS.USERNAME )

PER.PERSON_NUMBER ,

NAMES.FIRST_NAME,

NAMES.LAST_NAME,

PT.SYSTEM_PERSON_TYPE ,

USERS.USERNAME "LDAP USER NAME REQUESTED" ,

PU.USERNAME "USERS USER NAME CREATED" ,

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

FROM PER_LDAP_USERS USERS,

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

WHERE --REQUEST.REQUEST_STATUS = 'COMPLETE' AND

USERS.LDAP_REQUEST_ID =
REQUEST.LDAP_REQUEST_ID

AND REQUEST.REQUESTING_PRODUCT IN ('PER','HCM')

AND PER.PERSON_ID =
REQUEST.REQUESTING_REFERENCE_ID(+)

AND USERS.REQUEST_TYPE = 'CREATE'

AND TRUNC(SYSDATE) BETWEEN


PER.EFFECTIVE_START_DATE(+) AND
PER.EFFECTIVE_END_DATE(+)

AND PER.PERSON_ID = PU.PERSON_ID(+)

AND PU.USER_ID = PUR.USER_ID(+)

AND PUR.ROLE_ID = PR.ROLE_ID(+)

AND PER.PERSON_ID = PUF.PERSON_ID(+)

AND TRUNC(SYSDATE) BETWEEN


PUF.EFFECTIVE_START_DATE(+) AND
PUF.EFFECTIVE_END_DATE(+)

AND (PUF.EFFECTIVE_LATEST_CHANGE = 'Y'

OR PUF.EFFECTIVE_LATEST_CHANGE IS NULL)

AND PUF.PERSON_TYPE_ID = PT.PERSON_TYPE_ID(+)

AND PER.PERSON_ID = NAMES.PERSON_ID (+)

AND TRUNC(SYSDATE) BETWEEN


NAMES.EFFECTIVE_START_DATE(+) AND
NAMES.EFFECTIVE_END_DATE(+)
AND NAMES.NAME_TYPE(+) = 'GLOBAL'

AND PER.PRIMARY_EMAIL_ID =
EMAIL.EMAIL_ADDRESS_ID(+)

AND TRUNC(SYSDATE) BETWEEN EMAIL.DATE_FROM(+)


AND NVL(EMAIL.DATE_TO(+),TRUNC(SYSDATE))

--AND PER.PERSON_NUMBER IN ('223','225')

Important Oracle Notes


 How To Clean Up User Data In A Fusion Application Environment (Doc ID 1494265.1)

Spell Checking in Fusion Applications


Fusion performance management relies on browser spell checker for spell checking. Though the
latest version of Internet explorer (i.e. IE10) and other browsers comes with native spell checker, this
may present challenges when performance management is accessed through old browser and
systems.

Using native spell checker


The latest version like IE 10 may come with spell checker, but enterprise wide use might require
separate license.

Using third party spell checker


In the older windows machine with old browser, third party spell checker like SPECKIE
(i.e. http://www.speckie.com) can be used.

HR Interface Strategy in Fusion Applications

HR Interfaces Strategy in Fusion Applications

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 –

 Tools and Methods


 Full file or Delta only
 Approach for integration
 Interface scheduling
 File transfer strategy including archiving

This document outlines details of above considerations and proven approaches to build inbound and
outbound integration in Fusion.

Tools and Methods


 HCM Extract

 BI Publisher

 Oracle Transaction Business Intelligence (OTBI)

 File Based Loader (FBL)

 Web Services

Full File vs. Delta only


Integration requirements are different for each vendor and internal systems. Generation of full file could
be easy in source system, but processing in the target system could be time consuming.

The requirement should be evaluated to identify if changes only (i.e. Delta) or full file will meet the
needs.

Approach for integration

Outbound Integration
Outbound integration in Fusion is based on following Oracle delivered tools –

 HCM Extract

 BI Publisher

 Oracle Transaction Business Intelligence (OTBI)


Following table should be used to decide approach for the outbound integration. The approach below is
applicable to HR, Benefits and Payroll interfaces.

Integration Type Full File Change Only

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

Approach using HCM Extract and BI Publisher

Creating outbound interfaces using HCM Extract involves multiple steps –


Approach using BI Publisher

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

 The interface cannot be scheduled, and must be run manually

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

These consumable web services can be consumed by any of following methods –

 Existing Middleware Platform


Fusion Applications exposed web services can be consumed by any existing middleware platform that
enterprise is using (i.e. TIBCO, Fusion Middleware)

Note: in an on-premise installation, Fusion Middleware comes with Fusion Applications

 Java based integration

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 –

 Identify interfaces scheduling requirements – Time, frequency


 Identify dependencies between interfaces. For ex: the interface to send foundation data details (i.e.
Job, Department etc.) must be scheduled to run first before running transactional interface.
Note: Currently, recurring schedule is not available for HCM extract based interfaces

File Transfer (FTP) Strategy


File transfer strategy details can be found at -http://fusionappsworks.blogspot.com/2013/09/file-
transfer-strategy-for-interfaces.html

Understanding "Hire Dates" in Fusion


There are multiple fields in Fusion related to Hire Date. Each of these fields are
captured in different tables and used for different purposes. Below table list out all
the available hire dates in Fusion, where it is stored in Fusion and how it can be used
-
Application Field Name Underlying Field in Fusion Comment
Table

Legal Employer Hire Date Date Start  Stores the last hire date or company
transfer date of the employee.

 It cannot be used as the hire date as it will


change during company transfer which
truly doesn’t mean change in hire date for
a person

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

Rehire Date Custom. Can be stored in


Assignment DFF Date
Attribute

Posted 6th September 2013 by Adarsh

Secure PII data in Fusion Applications - SaaS


Secure PII data in Fusion Applications - SaaS

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.

Some of the PII data which needs to be secured are –

 National Identifier
 Home Address
 Date of Birth
 Salary

Secure data while conversion


Scramble PII data using random logic in the data files before conversion. There is no delivered way
to scramble, so custom logic must be applied while generating data files.

Secure data while production to test (P2T)


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 is give below.

Sample SQL to scramble

set serveroutput on;


Declare
pragma autonomous_transaction;

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

-- Scrable Date of Birth

for per in get_all_person loop

DBMS_OUTPUT.PUT_LINE('Update Person :'||per.person_id);


l_date_of_birth := per.DATE_OF_BIRTH+TRUNC(DBMS_RANDOM.value(100,999));

DBMS_OUTPUT.PUT_LINE('Update DOB..');

UPDATE PER_PERSONS ppf


SET ppf.DATE_OF_BIRTH = l_date_of_birth
Where person_id = per.person_id;

-- Scrable NID
DBMS_OUTPUT.PUT_LINE('Update SSN..');

UPDATE PER_NATIONAL_IDENTIFIERS nid

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

UPDATE PER_EMAIL_ADDRESSES emal


SET emal.EMAIL_ADDRESS = emal.EMAIL_ADDRESS||'T'
WHERE PERSON_ID = per.person_id;

end loop;

-- Scramble Salary
for asg in get_all_assignment loop

update CMP_SALARY sal


set sal.SALARY_AMOUNT = (sal.SALARY_AMOUNT -
round((sal.SALARY_AMOUNT * dbms_random.value(0, 1)),2)- 1)

WHERE sal.assignment_id = asg.assignment_id;


end 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

1) Production to Test in fusion SaaS


Yes, production to test is possible in Fusion by logging SR with Oracle.

2) Turn off email notification for selective group


Currently, turning off selective email notifications are not possible. Alternate approach could be to
scramble email addresses, but scrambling HR email addresses does not reflect in OIM. The only good way
currently is to Turn-off email notifications completely for HR and OIM by logging SR.

3) Scramble Personally identifiable information (PII) data post P2T

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 -

------------------------------------------------------------------------

set serveroutput on;

Declare

pragma autonomous_transaction;

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

-- Scrable Date of Birth

for per in get_all_person loop

DBMS_OUTPUT.PUT_LINE('Update Person :'||per.person_id);

l_date_of_birth := per.DATE_OF_BIRTH+TRUNC(DBMS_RANDOM.value(100,999));

DBMS_OUTPUT.PUT_LINE('Update DOB..');

UPDATE PER_PERSONS ppf

SET ppf.DATE_OF_BIRTH = l_date_of_birth

Where person_id = per.person_id;

-- Scrable NID

DBMS_OUTPUT.PUT_LINE('Update SSN..');

UPDATE PER_NATIONAL_IDENTIFIERS nid

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

UPDATE PER_EMAIL_ADDRESSES emal

SET emal.EMAIL_ADDRESS = emal.EMAIL_ADDRESS||'T'

WHERE PERSON_ID = per.person_id;

end loop;

-- Scramble Salary

for asg in get_all_assignment loop

update CMP_SALARY sal

set sal.SALARY_AMOUNT = (sal.SALARY_AMOUNT - round((sal.SALARY_AMOUNT *


dbms_random.value(0, 1)),2)- 1)

WHERE sal.assignment_id = asg.assignment_id;

end loop;

Commit;

EXCEPTION

WHEN OTHERS THEN

dbms_output.put_line(sqlerrm);

rollback;

END;

/
4) Additional task requires post P2T

log SR to register following diagnostic scripts -


 Script to delete data - HCM Delete
 Script to generate GUID - HCM KeyMap Generation (i.e. hcm_keymap_generation.xml)

File Transfer Strategy for Interfaces

File Transfer Strategy for Interfaces

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.

Need of FTP Approach

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.

 Requirement to archive output files

Approach
To ensure, all the files are transferred correctly and not overwritten by program, following strategy will be
used –

 Identify an existing enterprise SFTP server(i.e. SFTP.<client>.COM).


 Change all HCM Extract delivery method to append date/time stamp in the generated output file
 Create a directory structure under “SFTP.<Client>.COM” as below
 Create individual folder for each interface
 Create “Archive” and “Vendor” folder under each interface folder
 Copy file from Oracle SFTP server (i.e. SFTP.ORACLE.COM) to enterprise SFTP server(i.e.
SFTP.<client>.COM)
 in “Archive” folder
 in “Vendor” folder and rename the file to Vendor Specific name
 Send the file to Vendor from “Vendor” folder
 Delete file from SFTP.ORACLE.COM (Not Required)

S-ar putea să vă placă și