SlideShare a Scribd company logo
1 of 142
Download to read offline
FUSION APPS DEMYSTIFIED
WRITTEN BY: ASHISH HARBHAJANKA
EMAIL: ASHISH1234U@GMAIL.COM
A Book by Ashish Harbhajanka (Evangelist, Cloud Consultant, Solution Architect) explaining the core concepts of Fusion
Applications. Contains Detailed Technical Information, along with Business Requirement, Implementation Logic, Worked
Examples, Screenshots, Analysis, Justifications and many more….
Email: ashish1234u@gmail.com
This Book is an Attempt by me to explain some of the very basic concepts about few which are divided into
several chapters as below:
Introduction of “Why to Adopt Fusion Applications”
Chapter 1: HCM Data Loader
Chapter 2: BIP Reports
Chapter 3: OTBI Reports
Chapter 4: Creating Custom ESS Jobs in Fusion Applications
Chapter 5: Fusion Absence Management
Chapter 6: Fusion Fast Formulas
Chapter 7: Fusion HCM Extracts
Chapter 8: Other Topics
Why to Adopt Fusion Applications
INTRODUCTION
Fusion as the word suggests stand for Culmination / Mix / Combination.
In context of Oracle, Fusion is referred as Fusion Applications.
So Why Fusion Applications ?
Before that let’s understand What is Fusion Applications ?
Fusion Application is a new Oracle Product to cater to ERP Needs.
But we already have so many ERP Applications. Some of the most popularly used being EBS (E-Business
Suite), PeopleSoft, JDEdwards to name a few. So why a new ERP application to cater to business needs.
The answer is :
Fusion Applications is an attempt ( and for that matter a very popular and widely accepted one) by Oracle .
It takes the best features from EBS and PeopleSoft and does makes life simpler for Business Users and
(Both Functional and Technical) Implementation Consultants .Lets try to get into more details of the same .
We would categorize this discussion into two broad categories namely:
a) Business Reasons ( Details about why should Business adopt Fusion)
b) Functional Reasons ( Details about why should Functional Consultant adopt Fusion)
c) Technical Reasons ( Details about why should Technical Consultant adopt Fusion)
BUSINESS REASONS
i) Easy to use
ii) Better Look and Feel
iii) Better Functionality
iv) Better User Experience
FUNCTIONAL REASONS
i) Configuration is simpler ( Most configurations from ‘Setup and Maintainenance’)
Setup and Maintenance
Most of the setups start with Manage% ( screenshot below)
ii) Configuration is based on Train Stop Models ( First Step guides you to second step and so on)
Train Stops (First Step Takes you to second step and so on )
iii) Allows What IF Scenarios (Manage Enterprise Structures, Allows Multiple Combination but
Loads just one)
Below Screenshots gives details of creating Enterprise Structures ( and then to view to Technical Summary
Report). This would not get loaded but would be used for comparative analysis. Screenshots displaying
what-if scenarios (ESC Setup Example).
Example of WHAT IF SCENARIO (Using Enterprise Structure Configurator)
STEP 1: MANAGE ENTERPRISE
STEP 2: MANAGE DIVISONS
STEP 3: MANAGE LEGAL ENTITIES
STEP 4: CREATE BUSINESS UNITS
STEP 5: MANAGE BUSINESS UNITS
STEP 6: MANAGE REFERENCE DATA SETS
STEP 7: MANAGE BUSINESS UNIT SET ASSIGNMENT
STEP 8: MANAGE LOCATION REFERENCE SET
INTERVIEW RESULTS
MANAGEMENT REPORTING STRUCTURE
TECHNICAL SUMMARY REPORT
CLICK ON DOWNLOAD TECHNICAL SUMMARY REPORT TO GET PDF REPORT
REPORT SCREENSHOTS
We can configure multiple such Enterprise Values and compare before loading one. So we can have WHAT
IF scenarios. This feature is not supported in older Legacy Systems ( EBS / PPLSOFT).
TECHNICAL REASONS
Broad Responsibilities of any Technical Resource on any ERP Implementations are :
A) INBOUND INTEGRATION (HDL FROM RELEASE 10 MAKES LIFE SIMPLER, DATA LOAD ON BUTTON CLICK)
B) REPORTING (BIP / OTBI / OBIA)
C) OUTBOUND INTEGRATION (HCM EXTRACTS)
All the above three are very easy to implement in Fusion HCM.
So, It is for all the above stated reasons we should have Fusion Applications. Happy Adop-
tion…….Cheers……
Chapter 1: HCM Data Loader
What is HCM Data Loader
Why to Use HCM Data Loader
How-to Configure your Fusion Applications Instance (POD) to Enable Use of HCM Data Loader
What is HCM Data Loader
INTRODUCTION
HCM Data Loader aka (also known as ) HDL is the next generation Data Loading Tool used in Fusion Ap-
plications.
Mostly used in all new implementation starting July 2015 this tool has tremendously advanced features com-
pared to its predecessor FBL (File Based Loader).
In this article we would try to understand what HDL is and also a brief understanding of key concepts asso-
ciated with the same.
Role required for using HCM Data Loader is Human Capital Management Integration Specialist
So without much ado let’s begin….
MAJOR ENHANCEMENTS OVER FBL
1. Bulk loading of HCM data from any source
2. Data-migration or incremental updates
3. Flexible, pipe-delimited file format
4. Comprehensive bulk loading capabilities
5. Automated and user managed loading
6. Stage Table Maintenance
While the above 6 are the ones mostly stated and popularly advertised features I have a slightly different
view and they are:
1. BULK LOADING OF HCM DATA FROM ANY SOURCE
This point to me doesn’t seems valid as FBL also used to do the same thing and hence I will discard
this
2. DATA MIGRATION OR INCREMENTAL UPDATES
FBL does the same but if you have say ‘N’ records for an employee and you want to add one more
records you need to pass all N+1 records.Using HDL you would be required to just pass the (N+1)
Th record so a major enhancement
3. FLEXIBLE, PIPE-DELIMITED FILE FORMAT
Available in FBL too hence discarded again
4. COMPREHENSIVE BULK LOADING CAPABILITIES
A very new advanced and enhanced feature
5. AUTOMATED AND USER MANAGED LOADING
FBL can also be automated using web service call hence again discarded.
6. STAGE TABLE MAINTAINENANCE
This again was in FBL too hence discarded again.
So now we will primarily discuss about 2 points namely:
a) DATA MIGRATION OR INCREMENTAL UPDATES
b) COMPREHENSIVE BULK LOADING CAPABILITIES.
DATA MIGRATION OR INCREMENTAL UPDATES
We will take an example of various events in an individual’s life and co-relate the same as Data Transac-
tions. Details of same explained below:
HIRE AN EMPLOYEE
Ms. Sandra Mora is a lady who joins a company and becomes employee on 15 Jun 2003. She gets a unique
identifier (Like SSN for US, PAN Card for India to uniquely identify an individual, similarly each company
has a unique identifier to identify an employee this unique identifier is referred to as Employee NUMBER)
no 12345.
MARITAL STATUS CHANGE
She gets married on 21st Aug 2006 and undergoes following changes in her employee record:
1) Title: Gets changed from Ms to Mrs.
2) Last Name: Her Last Name gets changed from “Mora” to “Bjork”
3) Email Address: Her email address gets changed from Sandra.mora@abc.net TO
Sandra.bjork@abc.net
She as a result of this change the previous record (Hire an Employee) gets end-dated on 20th Aug 2003 and
a new record gets created on 21st Aug 2006.
MIDDLE NAME CHANGE
She gets a middle name added (she decided to have her husband’s first name added in her name on 16th July
2008) and a new record gets created.
1) Middle Name: Gets changed from to ALBERT
FTE CAPACITY CHANGE
Starting 25th Sep 2009 she starts working only on 4 days a week instead of initial 5 days a week so her Full
Time Equivalent (FTE) gets changed from 1 (Actual Days Worked in a Week (5) / Total Working Days in a
Week (5)) to New Value 0.8 (Actual Days Worked in a Week (4) / Total Working Days in a Week (5))
1) FTE Capacity Change: Gets changed from 1 to 0.8
EMAIL ADDRESS CHANGE
She undergoes a email address change as on 17th March 2012
2) Email Address: Gets changed from SANDRA.BJORK@ABC.NET to SANDRA.BARON@ABC.NET
MIDDLE NAME CHANGE
She gets a middle name added (she decided to have her father’s first name added in her name on 12th Dec
2003) and a new record gets created.
Middle Name: Gets changed from ALBERT to FRANK
TABULAR REPRESENTATION
COMPREHENSIVE BULK LOADING CAPABILITIES
DATA LOADER PROCESS FLOW DIAGRAM
HCM DATA LOADER SUPPORTED BUSINESS OBJECTS
FLEXIBLE PIPE-DELIMITED FILE FORMAT
AUTOMATED OR USER MANAGED PROCESSING
IMPORT AND LOAD DATA
PROGRESS ICONS
FILE LINE COUNTS
OBJECT COUNTS
OBJECT ERRORS
STAGE TABLE MAINTAINENANCE ( DATA EXCHANGE -> DELETE STAGE TABLE DATA)
HDL FEATURE GUIDELINES
WHILE PERFORMING CONVERSION : STEP 1 -> CONFIGURE SOURCE SYSTEM OWNER
There could be multiple sources from which data can be migrated to Fusion, hence a Source System Owner
needs to be configured for unique identification of Legacy Data Source. Below screenshot shows how to
configure the same.
WHILE PERFORMING CONVERSION: STEP 2 -> CONFIGURE HCM DATA LOADER
HCM DATA LOADER : ERROR REPORTS GENERATION USING DELIVERED HCM EXTRACTS
As with all delivered HCM Extracts, it is recommended that you make a copy of the HCM Data Loader Data
Set Summary extract and alter the output to your requirements. Navigate to the Manage Extract Definitions
task available from the Data Exchange work area. Query the HCM Data Loader Data Set Summary extract.
You click the copy icon to copy the seeded extract, supply your name for the copied extract.
Once your copy is successfully created you can retrieve it by searching for it by name. Click on the name in
the Search Results to make your required changes
IMPLEMENTATION DECISION POINTS
Last but not the least “Human Capital Management Integration Specialist is the Role Required to Per-
form Conversion.” . That brings me to end of the topic.
Why to Use HCM Data Loader
 Customers currently provisioned on Release 9 will require a configuration change.
 All environments provisioned in Release 10 will be defaulted to HDL.
 Existing Customers may continue using File Based Loader (FBL) but should begin evaluating HDL
to plan a migration in the future, where applicable.
 There are a few scenarios where HDL may not be recommended, and an exception may be consid-
ered, for both, existing and new Customers.
SITUATIONS WHERE HCM DATA LOADER MAY NOT BE RECOMMENDED
 An existing customer using File-Based Loader who purchases additional test environment that is cre-
ated on R10.
 The customer must log an SR to change the default setting of Full to Limited to match other environ-
ments.
 Customers with PeopleSoft Integration.
 Customers with Taleo Integration via Taleo Connect Client (TCC) and File-Based Loader.
MIGRATING FROM FILE-BASED LOADER TO HCM DATA LOADER
 Is File-Based Loader used for migration only? If so, once migration is complete, then HCM Data
Loader could be considered.
 Is File-Based Loader used for ongoing integration? If so, then there will need to be rework of pro-
cesses and a cutover decision.
 How are File-Based Loader data files generated? Whatever method is used for generating the File-
Based Loader data files will need to be reworked to generate the correct HCM Data Loader format.
 The complexity of the integration will need to be taken into account to determine who does the re-
work of the extract mechanism.
 Are you loading objects outside of File-Based Loader and HCM Spreadsheet Data Loader (via SR
requested scripts)? If this is causing delays and issues related to lack of automation, then HCM Data
Loader should be considered.
 Are there users who load data using HCM Spreadsheet Data Loader? A move to HCM Data Loader
in R10 would disable this
 Functionality, so it would probably be worth waiting for spreadsheet support. HCM Data Loader mi-
gration should be treated as an implementation with a proper project plan. File-Based Loader GUID
values can continue to be used with HCM Data Loader. A process can be run to convert the File-
Based Loader GUID into a source key that HCM Data Loader can recognize.
 HR spreadsheet loaders in the Data Exchange work area will not be available to use in conjunction
with HCM Data Loader
 HCM Data Loader and File-Based Loader cannot be used at the same time for objects supported by
both.
 Payroll batch loader is still required for some payroll object loads.
 Environment refresh will overwrite HCM Data Loader settings if the source environment uses File-
Based Loader. You will have to follow the process again to enable HCM Data Loader and convert
File-Based Loader GUIDs and source keys.
 Once HCM Data Loader is enabled in a test environment, no additional File-Based Loader data load
testing will be possible.
NEW IMPLEMENTATION CONSIDERATIONS
1) Customers who have recently started implementing and have not yet gone live should consider
switching to HCM Data Loader if their timelines can accommodate it.
2) This will mitigate the need for conversion to HCM Data Loader later in the project lifecycle. Project
plans should be reviewed to incorporate the migration to HCM Data Loader, taking into account:
3) Training on the new tool.
4) Rework of the extract mechanism to get data in the HCM Data Loader format
5) The need to test the migration and integration processes using HCM Data Loader instead of File
Based Loader.
6) The need to fit in with major implementation milestones.
CONSIDERATIONS FOR EXISTING CUSTOMERS
1. Existing live customers already using File-Based Loader and HCM Spreadsheet Data Loader should
defer the switch to HCM Data Loader.
2. Customers who are not yet live should evaluate whether to rework their implementation to use HCM
Data Loader or continue using File-Based Loader and HCM Spreadsheet Data Loader.
3. The main work involved in using File-Based Loader and HCM Data Loader is the extract of the data
from a source system to the correct format ready for loading. Since this is not part of Oracle Fusion,
Oracle does not provide a conversion process from File-Based Loader to HCM Data Loader.
4. Oracle does provide the migration of File-Based Loader GUID values to the HCM Data Loader
equivalent, which are referred to as source keys.
5. Customers using Oracle Fusion Taleo Recruitment Out of the Box (OOTB) V1 Integration are not
impacted.
6. If you are using Taleo Connect Client and File-Based Loader or a hybrid with OOTB to integrate
with Fusion, you will need to perform an evaluation and follow the steps to migrate to HCM Data
Loader
HCM DATA LOADER COMPATIBILITY WITH FILE BASED LOADER
HCM Data Loader and File-Based Loader cannot be used at the same time for objects supported by both.
Either of them should be picked for conversion.
The setting of the HCM Data Loader Scope parameter on the Configure HCM Data Loader page deter-
mines whether HCM Data Loader or File-Based Loader is used and controls the behavior of the loading
tools. The default value of this parameter is Limited for existing customers. If you attempt to load data for a
business object not supported in the Limited mode, your whole data set will fail.
Limited mode Only business objects not supported by HCM File-Based Loader can be loaded using
HCM Data Loader. All objects that can use File-Based Loader must use File-Based Loader. Any ob-
jects that are not available via File-Based Loader should use HCM Data Loader.
Full mode HCM Data Loader is used for bulk-loading data into all supported business objects. HCM
File Based Loader and HCM Spreadsheet Data Loader are disabled.
Important Note: You can switch from Limited mode to Full mode, but you cannot switch from Full mode
to Limited mode. This is a one-time switch from File-Based Loader to HCM Data Loader.
Once you migrate to HCM Data Loader, HCM Spreadsheet Data Loader is also disabled because it relies on
the File-Based Loader engine to load data to Oracle HCM Cloud. This restriction applies only to the spread-
sheet loading that is launched from the Data Exchange work area. Other spreadsheet data loaders are not im-
pacted by the uptake of HCM Data Loader.
IMPACT OF UPGRADE TO RELEASE 10
HCM Data Loader will be Generally Available in R10 (also in Release 9 Patch Bundle 7 and above ) but
there is no immediate requirement to migrate to HCM Data Loader.
HCM Data Loader and File-Based Loader cannot be used at the same time for objects supported by both.
On upgrade to Release 10 you will see the HCM Data Loader options available in the application but you
should not use HCM Data Loader if you are an existing File-Based Loader customer until you have com-
pleted an evaluation of HCM Data Loader.
Important Note:
There are differences in file format and key structures.
Once the switch to HCM Data Loader has occurred, you will no longer have access to File-Based Loader or
HCM Spreadsheet Data Loader.
If you have a requirement to load documents of record or areas of responsibility, then you can use HCM
Data Loader in Limited mode with no impact on File-Based Loader or HCM Spreadsheet Data Loader, since
these objects are not currently supported by File-Based Loader
ENVIRONMENT MANAGEMENT CONSIDERATIONS
If you are live with File-Based Loader and testing HCM Data Loader in a nonproduction environment, then
you should plan your environment refresh (P2T) requests carefully.
When you request an environment refresh, the HCM Data Loader settings will be overwritten, and the envi-
ronment will revert to the default Limited mode.
You will need to go through the same steps as before to switch back to HCM Data Loader. That is, you must
convert File-Based Loader GUIDs to HCM Data Loader source keys and switch HCM Data Loader Scope to
Full.
During the HCM Data Loader migration validation and testing, important testing considerations must be in-
cluded in your planning.
HCM Data Loader in Full mode is not compatible with File-Based Loader; therefore, it is not possible to
have an environment with both HCM Data Loader and File-Based Loader at the same time.
This will impact your ability to test File-Based Loader transactions in your nonproduction environment
while you are in the process of validating HCM Data Loader.
Important Note: You will need to ensure that the HCM Data Loader enabled environment is not required
for any File-Based Loader testing prior to setting the HCM Data Loader Scope to Full.
MIGRATION STEPS FOR MOVING FROM FILE BASED LOADER TO HCM DATA LOADER
It is not possible to move to HCM Data Loader for individual core objects on an incremental basis. It is a
one-time migration and requires careful planning and preparation to ensure a smooth transition.
CHOICE OF KEYS
One of the most important decisions when considering the upgrade from File-Based Loader to HCM Data
Loader is whether to continue to use the same key mechanism as is used in File-Based Loader (GUIDs) or
whether to take advantage of the user key support that is available in HCM Data Loader.
User keys allow objects to be identified in HCM Data Loader using their natural key; for example, Job
Code, Person Number, and so on.
File-Based Loader GUIDs have an equivalent in HCM Data Loader known as source keys. These are values
that are defined in the source system and stored alongside the Oracle Fusion surrogate keys when objects are
created in Oracle HCM Cloud. Source keys can be used to reference objects when loading related data or to
identify specific objects when performing updates or deletes.
Within HCM Data Loader, each object can use different types of keys, so a decision needs to be made on an
object-by-object basis to determine whether a user key or a source key will be used.
CONVERSION OF GUIDS
In order to facilitate the upgrade from File-Based Loader to HCM Data Loader, a process is provided to mi-
grate the File-Based Loader GUIDs to HCM Data Loader source system IDs. Regardless of whether user
keys or source keys will be used, it is recommended that this process be run as the first step
TEMPLATE GENERATION
Before reworking the export processes, you can download a template for each business object supported by
HCM Data Loader. These templates take into account any flex-field structures that are already in place. By
using the templates, you can accurately outline the shape of the data that needs to be generated by the re-
worked export processes.
REWORK OF EXPORT PROCESSES
The main task required for migration to HCM Data Loader is the rework of the export process that generates
the data for loading to Oracle HCM Cloud. This process needs to take into account the correct attributes for
the HCM Data Loader objects as well as preparing the files in the format expected by HCM Data Loader.
The attached spreadsheet provides a mapping between the HCM Data Loader data file name, file discrimina-
tor, and attribute name to the HCM File-Based Loader data file and attribute name.
HCM Data Loader only supports files loaded via Oracle Web-Center Content. If customers are currently us-
ing SFTP, then the processes will need to be changed.
Similar to File-Based Loader, HCM Data Loader has a web service that can be used to invoke the HCM
Data Loader processing.
HCM_Data_Loader_
to_File-Based_Loader_Field_Mapping.xlsx
Sample Screenshot (Mapping Sheet)
OFFLINE VERIFICATION USING HDLDI
The offline Data File Validator Tool (HDLdi) and used in the extract process to ensure that the data files be-
ing prepared are valid in terms of the data format. It also checks any business rules that apply to the data
contained in the data file where other Oracle HCM Cloud data is not required as part of the validation.
HCM DATA LOADER PROCESS FLOW DIAGRAM
FBL (File Based Loader) Vs HDL (HCM Data Loader) Comparative Analysis (Top 10 Points)
FILE BASED LOADER ( FBL ) HCM DATA LOADER ( HDL )
Customers Already Accustomed to using fbl Has New Features
Multiple files to load worker details Single Worker File
Special considerations required for Delta Load Allows Bulk and Delta Load
Error handling takes lot of time and effort Error Handling Mechanism is easy
Allows Date Effective History Load. In case you need
to load N + 1th record all records starting from 1 to N
also needs to be passed
Allows Date Effective Historical Data Load. Need to pass
only the N + 1th Record
Only Recommended for existing customers Oracle Recommends for all new implementations
Customers already accustomed to using FBL. Partial
Load happens causing sync issues. Major setback for
all implementations
Ensures either Complete Details get loaded or NONE. No
Partial conversion. Allowed. ALL or NONE approach
Follows GUID approach. Primary Keys are not user
friendly
Uses Source System Keys approach. User friendly pri-
mary keys
FBL Templates are made available on request(via SR) HDL Templates (Data File Format) required for Conver-
sion can be downloaded from the Application Instance
(Commonly referred to as POD) itself. No Additional SR
(Service Requests) needs to be raised
FBL is age old technology now. You can use it for
now but it is on the verge of extinction.
Today or Tomorrow you have to accept using HDL. You
may DELAY using it but cannot AVOID it.
SAMPLE HDL FILES
Worker.dat
Worker.dat
How to Configure HCM Data Loader
This article explains in detail about the steps required to enable your system to use HCM Data Loader tool
( for HCM data Migration ) from Legacy Applications to Fusion Applications.
It has been divided into various sections and the same are detailed below :
FUSION APPLICATION LOGIN PAGE:
The below screenshot shows a Fusion Application Home page. Click on the Fusion Applications Link (you
will receive the same from your Project Team Colleagues / IT Admin )
APPLICATION VERSION DETAILS
Verify the application version
Navigation-: Click on any link from the navigator (E.g.: Setup and Maintenance) -> A new page opens up.
On the top right hand side of the page you will find an arrow next to your login user name which populates
below Settings and Actions list screenshots below :
Select ‘About This Page’. This will provide details of the Fusion application version (highlighted below)
USER ROLES:
Role required for using HCM Data Loader is Human Capital Management Integration Specialist
Navigation to check the User roles: Navigator-> My Account ->Current Roles
NAVIGATION: CONFIGURE HCM DATA LOADER
Login into Fusion applications-> Click on Navigator-> Setup and Maintenance -> All Tasks
In the search window, give name as ‘Configure HCM Data Loader’
Click on ‘Go to Task’ i.e. Icon
NOTE: ‘Permitted’ field should be green checked. If it is red checked then you do not have required permis-
sion to view the settings.
Now you should be able to see all the PARAMETERS set for HCM Data Loader.
CONFIGURATION PARAMETER – HCM DATA LOADER SCOPE:
Full Enables the use of HCM Data Loader as the primary bulk inbound integration tool. File-based Loader
usage is disabled.
Limited Enables the use of FBL as the primary bulk inbound integration tool and HDL only for objects not
supported by FBL Not recommended to switch the tools for the same business objects intermittently
New release 10 customers will have a default scope of FULL.
CHANGING THE PARAMETER VALUE:
•Customers can choose to move from LIMITED to FULL at ANYTIME (available via UI)
•Move from FULL to LIMITED requires Development Intervention (can cause issues)
End of Chapter 1 ---------------------------------------------------------------------------------------
Chapter 2: BIP Reports
Describes How to Create a Custom BIP Report in Fusion Applications
Also Explains about creating BIP Report from Static Data
How to Create a Custom BIP Report in Fusion Applications?
BUSINESS REQUIREMENT
Oracle has already delivered a lot of BIP Reports in the Fusion Instance, however during a course of imple-
mentation it is a common requirement to develop new ones.
CONTENT
There are few common steps involved they are:
a) Create a SQL Query which comprises of DB Tables (that exist in Fusion Schema).
We have a SQL Query which is as below :
select A. person_number,
A.full_name,
A.legal_employer,
A.business_unit,
A.department,
A.absence_plan_name,
A.adjustment_type,
A.adjustment_reason,
A.value,
A.procd_date accrual_entry_date
from
(
select apaed.per_accrual_entry_dtl_id,
apaed.per_accrual_entry_id,
apaed.enterprise_id,
apaed.value,
apaed.type,
apaed.created_by,
apaed.creation_date,
apaed.last_updated_by,
apaed.last_update_date,
apaed.last_update_login,
apaed.person_id,
apaed.pl_id,
apaed.procd_date,
apaed.per_event_id,
apaed.legal_employer_id,
apaed.assignment_id,
apaed.per_absence_entry_id,
apaed.per_plan_enrt_id,
apaed.work_term_asg_id,
DECODE(apaed.type,'ADJOTH',ADD_MONTHS(procd_date,6),NULL) proposed_expiration_date,
papf.person_number,
ppnf.full_name,
paam.organization_id,
dept.name department,
paam.legal_entity_id,
legal_employer.classification_code legal_emp_classification_code,
legal_employer.name legal_employer,
paam.business_unit_id,
business_unit.classification_code bu_classification_code,
business_unit.name business_unit,
absence_plan.name absence_plan_name,
flvt.meaning adjustment_type,
adj_reason.meaning
adjustment_reason
FROM anc_per_acrl_entry_dtls apaed
JOIN fnd_lookup_values_tl flvt
ON (flvt.lookup_type = 'ANC_ACCRUAL_ENTRY_TYPE'
AND flvt.lookup_code = apaed.type
AND flvt.language = 'US')
JOIN per_all_people_f papf
ON (apaed.person_id = papf.person_id
AND TRUNC(sysdate) BETWEEN papf.effective_start_date and papf.effective_end_date)
JOIN per_person_names_f ppnf
ON (ppnf.name_type = 'GLOBAL'
AND ppnf.person_id = apaed.person_id
AND TRUNC(SYSDATE) BETWEEN ppnf.effective_start_date and ppnf.effective_end_date)
JOIN per_all_assignments_m paam
ON (paam.assignment_id = apaed.assignment_id
AND paam.person_id = apaed.person_id
AND paam.primary_assignment_flag = 'Y'
AND paam.assignment_type = 'E'
AND TRUNC(SYSDATE) between paam.effective_start_date and paam.effective_end_date)
LEFT OUTER JOIN
( SELECT
flvt1.lookup_code,
flvt1.meaning
FROM fnd_lookup_val-
ues_tl flvt1
WHERE
flvt1.lookup_type =
'ANC_ABS_PLAN_OTHER_REASONS'
AND flvt1.language =
'US'
) adj_reason
ON (apaed.adjustment_reason
= adj_reason.lookup_code)
LEFT OUTER JOIN
( SELECT hauft.organization_id,
hauft.NAME
FROM HR_ORG_UNIT_CLASSIFICATIONS_F houcf,
HR_ALL_ORGANIZATION_UNITS_F haouf,
HR_ORGANIZATION_UNITS_F_TL hauft
WHERE haouf.ORGANIZATION_ID = houcf.ORGANIZATION_ID
AND haouf.ORGANIZATION_ID = hauft.ORGANIZATION_ID
AND haouf.EFFECTIVE_START_DATE BETWEEN houcf.EFFECTIVE_START_DATE AND
houcf.EFFECTIVE_END_DATE
AND hauft.LANGUAGE = 'US'
AND hauft.EFFECTIVE_START_DATE = haouf.EFFECTIVE_START_DATE
AND hauft.EFFECTIVE_END_DATE = haouf.EFFECTIVE_END_DATE
AND houcf.CLASSIFICATION_CODE = 'DEPARTMENT'
AND TRUNC(SYSDATE) BETWEEN hauft.effective_start_date AND hauft.effective_end_date
) dept
ON (paam.organization_id = dept.organization_id)
LEFT OUTER JOIN
(SELECT hauft.organization_id,
hauft.NAME,
houcf.classification_code
FROM HR_ORG_UNIT_CLASSIFICATIONS_F houcf,
HR_ALL_ORGANIZATION_UNITS_F haouf,
HR_ORGANIZATION_UNITS_F_TL hauft
WHERE haouf.ORGANIZATION_ID = houcf.ORGANIZATION_ID
AND haouf.ORGANIZATION_ID = hauft.ORGANIZATION_ID
AND haouf.EFFECTIVE_START_DATE BETWEEN houcf.EFFECTIVE_START_DATE AND
houcf.EFFECTIVE_END_DATE
AND hauft.LANGUAGE = 'US'
AND hauft.EFFECTIVE_START_DATE = haouf.EFFECTIVE_START_DATE
AND hauft.EFFECTIVE_END_DATE = haouf.EFFECTIVE_END_DATE
AND houcf.CLASSIFICATION_CODE = 'HCM_LEMP'
AND TRUNC(SYSDATE) BETWEEN hauft.effective_start_date AND hauft.effective_end_date
) legal_employer
ON (paam.legal_entity_id = legal_employer.organization_id)
LEFT OUTER JOIN
(SELECT hauft.organization_id business_unit_id,
hauft.NAME,
houcf.classification_code
FROM HR_ORG_UNIT_CLASSIFICATIONS_F houcf,
HR_ALL_ORGANIZATION_UNITS_F haouf,
HR_ORGANIZATION_UNITS_F_TL hauft
WHERE haouf.ORGANIZATION_ID = houcf.ORGANIZATION_ID
AND haouf.ORGANIZATION_ID = hauft.ORGANIZATION_ID
AND haouf.EFFECTIVE_START_DATE BETWEEN houcf.EFFECTIVE_START_DATE AND
houcf.EFFECTIVE_END_DATE
AND hauft.LANGUAGE = 'US'
AND hauft.EFFECTIVE_START_DATE = haouf.EFFECTIVE_START_DATE
AND hauft.EFFECTIVE_END_DATE = haouf.EFFECTIVE_END_DATE
AND houcf.CLASSIFICATION_CODE = 'FUN_BUSINESS_UNIT'
AND TRUNC(SYSDATE) BETWEEN hauft.effective_start_date AND hauft.effective_end_date
) business_unit
ON (paam.business_unit_id = business_unit.business_unit_id)
LEFT OUTER JOIN
(SELECT aapf.absence_plan_id,
aapft.NAME
FROM anc_absence_plans_f_tl aapft,
anc_absence_plans_f aapf
WHERE aapft.absence_plan_id = aapf.absence_plan_id
AND aapf.plan_status = 'A' -- added to pick only Active Absence Plans
AND trunc(SYSDATE) BETWEEN aapf.effective_start_date AND aapf.effective_end_date
AND trunc(SYSDATE) BETWEEN aapft.effective_start_date AND aapft.effective_end_date
AND aapft.language = 'US'
) absence_plan
ON apaed.pl_id = absence_plan.absence_plan_id
where pl_id = absence_plan.absence_plan_id
and apaed.value <> 0
order by apaed.person_id,apaed.procd_date asc
) A
where person_number = nvl(:pPersonNumber,person_number)
and legal_employer = nvl(:pLegalEmployer,legal_employer)
and business_unit = nvl(:pBusinessUnit,business_unit)
and procd_date >= nvl(:pCalculationDate,procd_date)
and department = nvl(:pDepartment,department)
and full_name = nvl(:pPersonName,full_name)
and absence_plan_name = nvl(:pAbsencePlanName,absence_plan_name)
Navigate to the screen as shown:
Under Published Reporting -> Data Model
Create a New Data Set (of SQL Query type) as shown in Screenshot below:
Give a Name to Data Set (for this example say PersonAbsenceAccrualEntryDetails_ds):
You would need to take special care while selecting Data Source (Logic Below):
a) If you are Building Finance reports use : ApplicationDB_FSCM
b) If you are Building HCM reports use : ApplicationDB_HCM
c) If you are Building CRM Reports use : ApplicationDB_CRM
For this example we use ApplicationDB_HCM
Depending on the number of Parameters (Bind Variables) used a Popup window will appear as:
Click OK. Give a Name to the Parameters as shown below
PARAMETER DETAILS:
PARAMETER
NAME
DATA TYPE DEFAULT VALUE PARAMETER TYPE ROW PLACE-
MENT
DISPLAY LABEL
pLegalEmployer String Menu ( List of
Values Legal Em-
ployer)
LegalEmployer**
pBusinessUnit String Menu ( List of
Values Business
Unit)
BusinessUnit**
pDepartment String Menu ( List of
Values Depart-
ment)
Department**
pAbsencePlan-
Name
String Menu ( List of
Values Absence
Plan Name)
AbsencePlan-
Name**
pCalcula-
tionDate
Date Text CalculationDate**
pPersonName String Menu ( List of
Values Person
Name)
PersonName**
pPersonNumber String Text PersonNumber**
Create List of Values for Parameters.
LIST OF VALUES
LOV
NAME
TYPE DATA SOURCE SQL QUERY ASSOCIATED
WITH PARAMETER
Legal
Employer
SQL Query ApplicationDB_HCM Refer Legal Employer LOV SQL in
LOV SQL Section
pLegalEmployer
Business
Unit
SQL Query ApplicationDB_HCM Refer Business Unit LOV SQL in
LOV SQL Section
pBusinessUnit
Depart-
ment
SQL Query ApplicationDB_HCM Refer Department LOV SQL in
LOV SQL Section
pDepartment
Absence
Plan
Name
SQL Query ApplicationDB_HCM Refer Absence Plan Name LOV
SQL in LOV SQL Section
pAbsencePlan-
Name
Person
Name
SQL Query ApplicationDB_HCM Refer Person Name LOV SQL in
LOV SQL Section
pPersonName
LOV SQL SECTION
This Section shows all the SQL which are used for LOV Creation.
LEGAL EMPLOYER LOV SQL
BUSINESS UNIT LOV SQL
DEPARTMENT LOV SQL
ABSENCE PLAN LOV SQL
PERSON NAME LOV SQL
VIEW DATA:
CLICK ON ‘SAVE AS SAMPLE DATA’:
CREATE REPORT
Create Report
Click Next and Follow Train Stops:
Create Table
End of the Topic…………………….
New Topic Starts on Next Page………….
Creating Custom BIP Reports from Static Data
BUSINESS REQUIREMENT
While we all have been accustomed and bored with always creating Data Model using SQL Query we might
have missed other options as in this screen-shot:
STEPS
Sample Data is Saved in Local Desktop and uploaded. Once the same is done the screen will appear as
FINAL OUTPUT
MIGRATION
This Report may be migrated into your specific environment. You would need the below three things :
a) SampleCSVData
SampleCSVData.csv
b) StaticDataBIP ( Data Model)
c) StaticDataBIPReport
Chapter 3: OTBI Reports
Gives Brief Description of OTBI Reports
Describes how to create a OTBI Report from Static Data
Also explains creating OTBI Reports from SQL
Creating OTBI Reports from Direct Database Query
BUSINESS REQUIREMENT
While we must have been used to creating DRAG and DROP reports using OTBI we might have missed the
option of ‘Create Direct Database Query’ . In this article let’s try to explore the same.
CONTENT
Navigation:
Login to Fusion Applications -> Click on Reports and Analytics -> Click on BI Catalog ( Book Icon) and
you reach on this page
Click on Create Direct Database Query
Step 2 :
Provide following details :
CONNECTION POOL : “HCM_OLTP”.”Connection Pool”
SQL:
select papf. person_number as PersonNumber
from per_all_people_f papf
where rownum < 10
order by papf.person_number desc
EXPECTED SCREEN-PRINT
RESULTS
Click on Results Tab as shown
Results
Save Analysis
MIGRATING THIS ANALYSIS
Click on ‘Archive’ option as shown.
Archive
Once you click on the Archive Option as shown above a popup window will appear as shown. Select both
the checkbox (this ensures that the same permission and timestamp attached to this analysis is carried for-
ward to the Target instance)
Click Ok and a file gets downloaded to your local desktop. Save it .
Click Save. And save the file in a specific location. ( Desktop in this example).
After you save the file in local desktop upload the same to Target Enviornment.
MOVEMENT TO TARGET INSTANCE
Login to Target Instance and Navigate to
Navigator->Reports and Analytics -> BI Catalog -> Shared Folders-> Custom -> <Your Specific Folder
where you want to keep this analysis, for this example Practice Samples>
Screenshot Before Unarchiving the CATALOG File
Then Click on Unarchive Option as shown.
Unarchive
A Popup window appears as shown below
Locate your file and Click Ok
CONTD…………………………….
HowTo Create Calendar Data Type for a Presentation Variable in OTBI Analysis
Business Requirement
It is a very Common Requirement where-in we need to have a Date Parameter in Reports. Things becomes
difficult if the Report is an OTBI one and the expected Date Parameter is a Date Picker one. By default,
what we get is a text field and then we need to ensure that user input should be exactly as expected by pro-
gram (generally we guide user via a tooltip). But now we have a workaround explained below:
By default, whenever you create a presentation variable it gives the following options for user input
But the requirement is to have a ‘Calendar’ as a value in drop down list.
Steps:
1) Select the Choice List Option
2) In ‘choice List Values’ select ‘All Column Values’
3) Now select any attributes from the Subject Area of Date Type for this example lets choose Start Date from Person
Folder (Workforce Management – Person Real Time). Choose Variable Data Type as ‘Date’
4) Click Ok.
5) Edit the Prompt Again and now ‘Calendar’ appears as a User Input in Drop down list
6) Save the changes.
7) The Date Picker appears as desired.
Chapter 4: Creating Custom ESS Job in Fusion Applications
BUSINESS REQUIREMENT
Oracle has already delivered a lot of BIP Reports in the Fusion Instance, however during a course of imple-
mentation it is a common requirement to develop new ones.
CONTENT
There are few common steps involved they are:
b) Create a SQL Query which comprises of DB Tables (that exist in Fusion Schema).
We have a SQL Query which is as below :
SELECT hdbo.bus_obj_file_discriminator EntityName,fr.key_source_owner SourceSystemOwner, fr.key_source_id
SourceSystemId, l.msg_text ErrorMessage,bo.data_file_name,bo.imported_status,bo.validated_status,bo.skipped_sta-
tus,bo.loaded_status,'Error' DataLoadStatus,'N' DataLoadFlag FROM fusion.hrc_dl_message_lines l , fu-
sion.hrc_dl_data_set_bus_objs bo , fusion.hrc_dl_data_sets ds , fusion.hrc_dl_physical_lines pl , fusion.hrc_dl_file_rows
fr , fusion.hrc_dl_file_lines fl , fusion.hrc_dl_business_objects hdbo WHERE l.message_source_table_name =
'HRC_DL_PHYSICAL_LINES' AND bo.data_set_bus_obj_id = l.data_set_bus_obj_id AND ds.data_set_id =
bo.data_set_id AND pl.physical_line_id = l.message_source_line_id AND fr.row_id = pl.row_id AND fl.line_id =
fr.line_id AND hdbo.business_object_id = bo.business_object_id And ds.ucm_content_id = :p_ucm_content_id union SE-
LECT hdbo.bus_obj_file_discriminator EntityName,fr.key_source_owner SourceSystemOwner, fr.key_source_id
SourceSystemId, l.msg_text ErrorMessage,bo.data_file_name,bo.imported_status,bo.validated_status,bo.skipped_sta-
tus,bo.loaded_status,'Error' dataloadstatus,'N' dataloadflag FROM fusion.hrc_dl_message_lines l , fu-
sion.hrc_dl_data_set_bus_objs bo , fusion.hrc_dl_data_sets ds , fusion.hrc_dl_logical_lines ll , fusion.hrc_dl_file_rows fr ,
fusion.hrc_dl_file_lines fl , fusion.hrc_dl_business_objects hdbo WHERE l.message_source_table_name =
'HRC_DL_LOGICAL_LINES' AND bo.data_set_bus_obj_id = l.data_set_bus_obj_id AND ds.data_set_id = bo.data_set_id
AND ll.logical_line_id = l.message_source_line_id AND fr.logical_line_id = ll.logical_line_id AND fl.line_id = fr.line_id
AND hdbo.business_object_id = bo.business_object_id And ds.ucm_content_id = :p_ucm_content_id
SCREEN-SHOT:
Give a Name to Data Set (for this example say PersonAbsenceAccrualEntryDetails_ds):
You would need to take special care while selecting Data Source (Logic Below):
d) If you are Building Finance reports use : ApplicationDB_FSCM
e) If you are Building HCM reports use : ApplicationDB_HCM
f) If you are Building CRM Reports use : ApplicationDB_CRM
For this example we use ApplicationDB_HCM
Depending on the number of Parameters( Bind Variables) used a Popup window will appear as :
Click OK. Give a Name to the Parameters as shown below
PARAMETER DETAILS:
PARAMETER
NAME
DATA TYPE DEFAULT
VALUE
PARAMETER
TYPE
ROW PLACE-
MENT
DISPLAY LABEL
pLegalEmployer String Menu ( List of
Values Legal
Employer)
LegalEm-
ployer**
pBusinessUnit String Menu ( List of
Values Busi-
ness Unit)
BusinessUnit**
pDepartment String Menu ( List of
Values Depart-
ment)
Department**
pAbsencePlan-
Name
String Menu ( List of
Values Absence
Plan Name)
AbsencePlan-
Name**
pCalcula-
tionDate
Date Text Calcula-
tionDate**
pPersonName String Menu ( List of
Values Person
Name)
PersonName**
pPersonNumber String Text PersonNumber**
Data Model is created. Now we need to check the data retrieved.
Create List of Values for Parameters.
LIST OF VALUES
LOV NAME TYPE DATA SOURCE SQL QUERY ASSOCIATED WITH
PARAMETER
Legal Employer SQL Query Applica-
tionDB_HCM
Refer Legal Em-
ployer LOV SQL
in LOV SQL Sec-
tion
pLegalEmployer
Business Unit SQL Query Applica-
tionDB_HCM
Refer Business
Unit LOV SQL in
LOV SQL Section
pBusinessUnit
Department SQL Query Applica-
tionDB_HCM
Refer Department
LOV SQL in LOV
SQL Section
pDepartment
Absence Plan
Name
SQL Query pLegalEmployer Refer Absence
Plan Name LOV
SQL in LOV SQL
Section
pAbsencePlanName
Person Name SQL Query pLegalEmployer Refer Person Name
LOV SQL in LOV
SQL Section
pPersonName
LOV SQL SECTION
This Section shows all the SQL which are used for LOV Creation.
LEGAL EMPLOYER LOV SQL
BUSINESS UNIT LOV SQL
DEPARTMENT LOV SQL
ABSENCE PLAN LOV SQL
PERSON NAME LOV SQL
VIEW DATA :
CLICK ON ‘SAVE AS SAMPLE DATA’:
CREATE REPORT
Click on Create Report
Click Next and Follow Train Stops:
Create Table
Drag and Drop fields and the Final Report output will look like :
End of Chapter
Chapter 5: Fusion Absence Management
Defines What is Meant by Absence Plan
Explains the same with a Worked Out Example
An Overview of Fusion Absence Management Absence Plan Definition and Use
INTRODUCTION
Before we start to understand How to create an Absence Plan first try to understand what an Absence Plan is and why is it
required.
In real life Absence Plan holds a different meaning than that of the one meant in Fusion Applications.
In real life Absence Plan for an individual (or for that matter for a Working individual) relates more to a question which is
generally asked by his Manager
What are your Absence Plans?
and he would generally respond stating I will be on leave on so and so dates.
But in context with Fusion Applications an Absence Plan (I feel the naming convention isn’t correct it should have been
called Accrual Plan but that again is incorrect as Absence Plans are even those which are of qualification and No-Entitle-
ment Type, details about the same in Absence Plan Types Section) could be imagined as a Bucket.
Yes, I mean a Bucket as we know.
Let’s for time being say an Absence Plan is an Absence Bucket and I call it as a Bucket as it is supposed to hold:
a) Leave / Absence Balance
Anything and everything around the Entire Absence Plan surrounds around this single piece of information usually called
‘Absence Balance’
Different Items related with an Absence Plan and their association with Absence Balance follows:
Absence Plan
A name given to a set of rules / guidelines which define how the absence balance will be assigned and maintained
Legislation
Geography / Country where this Absence Balance is Maintained. For Example, if we are doing Absence Plan setup for India
Legislation would be India, if we are doing for USA it would be United States and so on....
Plan Type
An attribute which defines how the Absence Balance would be calculated / paid.
For example:
If Absence / Leave Balance is paid to employees as a result of an event such as childbirth, illness or injury it is
called Qualification Plan Type Absence Plan
Typical Example Being Hospitalization Leave.
If Absence / Leave Balance is paid to employees as a result of accumulation / accrual it is called Accrual Plan
Type Absence Plan
Leaves like Annual Leave, Vacation Leave fall into this category
If Absence / Leave Balance is paid without having any track, then we referred to them as No-Entitlement Plan
Type Absence Plan
Marriage Leave, Compassionate Leave. fall into this category
Plan Term
This is basically the entire time period for which the absence balance has the validity.
For Example
Plan Term: Calendar Year
Start Day: 01
Start Month: 1
Means the Absence Plan will start on 1st
day of 1st
month (i.e. 1st
January) and run till the end of calendar year i.e. 31-Dec
Plan Term: Calendar Year
Start Day: 01
Start Month: 2
Means Absence Plan will start on 1st
day of 2nd
month (i.e. 1st
February) and run till the end of calendar year i.e. 31-Dec
Plan Term: Calendar Year
Start Day: 05
Start Month: 10
Means the absence Plan will start on 5th
day of 10th
month (i.e. 5th
October) and run till the end of calendar year i.e. 31-Dec
Absence Plan UOM
Unit of Measure which states in which unit (either of Days / Calendar Days / Hours) will this Absence Balance will get
measured.
Accrual Method
Method of accruing Absence / Leave Balance.
It is of two types:
a) Frontloaded
The Entire Absence Balance is allocated at the beginning of the plan term
b) Incremental
The Absence Balance are accrued at regular intervals
Accrual Frequency
Frequency at which accrual happens. It is of two types Person Primary Frequency and Repeating Period.
If person gets his absence / leave balance at the start of payroll period, then the Accrual Frequency is of Person Primary
Frequency Type
For Example:
Person Primary Frequency: Weekly
Means he gets paid every week (Employee has a Weekly Payroll Assigned / Attached to him) and same is true for his absence
balance too i.e. absence balance is received every week (in synchronization with his person primary payroll payment fre-
quency).
Person Primary Frequency: Bi-Weekly
Means he gets paid once in row weeks (Employee has a Bi-Weekly Payroll Assigned / Attached to him) and same is true for
his absence balance too i.e. absence balance is received once in two weeks (in synchronization with his person primary payroll
payment frequency).
Person Primary Frequency: Monthly
Means he gets paid once a month (Employee has monthly payroll assigned / attached to him) and same is true for his absence
balance too i.e. absence balance is received once a month (in synchronization with his person primary payroll payment fre-
quency).
Person Primary Frequency: Quarterly
Means he gets paid once in quarter (Employee has a Quarterly Payroll Assigned / Attached to him) and same is true for his
absence balance too i.e. absence balance is received once each quarter (in synchronization with his person primary payroll
payment frequency).
If person gets his absence / leave balance at the start of each instance of a Specific Repeating Time Period, then Accrual
Frequency is of Repeating Time Period
For Example:
Repeating Time Period: Every Quarter of a Calendar year
Means he will accrue this leave once every 3 months in the Calendar Year.
Repeating Time Period: Bi Monthly
Means he will accrue this leave 2 times in a month.
Repeating Time Period: Every Quarter of a Calendar year
Means he will accrue this leave once every 3 months in the Calendar Year.
Repeating Time Period: Monthly
Means he will accrue this leave once a month.
Ceiling
This means the maximum Accrual / Leave Balance an employee can accrue / store within a particular accrual term
For Example:
If for a particular Absence Plan the ceiling value is 10
It means that the employee can accrue at max 10 leaves per year. If his balance becomes more than 10 then the same will be
forfeited.
If for a particular Absence Plan the ceiling value is 20
It means that the employee can accrue at max 20 leaves per year. If his balance becomes more than 10 then the same will be
forfeited.
Carryover
This means the Absence / Leave Balance an employee can carry forward (take along with him) to next accrual term
For Example:
If for a particular Absence Plan has carryover as 50
It means that the employee can carry forward 50 leaves per year. This carry forward value would keep accumulating until
ceiling value is reached
So if ceiling is 100 and employee has already carried forward 50 leaves from first year and again 50 from next year then he
cannot carry forward leaves for 3rd
year.
If for a particular Absence Plan the carryover as 60
It means that the employee can carry forward 60 leaves per year. This carry forward value would keep accumulating until
ceiling value is reached.
So if ceiling is 100 and employee has already carried forward 50 leaves from first year and again 50 from next year then he
cannot carry forward leaves for 3rd
year
Vesting Period
This is the Time Period during which Employees can accrue leave but cannot apply leave
For example, if a Plan starts on 1st January and has a vesting period of 1 month then the first leave which an employee can
take would be a date after 1st February (1st January + 1 month). He would anyways be allowed to accrue during the entire
January Month
Absence Payment Rate Rule
Method to calculate payment during an Absence Period. (a period when employee is absent from work, but still needs to be
paid). For Example, if a Female Employee is on Maternity Leave for 6 months then at what rate should she be paid.
Final Disbursement Rate Rule
Method to calculate payment of accruals when plan participation ends (An Employee became a Contractor from Regular
Employee so his eligibility for Annual Leave comes to an end, but he has already had a positive balance of say 10. Now if
the payroll is integrated with absence then employee needs to be paid for this accrued balance. This rate talks about the
same Disbursement Rate Rule).
Discretionary Disbursement Rate Rule
Method to calculate payment when paying out part of accrual balance (An Employee resigns a company and he has a notice
period of 30 days, he has served 25 days of notice period and he has an accrual balance of 10 days. Due to some emergency
he has to go to his hometown and he seeks immediate relieving. In this case the company may decide to deduct his 5 days
from Accrual balance and pay for the rest 5 at a discretionary rate).
Liability Rate Rule
Method to calculate cost of accrual balance to determine employer liability (An Employee resigns a company and he has a
notice period of 30 days, he has served 25 days of notice period and he has an accrual balance of 10 days. Due to some
emergency he has to go to his hometown and he seeks immediate relieving. In this case the company may decide to deduct
his 5 days from Accrual balance and pay for the rest 5 at a discretionary rate and the rest 5 days will be paid at the Liability
Rate).
BUSINESS REQUIREMENT
Now since we are aware of some of the most commonly used terms for an absence plans we should try to create one ab-
sence plan. Requirement is to create an Absence Plan with Absence Plan type Accrual and Accrual Method as Incremental .
We have the following requirement:
Absence Plan Type: Accrual
Accrual Method: Incremental
Accrual UOM: Days
Accrual Values:
If Length of Service is < 3 years then Accrue 10 days, have a ceiling of 100 days and carryover of 50 days.
If Length of Service is between 3 to 5 years then Accrue 12 days, ceiling of 120 days & carryover of 60 days
If Length of Service is > 5 then Accrue 15 days, have a ceiling of 150 days and carryover of 75 days
Vesting Period:
If Legal Employer is Vision Corporation, then Vesting Period is 90 Calendar Days Else Vesting Period is 30 Calendar Days
Absence Payment Rate Rule:
Provide a Sickness Rate If the Employee is taking a Leave of Type Sick and Flu else use Hourly Rate
Final Disbursement Rate Rule:
If Employee is of Hourly Salaried type use Hourly rate, if he is Regular Employee provide Annual Salary Rate
Discretionary Disbursement Rate Rule: If Employee is of Hourly Salaried type use Hourly rate, if he is Regular Employee
provide Annual Salary Rate.
Liability Rate Rule:
If Employee is of Hourly Salaried type use Hourly rate, if he is Regular Employee provide Annual Salary Rate
We would be using Fast Formula (reasons supporting the same provided alongside) for the following attributes:
**Accrual Values:
This can be achieved using an Accrual Matrix but we would like provide maximum flexibility and hence Fast Formula
Vesting Period:
This requirement can only be achieved using Fast Formula
**Absence Payment Rate Rule:
This requirement could have been met using the ‘Rate Definition’ option but for flexibility we have used Fast Formula
**Final Disbursement Rate Rule:
This requirement could have been met using the ‘Rate Definition’ option but for flexibility we have used Fast Formula
**Discretionary Disbursement Rate Rule:
This requirement could have been met using the ‘Rate Definition’ option but for flexibility we have used Fast Formula
**Liability Rate Rule:
This requirement could have been met using the ‘Rate Definition’ option but for flexibility we have used Fast Formula
**Note:
By Allowing Flexibility we mean in case there are additional complex logic in future then we can add the Fast Formula
Code in the existing FF defined.
JUSTIFICATIONS FOR USING FAST FORMULAS:
While some might debate that the entire absence plan could well have been setup using standard setups / configurations (and
I do agree to that) but the below are specific reasons for using Fast Formula here:
A) Allows Flexibility of Adding Custom Logic (If required by customer at a Future Date)
Fast Formulas (Details in a separate article) generally allows us to add conditional logics (IF-ELSE constructs) and
provide a way to customize the seeded solution.
For Example
Say currently we want to have a condition that if
Employee Category is Hourly then use RateCode as ‘Hourly Rate’
Employee Category is Salaried then use RateCode as ‘Salaried’
But after few days’ customer has changed the requirement and now they even want to ensure that any Salaried Em-
ployee who has been on leave for most of time during the year would rather be paid in terms of hours worked (typi-
cal example being someone on Leave Without Pay).
If Employee Category is Hourly, then use RateCode as ‘Hourly Rate’ Else if Employee Category is Salaried and
Employee Payroll Status is Currently on Leave without Pay then ‘Hourly Rate’ ------ new requirement
Else Employee Category is Salaried and Employee Payroll Status is Active Payroll Eligible then ‘Salaried’ end if.
Now in order to accommodate the new requirement you would need to create a completely new Absence Plan with new set-
ups and that would have many implications but if we use Fast Formula this can be achieved by just adding a piece of if-else
construct.
B) Absence Plan Migration becomes a little easier
In all implementation projects setups needs to be once done in a Development POD (in EBS we referred them as
INSTANCE) , and then the same is migrate to SIT, UAT , PRE-PROD and then PROD.
IF we use Fast Formula approach migration becomes simpler.
PERQUISITES FOR SETTING UP ABSENCE PLAN (USING FAST FORMULA APPROACH):
You need to create multiple custom fast formula in the system (your POD) in the legislation where you want to create the
absence plan.
FAST FORMULA TYPES USED IN THIS EXAMPLE:
There are 4 types of Fast Formula used in this example namely
A) Global Absence Plan Duration
B) Global Absence Accrual
C) Global Absence Vesting Period
D) Global Absence Plan Use Rate
FAST FORMULA USED IN THIS EXAMPLE:
 There are 5 Fast Formula used in this example which are:
 AH Global Absence Plan Duration Formula
 AH Global Absence Accrual Formula
 AH Global Absence Vesting Period Formula
 AH Global Absence Plan Use Rate Selection Formula 1
 AH Global Absence Plan Use Rate Formula2
FORMULA DETAILS
AH GLOBAL ABSENCE PLAN DURATION FORMULA
AH Global Absence Plan Duration Formula
Formula Name AH Global Absence Plan Duration Formula
Formula Type Global Absence Plan Duration
Description If leave falls on a Sunday then the leave hours deducted from leave balance should be
0 for all other cases it should be 8.5 hours
FORMULA TEXT
/************************************************************************************
FORMULA NAME: AH Global Absence Plan Duration Formula
FORMULA TYPE: Global Absence Plan Duration
DESCRIPTION: This sample formula returns the duration based on effective date falls on Sunday.
Change History:
Name Date Comments
--------------------------------------------------------------------------------------------
XXXXXXX DD-MM-YYYY XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
--------------------------------------------------------------------------------------------
************************************************************************************/
/*================ FORMULA SECTION BEGIN =======================*/
l_date=GET_CONTEXT (EFFECTIVE_DATE,'4712/12/31 00:00:00' (date))
l_weekday=to_char(l_date,'DAY')
If (l_weekday= '7')
then (
duration=0
)
else (
duration=8.5
)
/*================ FORMULA SECTION END =======================*/
return duration
SCREENSHOT
AH GLOBAL ABSENCE ACCRUAL FORMULA
AH Global Absence Accrual Formula
Formula Name AH Global Absence Accrual Formula
Formula Type Global Absence Accrual
Description This sample formula applies the Accrual, Ceiling, Carryover, Proration Factor, Vest-
ing Units, Vesting UOM, Carryover Proration and Ceiling Proration based on Length
of Service and Accrual Plan the person enrolled into
FORMULA TEXT
/*****************************************************************
FORMULA NAME: AH Global Absence Accrual Formula
FORMULA TYPE: Global Absence Accrual
DESCRIPTION: This sample formula applies the Accrual, Ceiling, CarryOver, Proration Factor, Vesting Units, Vesting
UOM, CarryOver Proration and Ceiling Proration
based on Length of Service and Accrual Plan the person enrolled into.
Change History:
Name Date Comments
------------------------------------------------------------------------------------------------------------
XXXXXXX DD-MM-YYYY XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
------------------------------------------------------------------------------------------------------------
*****************************************************************/
/*=========== DATABASE ITEM DEFAULTS BEGIN =====================*/
DEFAULT for PER_ASG_REL_ORIGINAL_DATE_OF_HIRE is '4712/12/31 00:00:00' (date)
DEFAULT for ANC_ABS_PLN_NAME is 'A'
DEFAULT for ANC_ABS_PLN_PLAN_UOM is 'H'
/*=========== DATABASE ITEM DEFAULTS ENDS======================*/
/*================ FORMULA SECTION BEGIN =======================*/
l_no_of_days=DAYS_BETWEEN(GET_CONTEXT(EFFECTIVE_DATE,'4712/12/31 00:00:00'
(date)),PER_ASG_REL_ORIGINAL_DATE_OF_HIRE)
l_length_of_service=(l_no_of_days/365)
/* check if employee enrolled into this plan or not */
if (ANC_ABS_PLN_NAME='BM_US_ABSENCE_ACCRUAL_PLAN')
then(
if(ANC_ABS_PLN_PLAN_UOM ='H')
then(
if(l_length_of_service <3)
then(
ac-
crual =10
ceil-
ing = 100
car-
ryover=50
prorationFactor=0.25
vestingUnits=40
vestingUOM='C'
car-
ryOverProration=0.25
ceilingProration=0.25
)
else if ((l_length_of_service =>3) and (l_length_of_service<5))
then (
accrual =12
ceiling = 120
carryover=60
prorationFactor=0.25
vestingUnits=30
vestingUOM='C'
carryOverProration=0.25
ceilingProration=0.25
)
else if (l_length_of_service =>5)
then (
accrual =15
ceiling = 150
carryover=75
prorationFactor=0.25
vestingUnits=30
vestingUOM='C'
carryOverProration=0.25
ceilingProration=0.25
) )
else if (ANC_ABS_PLN_PLAN_UOM ='D')
then(
if (l_length_of_service <3)
then(
accrual =round(10/24,3)
ceiling = round(100/24,3)
carryover=round(50/24,3)
prorationFactor=0.25
vestingUnits=40
vestingUOM='C'
carryOverProration=0.25
ceilingProration=0.25
)
else if ((l_length_of_service =>3) and (l_length_of_service<5))
then (
accrual =round(12/24,3)
ceiling = round(120/24,3)
carryover=round(60/24,3)
prorationFactor=0.25
vestingUnits=30
vestingUOM='C'
carryOverProration=0.25
ceilingProration=0.25
)
else if (l_length_of_service =>5)
then (
accrual =round(15/24,3)
ceiling =round(150/24,3)
carryover=round(75/24,3)
prorationFactor=0.25
vestingUnits=30
vestingUOM='C'
carryOverProration=0.25
ceilingProration=0.25
)
)
else if (ANC_ABS_PLN_PLAN_UOM ='W')
then(
if (l_length_of_service <3)
then(
accrual =round(10/120,3)
ceiling = round(100/120,3)
carryover=round(50/120,3)
prorationFactor=0.25
vestingUnits=40
vestingUOM='C'
carryOverProration=0.25
ceilingProration=0.25
)
else if ((l_length_of_service =>3) and (l_length_of_service<5))
then (
accrual =round(12/120,3)
ceiling = round(120/120,3)
carryover=round(60/120,3)
prorationFactor=0.25
vestingUnits=30
vestingUOM='C'
carryOverProration=0.25
ceilingProration=0.25
)
else if (l_length_of_service =>5)
then (
accrual =round(15/120,3)
ceiling =round(150/120,3)
carryover=round(75/120,3)
prorationFactor=0.25
vestingUnits=30
vestingUOM='C'
carryOverProration=0.25
ceilingProration=0.25
)))
if (ANC_ABS_PLN_NAME='Sickness')
then(
if(ANC_ABS_PLN_PLAN_UOM ='H')
then(
if(l_length_of_service<3)
then(
ac-
crual =12
ceil-
ing = 120
car-
ryover=60
prorationFactor=0.25
vestingUnits=40
vestingUOM='C'
car-
ryOverProration=0.25
ceilingProration=0.25
)
else if ((l_length_of_service =>3) and (l_length_of_service<5))
then (
accrual =13
ceiling = 130
carryover=70
prorationFactor=0.25
vestingUnits=30
vestingUOM='C'
carryOverProration=0.25
ceilingProration=0.25
)
else if (l_length_of_service =>5)
then (
accrual =14
ceiling = 160
carryover=80
prorationFactor=0.25
vestingUnits=30
vestingUOM='C'
carryOverProration=0.25
ceilingProration=0.25 ))
else if (ANC_ABS_PLN_PLAN_UOM ='D')
then(
if (l_length_of_service <3)
then(
accrual =round(12/24,3)
ceiling = round(120/24,3)
carryover=round(60/24,3)
prorationFactor=0.25
vestingUnits=40
vestingUOM='C'
carryOverProration=0.25
ceilingProration=0.25
)
else if ((l_length_of_service =>3) and (l_length_of_service<5))
then (
ac-
crual =round(13/24,3)
ceiling = round(130/24,3)
car-
ryover=round(70/24,3)
pro-
rationFactor=0.25
vestingUnits=30
vestingUOM='C'
car-
ryOverProration=0.25
ceilingProration=0.25
)
else if (l_length_of_service =>5)
then (
accrual =round(14/24,3)
ceiling =round(160/24,3)
carryover=round(80/24,3)
prorationFactor=0.25
vestingUnits=30
vestingUOM='C'
carryOverProration=0.25
ceilingProration=0.25
))
else if (ANC_ABS_PLN_PLAN_UOM ='W')
then(
if (l_length_of_service <3)
then(
accrual =round(12/120,3)
ceiling = round(120/120,3)
carryover=round(60/120,3)
prorationFactor=0.25
vestingUnits=40
vestingUOM='C'
carryOverProration=0.25
ceilingProration=0.25
)
else if ((l_length_of_service =>3) and (l_length_of_service<5))
then (
accrual =round(13/120,3)
ceiling = round(130/120,3)
carryover=round(70/120,3)
prorationFactor=0.25
vestingUnits=30
vestingUOM='C'
carryOverProration=0.25
ceilingProration=0.25
)
else if (l_length_of_service =>5)
then (
accrual =round(14/120,3)
ceiling =round(160/120,3)
carryover=round(80/120,3)
prorationFactor=0.25
vestingUnits=30
vestingUOM='C'
carryOverProration=0.25
ceilingProration=0.25
)))
Return accrual, ceiling, carryover, prorationFactor, vestingUnits, vestingUOM, carryOverProration,ceilingProration
SCREENSHOT
AH GLOBAL ABSENCE VESTING PERIOD FORMULA
AH Global Absence Vesting Formula
Formula Name AH Global Absence Vesting Period Formula
Formula Type Global Absence Vesting Period
Description This sample formula applies the Ceiling based on employment category. If the Em-
ployee belongs to a specific Legal Employer (Vision Corporation for this example)
then his Vesting Period ( Number of Days after which he is allowed to use his ac-
crued leaves) is 90 Calendar Days for any other Legal Employer it is 30
FORMULA TEXT
/********************************************************************
FORMULA NAME: AH Global Absence Vesting Period Formula
FORMULA TYPE: Global Absence Vesting Period
DESCRIPTION: This sample formula applies the vesting period based on employment category.
If the Employee belongs to a specific Legal Employer (Vision Corporation for this example)
then his Vesting Period (Number of Days after which he is allowed to use his accrued leaves) is 90 Calendar Days
for any other Legal Employer it is 30 Days
Change History:
Name Date Comments
-----------------------------------------------------------------------------------------------------------------
XXXXXXX DD-MM-YYYY XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
----------------------------------------------------------------------------------------------------------------
********************************************************************/
/*==============DATABASE ITEM DEFAULTS BEGIN =====================*/
DEFAULT for PER_ASG_ORG_LEGAL_EMPLOYER_NAME is 'Vision'
/*==============DATABASE ITEM DEFAULTS ENDS======================*/
/*================== FORMULA SECTION BEGIN =======================*/
If (PER_ASG_ORG_LEGAL_EMPLOYER_NAME='Vision Corporation')
then (
vestingUOM = 'C'
vestingUnits=90
)
else(
vestingUOM = 'C'
vestingUnits=30)
/*=================== FORMULA SECTION END =======================*/
return vestingUOM,vestingUnits
SCREENSHOT
AH GLOBAL ABSENCE PLAN USE RATE SELECTION FORMULA 1
AH Global Absence Plan Use Rate Selection Formula 1
Formula Name AH Global Absence Plan Use Rate Selection Formula 1
Formula Type Global Absence Plan Use Rate
Description This sample formula returns the rate code. We have defined two different rate codes
namely Sickness Rate and Hourly Rate. If an individual chooses either an Absence
Type of Sick or Flu the RateCode is Sickness Rate else its Hourly Rate
FORMULA TEXT
/***********************************************************************
FORMULA NAME: AH Global Absence Plan Use Rate Selection Formula 1
FORMULA TYPE: Global Absence Plan Use Rate
DESCRIPTION: This sample formula returns the rate code.
We have defined two different rate codes namely Sickness Rate and Hourly Rate.
If an individual chooses either an Absence Type of Sick or Flu the RateCode is Sickness Rate else its Hourly Rate.
Change History:
Name Date Comments
---------------------------------------------------------------------------------------------------------------------
XXXXXXX DD-MM-YYYY XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
--------------------------------------------------------------------------------------------------------------------
***********************************************************************/
/*=========== DATABASE ITEM DEFAULTS BEGINS======================*/
DEFAULT for ANC_ABS_TYP_NAME is 'Sick'
DEFAULT for ANC_ABS_RSN_NAME is 'Cough'
/*=========== DATABASE ITEM DEFAULTS ENDS======================*/
/*================ FORMULA SECTION BEGIN =======================*/
if ((ANC_ABS_TYP_NAME='Sick’) AND (ANC_ABS_RSN_NAME='Flu'))
then (
rateCode='Sickness Rate'
)
else (
rateCode='Hourly Rate')
/*================ FORMULA SECTION END =======================*/
return rateCode
SCREENSHOT
AH GLOBAL ABSENCE PLAN USE RATE FORMULA 2
AH Global Absence Plan Use Rate Formula2
Formula Name AH Global Absence Plan Use Rate Formula2
Formula Type Global Absence Plan Use Rate
Decription This sample formula returns the Plan Use Rate. If an Individual is Paid on Hourly Ba-
sis his RateCode will be Hourly else it would be Annual Salary
FORMULA TEXT
/***********************************************************************
FORMULA NAME: AH Global Absence Plan Use Rate Formula2
FORMULA TYPE: Global Absence Plan Use Rate
DESCRIPTION: This sample formula returns the Plan Use Rate. If an Individual is Paid on Hourly Basis his RateCode will
be Hourly else, it would be Annual Salary
Change History:
Name Date Comments
--------------------------------------------------------------------------------------------
XXXXXXX DD-MM-YYYY XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
--------------------------------------------------------------------------------------------
***********************************************************************/
/*=========== DATABASE ITEM DEFAULTS BEGIN =====================*/
DEFAULT for PER_ASG_HOURLY_SALARIED_CODE is 'H'
/*=========== DATABASE ITEM DEFAULTS ENDS======================*/
/*=========== FORMULA SECTION BEGIN======================*/
if (PER_ASG_HOURLY_SALARIED_CODE='H')
then ( rateCode='Hourly Rate')
else ( rateCode='Annual Salary Rate')
/*=========== FORMULA SECTION END======================*/
RETURN rateCode
SCREENSHOTS
SETUP STEPS
Each absence plan setup requires four Tabs to be filled namely:
a) PLAN ATTRIBUTES
Contains Details about Plan Name, Description, Legislative Data Group, Processing Level, Conversion Formula
Attached (used for Absence Duration calculation)
b) PARTICIPATION
Contains Details about Basic Plan Details, Enrollment and Termination Rules
c) ACCRUALS
Contains Details about Accrual Attributes like Accrual Formulas, Payment Percentage, Accrual Method, Accrual
Frequency.
d) ENTRIES AND BALANCES
Contains Details about Balance Updates, Rates and Payroll Integrations
Navigation is as shown below:
Login to Fusion Applications -> Click on Navigator -> Click on ‘Setup and Maintainenance’-> In “All Tasks” Search for
“Manage%Absence%Plan”
Click on Create Button and populate the following details:
LABEL VALUE
Effective As of Date 09/18/14
Legislation India
Plan Type Accrual
You may populate the following screen with above details
Populate Plan Attributes Tab:
This Tab Consists of 4 parts which are:
a) General Attributes
b) Plan Term
c) Legislative Information (Optional Used for Populating Legislative Specific Absence Information. Not Applicable
in this example)
d) Descriptive Information (Optional Used for Populating DFF Fields If Created for Absence Plan. Not Applicable in
this example)
Populate the following details in General Attributes Section as shown below:
General Attributes
LABEL VALUE
Plan XX AH Annual Absence Plan IN
Description Annual Absence Plan Created for India
Plan UOM Days
Legislative Data Group IN Legislative Data Group
Status Active
Enable Concurrent Entitlement Unchecked
Processing Level Assignment
Conversion Formula AH Global Absence Plan Duration Formula
Populate the following details in Plan Term Section as shown below:
Plan Term
LABEL VALUE
Type Calendar Year
Calendar
Start Month 01
Start Day 1
Use the above details and populate the Plan Attributes Tab and the screenshot would look like:
Populate Participation Tab:
This Tab Consists of 2 parts which are:
a) Enrollment Rules
b) Termination Rules
Populate the following details in Enrollment Rules Section as shown below:
Enrollment Rules
LABEL VALUE
Enrollment Start Rule As of Event
Waiting Period UOM Calendar Days
Duration 30
Populate the following details in Termination Rules Section as shown below:
Termination Rules
LABEL VALUE
Enrollment End Rule As of Event
On Employment Termination
LABEL VALUE
Positive Accrual Balances Checked
Negative Accrual Balance Checked
On Loss of Plan Eligibility
LABEL VALUE
Disburse Positive Balance Checked
Recover Negative Balance Checked
Use the above details and populate the Participation Tab and the screenshot would look like:
Populate Accruals Tab which consists of Accrual Attributes Section only.
Populate the following details in Accrual Attributes Section as shown below:
Accrual Attributes
LABEL VALUE
Accrual Definition Formula
Accrual Formula AH Global Absence Accrual Formula
Payment Percentage 100%
Accrual Method Incremental
Partial Accrual Period Formula
Accrual Vesting Rule Formula
Vesting Period Formula AH Global Absence Vesting Period For-
mula
Accrual Frequency Source Person Primary Frequency
Use the above details and populate the Accruals Tab and the screenshot would look like:
Populate Entries and Balances Tab.This Tab Consists of 3 Sections which are:
a) Balance Updates
b) Rates
c) Payroll Integration
Populate the following details in Balance Updates Section as shown below:
Balance Updates
LABEL VALUE
Discretionary Disbursements of Accrual Balance Checked
Accrual Balance Transfers Across Plans Checked
Other Adjustments Checked
Other Adjustment Reasons Clerical Error , Compensatory
Populate the following details in Rates Section as shown below:
Rates
LABEL VALUE
Absence Payment Rate Rule Formula
Formula AH Global Absence Plan Use Rate Selec-
tion Formula 1
Final Disbursement Rate Rule Formula
Formula AH Global Absence Use Rate Formula2
Discretionary Disbursement Rate Rule Formula
Formula AH Global Absence Plan Use Rate Selec-
tion Formula 1
Liability Rate Rule Formula
Formula AH Global Absence Use Rate Formula2
Populate the following details in Payroll Integration Section as shown below:
Payroll Integration
LABEL VALUE
Transfer absence payment information
for payroll processing
Checked
Element Annual Leave
Use the above details and populate the Entries and Balances Tab and the screenshot would look like:
If this check box is not selected (Element field will not show a field value of Annual Leave rather it will be
empty)
Once all the above setup is done Absence Plan Creation is complete.
An Overview of Fusion Absence Management Part 2 Absence Type Definition and Use
INTRODUCTION
This article is the second part of the series “An Overview of Fusion Absence Management”.
The first part titled: “ An overview of Fusion Absence Management Part 1 Absence Plan Definition and Use” can be found
at Accenture KX Site too.
Before we start to understand How to create an Absence Type first try to understand what a Absence Type is and why is it
required.
An absence type as the name suggests refers to different types of absences like Sick Leave, Annual Leave, Vacation Leave,
Marriage Leave, Compassionate Leave, Maternity leave, Paternity Leave and you can keep on expanding so on and so forth.
Basically in a nutshell, all the various reasons / events / activities for which a Leave Application may be raised can be
treated as Absence Type (context being Fusion Absence Management).
So before we jump into a typical business requirement and dig deep into how to fulfill the same let-us try to familiarize our-
selves with some of the most commonly used terms which would be referred in the ongoing article:
Absence Pattern
This could be defined as the broad level categorization of different leave types like General Leave, Illness, Injury … special
leave types.
In context of Fusion Absence Management there are 3 different types of Patterns (available as of today) namely :
a) Childbirth or Placement: Refers to specific leave type Childbirth (Maternity) and Placement ( Specific Assignment)
b) Generic Absence : Covers the largest scope in terms of leave types. Includes Annual Leave, Vacation Leave,
Compensatory Off, Marriage Leave, Optional
Leave, Compassionate Leave …etc.
c) Illness or Injury : As the name suggests leave patterns which depends on an individual’s physical condition.
This patterns includes Sick Leave,
Hospitalization leave to name a few.
Legislation
Geography / Country where this Absence Type is Maintained. For Example if we are doing Absence Type setup for India
Legislation would be India , if we are doing for USA it would be United States and so on....
Absence Type UOM
Unit of Measure which states in which unit (either of Days / Calendar Days / Hours) will this Absence Type will get meas-
ured
BUSINESS REQUIREMENT
Now since we are aware of some of the most commonly used terms for an absence types we should try to create one ab-
sence type. Requirement is to create an Absence Type of Pattern Generic Absence.
PERQUISITES:
You need to have an already created Absence Plan available to attach to the absence Type (we did same in Absence Article
1 so we are good) . Also we would assume that we have an absence reason already created in the application to use.
SETUP STEPS
In this example to keep things simpler we would only discuss about the Mandatory Details required to create an Absence
type (fields which are mandatory are generally highlighted with an asterisk mark beside them), A complete detail of all
fields could be covered in next article.
Navigation is as shown below:
Login to Fusion Applications ->
Click on Navigator -> Click on ‘Setup and Maintenance’-> In “All Tasks” Search for “Manage%Absence%Types”
Click on Go to Task Button
Click on Create Button and populate the following details:
LABEL VALUE
Effective as of Date 9/18/14
Legislation India
Pattern Generic Absence
You may populate the following screen with above details
Each absence plan setup requires four Tabs to be filled namely (screen-shot reference).
a) TYPE ATTRIBUTES
Contains Details about Type Name, Description, UOM, Legislative Data Group, Status, Duration Rules , Absence
Record Maintenance, fast formulas Conversion Formula , Validation Formula along with Eligibility Profile associ-
ated with a particular absence type
Populate the following values (displayed in tabular format below)
General Attributes
LABEL VALUE
Name XX AH Annual Absence Type IN
Description XX AH Annual Absence Type IN
UOM Calendar Days
Legislative Data Group India
Status Active
Duration Rules
LABEL VALUE
Minimum Duration Rule None
Maximum Duration Rule None
Partial Day Rule Unlimited
b) PLANS AND REASONS
Plans and Reasons ( Absence Plans)
LABEL VALUE
Plan XX AH Annual Absence Plan IN
Status Active
Priority 10
Contains Details about Effective Start Date, Plan, Status Priority as shown in below screenshot :
Also select an Absence Reason as shown:
Plans and Reasons (Absence Reasons)
LABEL VALUE
Reason Annual Leave
Linkage Reason No
Default No
The page after filling details should look like:
c) DISPLAY FEATURES
This page comes with default values populated and for the sake of simplicity let-us keep them as is the page ap-
pears as shown below
d) ACTION ITEMS
Used to configure any specific actions to be triggered / executed / performed whenever this leave type is applied.
Not applicable for current example hence ignored for now. We keep this page as blank as shown below;
Click on Save and Close Button
Once all the above setup is done Absence Type Creation is complete.
Chapter 6 - Fusion Fast Formulas
How-To Create a Global Absence Entry Validation Fast Formula in Fusion Applications
Customer has a requirement where-in they allow only individuals
a) Leave Duration should be wither Half / Full day.
b) This leave is only allowed up-to 3 childrens
c) You can only avail this leave if you have dependent/ adopted children
d) Leave needs to be applied within 1 year of childbirth
Details of the Custom **Error Message and their description below ( In tabular Format)
**All the above Error Messages are defined in 'Manage Messages' under Setup and Maintaineance
/******************************************************************************
FORMULA NAME: A2F_ANC_VALID_Paternity
FORMULA TYPE: Global Absence Entry Validation
DESCRIPTION: This formula returns the Paternity Leave Criteria. Only workers who have less than 3 dependent children are eligible
Change History:
Name Date Comments
-----------------------------------------------
Ashley Hardy 07-Apr-2015 Initial Version
*******************************************************************************/
DEFAULT_DATA_VALUE FOR PER_PER_CONTACT_PERSON_ID IS 0
DEFAULT_DATA_VALUE FOR PER_PER_CONTACT_CONTACT_TYPE IS ' '
DEFAULT_DATA_VALUE FOR PER_PER_CONTACT_DATE_OF_BIRTH IS '4712/12/31 00:00:00' (date)
DEFAULT_DATA_VALUE for ANC_PER_ABS_ENTRS_ABSENCE_ENTRY_ID_ARR is 0
DEFAULT FOR ANC_ABS_ENTRS_ABSENCE_TYPE_ID is 0
/*=========== DATABASE ITEM DEFAULTS END =====================*/
/*================ FORMULA SECTION BEGIN =======================*/
/*==============INPUTS SECTION BEGIN================*/
INPUTS ARE iv_start_date (date),
iv_end_date (date),
IV_TOTALDURATION
/*==============INPUTS SECTION BEGIN================*/
ln_pl_type_id = GET_CONTEXT(ABSENCE_TYPE_ID,0) /* pl stands for Paternity Leave */
ld_child_birth_date = TO_DATE('1951-01-01','yyyy-MM-dd')
ld_start_date = TO_DATE('1951-01-01','yyyy-MM-dd')
j = 1
l_new_duration = IV_TOTALDURATION
ln_child_count = 0
ln_rem = MOD(IV_TOTALDURATION,0.5)
IF (ln_rem <> 0)
THEN
(
VALID = 'N'
ERROR_MESSAGE = 'A2F_ANC_SG_ERR_DURCAL' /* 'Leave Duration should either be Half/Full Day.Please change absence start and end
dates accordingly' */
RETURN VALID,ERROR_MESSAGE
)
CHANGE_CONTEXTS(START_DATE=iv_start_date, END_DATE=iv_end_date)
(
i=PER_PER_CONTACT_PERSON_ID.FIRST(-1)
WHILE PER_PER_CONTACT_PERSON_ID.exists(i)
LOOP
(
if(PER_PER_CONTACT_CONTACT_TYPE[i] = 'C' or PER_PER_CONTACT_CONTACT_TYPE[i] = 'A')
then
(
ln_child_count = ln_child_count + 1
ld_child_birth_date = PER_PER_CONTACT_DATE_OF_BIRTH[i]
IF ( ld_child_birth_date < PER_PER_CONTACT_DATE_OF_BIRTH[i])
THEN
ld_child_birth_date = PER_PER_CONTACT_DATE_OF_BIRTH[i]
)
i= i+1
)
if(ln_child_count => 3 ) /*ln_child_count > 3*/
THEN
(valid = 'N'
ERROR_MESSAGE = 'A2F_ANC_A2F_ERR_PATERNITY' /*'This leave is only allowed upto 3 childrens'*/
RETURN valid,ERROR_MESSAGE
)
if (ln_child_count = 0)
THEN
(VALID = 'N'
ERROR_MESSAGE = 'A2F_ANC_A2F_ERR_PAT_0KIDS' /* 'You can only avail this leave if you have dependent/adopted children' */
RETURN VALID,ERROR_MESSAGE
)
else(
valid='Y'
)
)
CHANGE_CONTEXTS(START_DATE=ld_start_date, END_DATE=IV_START_DATE)
(
WHILE ANC_PER_ABS_ENTRS_ABSENCE_ENTRY_ID_ARR.exists(j)
LOOP
(
CHANGE_CONTEXTS (ABSENCE_ENTRY_ID = ANC_PER_ABS_ENTRS_ABSENCE_ENTRY_ID_ARR[j])
(
IF (ln_pl_type_id = ANC_ABS_ENTRS_ABSENCE_TYPE_ID)
THEN
(
IF (DAYS_BETWEEN(IV_START_DATE,ld_child_birth_date) > 365 OR DAYS_BETWEEN(IV_START_DATE,ld_child_birth_date) < 0)
THEN
(VALID = 'N'
ERROR_MESSAGE = 'A2F_ANC_A2F_FLEX_FROM_CHILDBIRTH' /* This leave needs to be applied within 1 year of chilbirth */
RETURN VALID,ERROR_MESSAGE
)
)
)
j=j+1
)
)
/*================ FORMULA SECTION END =======================*/
return VALID,ERROR_MESSAGE
Click on Edit Button and then select Correct as shown :
How-To Create a Global Absence Vesting Period Fast Formula in Fusion Applications
BUSINESS REQUIREMENT
Global Absence Vesting Period Formula is used when want to ensure what type of vesting (how long will an
employee accrue leave balance) but will not be allowed to apply for a leave.
For this specific example requirement is:
We have a DFF (Descriptive Flex Field) defined at the assignment screen which holds employee assignment
type namely 'Assignee', 'OTP' , 'Resident', 'Resident -Home'.....
The Requirement is:
A) There will be no Vesting Period if
1) the current assignment is First assignment and DFF value is either 'Assignee' , 'OTP' or 'Resident'
OR
2) the current assignment is Global Temporary Assignment and DFF value is either 'Assignee' ,
'OTP' or 'Resident'
B) There will be Vesting Period if
1) the current assignment is NOT First assignment and DFF value is neither of 'Assignee' , 'OTP' or
'Resident'
OR
2) the current assignment is NOT Global Temporary Assignment and DFF value is neither of 'As-
signee' , 'OTP' or 'Resident'
FORMULA CODE :
/********************************************************************
FORMULA NAME: A2F_ANC_AssigneeOTPResident_VESTING_1MONTH
FORMULA TYPE: Global Absence Vesting Period
DESCRIPTION: This sample formula removes the vesting period for Assignee/OTP/Resident
Name Date Comments
-----------------------------------------------------------------------------------------------------------------
Ashley Hardy 15-Jun-2015 Initial Version
Ashley Hardy 06-Jul-2015 Incorporate Changes Required for 'Global Temporary Assignment'
----------------------------------------------------------------------------------------------------------------
********************************************************************/
/*==============DATABASE ITEM DEFAULTS BEGIN =====================*/
DEFAULT for PER_ASG_REL_DATE_START is '1951/01/01 00:00:00' (date)
DEFAULT for PER_ASG_REL_ORIGINAL_DATE_OF_HIRE is '1951/01/01 00:00:00' (date)
DEFAULT for PER_PERSON_ENTERPRISE_HIRE_DATE is '1951/01/01 00:00:00' (date)
DEFAULT FOR PER_ASG_ATTRIBUTE5 IS ' '
DEFAULT FOR PER_ASG_ACTION_CODE is ' '
/*==============DATABASE ITEM DEFAULTS ENDS======================*/
/*================== FORMULA SECTION BEGIN =======================*/
IF ((PER_ASG_REL_DATE_START = PER_ASG_REL_ORIGINAL_DATE_OF_HIRE) OR (PER_ASG_ACTION_CODE =
'GLB_TEMP_ASG'))
THEN (
If (PER_ASG_ATTRIBUTE5 = 'Assignee')
OR (PER_ASG_ATTRIBUTE5 = 'OTP')
OR (PER_ASG_ATTRIBUTE5 = 'Resident')
then(
vestingUOM = 'M'
vestingUnits= 0
)
else(
vestingUOM = 'M'
vestingUnits=1
)
) else
(vestingUOM = 'M'
vestingUnits=1 )
/*=================== FORMULA SECTION END =======================*/
return vestingUOM,vestingUnits
SCREENSHOT:
Click on Edit Button and then select Correct as shown:
Creating Custom HCM Extracts in Fusion Applications
HCM Extracts and BI / OTBI / OBIA (currently enabled in on premise) are the most commonly used modes
via which data can be transferred from Fusion Applications to 3rd Party System.
While BI Publisher even OTBI and OBIA in same cases allows you to get the specific data set which is be-
ing desired by the third party system, we still need a robust outbound tool / mechanism to cater to all busi-
ness needs. Some important features being:
a) Dynamic File Name
b) Dynamic File Location
c) Capability to capture ‘Changed Data’ only feature
d) Capability to provide data into different formats like E-Text, XML, PDF, RTF
While it is agreed all this can be done using BI Publisher ( Using advanced Features like Bursting which al-
lows dynamic file name generation and also allows encryption too) still for large Data Set and for more co-
herent integration the preferred and most commonly used mechanism( as of today) is HCM Extract.
The literal meaning of HCM Extract as the name suggests is HR Output. ‘HR’ for HCM and Output for ‘Ex-
tract’ so HCM Extract means HR Output in simple terms i.e. when you get HR Data as Output from Fusion
Applications it is called HCM Extract.
Custom HCM Extract Creation: Available Options
There are three available options while creating Custom HCM Extract in a Fusion POD (Application Envi-
ronment):
A) Import Custom HCM Extract from another Fusion Instance
B) Make a copy of existing delivered extracts. Add/Edit/Delete/Modify/Extend the same and make a
Custom HCM Extract
C) Create a Custom HCM Extract from scratch
To make things simpler we would try to publish all three categories in three different articles which would
be posted soon. The article names (proposed) are:
A) How-to Migrate Custom HCM Extract
B) How-to Make a Copy of Existing Delivered HCM Extracts
C) How-to Create a Custom HCM Extract from scratch.
How-To Migrate Custom HCM Extract in Fusion Applications
Business Requirement
At times we have multiple instances and we intend to move one HCM Extract (created in Development) environment to another
instance ( UAT ) or even in Production.
We can use the Export Import feature then.
Export
Login to Fusion Applications, Navigate to ‘Data Exchange’ and then search for the custom worker extract you wish to export.
Click on the Export symbol and xml file gets downloaded as displayed:
IMPORT
Navigate to ‘Data Exchange’ as displayed:
Under Tasks -> HCM Extracts -> Manage Extract Definitions
Click on Import Extract Option
A new popup window opens which asks for the File Path as displayed:
Give a new name if you wish to
Once the import Process is complete you would be able to search for the Extract:
Data Extraction HCM Extracts or Reporting Tools Which one to use when & why
In Fusion Applications we have various methods of extracting data. The most popularly used ones being:
a) HCM Extracts
b) Fusion Reporting Tools (BIP, OTBI , OBIA also referred to as OTBI-E)
A very common question for any Technical Consultant is which one of the above mentioned mechanisms (be it either HCM
Extracts / BIP / OTBI / OBIA) are used for extraction.
But before going into the details let us try to understand what the above terms mean :
a) BIP
BIP stands for Business Intelligence Publisher
BIP Reports stands for Business Intelligence Publisher Reports
For technical consultant with Reports 6i or more advanced versions it is just a new name given in Fusion Applications.
These kind of reports comprises of :
i) Data Model
This is typically a name given to a Data Set which comprises of Data Set (which in turn is a name given to
a Data Source which could be with of SQL Query, LDAP Query, XML Query, Static Data…. )
Also has provision of adding separate placeholder columns, formula columns and other features
ii) Layout
This is a page/graphical area which shows how the report would look like.
This can comprise of Table, Letters, Logos, Icons, Images and what not.
Can have repeating and Non-Repeating Segments, XML Tags, Dynamic Values, Summary Columns…..
The layout can be any of the output formats like PDF, RTF, Excel, E-text, CSV………..
b) OTBI
OTBI Stands for Oracle Transactional Business Intelligence
Typically referred to as Drag and Drop Reporting (similar to Discoverer Reports)
This kind of Reports are created from specific subject areas (basically specific folder structure made up of logical
data attributes clubbed together and are associated with some specific areas of application like for Payroll we have
Payroll Real Time, Workforce Management Real Time … and so on
OTBI Agents are new features which works similar to like ( Oracle Alerts we had in EBS)
Also there are ways to combine 2 different subject areas using a common attribute (named as facts)
c) OBIA
OBIA stands for Oracle Business Intelligence Applications
Pre-seeded Analytics Reports
Details about Trends, Historical Analysis, Predictions
On-Premise Applications has these features enabled
Off late Oracle has planned to release it to Cloud Customers too renaming them as OTBI-E
d) HCM Extracts
This is the Oracle recommended way of data transfer from Fusion Applications to other 3rd party systems.
While this tool comprises of:
i) Define
Comprises of Define Tab (here we name the Extract Names and the parameters)
ii) Design
This is the section where we define the Extract Definition (HCM Data Objects as well as the Extract Attributes)
iii) Delivery Options
Different ways of delivery ( File Naming, Output Type, Delivery Frequency , Output Format, Layout …..)
In essence while it’s not impossible to create data extract for integration from either of the above mentioned op-
tions but HCM Extracts is preferred because of following reasons:
a) It is a mix and match of all above options
Design is OTBI + OBIA (you drag and drop extract attributes and they could be both real time attrib-
utes(OTBI) or historical extract attributes(OBIA)) . Deliver is BIP (you create layout, report, template)
Define is again BIP (allows you to have custom parameters)
b) This has DELTA extract features
So each new run can compare itself with previous run (depending on parameter value passed during define
extract phase) and provides only the changed data
Chapter 8: Other Miscellaneous Topics
FUSION APPLICATIONS – USER ROLE DETAIL REPORT
BUSINESS REQUIREMENT:
It is a very common requirement in almost all implementation where in the Stakeholders are interested to
know how many user accounts are there is the system along with the corresponding roles attached to them.
While oracle has delivered some seeded Reports which could be run from
‘Application Diagnostic Framework, screenshot below (Troubleshooting -> Run Diagnostic Tests)
ORACLE DELIVERED REPORTS:
1) User Roles Display
2) User and Role: Role Details
3) User and Role: User Details
NAVIGATION TO RUN DELIVERED REPORTS:
Login to Application -> Run Diagnostic Tests
After Running Reports :
DELIVERED REPORT 1 -> USER ROLES DISPLAY
User Roles Display: (Displays the Roles attached to procurement user)
Input Value : Sachin.Satpute
Output Screenshot :
DELIVERED REPORT 2 -> USER AND ROLE: ROLE DETAILS
User and Role: Role Details
Takes Role Name as input and displays all users who have the role attached to their user account. (Secured
i.e. if the individual who is running the Report has access to a specific Data Set individuals belonging to that
Data Set would only be displayed).
Input Value : Employee
Output Screenshot:
DELIVERED REPORT 3 -> USER AND ROLE: USER DETAILS
User and Role: User Details
Takes User Name as input and displays all roles attached to the user. (Secured i.e. if the individual who is
running the Report has access to a User Account being passed as input data would be displayed else no.)
Input value : Sachin.Satpute
Output Screen-shot:
NEED FOR A CUSTOM CONSOLIDATED REPORT
But if we need a consolidated report which will list all the users along with all the roles they have neither of
the delivered ones help.
So we need a Custom Report (Preferred O/P Format could be RTF, Interactive, Excel, PPT. )
Since we are planning to display a colorful report with different color Code Combination (using Conditional
Formatting feature we choose PPT Format for this example)
CUSTOM REPORT (NAME) -> USER AND ROLE DETAILS REPORT
SQL Used for User and Role Details Report:
select papf.person_number "PersonNumber", ppnf_emp.full_name "PersonName", pu_emp.user_start_date
"UserAccountStartDate", pu_emp.user_end_date "UserAccountEndDate", pu_emp.is_user_ac-
count_active "UserAccountStatus",
pu_emp.username "UserAccountName", pu_emp.is_user_ac-
count_suspended "IsUserAccountSuspended", pu_emp.user_distin-
guished_name "UserAccountInternalName", pur_emp.method_code "RoleProvi-
sioningMethod", pur_emp.is_user_role_active "IsUserRoleActive",
pur_emp.is_user_role_terminated "IsUserRoleTerminated",
Case
When (pur_emp.is_user_role_active = 'Yes' AND pur_emp.is_user_role_terminated = 'No' ) Then 'Active'
When (pur_emp.is_user_role_active = 'No' AND pur_emp.is_user_role_terminated = 'No') Then 'NeitherAc-
tiveNorTerminated'
When (pur_emp.is_user_role_active = 'Yes' AND pur_emp.is_user_role_terminated = 'Yes') Then 'Ac-
tiveAndTerminated'
When (pur_emp.is_user_role_active = 'No' AND pur_emp.is_user_role_terminated = 'Yes' ) Then
'InactiveAndNotTerminated' End as "UserRoleStatus",
pur_emp.role_start_date
"UserRoleStartDate", pur_emp.role_end_date
"UserRoleEndDate", prd_emp.abstract_role "Is-
RoleAAbstractRole", prd_emp.job_role "Is-
RoleAJobRole", prd_emp.data_role "IsRoleADa-
taRole",
prd_emp.is_role_active "IsRoleActive",
Case
When (prd_emp.abstract_role = 'Y' AND prd_emp.job_role = 'N' AND prd_emp.data_role = 'N' ) Then 'Abstract
Role'
When (prd_emp.abstract_role = 'N' AND prd_emp.job_role = 'Y' AND prd_emp.data_role = 'N' ) Then 'Job Role'
When (prd_emp.abstract_role = 'N' AND prd_emp.job_role = 'N' AND prd_emp.data_role = 'Y' ) Then 'Data
Role'
When (prd_emp.abstract_role is NULL AND prd_emp.job_role is NULL AND prd_emp.data_role is NULL ) Then '-
NA--'
End as "UserRoleType",
prd_emp.role_common_name "RoleCommonName", prd_emp.mul-
titenancy_common_name "MultitenancyCommonName", prd_emp.role_distin-
guished_name "IsRoleDistinguishedName", prdt_emp.role_name "UserRoleName",
prdt_emp.RoleDescription
FROM per_all_people_f papf
JOIN
(
SELECT ppnf.full_name,
ppnf.person_id
FROM per_person_names_f ppnf
WHERE ppnf.name_type = 'GLOBAL'
AND TRUNC(SYSDATE) BETWEEN ppnf.effective_start_date AND ppnf.effective_end_date
) ppnf_emp ON (
ppnf_emp.person_id = papf.person_id
AND TRUNC(SYSDATE) BETWEEN papf.effective_start_date AND papf.effective_end_date
)
LEFT OUTER JOIN
(
SELECT pu.person_id,
pu.user_id, pu.username, to_char(pu.start_date,'DD-
MM-RRRR') user_start_date, to_char(pu.end_date,'DD-MM-
RRRR') user_end_date,
DECODE(pu.active_flag,'N','Inactive','Y','Active') is_user_account_active, DE-
CODE(pu.suspended,'N','No','Y','Yes') is_user_account_suspended, pu.user_distinguished_name
FROM per_users pu
) pu_emp
ON (pu_emp.person_id = papf.person_id AND TRUNC(SYSDATE) BETWEEN papf.effective_start_date AND
papf.effective_end_date)
LEFT OUTER JOIN
(
SELECT pur.user_id,
pur.role_id,
pur.role_guid,
DECODE(pur.method_code,'A','Automatic','M','Manually','E','Externally Provisioned') method_code,
DECODE(pur.active_flag,'N','No','Y','Yes') is_user_role_active, DE-
CODE(pur.terminated_flag,'N','No','Y','Yes') is_user_role_terminated,
to_char(pur.start_date,'DD-MM-RRRR') role_start_date,
to_char(pur.end_date,'DD-MM-RRRR') role_end_date
FROM per_user_roles pur
) pur_emp
ON (pu_emp.user_id = pur_emp.user_id)
JOIN
(
SELECT prd.role_id,
prd.role_guid,
prd.abstract_role,
prd.job_role,
prd.data_role,
DECODE(prd.active_flag,'N','No','Y','Yes') is_role_active,
prd.role_common_name,
prd.multitenancy_common_name,
prd.role_distinguished_name
FROM per_roles_dn prd
) prd_emp
ON (pur_emp.role_id = prd_emp.role_id AND pur_emp.role_guid = prd_emp.role_guid)
JOIN
(
SELECT prdt.role_id,
prdt.role_name,
prdt.description RoleDescription,
prdt.source_lang
FROM per_roles_dn_tl prdt
) prdt_emp
ON (prd_emp.role_id = prdt_emp.role_id AND pur_emp.role_id = prdt_emp.role_id AND
prdt_emp.source_lang = 'US' )
WHERE papf.person_number = nvl(:pn_person_number, papf.person_number)
AND TRUNC (SYSDATE) BETWEEN papf.effective_start_date AND papf.effective_end_date
CONDITIONAL FORMATTING
The different color code feature can be added using the Conditional Formatting fields
(Highlight and Manage Formats)
Report Output
Scheduling the Report
ESS JOB CREATION
PARAMETER DEFINITION
RUNNING SCHEDULED JOB
RUNNING SCHEDULED JOB FOR ONE PERSON
Person Number: 10
FusionAbsenceManagementREL92-SampleFastFormulas
/******************************************************************************
FORMULA NAME: XX_ANC_ACCRUAL_XX_ExtendedChildCare
FORMULA TYPE: Global Absence Accrual
DESCRIPTION: This formula returns the accrual
for employees enrolled in Extended Child Care
Change History:
Name Date Comments
-----------------------------------------------
Ashish Harbhajanka 10-Apr-2015 Initial Version
*******************************************************************************/
DEFAULT FOR PER_ASG_FTE IS 1
DEFAULT FOR PER_REL_ORIGINAL_DATE_OF_HIRE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR PER_REL_ACTUAL_TERMINATION_DATE IS '4712/12/31 00:00:00' (date)
ln_accrual = 0
ld_effective_date=PER_REL_ORIG-
INAL_DATE_OF_HIRE
ld_emp_term_date =PER_REL_AC-
TUAL_TERMINATION_DATE
ld_current_date = GET_CON-
TEXT(EFFEC-
TIVE_DATE,'4712/12/31 00:00:00'
(date)) ld_term_start_date =
TO_DATE('01-01-
'||TO_CHAR(ld_effective_date,
'rrrr'),'dd-mm-rrrr') ld_term_end_date
= TO_DATE('31-12-
'||TO_CHAR(ld_effective_date,
'rrrr'),'dd-mm-rrrr') ld_term_duration
= DAYS_BETWEEN
(ld_term_end_date,
ld_term_start_date) ld_hire_year =
TO_NUMBER(TO_CHAR(ld_effec-
tive_date,'rrrr')) ld_curr_year =
TO_NUMBER(TO_CHAR(ld_cur-
rent_date,'rrrr'))
accrual = 0
IF (ld_curr_year = ld_hire_year)
THEN
(
IF (TO_NUMBER(TO_CHAR(ld_effective_date,'MM')) < 7)
THEN
(
accrual = 2
)
IF (TO_NUMBER(TO_CHAR(ld_effective_date,'MM')) >= 7 AND
TO_NUMBER(TO_CHAR(ld_effective_date,'MM')) <= 12) THEN
(
accrual = 1
)
)
IF (ld_curr_year > ld_hire_year)
THEN
(accrual = 2)
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified
Fusion Apps Demystified

More Related Content

What's hot

Payroll costing details Oracle Fusion Cloud HCM
Payroll costing details Oracle Fusion Cloud HCMPayroll costing details Oracle Fusion Cloud HCM
Payroll costing details Oracle Fusion Cloud HCMFeras Ahmad
 
The Goal with performance details Oracle Fusion Cloud
The Goal with performance details Oracle Fusion CloudThe Goal with performance details Oracle Fusion Cloud
The Goal with performance details Oracle Fusion CloudFeras Ahmad
 
Query all roles and duties and privileges Oracle Fusion Cloud
Query all roles and duties and privileges Oracle Fusion CloudQuery all roles and duties and privileges Oracle Fusion Cloud
Query all roles and duties and privileges Oracle Fusion CloudFeras Ahmad
 
Hcm extracts error
Hcm extracts errorHcm extracts error
Hcm extracts errorFeras Ahmad
 
Query Pre Payment details Oracle Fusion Cloud
Query Pre Payment details Oracle Fusion CloudQuery Pre Payment details Oracle Fusion Cloud
Query Pre Payment details Oracle Fusion CloudFeras Ahmad
 
How to Debug the Fast Formula.pdf
How to Debug the Fast Formula.pdfHow to Debug the Fast Formula.pdf
How to Debug the Fast Formula.pdfFeras Ahmad
 
Oracle Fusion Payroll tracing for debugging
Oracle Fusion Payroll tracing for debuggingOracle Fusion Payroll tracing for debugging
Oracle Fusion Payroll tracing for debuggingFeras Ahmad
 
How to debug a fast formula
How to debug a fast formulaHow to debug a fast formula
How to debug a fast formulaFeras Ahmad
 
Oracle fusion hrms_for_uae_hr_setup_white_paper_rel11
Oracle fusion hrms_for_uae_hr_setup_white_paper_rel11Oracle fusion hrms_for_uae_hr_setup_white_paper_rel11
Oracle fusion hrms_for_uae_hr_setup_white_paper_rel11Feras Ahmad
 
DBI database Items Query Oracle Fusion Cloud
DBI database Items Query Oracle Fusion CloudDBI database Items Query Oracle Fusion Cloud
DBI database Items Query Oracle Fusion CloudFeras Ahmad
 
How to create payslip through self service
How to create payslip through self serviceHow to create payslip through self service
How to create payslip through self serviceFeras Ahmad
 
Oracle fusion hrms_for_uae_payroll_setup_white_paper_rel11
Oracle fusion hrms_for_uae_payroll_setup_white_paper_rel11Oracle fusion hrms_for_uae_payroll_setup_white_paper_rel11
Oracle fusion hrms_for_uae_payroll_setup_white_paper_rel11Feras Ahmad
 
Oracle Fusion Cloud Absence Management
Oracle Fusion Cloud Absence ManagementOracle Fusion Cloud Absence Management
Oracle Fusion Cloud Absence ManagementFeras Ahmad
 
Otl Oracle Time and Labor
Otl Oracle Time and LaborOtl Oracle Time and Labor
Otl Oracle Time and LaborFeras Ahmad
 
15 maintain worker directories
15 maintain worker directories15 maintain worker directories
15 maintain worker directoriesmohamed refaei
 
Oracle Time and Labor (OTL) Setup for Project
Oracle Time and Labor (OTL) Setup for ProjectOracle Time and Labor (OTL) Setup for Project
Oracle Time and Labor (OTL) Setup for Projectiavinashpatel
 
Dynamic date parameters in bi report
Dynamic date parameters in bi reportDynamic date parameters in bi report
Dynamic date parameters in bi reportFeras Ahmad
 

What's hot (20)

Payroll costing details Oracle Fusion Cloud HCM
Payroll costing details Oracle Fusion Cloud HCMPayroll costing details Oracle Fusion Cloud HCM
Payroll costing details Oracle Fusion Cloud HCM
 
The Goal with performance details Oracle Fusion Cloud
The Goal with performance details Oracle Fusion CloudThe Goal with performance details Oracle Fusion Cloud
The Goal with performance details Oracle Fusion Cloud
 
Query all roles and duties and privileges Oracle Fusion Cloud
Query all roles and duties and privileges Oracle Fusion CloudQuery all roles and duties and privileges Oracle Fusion Cloud
Query all roles and duties and privileges Oracle Fusion Cloud
 
Hcm extracts error
Hcm extracts errorHcm extracts error
Hcm extracts error
 
Query Pre Payment details Oracle Fusion Cloud
Query Pre Payment details Oracle Fusion CloudQuery Pre Payment details Oracle Fusion Cloud
Query Pre Payment details Oracle Fusion Cloud
 
How to Debug the Fast Formula.pdf
How to Debug the Fast Formula.pdfHow to Debug the Fast Formula.pdf
How to Debug the Fast Formula.pdf
 
Oracle Fusion Payroll tracing for debugging
Oracle Fusion Payroll tracing for debuggingOracle Fusion Payroll tracing for debugging
Oracle Fusion Payroll tracing for debugging
 
How to debug a fast formula
How to debug a fast formulaHow to debug a fast formula
How to debug a fast formula
 
Oracle fusion hrms_for_uae_hr_setup_white_paper_rel11
Oracle fusion hrms_for_uae_hr_setup_white_paper_rel11Oracle fusion hrms_for_uae_hr_setup_white_paper_rel11
Oracle fusion hrms_for_uae_hr_setup_white_paper_rel11
 
DBI database Items Query Oracle Fusion Cloud
DBI database Items Query Oracle Fusion CloudDBI database Items Query Oracle Fusion Cloud
DBI database Items Query Oracle Fusion Cloud
 
How to create payslip through self service
How to create payslip through self serviceHow to create payslip through self service
How to create payslip through self service
 
Oracle fusion hrms_for_uae_payroll_setup_white_paper_rel11
Oracle fusion hrms_for_uae_payroll_setup_white_paper_rel11Oracle fusion hrms_for_uae_payroll_setup_white_paper_rel11
Oracle fusion hrms_for_uae_payroll_setup_white_paper_rel11
 
Uae absence whitepaper
Uae absence whitepaperUae absence whitepaper
Uae absence whitepaper
 
Oracle Fusion Cloud Absence Management
Oracle Fusion Cloud Absence ManagementOracle Fusion Cloud Absence Management
Oracle Fusion Cloud Absence Management
 
Otl Oracle Time and Labor
Otl Oracle Time and LaborOtl Oracle Time and Labor
Otl Oracle Time and Labor
 
BP010 Core HR
BP010 Core HRBP010 Core HR
BP010 Core HR
 
15 maintain worker directories
15 maintain worker directories15 maintain worker directories
15 maintain worker directories
 
23 workflow approvals
23 workflow approvals23 workflow approvals
23 workflow approvals
 
Oracle Time and Labor (OTL) Setup for Project
Oracle Time and Labor (OTL) Setup for ProjectOracle Time and Labor (OTL) Setup for Project
Oracle Time and Labor (OTL) Setup for Project
 
Dynamic date parameters in bi report
Dynamic date parameters in bi reportDynamic date parameters in bi report
Dynamic date parameters in bi report
 

Similar to Fusion Apps Demystified

A Brief Overview of HCM Data Loader Next Generation Tool For HCM Data Convers...
A Brief Overview of HCM Data Loader Next Generation Tool For HCM Data Convers...A Brief Overview of HCM Data Loader Next Generation Tool For HCM Data Convers...
A Brief Overview of HCM Data Loader Next Generation Tool For HCM Data Convers...Ashish Harbhajanka
 
Oracle Fusion HCM vs E-Business Suite HRMS
Oracle Fusion HCM vs E-Business Suite HRMSOracle Fusion HCM vs E-Business Suite HRMS
Oracle Fusion HCM vs E-Business Suite HRMSFeras Ahmad
 
Collaborate 15 White Paper Implementing Oracle Fusion Payroll
Collaborate 15 White Paper Implementing Oracle Fusion PayrollCollaborate 15 White Paper Implementing Oracle Fusion Payroll
Collaborate 15 White Paper Implementing Oracle Fusion PayrollWilliam Stratton
 
Admin Hacks for Users and Admins Sanity
Admin Hacks for Users and Admins SanityAdmin Hacks for Users and Admins Sanity
Admin Hacks for Users and Admins SanityKeith Brooks
 
Framework for Online Software Evolution FOSE 04AUG22.pdf
Framework for Online Software Evolution FOSE 04AUG22.pdfFramework for Online Software Evolution FOSE 04AUG22.pdf
Framework for Online Software Evolution FOSE 04AUG22.pdfPutcha Narasimham
 
File based loader FBL Oracle Fusion
File based loader FBL Oracle FusionFile based loader FBL Oracle Fusion
File based loader FBL Oracle FusionFeras Ahmad
 
Q2 2019 EC Platform Quick Review by Deloitte Germany
Q2 2019 EC Platform Quick Review by Deloitte GermanyQ2 2019 EC Platform Quick Review by Deloitte Germany
Q2 2019 EC Platform Quick Review by Deloitte GermanyChristoph Pohl
 
H1 2021 EC-Platform Quick Review by Deloitte Germany
H1 2021 EC-Platform Quick Review by Deloitte GermanyH1 2021 EC-Platform Quick Review by Deloitte Germany
H1 2021 EC-Platform Quick Review by Deloitte GermanyChristoph Pohl
 
AD303: Extreme Makeover – IBM® Lotus® Domino® Application Edition
AD303: Extreme Makeover – IBM® Lotus® Domino® Application EditionAD303: Extreme Makeover – IBM® Lotus® Domino® Application Edition
AD303: Extreme Makeover – IBM® Lotus® Domino® Application EditionRay Bilyk
 
Q3 2019 EC and Platform Quick Preview by Deloitte Germany
Q3 2019 EC and Platform Quick Preview by Deloitte GermanyQ3 2019 EC and Platform Quick Preview by Deloitte Germany
Q3 2019 EC and Platform Quick Preview by Deloitte GermanyChristoph Pohl
 
Oracle Human Capital Management Setup Document
Oracle Human Capital Management Setup DocumentOracle Human Capital Management Setup Document
Oracle Human Capital Management Setup DocumentRajendra Gudla
 
HCL Sametime 12 Corporate Branding - step-by-step
HCL Sametime 12  Corporate Branding - step-by-stepHCL Sametime 12  Corporate Branding - step-by-step
HCL Sametime 12 Corporate Branding - step-by-stepAles Lichtenberg
 
Getting Started with FDMEE
Getting Started with FDMEEGetting Started with FDMEE
Getting Started with FDMEEAmit Soni
 
Forms Playback: Unlocking Oracle's Hidden Tool for Fast Dataloads
Forms Playback: Unlocking Oracle's Hidden Tool for Fast DataloadsForms Playback: Unlocking Oracle's Hidden Tool for Fast Dataloads
Forms Playback: Unlocking Oracle's Hidden Tool for Fast DataloadsNikunj Sanghvi
 

Similar to Fusion Apps Demystified (20)

A Brief Overview of HCM Data Loader Next Generation Tool For HCM Data Convers...
A Brief Overview of HCM Data Loader Next Generation Tool For HCM Data Convers...A Brief Overview of HCM Data Loader Next Generation Tool For HCM Data Convers...
A Brief Overview of HCM Data Loader Next Generation Tool For HCM Data Convers...
 
Oracle Fusion HCM vs E-Business Suite HRMS
Oracle Fusion HCM vs E-Business Suite HRMSOracle Fusion HCM vs E-Business Suite HRMS
Oracle Fusion HCM vs E-Business Suite HRMS
 
Collaborate 15 White Paper Implementing Oracle Fusion Payroll
Collaborate 15 White Paper Implementing Oracle Fusion PayrollCollaborate 15 White Paper Implementing Oracle Fusion Payroll
Collaborate 15 White Paper Implementing Oracle Fusion Payroll
 
how to change person number.pdf
how to change person number.pdfhow to change person number.pdf
how to change person number.pdf
 
how to change person number.pdf
how to change person number.pdfhow to change person number.pdf
how to change person number.pdf
 
Admin Hacks for Users and Admins Sanity
Admin Hacks for Users and Admins SanityAdmin Hacks for Users and Admins Sanity
Admin Hacks for Users and Admins Sanity
 
Framework for Online Software Evolution FOSE 04AUG22.pdf
Framework for Online Software Evolution FOSE 04AUG22.pdfFramework for Online Software Evolution FOSE 04AUG22.pdf
Framework for Online Software Evolution FOSE 04AUG22.pdf
 
File based loader FBL Oracle Fusion
File based loader FBL Oracle FusionFile based loader FBL Oracle Fusion
File based loader FBL Oracle Fusion
 
Q2 2019 EC Platform Quick Review by Deloitte Germany
Q2 2019 EC Platform Quick Review by Deloitte GermanyQ2 2019 EC Platform Quick Review by Deloitte Germany
Q2 2019 EC Platform Quick Review by Deloitte Germany
 
ISI Institute E-Services TP 3
ISI Institute E-Services TP 3 ISI Institute E-Services TP 3
ISI Institute E-Services TP 3
 
H1 2021 EC-Platform Quick Review by Deloitte Germany
H1 2021 EC-Platform Quick Review by Deloitte GermanyH1 2021 EC-Platform Quick Review by Deloitte Germany
H1 2021 EC-Platform Quick Review by Deloitte Germany
 
AD303: Extreme Makeover – IBM® Lotus® Domino® Application Edition
AD303: Extreme Makeover – IBM® Lotus® Domino® Application EditionAD303: Extreme Makeover – IBM® Lotus® Domino® Application Edition
AD303: Extreme Makeover – IBM® Lotus® Domino® Application Edition
 
Q3 2019 EC and Platform Quick Preview by Deloitte Germany
Q3 2019 EC and Platform Quick Preview by Deloitte GermanyQ3 2019 EC and Platform Quick Preview by Deloitte Germany
Q3 2019 EC and Platform Quick Preview by Deloitte Germany
 
Homestead Weather workshop
Homestead Weather workshopHomestead Weather workshop
Homestead Weather workshop
 
Oracle Human Capital Management Setup Document
Oracle Human Capital Management Setup DocumentOracle Human Capital Management Setup Document
Oracle Human Capital Management Setup Document
 
HCL Sametime 12 Corporate Branding - step-by-step
HCL Sametime 12  Corporate Branding - step-by-stepHCL Sametime 12  Corporate Branding - step-by-step
HCL Sametime 12 Corporate Branding - step-by-step
 
Getting Started with FDMEE
Getting Started with FDMEEGetting Started with FDMEE
Getting Started with FDMEE
 
Basics of fdmee
Basics of fdmeeBasics of fdmee
Basics of fdmee
 
Forms Playback: Unlocking Oracle's Hidden Tool for Fast Dataloads
Forms Playback: Unlocking Oracle's Hidden Tool for Fast DataloadsForms Playback: Unlocking Oracle's Hidden Tool for Fast Dataloads
Forms Playback: Unlocking Oracle's Hidden Tool for Fast Dataloads
 
Fi dev fs_83_gl mass upload
Fi dev fs_83_gl mass uploadFi dev fs_83_gl mass upload
Fi dev fs_83_gl mass upload
 

Fusion Apps Demystified

  • 1. FUSION APPS DEMYSTIFIED WRITTEN BY: ASHISH HARBHAJANKA EMAIL: ASHISH1234U@GMAIL.COM A Book by Ashish Harbhajanka (Evangelist, Cloud Consultant, Solution Architect) explaining the core concepts of Fusion Applications. Contains Detailed Technical Information, along with Business Requirement, Implementation Logic, Worked Examples, Screenshots, Analysis, Justifications and many more…. Email: ashish1234u@gmail.com This Book is an Attempt by me to explain some of the very basic concepts about few which are divided into several chapters as below: Introduction of “Why to Adopt Fusion Applications” Chapter 1: HCM Data Loader Chapter 2: BIP Reports Chapter 3: OTBI Reports Chapter 4: Creating Custom ESS Jobs in Fusion Applications Chapter 5: Fusion Absence Management Chapter 6: Fusion Fast Formulas Chapter 7: Fusion HCM Extracts Chapter 8: Other Topics
  • 2. Why to Adopt Fusion Applications INTRODUCTION Fusion as the word suggests stand for Culmination / Mix / Combination. In context of Oracle, Fusion is referred as Fusion Applications. So Why Fusion Applications ? Before that let’s understand What is Fusion Applications ? Fusion Application is a new Oracle Product to cater to ERP Needs. But we already have so many ERP Applications. Some of the most popularly used being EBS (E-Business Suite), PeopleSoft, JDEdwards to name a few. So why a new ERP application to cater to business needs. The answer is : Fusion Applications is an attempt ( and for that matter a very popular and widely accepted one) by Oracle . It takes the best features from EBS and PeopleSoft and does makes life simpler for Business Users and (Both Functional and Technical) Implementation Consultants .Lets try to get into more details of the same . We would categorize this discussion into two broad categories namely: a) Business Reasons ( Details about why should Business adopt Fusion) b) Functional Reasons ( Details about why should Functional Consultant adopt Fusion) c) Technical Reasons ( Details about why should Technical Consultant adopt Fusion) BUSINESS REASONS i) Easy to use ii) Better Look and Feel iii) Better Functionality iv) Better User Experience FUNCTIONAL REASONS i) Configuration is simpler ( Most configurations from ‘Setup and Maintainenance’)
  • 3. Setup and Maintenance Most of the setups start with Manage% ( screenshot below) ii) Configuration is based on Train Stop Models ( First Step guides you to second step and so on) Train Stops (First Step Takes you to second step and so on ) iii) Allows What IF Scenarios (Manage Enterprise Structures, Allows Multiple Combination but Loads just one) Below Screenshots gives details of creating Enterprise Structures ( and then to view to Technical Summary Report). This would not get loaded but would be used for comparative analysis. Screenshots displaying what-if scenarios (ESC Setup Example).
  • 4. Example of WHAT IF SCENARIO (Using Enterprise Structure Configurator) STEP 1: MANAGE ENTERPRISE STEP 2: MANAGE DIVISONS STEP 3: MANAGE LEGAL ENTITIES STEP 4: CREATE BUSINESS UNITS STEP 5: MANAGE BUSINESS UNITS
  • 5. STEP 6: MANAGE REFERENCE DATA SETS STEP 7: MANAGE BUSINESS UNIT SET ASSIGNMENT STEP 8: MANAGE LOCATION REFERENCE SET INTERVIEW RESULTS
  • 7. CLICK ON DOWNLOAD TECHNICAL SUMMARY REPORT TO GET PDF REPORT REPORT SCREENSHOTS
  • 8.
  • 9.
  • 10. We can configure multiple such Enterprise Values and compare before loading one. So we can have WHAT IF scenarios. This feature is not supported in older Legacy Systems ( EBS / PPLSOFT). TECHNICAL REASONS Broad Responsibilities of any Technical Resource on any ERP Implementations are : A) INBOUND INTEGRATION (HDL FROM RELEASE 10 MAKES LIFE SIMPLER, DATA LOAD ON BUTTON CLICK) B) REPORTING (BIP / OTBI / OBIA) C) OUTBOUND INTEGRATION (HCM EXTRACTS) All the above three are very easy to implement in Fusion HCM. So, It is for all the above stated reasons we should have Fusion Applications. Happy Adop- tion…….Cheers……
  • 11. Chapter 1: HCM Data Loader What is HCM Data Loader Why to Use HCM Data Loader How-to Configure your Fusion Applications Instance (POD) to Enable Use of HCM Data Loader What is HCM Data Loader INTRODUCTION HCM Data Loader aka (also known as ) HDL is the next generation Data Loading Tool used in Fusion Ap- plications. Mostly used in all new implementation starting July 2015 this tool has tremendously advanced features com- pared to its predecessor FBL (File Based Loader). In this article we would try to understand what HDL is and also a brief understanding of key concepts asso- ciated with the same. Role required for using HCM Data Loader is Human Capital Management Integration Specialist So without much ado let’s begin…. MAJOR ENHANCEMENTS OVER FBL 1. Bulk loading of HCM data from any source 2. Data-migration or incremental updates 3. Flexible, pipe-delimited file format 4. Comprehensive bulk loading capabilities 5. Automated and user managed loading 6. Stage Table Maintenance While the above 6 are the ones mostly stated and popularly advertised features I have a slightly different view and they are: 1. BULK LOADING OF HCM DATA FROM ANY SOURCE This point to me doesn’t seems valid as FBL also used to do the same thing and hence I will discard this 2. DATA MIGRATION OR INCREMENTAL UPDATES FBL does the same but if you have say ‘N’ records for an employee and you want to add one more records you need to pass all N+1 records.Using HDL you would be required to just pass the (N+1) Th record so a major enhancement 3. FLEXIBLE, PIPE-DELIMITED FILE FORMAT Available in FBL too hence discarded again 4. COMPREHENSIVE BULK LOADING CAPABILITIES A very new advanced and enhanced feature 5. AUTOMATED AND USER MANAGED LOADING FBL can also be automated using web service call hence again discarded. 6. STAGE TABLE MAINTAINENANCE
  • 12. This again was in FBL too hence discarded again. So now we will primarily discuss about 2 points namely: a) DATA MIGRATION OR INCREMENTAL UPDATES b) COMPREHENSIVE BULK LOADING CAPABILITIES. DATA MIGRATION OR INCREMENTAL UPDATES We will take an example of various events in an individual’s life and co-relate the same as Data Transac- tions. Details of same explained below: HIRE AN EMPLOYEE Ms. Sandra Mora is a lady who joins a company and becomes employee on 15 Jun 2003. She gets a unique identifier (Like SSN for US, PAN Card for India to uniquely identify an individual, similarly each company has a unique identifier to identify an employee this unique identifier is referred to as Employee NUMBER) no 12345. MARITAL STATUS CHANGE She gets married on 21st Aug 2006 and undergoes following changes in her employee record: 1) Title: Gets changed from Ms to Mrs. 2) Last Name: Her Last Name gets changed from “Mora” to “Bjork” 3) Email Address: Her email address gets changed from Sandra.mora@abc.net TO Sandra.bjork@abc.net She as a result of this change the previous record (Hire an Employee) gets end-dated on 20th Aug 2003 and a new record gets created on 21st Aug 2006. MIDDLE NAME CHANGE She gets a middle name added (she decided to have her husband’s first name added in her name on 16th July 2008) and a new record gets created. 1) Middle Name: Gets changed from to ALBERT FTE CAPACITY CHANGE Starting 25th Sep 2009 she starts working only on 4 days a week instead of initial 5 days a week so her Full Time Equivalent (FTE) gets changed from 1 (Actual Days Worked in a Week (5) / Total Working Days in a Week (5)) to New Value 0.8 (Actual Days Worked in a Week (4) / Total Working Days in a Week (5)) 1) FTE Capacity Change: Gets changed from 1 to 0.8 EMAIL ADDRESS CHANGE She undergoes a email address change as on 17th March 2012 2) Email Address: Gets changed from SANDRA.BJORK@ABC.NET to SANDRA.BARON@ABC.NET MIDDLE NAME CHANGE She gets a middle name added (she decided to have her father’s first name added in her name on 12th Dec 2003) and a new record gets created. Middle Name: Gets changed from ALBERT to FRANK
  • 14. DATA LOADER PROCESS FLOW DIAGRAM HCM DATA LOADER SUPPORTED BUSINESS OBJECTS
  • 15. FLEXIBLE PIPE-DELIMITED FILE FORMAT AUTOMATED OR USER MANAGED PROCESSING IMPORT AND LOAD DATA PROGRESS ICONS
  • 16. FILE LINE COUNTS OBJECT COUNTS OBJECT ERRORS STAGE TABLE MAINTAINENANCE ( DATA EXCHANGE -> DELETE STAGE TABLE DATA)
  • 17. HDL FEATURE GUIDELINES WHILE PERFORMING CONVERSION : STEP 1 -> CONFIGURE SOURCE SYSTEM OWNER There could be multiple sources from which data can be migrated to Fusion, hence a Source System Owner needs to be configured for unique identification of Legacy Data Source. Below screenshot shows how to configure the same.
  • 18. WHILE PERFORMING CONVERSION: STEP 2 -> CONFIGURE HCM DATA LOADER HCM DATA LOADER : ERROR REPORTS GENERATION USING DELIVERED HCM EXTRACTS As with all delivered HCM Extracts, it is recommended that you make a copy of the HCM Data Loader Data Set Summary extract and alter the output to your requirements. Navigate to the Manage Extract Definitions task available from the Data Exchange work area. Query the HCM Data Loader Data Set Summary extract. You click the copy icon to copy the seeded extract, supply your name for the copied extract. Once your copy is successfully created you can retrieve it by searching for it by name. Click on the name in the Search Results to make your required changes IMPLEMENTATION DECISION POINTS Last but not the least “Human Capital Management Integration Specialist is the Role Required to Per- form Conversion.” . That brings me to end of the topic.
  • 19. Why to Use HCM Data Loader  Customers currently provisioned on Release 9 will require a configuration change.  All environments provisioned in Release 10 will be defaulted to HDL.  Existing Customers may continue using File Based Loader (FBL) but should begin evaluating HDL to plan a migration in the future, where applicable.  There are a few scenarios where HDL may not be recommended, and an exception may be consid- ered, for both, existing and new Customers. SITUATIONS WHERE HCM DATA LOADER MAY NOT BE RECOMMENDED  An existing customer using File-Based Loader who purchases additional test environment that is cre- ated on R10.  The customer must log an SR to change the default setting of Full to Limited to match other environ- ments.  Customers with PeopleSoft Integration.  Customers with Taleo Integration via Taleo Connect Client (TCC) and File-Based Loader. MIGRATING FROM FILE-BASED LOADER TO HCM DATA LOADER  Is File-Based Loader used for migration only? If so, once migration is complete, then HCM Data Loader could be considered.  Is File-Based Loader used for ongoing integration? If so, then there will need to be rework of pro- cesses and a cutover decision.  How are File-Based Loader data files generated? Whatever method is used for generating the File- Based Loader data files will need to be reworked to generate the correct HCM Data Loader format.  The complexity of the integration will need to be taken into account to determine who does the re- work of the extract mechanism.  Are you loading objects outside of File-Based Loader and HCM Spreadsheet Data Loader (via SR requested scripts)? If this is causing delays and issues related to lack of automation, then HCM Data Loader should be considered.  Are there users who load data using HCM Spreadsheet Data Loader? A move to HCM Data Loader in R10 would disable this  Functionality, so it would probably be worth waiting for spreadsheet support. HCM Data Loader mi- gration should be treated as an implementation with a proper project plan. File-Based Loader GUID values can continue to be used with HCM Data Loader. A process can be run to convert the File- Based Loader GUID into a source key that HCM Data Loader can recognize.  HR spreadsheet loaders in the Data Exchange work area will not be available to use in conjunction with HCM Data Loader  HCM Data Loader and File-Based Loader cannot be used at the same time for objects supported by both.  Payroll batch loader is still required for some payroll object loads.  Environment refresh will overwrite HCM Data Loader settings if the source environment uses File- Based Loader. You will have to follow the process again to enable HCM Data Loader and convert File-Based Loader GUIDs and source keys.  Once HCM Data Loader is enabled in a test environment, no additional File-Based Loader data load testing will be possible.
  • 20. NEW IMPLEMENTATION CONSIDERATIONS 1) Customers who have recently started implementing and have not yet gone live should consider switching to HCM Data Loader if their timelines can accommodate it. 2) This will mitigate the need for conversion to HCM Data Loader later in the project lifecycle. Project plans should be reviewed to incorporate the migration to HCM Data Loader, taking into account: 3) Training on the new tool. 4) Rework of the extract mechanism to get data in the HCM Data Loader format 5) The need to test the migration and integration processes using HCM Data Loader instead of File Based Loader. 6) The need to fit in with major implementation milestones. CONSIDERATIONS FOR EXISTING CUSTOMERS 1. Existing live customers already using File-Based Loader and HCM Spreadsheet Data Loader should defer the switch to HCM Data Loader. 2. Customers who are not yet live should evaluate whether to rework their implementation to use HCM Data Loader or continue using File-Based Loader and HCM Spreadsheet Data Loader. 3. The main work involved in using File-Based Loader and HCM Data Loader is the extract of the data from a source system to the correct format ready for loading. Since this is not part of Oracle Fusion, Oracle does not provide a conversion process from File-Based Loader to HCM Data Loader. 4. Oracle does provide the migration of File-Based Loader GUID values to the HCM Data Loader equivalent, which are referred to as source keys. 5. Customers using Oracle Fusion Taleo Recruitment Out of the Box (OOTB) V1 Integration are not impacted. 6. If you are using Taleo Connect Client and File-Based Loader or a hybrid with OOTB to integrate with Fusion, you will need to perform an evaluation and follow the steps to migrate to HCM Data Loader HCM DATA LOADER COMPATIBILITY WITH FILE BASED LOADER HCM Data Loader and File-Based Loader cannot be used at the same time for objects supported by both. Either of them should be picked for conversion. The setting of the HCM Data Loader Scope parameter on the Configure HCM Data Loader page deter- mines whether HCM Data Loader or File-Based Loader is used and controls the behavior of the loading tools. The default value of this parameter is Limited for existing customers. If you attempt to load data for a business object not supported in the Limited mode, your whole data set will fail. Limited mode Only business objects not supported by HCM File-Based Loader can be loaded using HCM Data Loader. All objects that can use File-Based Loader must use File-Based Loader. Any ob- jects that are not available via File-Based Loader should use HCM Data Loader. Full mode HCM Data Loader is used for bulk-loading data into all supported business objects. HCM File Based Loader and HCM Spreadsheet Data Loader are disabled. Important Note: You can switch from Limited mode to Full mode, but you cannot switch from Full mode to Limited mode. This is a one-time switch from File-Based Loader to HCM Data Loader. Once you migrate to HCM Data Loader, HCM Spreadsheet Data Loader is also disabled because it relies on the File-Based Loader engine to load data to Oracle HCM Cloud. This restriction applies only to the spread- sheet loading that is launched from the Data Exchange work area. Other spreadsheet data loaders are not im- pacted by the uptake of HCM Data Loader.
  • 21. IMPACT OF UPGRADE TO RELEASE 10 HCM Data Loader will be Generally Available in R10 (also in Release 9 Patch Bundle 7 and above ) but there is no immediate requirement to migrate to HCM Data Loader. HCM Data Loader and File-Based Loader cannot be used at the same time for objects supported by both. On upgrade to Release 10 you will see the HCM Data Loader options available in the application but you should not use HCM Data Loader if you are an existing File-Based Loader customer until you have com- pleted an evaluation of HCM Data Loader. Important Note: There are differences in file format and key structures. Once the switch to HCM Data Loader has occurred, you will no longer have access to File-Based Loader or HCM Spreadsheet Data Loader. If you have a requirement to load documents of record or areas of responsibility, then you can use HCM Data Loader in Limited mode with no impact on File-Based Loader or HCM Spreadsheet Data Loader, since these objects are not currently supported by File-Based Loader ENVIRONMENT MANAGEMENT CONSIDERATIONS If you are live with File-Based Loader and testing HCM Data Loader in a nonproduction environment, then you should plan your environment refresh (P2T) requests carefully. When you request an environment refresh, the HCM Data Loader settings will be overwritten, and the envi- ronment will revert to the default Limited mode. You will need to go through the same steps as before to switch back to HCM Data Loader. That is, you must convert File-Based Loader GUIDs to HCM Data Loader source keys and switch HCM Data Loader Scope to Full. During the HCM Data Loader migration validation and testing, important testing considerations must be in- cluded in your planning. HCM Data Loader in Full mode is not compatible with File-Based Loader; therefore, it is not possible to have an environment with both HCM Data Loader and File-Based Loader at the same time. This will impact your ability to test File-Based Loader transactions in your nonproduction environment while you are in the process of validating HCM Data Loader. Important Note: You will need to ensure that the HCM Data Loader enabled environment is not required for any File-Based Loader testing prior to setting the HCM Data Loader Scope to Full. MIGRATION STEPS FOR MOVING FROM FILE BASED LOADER TO HCM DATA LOADER It is not possible to move to HCM Data Loader for individual core objects on an incremental basis. It is a one-time migration and requires careful planning and preparation to ensure a smooth transition.
  • 22. CHOICE OF KEYS One of the most important decisions when considering the upgrade from File-Based Loader to HCM Data Loader is whether to continue to use the same key mechanism as is used in File-Based Loader (GUIDs) or whether to take advantage of the user key support that is available in HCM Data Loader. User keys allow objects to be identified in HCM Data Loader using their natural key; for example, Job Code, Person Number, and so on. File-Based Loader GUIDs have an equivalent in HCM Data Loader known as source keys. These are values that are defined in the source system and stored alongside the Oracle Fusion surrogate keys when objects are created in Oracle HCM Cloud. Source keys can be used to reference objects when loading related data or to identify specific objects when performing updates or deletes. Within HCM Data Loader, each object can use different types of keys, so a decision needs to be made on an object-by-object basis to determine whether a user key or a source key will be used. CONVERSION OF GUIDS In order to facilitate the upgrade from File-Based Loader to HCM Data Loader, a process is provided to mi- grate the File-Based Loader GUIDs to HCM Data Loader source system IDs. Regardless of whether user keys or source keys will be used, it is recommended that this process be run as the first step TEMPLATE GENERATION Before reworking the export processes, you can download a template for each business object supported by HCM Data Loader. These templates take into account any flex-field structures that are already in place. By using the templates, you can accurately outline the shape of the data that needs to be generated by the re- worked export processes. REWORK OF EXPORT PROCESSES The main task required for migration to HCM Data Loader is the rework of the export process that generates the data for loading to Oracle HCM Cloud. This process needs to take into account the correct attributes for the HCM Data Loader objects as well as preparing the files in the format expected by HCM Data Loader. The attached spreadsheet provides a mapping between the HCM Data Loader data file name, file discrimina- tor, and attribute name to the HCM File-Based Loader data file and attribute name. HCM Data Loader only supports files loaded via Oracle Web-Center Content. If customers are currently us- ing SFTP, then the processes will need to be changed. Similar to File-Based Loader, HCM Data Loader has a web service that can be used to invoke the HCM Data Loader processing. HCM_Data_Loader_ to_File-Based_Loader_Field_Mapping.xlsx Sample Screenshot (Mapping Sheet)
  • 23. OFFLINE VERIFICATION USING HDLDI The offline Data File Validator Tool (HDLdi) and used in the extract process to ensure that the data files be- ing prepared are valid in terms of the data format. It also checks any business rules that apply to the data contained in the data file where other Oracle HCM Cloud data is not required as part of the validation. HCM DATA LOADER PROCESS FLOW DIAGRAM FBL (File Based Loader) Vs HDL (HCM Data Loader) Comparative Analysis (Top 10 Points) FILE BASED LOADER ( FBL ) HCM DATA LOADER ( HDL ) Customers Already Accustomed to using fbl Has New Features Multiple files to load worker details Single Worker File Special considerations required for Delta Load Allows Bulk and Delta Load Error handling takes lot of time and effort Error Handling Mechanism is easy Allows Date Effective History Load. In case you need to load N + 1th record all records starting from 1 to N also needs to be passed Allows Date Effective Historical Data Load. Need to pass only the N + 1th Record Only Recommended for existing customers Oracle Recommends for all new implementations Customers already accustomed to using FBL. Partial Load happens causing sync issues. Major setback for all implementations Ensures either Complete Details get loaded or NONE. No Partial conversion. Allowed. ALL or NONE approach Follows GUID approach. Primary Keys are not user friendly Uses Source System Keys approach. User friendly pri- mary keys FBL Templates are made available on request(via SR) HDL Templates (Data File Format) required for Conver- sion can be downloaded from the Application Instance (Commonly referred to as POD) itself. No Additional SR (Service Requests) needs to be raised FBL is age old technology now. You can use it for now but it is on the verge of extinction. Today or Tomorrow you have to accept using HDL. You may DELAY using it but cannot AVOID it.
  • 24. SAMPLE HDL FILES Worker.dat Worker.dat How to Configure HCM Data Loader This article explains in detail about the steps required to enable your system to use HCM Data Loader tool ( for HCM data Migration ) from Legacy Applications to Fusion Applications. It has been divided into various sections and the same are detailed below : FUSION APPLICATION LOGIN PAGE: The below screenshot shows a Fusion Application Home page. Click on the Fusion Applications Link (you will receive the same from your Project Team Colleagues / IT Admin ) APPLICATION VERSION DETAILS Verify the application version
  • 25. Navigation-: Click on any link from the navigator (E.g.: Setup and Maintenance) -> A new page opens up. On the top right hand side of the page you will find an arrow next to your login user name which populates below Settings and Actions list screenshots below : Select ‘About This Page’. This will provide details of the Fusion application version (highlighted below)
  • 26. USER ROLES: Role required for using HCM Data Loader is Human Capital Management Integration Specialist Navigation to check the User roles: Navigator-> My Account ->Current Roles NAVIGATION: CONFIGURE HCM DATA LOADER Login into Fusion applications-> Click on Navigator-> Setup and Maintenance -> All Tasks In the search window, give name as ‘Configure HCM Data Loader’
  • 27. Click on ‘Go to Task’ i.e. Icon NOTE: ‘Permitted’ field should be green checked. If it is red checked then you do not have required permis- sion to view the settings. Now you should be able to see all the PARAMETERS set for HCM Data Loader.
  • 28. CONFIGURATION PARAMETER – HCM DATA LOADER SCOPE: Full Enables the use of HCM Data Loader as the primary bulk inbound integration tool. File-based Loader usage is disabled. Limited Enables the use of FBL as the primary bulk inbound integration tool and HDL only for objects not supported by FBL Not recommended to switch the tools for the same business objects intermittently New release 10 customers will have a default scope of FULL. CHANGING THE PARAMETER VALUE: •Customers can choose to move from LIMITED to FULL at ANYTIME (available via UI) •Move from FULL to LIMITED requires Development Intervention (can cause issues) End of Chapter 1 ---------------------------------------------------------------------------------------
  • 29. Chapter 2: BIP Reports Describes How to Create a Custom BIP Report in Fusion Applications Also Explains about creating BIP Report from Static Data
  • 30. How to Create a Custom BIP Report in Fusion Applications? BUSINESS REQUIREMENT Oracle has already delivered a lot of BIP Reports in the Fusion Instance, however during a course of imple- mentation it is a common requirement to develop new ones. CONTENT There are few common steps involved they are: a) Create a SQL Query which comprises of DB Tables (that exist in Fusion Schema). We have a SQL Query which is as below : select A. person_number, A.full_name, A.legal_employer, A.business_unit, A.department, A.absence_plan_name, A.adjustment_type, A.adjustment_reason, A.value, A.procd_date accrual_entry_date from ( select apaed.per_accrual_entry_dtl_id, apaed.per_accrual_entry_id, apaed.enterprise_id, apaed.value, apaed.type, apaed.created_by, apaed.creation_date, apaed.last_updated_by, apaed.last_update_date, apaed.last_update_login, apaed.person_id, apaed.pl_id, apaed.procd_date, apaed.per_event_id, apaed.legal_employer_id, apaed.assignment_id, apaed.per_absence_entry_id, apaed.per_plan_enrt_id, apaed.work_term_asg_id, DECODE(apaed.type,'ADJOTH',ADD_MONTHS(procd_date,6),NULL) proposed_expiration_date, papf.person_number, ppnf.full_name, paam.organization_id, dept.name department, paam.legal_entity_id, legal_employer.classification_code legal_emp_classification_code, legal_employer.name legal_employer, paam.business_unit_id, business_unit.classification_code bu_classification_code, business_unit.name business_unit, absence_plan.name absence_plan_name, flvt.meaning adjustment_type, adj_reason.meaning adjustment_reason FROM anc_per_acrl_entry_dtls apaed JOIN fnd_lookup_values_tl flvt ON (flvt.lookup_type = 'ANC_ACCRUAL_ENTRY_TYPE' AND flvt.lookup_code = apaed.type AND flvt.language = 'US') JOIN per_all_people_f papf ON (apaed.person_id = papf.person_id AND TRUNC(sysdate) BETWEEN papf.effective_start_date and papf.effective_end_date) JOIN per_person_names_f ppnf ON (ppnf.name_type = 'GLOBAL'
  • 31. AND ppnf.person_id = apaed.person_id AND TRUNC(SYSDATE) BETWEEN ppnf.effective_start_date and ppnf.effective_end_date) JOIN per_all_assignments_m paam ON (paam.assignment_id = apaed.assignment_id AND paam.person_id = apaed.person_id AND paam.primary_assignment_flag = 'Y' AND paam.assignment_type = 'E' AND TRUNC(SYSDATE) between paam.effective_start_date and paam.effective_end_date) LEFT OUTER JOIN ( SELECT flvt1.lookup_code, flvt1.meaning FROM fnd_lookup_val- ues_tl flvt1 WHERE flvt1.lookup_type = 'ANC_ABS_PLAN_OTHER_REASONS' AND flvt1.language = 'US' ) adj_reason ON (apaed.adjustment_reason = adj_reason.lookup_code) LEFT OUTER JOIN ( SELECT hauft.organization_id, hauft.NAME FROM HR_ORG_UNIT_CLASSIFICATIONS_F houcf, HR_ALL_ORGANIZATION_UNITS_F haouf, HR_ORGANIZATION_UNITS_F_TL hauft WHERE haouf.ORGANIZATION_ID = houcf.ORGANIZATION_ID AND haouf.ORGANIZATION_ID = hauft.ORGANIZATION_ID AND haouf.EFFECTIVE_START_DATE BETWEEN houcf.EFFECTIVE_START_DATE AND houcf.EFFECTIVE_END_DATE AND hauft.LANGUAGE = 'US' AND hauft.EFFECTIVE_START_DATE = haouf.EFFECTIVE_START_DATE AND hauft.EFFECTIVE_END_DATE = haouf.EFFECTIVE_END_DATE AND houcf.CLASSIFICATION_CODE = 'DEPARTMENT' AND TRUNC(SYSDATE) BETWEEN hauft.effective_start_date AND hauft.effective_end_date ) dept ON (paam.organization_id = dept.organization_id) LEFT OUTER JOIN (SELECT hauft.organization_id, hauft.NAME, houcf.classification_code FROM HR_ORG_UNIT_CLASSIFICATIONS_F houcf, HR_ALL_ORGANIZATION_UNITS_F haouf, HR_ORGANIZATION_UNITS_F_TL hauft WHERE haouf.ORGANIZATION_ID = houcf.ORGANIZATION_ID AND haouf.ORGANIZATION_ID = hauft.ORGANIZATION_ID AND haouf.EFFECTIVE_START_DATE BETWEEN houcf.EFFECTIVE_START_DATE AND houcf.EFFECTIVE_END_DATE AND hauft.LANGUAGE = 'US' AND hauft.EFFECTIVE_START_DATE = haouf.EFFECTIVE_START_DATE AND hauft.EFFECTIVE_END_DATE = haouf.EFFECTIVE_END_DATE AND houcf.CLASSIFICATION_CODE = 'HCM_LEMP' AND TRUNC(SYSDATE) BETWEEN hauft.effective_start_date AND hauft.effective_end_date ) legal_employer ON (paam.legal_entity_id = legal_employer.organization_id) LEFT OUTER JOIN (SELECT hauft.organization_id business_unit_id, hauft.NAME, houcf.classification_code FROM HR_ORG_UNIT_CLASSIFICATIONS_F houcf, HR_ALL_ORGANIZATION_UNITS_F haouf, HR_ORGANIZATION_UNITS_F_TL hauft WHERE haouf.ORGANIZATION_ID = houcf.ORGANIZATION_ID AND haouf.ORGANIZATION_ID = hauft.ORGANIZATION_ID AND haouf.EFFECTIVE_START_DATE BETWEEN houcf.EFFECTIVE_START_DATE AND houcf.EFFECTIVE_END_DATE AND hauft.LANGUAGE = 'US' AND hauft.EFFECTIVE_START_DATE = haouf.EFFECTIVE_START_DATE AND hauft.EFFECTIVE_END_DATE = haouf.EFFECTIVE_END_DATE AND houcf.CLASSIFICATION_CODE = 'FUN_BUSINESS_UNIT' AND TRUNC(SYSDATE) BETWEEN hauft.effective_start_date AND hauft.effective_end_date ) business_unit
  • 32. ON (paam.business_unit_id = business_unit.business_unit_id) LEFT OUTER JOIN (SELECT aapf.absence_plan_id, aapft.NAME FROM anc_absence_plans_f_tl aapft, anc_absence_plans_f aapf WHERE aapft.absence_plan_id = aapf.absence_plan_id AND aapf.plan_status = 'A' -- added to pick only Active Absence Plans AND trunc(SYSDATE) BETWEEN aapf.effective_start_date AND aapf.effective_end_date AND trunc(SYSDATE) BETWEEN aapft.effective_start_date AND aapft.effective_end_date AND aapft.language = 'US' ) absence_plan ON apaed.pl_id = absence_plan.absence_plan_id where pl_id = absence_plan.absence_plan_id and apaed.value <> 0 order by apaed.person_id,apaed.procd_date asc ) A where person_number = nvl(:pPersonNumber,person_number) and legal_employer = nvl(:pLegalEmployer,legal_employer) and business_unit = nvl(:pBusinessUnit,business_unit) and procd_date >= nvl(:pCalculationDate,procd_date) and department = nvl(:pDepartment,department) and full_name = nvl(:pPersonName,full_name) and absence_plan_name = nvl(:pAbsencePlanName,absence_plan_name) Navigate to the screen as shown: Under Published Reporting -> Data Model Create a New Data Set (of SQL Query type) as shown in Screenshot below:
  • 33. Give a Name to Data Set (for this example say PersonAbsenceAccrualEntryDetails_ds): You would need to take special care while selecting Data Source (Logic Below): a) If you are Building Finance reports use : ApplicationDB_FSCM b) If you are Building HCM reports use : ApplicationDB_HCM c) If you are Building CRM Reports use : ApplicationDB_CRM For this example we use ApplicationDB_HCM
  • 34. Depending on the number of Parameters (Bind Variables) used a Popup window will appear as: Click OK. Give a Name to the Parameters as shown below PARAMETER DETAILS: PARAMETER NAME DATA TYPE DEFAULT VALUE PARAMETER TYPE ROW PLACE- MENT DISPLAY LABEL pLegalEmployer String Menu ( List of Values Legal Em- ployer) LegalEmployer** pBusinessUnit String Menu ( List of Values Business Unit) BusinessUnit** pDepartment String Menu ( List of Values Depart- ment) Department** pAbsencePlan- Name String Menu ( List of Values Absence Plan Name) AbsencePlan- Name** pCalcula- tionDate Date Text CalculationDate** pPersonName String Menu ( List of Values Person Name) PersonName** pPersonNumber String Text PersonNumber**
  • 35. Create List of Values for Parameters. LIST OF VALUES LOV NAME TYPE DATA SOURCE SQL QUERY ASSOCIATED WITH PARAMETER Legal Employer SQL Query ApplicationDB_HCM Refer Legal Employer LOV SQL in LOV SQL Section pLegalEmployer Business Unit SQL Query ApplicationDB_HCM Refer Business Unit LOV SQL in LOV SQL Section pBusinessUnit Depart- ment SQL Query ApplicationDB_HCM Refer Department LOV SQL in LOV SQL Section pDepartment Absence Plan Name SQL Query ApplicationDB_HCM Refer Absence Plan Name LOV SQL in LOV SQL Section pAbsencePlan- Name Person Name SQL Query ApplicationDB_HCM Refer Person Name LOV SQL in LOV SQL Section pPersonName LOV SQL SECTION This Section shows all the SQL which are used for LOV Creation. LEGAL EMPLOYER LOV SQL BUSINESS UNIT LOV SQL DEPARTMENT LOV SQL ABSENCE PLAN LOV SQL
  • 36. PERSON NAME LOV SQL VIEW DATA: CLICK ON ‘SAVE AS SAMPLE DATA’: CREATE REPORT Create Report
  • 37. Click Next and Follow Train Stops: Create Table
  • 38. End of the Topic……………………. New Topic Starts on Next Page………….
  • 39. Creating Custom BIP Reports from Static Data BUSINESS REQUIREMENT While we all have been accustomed and bored with always creating Data Model using SQL Query we might have missed other options as in this screen-shot: STEPS Sample Data is Saved in Local Desktop and uploaded. Once the same is done the screen will appear as
  • 40. FINAL OUTPUT MIGRATION This Report may be migrated into your specific environment. You would need the below three things : a) SampleCSVData SampleCSVData.csv b) StaticDataBIP ( Data Model) c) StaticDataBIPReport
  • 41. Chapter 3: OTBI Reports Gives Brief Description of OTBI Reports Describes how to create a OTBI Report from Static Data Also explains creating OTBI Reports from SQL
  • 42. Creating OTBI Reports from Direct Database Query BUSINESS REQUIREMENT While we must have been used to creating DRAG and DROP reports using OTBI we might have missed the option of ‘Create Direct Database Query’ . In this article let’s try to explore the same. CONTENT Navigation: Login to Fusion Applications -> Click on Reports and Analytics -> Click on BI Catalog ( Book Icon) and you reach on this page Click on Create Direct Database Query Step 2 : Provide following details : CONNECTION POOL : “HCM_OLTP”.”Connection Pool” SQL: select papf. person_number as PersonNumber from per_all_people_f papf where rownum < 10 order by papf.person_number desc
  • 43. EXPECTED SCREEN-PRINT RESULTS Click on Results Tab as shown Results
  • 44. Save Analysis MIGRATING THIS ANALYSIS Click on ‘Archive’ option as shown. Archive
  • 45. Once you click on the Archive Option as shown above a popup window will appear as shown. Select both the checkbox (this ensures that the same permission and timestamp attached to this analysis is carried for- ward to the Target instance) Click Ok and a file gets downloaded to your local desktop. Save it . Click Save. And save the file in a specific location. ( Desktop in this example). After you save the file in local desktop upload the same to Target Enviornment. MOVEMENT TO TARGET INSTANCE Login to Target Instance and Navigate to Navigator->Reports and Analytics -> BI Catalog -> Shared Folders-> Custom -> <Your Specific Folder where you want to keep this analysis, for this example Practice Samples> Screenshot Before Unarchiving the CATALOG File
  • 46. Then Click on Unarchive Option as shown. Unarchive A Popup window appears as shown below
  • 47. Locate your file and Click Ok CONTD…………………………….
  • 48. HowTo Create Calendar Data Type for a Presentation Variable in OTBI Analysis Business Requirement It is a very Common Requirement where-in we need to have a Date Parameter in Reports. Things becomes difficult if the Report is an OTBI one and the expected Date Parameter is a Date Picker one. By default, what we get is a text field and then we need to ensure that user input should be exactly as expected by pro- gram (generally we guide user via a tooltip). But now we have a workaround explained below: By default, whenever you create a presentation variable it gives the following options for user input But the requirement is to have a ‘Calendar’ as a value in drop down list. Steps: 1) Select the Choice List Option 2) In ‘choice List Values’ select ‘All Column Values’ 3) Now select any attributes from the Subject Area of Date Type for this example lets choose Start Date from Person Folder (Workforce Management – Person Real Time). Choose Variable Data Type as ‘Date’ 4) Click Ok. 5) Edit the Prompt Again and now ‘Calendar’ appears as a User Input in Drop down list
  • 49. 6) Save the changes. 7) The Date Picker appears as desired.
  • 50. Chapter 4: Creating Custom ESS Job in Fusion Applications BUSINESS REQUIREMENT Oracle has already delivered a lot of BIP Reports in the Fusion Instance, however during a course of imple- mentation it is a common requirement to develop new ones. CONTENT There are few common steps involved they are: b) Create a SQL Query which comprises of DB Tables (that exist in Fusion Schema). We have a SQL Query which is as below : SELECT hdbo.bus_obj_file_discriminator EntityName,fr.key_source_owner SourceSystemOwner, fr.key_source_id SourceSystemId, l.msg_text ErrorMessage,bo.data_file_name,bo.imported_status,bo.validated_status,bo.skipped_sta- tus,bo.loaded_status,'Error' DataLoadStatus,'N' DataLoadFlag FROM fusion.hrc_dl_message_lines l , fu- sion.hrc_dl_data_set_bus_objs bo , fusion.hrc_dl_data_sets ds , fusion.hrc_dl_physical_lines pl , fusion.hrc_dl_file_rows fr , fusion.hrc_dl_file_lines fl , fusion.hrc_dl_business_objects hdbo WHERE l.message_source_table_name = 'HRC_DL_PHYSICAL_LINES' AND bo.data_set_bus_obj_id = l.data_set_bus_obj_id AND ds.data_set_id = bo.data_set_id AND pl.physical_line_id = l.message_source_line_id AND fr.row_id = pl.row_id AND fl.line_id = fr.line_id AND hdbo.business_object_id = bo.business_object_id And ds.ucm_content_id = :p_ucm_content_id union SE- LECT hdbo.bus_obj_file_discriminator EntityName,fr.key_source_owner SourceSystemOwner, fr.key_source_id SourceSystemId, l.msg_text ErrorMessage,bo.data_file_name,bo.imported_status,bo.validated_status,bo.skipped_sta- tus,bo.loaded_status,'Error' dataloadstatus,'N' dataloadflag FROM fusion.hrc_dl_message_lines l , fu- sion.hrc_dl_data_set_bus_objs bo , fusion.hrc_dl_data_sets ds , fusion.hrc_dl_logical_lines ll , fusion.hrc_dl_file_rows fr , fusion.hrc_dl_file_lines fl , fusion.hrc_dl_business_objects hdbo WHERE l.message_source_table_name = 'HRC_DL_LOGICAL_LINES' AND bo.data_set_bus_obj_id = l.data_set_bus_obj_id AND ds.data_set_id = bo.data_set_id AND ll.logical_line_id = l.message_source_line_id AND fr.logical_line_id = ll.logical_line_id AND fl.line_id = fr.line_id AND hdbo.business_object_id = bo.business_object_id And ds.ucm_content_id = :p_ucm_content_id SCREEN-SHOT:
  • 51. Give a Name to Data Set (for this example say PersonAbsenceAccrualEntryDetails_ds): You would need to take special care while selecting Data Source (Logic Below): d) If you are Building Finance reports use : ApplicationDB_FSCM e) If you are Building HCM reports use : ApplicationDB_HCM f) If you are Building CRM Reports use : ApplicationDB_CRM For this example we use ApplicationDB_HCM Depending on the number of Parameters( Bind Variables) used a Popup window will appear as :
  • 52. Click OK. Give a Name to the Parameters as shown below PARAMETER DETAILS: PARAMETER NAME DATA TYPE DEFAULT VALUE PARAMETER TYPE ROW PLACE- MENT DISPLAY LABEL pLegalEmployer String Menu ( List of Values Legal Employer) LegalEm- ployer** pBusinessUnit String Menu ( List of Values Busi- ness Unit) BusinessUnit** pDepartment String Menu ( List of Values Depart- ment) Department** pAbsencePlan- Name String Menu ( List of Values Absence Plan Name) AbsencePlan- Name** pCalcula- tionDate Date Text Calcula- tionDate** pPersonName String Menu ( List of Values Person Name) PersonName** pPersonNumber String Text PersonNumber**
  • 53. Data Model is created. Now we need to check the data retrieved. Create List of Values for Parameters. LIST OF VALUES LOV NAME TYPE DATA SOURCE SQL QUERY ASSOCIATED WITH PARAMETER Legal Employer SQL Query Applica- tionDB_HCM Refer Legal Em- ployer LOV SQL in LOV SQL Sec- tion pLegalEmployer Business Unit SQL Query Applica- tionDB_HCM Refer Business Unit LOV SQL in LOV SQL Section pBusinessUnit Department SQL Query Applica- tionDB_HCM Refer Department LOV SQL in LOV SQL Section pDepartment Absence Plan Name SQL Query pLegalEmployer Refer Absence Plan Name LOV SQL in LOV SQL Section pAbsencePlanName Person Name SQL Query pLegalEmployer Refer Person Name LOV SQL in LOV SQL Section pPersonName LOV SQL SECTION This Section shows all the SQL which are used for LOV Creation. LEGAL EMPLOYER LOV SQL BUSINESS UNIT LOV SQL DEPARTMENT LOV SQL
  • 54. ABSENCE PLAN LOV SQL PERSON NAME LOV SQL VIEW DATA : CLICK ON ‘SAVE AS SAMPLE DATA’: CREATE REPORT
  • 55. Click on Create Report Click Next and Follow Train Stops: Create Table
  • 56. Drag and Drop fields and the Final Report output will look like : End of Chapter
  • 57. Chapter 5: Fusion Absence Management Defines What is Meant by Absence Plan Explains the same with a Worked Out Example An Overview of Fusion Absence Management Absence Plan Definition and Use INTRODUCTION Before we start to understand How to create an Absence Plan first try to understand what an Absence Plan is and why is it required. In real life Absence Plan holds a different meaning than that of the one meant in Fusion Applications. In real life Absence Plan for an individual (or for that matter for a Working individual) relates more to a question which is generally asked by his Manager What are your Absence Plans? and he would generally respond stating I will be on leave on so and so dates. But in context with Fusion Applications an Absence Plan (I feel the naming convention isn’t correct it should have been called Accrual Plan but that again is incorrect as Absence Plans are even those which are of qualification and No-Entitle- ment Type, details about the same in Absence Plan Types Section) could be imagined as a Bucket. Yes, I mean a Bucket as we know. Let’s for time being say an Absence Plan is an Absence Bucket and I call it as a Bucket as it is supposed to hold: a) Leave / Absence Balance Anything and everything around the Entire Absence Plan surrounds around this single piece of information usually called ‘Absence Balance’ Different Items related with an Absence Plan and their association with Absence Balance follows: Absence Plan A name given to a set of rules / guidelines which define how the absence balance will be assigned and maintained Legislation Geography / Country where this Absence Balance is Maintained. For Example, if we are doing Absence Plan setup for India Legislation would be India, if we are doing for USA it would be United States and so on.... Plan Type An attribute which defines how the Absence Balance would be calculated / paid. For example: If Absence / Leave Balance is paid to employees as a result of an event such as childbirth, illness or injury it is called Qualification Plan Type Absence Plan Typical Example Being Hospitalization Leave. If Absence / Leave Balance is paid to employees as a result of accumulation / accrual it is called Accrual Plan Type Absence Plan Leaves like Annual Leave, Vacation Leave fall into this category If Absence / Leave Balance is paid without having any track, then we referred to them as No-Entitlement Plan Type Absence Plan Marriage Leave, Compassionate Leave. fall into this category Plan Term This is basically the entire time period for which the absence balance has the validity. For Example Plan Term: Calendar Year Start Day: 01 Start Month: 1 Means the Absence Plan will start on 1st day of 1st month (i.e. 1st January) and run till the end of calendar year i.e. 31-Dec Plan Term: Calendar Year Start Day: 01 Start Month: 2 Means Absence Plan will start on 1st day of 2nd month (i.e. 1st February) and run till the end of calendar year i.e. 31-Dec Plan Term: Calendar Year Start Day: 05 Start Month: 10 Means the absence Plan will start on 5th day of 10th month (i.e. 5th October) and run till the end of calendar year i.e. 31-Dec
  • 58. Absence Plan UOM Unit of Measure which states in which unit (either of Days / Calendar Days / Hours) will this Absence Balance will get measured. Accrual Method Method of accruing Absence / Leave Balance. It is of two types: a) Frontloaded The Entire Absence Balance is allocated at the beginning of the plan term b) Incremental The Absence Balance are accrued at regular intervals Accrual Frequency Frequency at which accrual happens. It is of two types Person Primary Frequency and Repeating Period. If person gets his absence / leave balance at the start of payroll period, then the Accrual Frequency is of Person Primary Frequency Type For Example: Person Primary Frequency: Weekly Means he gets paid every week (Employee has a Weekly Payroll Assigned / Attached to him) and same is true for his absence balance too i.e. absence balance is received every week (in synchronization with his person primary payroll payment fre- quency). Person Primary Frequency: Bi-Weekly Means he gets paid once in row weeks (Employee has a Bi-Weekly Payroll Assigned / Attached to him) and same is true for his absence balance too i.e. absence balance is received once in two weeks (in synchronization with his person primary payroll payment frequency). Person Primary Frequency: Monthly Means he gets paid once a month (Employee has monthly payroll assigned / attached to him) and same is true for his absence balance too i.e. absence balance is received once a month (in synchronization with his person primary payroll payment fre- quency). Person Primary Frequency: Quarterly Means he gets paid once in quarter (Employee has a Quarterly Payroll Assigned / Attached to him) and same is true for his absence balance too i.e. absence balance is received once each quarter (in synchronization with his person primary payroll payment frequency). If person gets his absence / leave balance at the start of each instance of a Specific Repeating Time Period, then Accrual Frequency is of Repeating Time Period For Example: Repeating Time Period: Every Quarter of a Calendar year Means he will accrue this leave once every 3 months in the Calendar Year. Repeating Time Period: Bi Monthly Means he will accrue this leave 2 times in a month. Repeating Time Period: Every Quarter of a Calendar year Means he will accrue this leave once every 3 months in the Calendar Year. Repeating Time Period: Monthly Means he will accrue this leave once a month.
  • 59. Ceiling This means the maximum Accrual / Leave Balance an employee can accrue / store within a particular accrual term For Example: If for a particular Absence Plan the ceiling value is 10 It means that the employee can accrue at max 10 leaves per year. If his balance becomes more than 10 then the same will be forfeited. If for a particular Absence Plan the ceiling value is 20 It means that the employee can accrue at max 20 leaves per year. If his balance becomes more than 10 then the same will be forfeited. Carryover This means the Absence / Leave Balance an employee can carry forward (take along with him) to next accrual term For Example: If for a particular Absence Plan has carryover as 50 It means that the employee can carry forward 50 leaves per year. This carry forward value would keep accumulating until ceiling value is reached So if ceiling is 100 and employee has already carried forward 50 leaves from first year and again 50 from next year then he cannot carry forward leaves for 3rd year. If for a particular Absence Plan the carryover as 60 It means that the employee can carry forward 60 leaves per year. This carry forward value would keep accumulating until ceiling value is reached. So if ceiling is 100 and employee has already carried forward 50 leaves from first year and again 50 from next year then he cannot carry forward leaves for 3rd year Vesting Period This is the Time Period during which Employees can accrue leave but cannot apply leave For example, if a Plan starts on 1st January and has a vesting period of 1 month then the first leave which an employee can take would be a date after 1st February (1st January + 1 month). He would anyways be allowed to accrue during the entire January Month Absence Payment Rate Rule Method to calculate payment during an Absence Period. (a period when employee is absent from work, but still needs to be paid). For Example, if a Female Employee is on Maternity Leave for 6 months then at what rate should she be paid. Final Disbursement Rate Rule Method to calculate payment of accruals when plan participation ends (An Employee became a Contractor from Regular Employee so his eligibility for Annual Leave comes to an end, but he has already had a positive balance of say 10. Now if the payroll is integrated with absence then employee needs to be paid for this accrued balance. This rate talks about the same Disbursement Rate Rule). Discretionary Disbursement Rate Rule Method to calculate payment when paying out part of accrual balance (An Employee resigns a company and he has a notice period of 30 days, he has served 25 days of notice period and he has an accrual balance of 10 days. Due to some emergency he has to go to his hometown and he seeks immediate relieving. In this case the company may decide to deduct his 5 days from Accrual balance and pay for the rest 5 at a discretionary rate). Liability Rate Rule Method to calculate cost of accrual balance to determine employer liability (An Employee resigns a company and he has a notice period of 30 days, he has served 25 days of notice period and he has an accrual balance of 10 days. Due to some emergency he has to go to his hometown and he seeks immediate relieving. In this case the company may decide to deduct his 5 days from Accrual balance and pay for the rest 5 at a discretionary rate and the rest 5 days will be paid at the Liability Rate). BUSINESS REQUIREMENT Now since we are aware of some of the most commonly used terms for an absence plans we should try to create one ab- sence plan. Requirement is to create an Absence Plan with Absence Plan type Accrual and Accrual Method as Incremental . We have the following requirement: Absence Plan Type: Accrual Accrual Method: Incremental Accrual UOM: Days
  • 60. Accrual Values: If Length of Service is < 3 years then Accrue 10 days, have a ceiling of 100 days and carryover of 50 days. If Length of Service is between 3 to 5 years then Accrue 12 days, ceiling of 120 days & carryover of 60 days If Length of Service is > 5 then Accrue 15 days, have a ceiling of 150 days and carryover of 75 days Vesting Period: If Legal Employer is Vision Corporation, then Vesting Period is 90 Calendar Days Else Vesting Period is 30 Calendar Days Absence Payment Rate Rule: Provide a Sickness Rate If the Employee is taking a Leave of Type Sick and Flu else use Hourly Rate Final Disbursement Rate Rule: If Employee is of Hourly Salaried type use Hourly rate, if he is Regular Employee provide Annual Salary Rate Discretionary Disbursement Rate Rule: If Employee is of Hourly Salaried type use Hourly rate, if he is Regular Employee provide Annual Salary Rate. Liability Rate Rule: If Employee is of Hourly Salaried type use Hourly rate, if he is Regular Employee provide Annual Salary Rate We would be using Fast Formula (reasons supporting the same provided alongside) for the following attributes: **Accrual Values: This can be achieved using an Accrual Matrix but we would like provide maximum flexibility and hence Fast Formula Vesting Period: This requirement can only be achieved using Fast Formula **Absence Payment Rate Rule: This requirement could have been met using the ‘Rate Definition’ option but for flexibility we have used Fast Formula **Final Disbursement Rate Rule: This requirement could have been met using the ‘Rate Definition’ option but for flexibility we have used Fast Formula **Discretionary Disbursement Rate Rule: This requirement could have been met using the ‘Rate Definition’ option but for flexibility we have used Fast Formula **Liability Rate Rule: This requirement could have been met using the ‘Rate Definition’ option but for flexibility we have used Fast Formula **Note: By Allowing Flexibility we mean in case there are additional complex logic in future then we can add the Fast Formula Code in the existing FF defined. JUSTIFICATIONS FOR USING FAST FORMULAS: While some might debate that the entire absence plan could well have been setup using standard setups / configurations (and I do agree to that) but the below are specific reasons for using Fast Formula here: A) Allows Flexibility of Adding Custom Logic (If required by customer at a Future Date) Fast Formulas (Details in a separate article) generally allows us to add conditional logics (IF-ELSE constructs) and provide a way to customize the seeded solution. For Example Say currently we want to have a condition that if Employee Category is Hourly then use RateCode as ‘Hourly Rate’ Employee Category is Salaried then use RateCode as ‘Salaried’ But after few days’ customer has changed the requirement and now they even want to ensure that any Salaried Em- ployee who has been on leave for most of time during the year would rather be paid in terms of hours worked (typi- cal example being someone on Leave Without Pay). If Employee Category is Hourly, then use RateCode as ‘Hourly Rate’ Else if Employee Category is Salaried and Employee Payroll Status is Currently on Leave without Pay then ‘Hourly Rate’ ------ new requirement Else Employee Category is Salaried and Employee Payroll Status is Active Payroll Eligible then ‘Salaried’ end if.
  • 61. Now in order to accommodate the new requirement you would need to create a completely new Absence Plan with new set- ups and that would have many implications but if we use Fast Formula this can be achieved by just adding a piece of if-else construct. B) Absence Plan Migration becomes a little easier In all implementation projects setups needs to be once done in a Development POD (in EBS we referred them as INSTANCE) , and then the same is migrate to SIT, UAT , PRE-PROD and then PROD. IF we use Fast Formula approach migration becomes simpler. PERQUISITES FOR SETTING UP ABSENCE PLAN (USING FAST FORMULA APPROACH): You need to create multiple custom fast formula in the system (your POD) in the legislation where you want to create the absence plan. FAST FORMULA TYPES USED IN THIS EXAMPLE: There are 4 types of Fast Formula used in this example namely A) Global Absence Plan Duration B) Global Absence Accrual C) Global Absence Vesting Period D) Global Absence Plan Use Rate FAST FORMULA USED IN THIS EXAMPLE:  There are 5 Fast Formula used in this example which are:  AH Global Absence Plan Duration Formula  AH Global Absence Accrual Formula  AH Global Absence Vesting Period Formula  AH Global Absence Plan Use Rate Selection Formula 1  AH Global Absence Plan Use Rate Formula2 FORMULA DETAILS
  • 62. AH GLOBAL ABSENCE PLAN DURATION FORMULA AH Global Absence Plan Duration Formula Formula Name AH Global Absence Plan Duration Formula Formula Type Global Absence Plan Duration Description If leave falls on a Sunday then the leave hours deducted from leave balance should be 0 for all other cases it should be 8.5 hours FORMULA TEXT /************************************************************************************ FORMULA NAME: AH Global Absence Plan Duration Formula FORMULA TYPE: Global Absence Plan Duration DESCRIPTION: This sample formula returns the duration based on effective date falls on Sunday. Change History: Name Date Comments -------------------------------------------------------------------------------------------- XXXXXXX DD-MM-YYYY XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -------------------------------------------------------------------------------------------- ************************************************************************************/ /*================ FORMULA SECTION BEGIN =======================*/ l_date=GET_CONTEXT (EFFECTIVE_DATE,'4712/12/31 00:00:00' (date)) l_weekday=to_char(l_date,'DAY') If (l_weekday= '7') then ( duration=0 ) else ( duration=8.5 ) /*================ FORMULA SECTION END =======================*/ return duration SCREENSHOT
  • 63. AH GLOBAL ABSENCE ACCRUAL FORMULA AH Global Absence Accrual Formula Formula Name AH Global Absence Accrual Formula Formula Type Global Absence Accrual Description This sample formula applies the Accrual, Ceiling, Carryover, Proration Factor, Vest- ing Units, Vesting UOM, Carryover Proration and Ceiling Proration based on Length of Service and Accrual Plan the person enrolled into FORMULA TEXT /***************************************************************** FORMULA NAME: AH Global Absence Accrual Formula FORMULA TYPE: Global Absence Accrual DESCRIPTION: This sample formula applies the Accrual, Ceiling, CarryOver, Proration Factor, Vesting Units, Vesting UOM, CarryOver Proration and Ceiling Proration based on Length of Service and Accrual Plan the person enrolled into. Change History: Name Date Comments ------------------------------------------------------------------------------------------------------------ XXXXXXX DD-MM-YYYY XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ------------------------------------------------------------------------------------------------------------ *****************************************************************/ /*=========== DATABASE ITEM DEFAULTS BEGIN =====================*/ DEFAULT for PER_ASG_REL_ORIGINAL_DATE_OF_HIRE is '4712/12/31 00:00:00' (date) DEFAULT for ANC_ABS_PLN_NAME is 'A' DEFAULT for ANC_ABS_PLN_PLAN_UOM is 'H' /*=========== DATABASE ITEM DEFAULTS ENDS======================*/ /*================ FORMULA SECTION BEGIN =======================*/ l_no_of_days=DAYS_BETWEEN(GET_CONTEXT(EFFECTIVE_DATE,'4712/12/31 00:00:00' (date)),PER_ASG_REL_ORIGINAL_DATE_OF_HIRE) l_length_of_service=(l_no_of_days/365) /* check if employee enrolled into this plan or not */ if (ANC_ABS_PLN_NAME='BM_US_ABSENCE_ACCRUAL_PLAN') then( if(ANC_ABS_PLN_PLAN_UOM ='H') then( if(l_length_of_service <3) then( ac- crual =10 ceil- ing = 100 car- ryover=50 prorationFactor=0.25 vestingUnits=40 vestingUOM='C' car- ryOverProration=0.25 ceilingProration=0.25 ) else if ((l_length_of_service =>3) and (l_length_of_service<5)) then ( accrual =12 ceiling = 120 carryover=60 prorationFactor=0.25
  • 64. vestingUnits=30 vestingUOM='C' carryOverProration=0.25 ceilingProration=0.25 ) else if (l_length_of_service =>5) then ( accrual =15 ceiling = 150 carryover=75 prorationFactor=0.25 vestingUnits=30 vestingUOM='C' carryOverProration=0.25 ceilingProration=0.25 ) ) else if (ANC_ABS_PLN_PLAN_UOM ='D') then( if (l_length_of_service <3) then( accrual =round(10/24,3) ceiling = round(100/24,3) carryover=round(50/24,3) prorationFactor=0.25 vestingUnits=40 vestingUOM='C' carryOverProration=0.25 ceilingProration=0.25 ) else if ((l_length_of_service =>3) and (l_length_of_service<5)) then ( accrual =round(12/24,3) ceiling = round(120/24,3) carryover=round(60/24,3) prorationFactor=0.25 vestingUnits=30 vestingUOM='C' carryOverProration=0.25 ceilingProration=0.25 ) else if (l_length_of_service =>5) then ( accrual =round(15/24,3) ceiling =round(150/24,3) carryover=round(75/24,3) prorationFactor=0.25 vestingUnits=30 vestingUOM='C' carryOverProration=0.25 ceilingProration=0.25 ) ) else if (ANC_ABS_PLN_PLAN_UOM ='W')
  • 65. then( if (l_length_of_service <3) then( accrual =round(10/120,3) ceiling = round(100/120,3) carryover=round(50/120,3) prorationFactor=0.25 vestingUnits=40 vestingUOM='C' carryOverProration=0.25 ceilingProration=0.25 ) else if ((l_length_of_service =>3) and (l_length_of_service<5)) then ( accrual =round(12/120,3) ceiling = round(120/120,3) carryover=round(60/120,3) prorationFactor=0.25 vestingUnits=30 vestingUOM='C' carryOverProration=0.25 ceilingProration=0.25 ) else if (l_length_of_service =>5) then ( accrual =round(15/120,3) ceiling =round(150/120,3) carryover=round(75/120,3) prorationFactor=0.25 vestingUnits=30 vestingUOM='C' carryOverProration=0.25 ceilingProration=0.25 ))) if (ANC_ABS_PLN_NAME='Sickness') then( if(ANC_ABS_PLN_PLAN_UOM ='H') then( if(l_length_of_service<3) then( ac- crual =12 ceil- ing = 120 car- ryover=60 prorationFactor=0.25 vestingUnits=40 vestingUOM='C'
  • 66. car- ryOverProration=0.25 ceilingProration=0.25 ) else if ((l_length_of_service =>3) and (l_length_of_service<5)) then ( accrual =13 ceiling = 130 carryover=70 prorationFactor=0.25 vestingUnits=30 vestingUOM='C' carryOverProration=0.25 ceilingProration=0.25 ) else if (l_length_of_service =>5) then ( accrual =14 ceiling = 160 carryover=80 prorationFactor=0.25 vestingUnits=30 vestingUOM='C' carryOverProration=0.25 ceilingProration=0.25 )) else if (ANC_ABS_PLN_PLAN_UOM ='D') then( if (l_length_of_service <3) then( accrual =round(12/24,3) ceiling = round(120/24,3) carryover=round(60/24,3) prorationFactor=0.25 vestingUnits=40 vestingUOM='C' carryOverProration=0.25 ceilingProration=0.25 ) else if ((l_length_of_service =>3) and (l_length_of_service<5)) then ( ac- crual =round(13/24,3) ceiling = round(130/24,3) car- ryover=round(70/24,3) pro- rationFactor=0.25 vestingUnits=30 vestingUOM='C'
  • 67. car- ryOverProration=0.25 ceilingProration=0.25 ) else if (l_length_of_service =>5) then ( accrual =round(14/24,3) ceiling =round(160/24,3) carryover=round(80/24,3) prorationFactor=0.25 vestingUnits=30 vestingUOM='C' carryOverProration=0.25 ceilingProration=0.25 )) else if (ANC_ABS_PLN_PLAN_UOM ='W') then( if (l_length_of_service <3) then( accrual =round(12/120,3) ceiling = round(120/120,3) carryover=round(60/120,3) prorationFactor=0.25 vestingUnits=40 vestingUOM='C' carryOverProration=0.25 ceilingProration=0.25 ) else if ((l_length_of_service =>3) and (l_length_of_service<5)) then ( accrual =round(13/120,3) ceiling = round(130/120,3) carryover=round(70/120,3) prorationFactor=0.25 vestingUnits=30 vestingUOM='C' carryOverProration=0.25 ceilingProration=0.25 ) else if (l_length_of_service =>5) then ( accrual =round(14/120,3) ceiling =round(160/120,3) carryover=round(80/120,3) prorationFactor=0.25 vestingUnits=30 vestingUOM='C' carryOverProration=0.25 ceilingProration=0.25 ))) Return accrual, ceiling, carryover, prorationFactor, vestingUnits, vestingUOM, carryOverProration,ceilingProration
  • 68. SCREENSHOT AH GLOBAL ABSENCE VESTING PERIOD FORMULA AH Global Absence Vesting Formula Formula Name AH Global Absence Vesting Period Formula Formula Type Global Absence Vesting Period Description This sample formula applies the Ceiling based on employment category. If the Em- ployee belongs to a specific Legal Employer (Vision Corporation for this example) then his Vesting Period ( Number of Days after which he is allowed to use his ac- crued leaves) is 90 Calendar Days for any other Legal Employer it is 30 FORMULA TEXT /******************************************************************** FORMULA NAME: AH Global Absence Vesting Period Formula FORMULA TYPE: Global Absence Vesting Period DESCRIPTION: This sample formula applies the vesting period based on employment category. If the Employee belongs to a specific Legal Employer (Vision Corporation for this example) then his Vesting Period (Number of Days after which he is allowed to use his accrued leaves) is 90 Calendar Days for any other Legal Employer it is 30 Days Change History: Name Date Comments ----------------------------------------------------------------------------------------------------------------- XXXXXXX DD-MM-YYYY XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ---------------------------------------------------------------------------------------------------------------- ********************************************************************/ /*==============DATABASE ITEM DEFAULTS BEGIN =====================*/ DEFAULT for PER_ASG_ORG_LEGAL_EMPLOYER_NAME is 'Vision' /*==============DATABASE ITEM DEFAULTS ENDS======================*/ /*================== FORMULA SECTION BEGIN =======================*/ If (PER_ASG_ORG_LEGAL_EMPLOYER_NAME='Vision Corporation') then ( vestingUOM = 'C' vestingUnits=90 ) else( vestingUOM = 'C' vestingUnits=30) /*=================== FORMULA SECTION END =======================*/ return vestingUOM,vestingUnits SCREENSHOT
  • 69. AH GLOBAL ABSENCE PLAN USE RATE SELECTION FORMULA 1 AH Global Absence Plan Use Rate Selection Formula 1 Formula Name AH Global Absence Plan Use Rate Selection Formula 1 Formula Type Global Absence Plan Use Rate Description This sample formula returns the rate code. We have defined two different rate codes namely Sickness Rate and Hourly Rate. If an individual chooses either an Absence Type of Sick or Flu the RateCode is Sickness Rate else its Hourly Rate FORMULA TEXT /*********************************************************************** FORMULA NAME: AH Global Absence Plan Use Rate Selection Formula 1 FORMULA TYPE: Global Absence Plan Use Rate DESCRIPTION: This sample formula returns the rate code. We have defined two different rate codes namely Sickness Rate and Hourly Rate. If an individual chooses either an Absence Type of Sick or Flu the RateCode is Sickness Rate else its Hourly Rate. Change History: Name Date Comments --------------------------------------------------------------------------------------------------------------------- XXXXXXX DD-MM-YYYY XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -------------------------------------------------------------------------------------------------------------------- ***********************************************************************/ /*=========== DATABASE ITEM DEFAULTS BEGINS======================*/ DEFAULT for ANC_ABS_TYP_NAME is 'Sick' DEFAULT for ANC_ABS_RSN_NAME is 'Cough' /*=========== DATABASE ITEM DEFAULTS ENDS======================*/ /*================ FORMULA SECTION BEGIN =======================*/ if ((ANC_ABS_TYP_NAME='Sick’) AND (ANC_ABS_RSN_NAME='Flu')) then ( rateCode='Sickness Rate' ) else ( rateCode='Hourly Rate') /*================ FORMULA SECTION END =======================*/ return rateCode
  • 70. SCREENSHOT AH GLOBAL ABSENCE PLAN USE RATE FORMULA 2 AH Global Absence Plan Use Rate Formula2 Formula Name AH Global Absence Plan Use Rate Formula2 Formula Type Global Absence Plan Use Rate Decription This sample formula returns the Plan Use Rate. If an Individual is Paid on Hourly Ba- sis his RateCode will be Hourly else it would be Annual Salary FORMULA TEXT /*********************************************************************** FORMULA NAME: AH Global Absence Plan Use Rate Formula2 FORMULA TYPE: Global Absence Plan Use Rate DESCRIPTION: This sample formula returns the Plan Use Rate. If an Individual is Paid on Hourly Basis his RateCode will be Hourly else, it would be Annual Salary Change History: Name Date Comments -------------------------------------------------------------------------------------------- XXXXXXX DD-MM-YYYY XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -------------------------------------------------------------------------------------------- ***********************************************************************/ /*=========== DATABASE ITEM DEFAULTS BEGIN =====================*/ DEFAULT for PER_ASG_HOURLY_SALARIED_CODE is 'H' /*=========== DATABASE ITEM DEFAULTS ENDS======================*/ /*=========== FORMULA SECTION BEGIN======================*/ if (PER_ASG_HOURLY_SALARIED_CODE='H') then ( rateCode='Hourly Rate') else ( rateCode='Annual Salary Rate') /*=========== FORMULA SECTION END======================*/ RETURN rateCode SCREENSHOTS
  • 71. SETUP STEPS Each absence plan setup requires four Tabs to be filled namely: a) PLAN ATTRIBUTES Contains Details about Plan Name, Description, Legislative Data Group, Processing Level, Conversion Formula Attached (used for Absence Duration calculation) b) PARTICIPATION Contains Details about Basic Plan Details, Enrollment and Termination Rules c) ACCRUALS Contains Details about Accrual Attributes like Accrual Formulas, Payment Percentage, Accrual Method, Accrual Frequency. d) ENTRIES AND BALANCES Contains Details about Balance Updates, Rates and Payroll Integrations Navigation is as shown below: Login to Fusion Applications -> Click on Navigator -> Click on ‘Setup and Maintainenance’-> In “All Tasks” Search for “Manage%Absence%Plan”
  • 72. Click on Create Button and populate the following details: LABEL VALUE Effective As of Date 09/18/14 Legislation India Plan Type Accrual You may populate the following screen with above details Populate Plan Attributes Tab: This Tab Consists of 4 parts which are: a) General Attributes b) Plan Term c) Legislative Information (Optional Used for Populating Legislative Specific Absence Information. Not Applicable in this example) d) Descriptive Information (Optional Used for Populating DFF Fields If Created for Absence Plan. Not Applicable in this example) Populate the following details in General Attributes Section as shown below: General Attributes LABEL VALUE Plan XX AH Annual Absence Plan IN Description Annual Absence Plan Created for India Plan UOM Days Legislative Data Group IN Legislative Data Group Status Active Enable Concurrent Entitlement Unchecked Processing Level Assignment Conversion Formula AH Global Absence Plan Duration Formula Populate the following details in Plan Term Section as shown below: Plan Term LABEL VALUE Type Calendar Year Calendar Start Month 01 Start Day 1
  • 73. Use the above details and populate the Plan Attributes Tab and the screenshot would look like: Populate Participation Tab: This Tab Consists of 2 parts which are: a) Enrollment Rules b) Termination Rules Populate the following details in Enrollment Rules Section as shown below: Enrollment Rules LABEL VALUE Enrollment Start Rule As of Event Waiting Period UOM Calendar Days Duration 30 Populate the following details in Termination Rules Section as shown below: Termination Rules LABEL VALUE Enrollment End Rule As of Event On Employment Termination LABEL VALUE Positive Accrual Balances Checked Negative Accrual Balance Checked On Loss of Plan Eligibility LABEL VALUE Disburse Positive Balance Checked Recover Negative Balance Checked
  • 74. Use the above details and populate the Participation Tab and the screenshot would look like: Populate Accruals Tab which consists of Accrual Attributes Section only. Populate the following details in Accrual Attributes Section as shown below: Accrual Attributes LABEL VALUE Accrual Definition Formula Accrual Formula AH Global Absence Accrual Formula Payment Percentage 100% Accrual Method Incremental Partial Accrual Period Formula Accrual Vesting Rule Formula Vesting Period Formula AH Global Absence Vesting Period For- mula Accrual Frequency Source Person Primary Frequency Use the above details and populate the Accruals Tab and the screenshot would look like: Populate Entries and Balances Tab.This Tab Consists of 3 Sections which are: a) Balance Updates b) Rates c) Payroll Integration
  • 75. Populate the following details in Balance Updates Section as shown below: Balance Updates LABEL VALUE Discretionary Disbursements of Accrual Balance Checked Accrual Balance Transfers Across Plans Checked Other Adjustments Checked Other Adjustment Reasons Clerical Error , Compensatory Populate the following details in Rates Section as shown below: Rates LABEL VALUE Absence Payment Rate Rule Formula Formula AH Global Absence Plan Use Rate Selec- tion Formula 1 Final Disbursement Rate Rule Formula Formula AH Global Absence Use Rate Formula2 Discretionary Disbursement Rate Rule Formula Formula AH Global Absence Plan Use Rate Selec- tion Formula 1 Liability Rate Rule Formula Formula AH Global Absence Use Rate Formula2 Populate the following details in Payroll Integration Section as shown below: Payroll Integration LABEL VALUE Transfer absence payment information for payroll processing Checked Element Annual Leave Use the above details and populate the Entries and Balances Tab and the screenshot would look like: If this check box is not selected (Element field will not show a field value of Annual Leave rather it will be empty) Once all the above setup is done Absence Plan Creation is complete.
  • 76. An Overview of Fusion Absence Management Part 2 Absence Type Definition and Use INTRODUCTION This article is the second part of the series “An Overview of Fusion Absence Management”. The first part titled: “ An overview of Fusion Absence Management Part 1 Absence Plan Definition and Use” can be found at Accenture KX Site too. Before we start to understand How to create an Absence Type first try to understand what a Absence Type is and why is it required. An absence type as the name suggests refers to different types of absences like Sick Leave, Annual Leave, Vacation Leave, Marriage Leave, Compassionate Leave, Maternity leave, Paternity Leave and you can keep on expanding so on and so forth. Basically in a nutshell, all the various reasons / events / activities for which a Leave Application may be raised can be treated as Absence Type (context being Fusion Absence Management). So before we jump into a typical business requirement and dig deep into how to fulfill the same let-us try to familiarize our- selves with some of the most commonly used terms which would be referred in the ongoing article: Absence Pattern This could be defined as the broad level categorization of different leave types like General Leave, Illness, Injury … special leave types. In context of Fusion Absence Management there are 3 different types of Patterns (available as of today) namely : a) Childbirth or Placement: Refers to specific leave type Childbirth (Maternity) and Placement ( Specific Assignment) b) Generic Absence : Covers the largest scope in terms of leave types. Includes Annual Leave, Vacation Leave, Compensatory Off, Marriage Leave, Optional Leave, Compassionate Leave …etc. c) Illness or Injury : As the name suggests leave patterns which depends on an individual’s physical condition. This patterns includes Sick Leave, Hospitalization leave to name a few. Legislation Geography / Country where this Absence Type is Maintained. For Example if we are doing Absence Type setup for India Legislation would be India , if we are doing for USA it would be United States and so on.... Absence Type UOM Unit of Measure which states in which unit (either of Days / Calendar Days / Hours) will this Absence Type will get meas- ured BUSINESS REQUIREMENT Now since we are aware of some of the most commonly used terms for an absence types we should try to create one ab- sence type. Requirement is to create an Absence Type of Pattern Generic Absence. PERQUISITES: You need to have an already created Absence Plan available to attach to the absence Type (we did same in Absence Article 1 so we are good) . Also we would assume that we have an absence reason already created in the application to use. SETUP STEPS In this example to keep things simpler we would only discuss about the Mandatory Details required to create an Absence type (fields which are mandatory are generally highlighted with an asterisk mark beside them), A complete detail of all fields could be covered in next article. Navigation is as shown below: Login to Fusion Applications ->
  • 77. Click on Navigator -> Click on ‘Setup and Maintenance’-> In “All Tasks” Search for “Manage%Absence%Types” Click on Go to Task Button Click on Create Button and populate the following details: LABEL VALUE Effective as of Date 9/18/14 Legislation India Pattern Generic Absence You may populate the following screen with above details Each absence plan setup requires four Tabs to be filled namely (screen-shot reference). a) TYPE ATTRIBUTES Contains Details about Type Name, Description, UOM, Legislative Data Group, Status, Duration Rules , Absence Record Maintenance, fast formulas Conversion Formula , Validation Formula along with Eligibility Profile associ- ated with a particular absence type Populate the following values (displayed in tabular format below) General Attributes LABEL VALUE Name XX AH Annual Absence Type IN Description XX AH Annual Absence Type IN UOM Calendar Days Legislative Data Group India Status Active
  • 78. Duration Rules LABEL VALUE Minimum Duration Rule None Maximum Duration Rule None Partial Day Rule Unlimited b) PLANS AND REASONS Plans and Reasons ( Absence Plans) LABEL VALUE Plan XX AH Annual Absence Plan IN Status Active Priority 10 Contains Details about Effective Start Date, Plan, Status Priority as shown in below screenshot :
  • 79. Also select an Absence Reason as shown: Plans and Reasons (Absence Reasons) LABEL VALUE Reason Annual Leave Linkage Reason No Default No The page after filling details should look like: c) DISPLAY FEATURES This page comes with default values populated and for the sake of simplicity let-us keep them as is the page ap- pears as shown below
  • 80. d) ACTION ITEMS Used to configure any specific actions to be triggered / executed / performed whenever this leave type is applied. Not applicable for current example hence ignored for now. We keep this page as blank as shown below; Click on Save and Close Button Once all the above setup is done Absence Type Creation is complete.
  • 81. Chapter 6 - Fusion Fast Formulas How-To Create a Global Absence Entry Validation Fast Formula in Fusion Applications Customer has a requirement where-in they allow only individuals a) Leave Duration should be wither Half / Full day. b) This leave is only allowed up-to 3 childrens c) You can only avail this leave if you have dependent/ adopted children d) Leave needs to be applied within 1 year of childbirth Details of the Custom **Error Message and their description below ( In tabular Format) **All the above Error Messages are defined in 'Manage Messages' under Setup and Maintaineance /****************************************************************************** FORMULA NAME: A2F_ANC_VALID_Paternity FORMULA TYPE: Global Absence Entry Validation DESCRIPTION: This formula returns the Paternity Leave Criteria. Only workers who have less than 3 dependent children are eligible Change History: Name Date Comments ----------------------------------------------- Ashley Hardy 07-Apr-2015 Initial Version *******************************************************************************/ DEFAULT_DATA_VALUE FOR PER_PER_CONTACT_PERSON_ID IS 0 DEFAULT_DATA_VALUE FOR PER_PER_CONTACT_CONTACT_TYPE IS ' ' DEFAULT_DATA_VALUE FOR PER_PER_CONTACT_DATE_OF_BIRTH IS '4712/12/31 00:00:00' (date) DEFAULT_DATA_VALUE for ANC_PER_ABS_ENTRS_ABSENCE_ENTRY_ID_ARR is 0 DEFAULT FOR ANC_ABS_ENTRS_ABSENCE_TYPE_ID is 0 /*=========== DATABASE ITEM DEFAULTS END =====================*/ /*================ FORMULA SECTION BEGIN =======================*/ /*==============INPUTS SECTION BEGIN================*/ INPUTS ARE iv_start_date (date), iv_end_date (date), IV_TOTALDURATION /*==============INPUTS SECTION BEGIN================*/ ln_pl_type_id = GET_CONTEXT(ABSENCE_TYPE_ID,0) /* pl stands for Paternity Leave */ ld_child_birth_date = TO_DATE('1951-01-01','yyyy-MM-dd') ld_start_date = TO_DATE('1951-01-01','yyyy-MM-dd') j = 1 l_new_duration = IV_TOTALDURATION ln_child_count = 0 ln_rem = MOD(IV_TOTALDURATION,0.5) IF (ln_rem <> 0) THEN ( VALID = 'N' ERROR_MESSAGE = 'A2F_ANC_SG_ERR_DURCAL' /* 'Leave Duration should either be Half/Full Day.Please change absence start and end dates accordingly' */ RETURN VALID,ERROR_MESSAGE ) CHANGE_CONTEXTS(START_DATE=iv_start_date, END_DATE=iv_end_date) ( i=PER_PER_CONTACT_PERSON_ID.FIRST(-1) WHILE PER_PER_CONTACT_PERSON_ID.exists(i) LOOP ( if(PER_PER_CONTACT_CONTACT_TYPE[i] = 'C' or PER_PER_CONTACT_CONTACT_TYPE[i] = 'A') then
  • 82. ( ln_child_count = ln_child_count + 1 ld_child_birth_date = PER_PER_CONTACT_DATE_OF_BIRTH[i] IF ( ld_child_birth_date < PER_PER_CONTACT_DATE_OF_BIRTH[i]) THEN ld_child_birth_date = PER_PER_CONTACT_DATE_OF_BIRTH[i] ) i= i+1 ) if(ln_child_count => 3 ) /*ln_child_count > 3*/ THEN (valid = 'N' ERROR_MESSAGE = 'A2F_ANC_A2F_ERR_PATERNITY' /*'This leave is only allowed upto 3 childrens'*/ RETURN valid,ERROR_MESSAGE ) if (ln_child_count = 0) THEN (VALID = 'N' ERROR_MESSAGE = 'A2F_ANC_A2F_ERR_PAT_0KIDS' /* 'You can only avail this leave if you have dependent/adopted children' */ RETURN VALID,ERROR_MESSAGE ) else( valid='Y' ) ) CHANGE_CONTEXTS(START_DATE=ld_start_date, END_DATE=IV_START_DATE) ( WHILE ANC_PER_ABS_ENTRS_ABSENCE_ENTRY_ID_ARR.exists(j) LOOP ( CHANGE_CONTEXTS (ABSENCE_ENTRY_ID = ANC_PER_ABS_ENTRS_ABSENCE_ENTRY_ID_ARR[j]) ( IF (ln_pl_type_id = ANC_ABS_ENTRS_ABSENCE_TYPE_ID) THEN ( IF (DAYS_BETWEEN(IV_START_DATE,ld_child_birth_date) > 365 OR DAYS_BETWEEN(IV_START_DATE,ld_child_birth_date) < 0) THEN (VALID = 'N' ERROR_MESSAGE = 'A2F_ANC_A2F_FLEX_FROM_CHILDBIRTH' /* This leave needs to be applied within 1 year of chilbirth */ RETURN VALID,ERROR_MESSAGE ) ) ) j=j+1 ) ) /*================ FORMULA SECTION END =======================*/ return VALID,ERROR_MESSAGE Click on Edit Button and then select Correct as shown :
  • 83. How-To Create a Global Absence Vesting Period Fast Formula in Fusion Applications BUSINESS REQUIREMENT Global Absence Vesting Period Formula is used when want to ensure what type of vesting (how long will an employee accrue leave balance) but will not be allowed to apply for a leave. For this specific example requirement is: We have a DFF (Descriptive Flex Field) defined at the assignment screen which holds employee assignment type namely 'Assignee', 'OTP' , 'Resident', 'Resident -Home'..... The Requirement is: A) There will be no Vesting Period if 1) the current assignment is First assignment and DFF value is either 'Assignee' , 'OTP' or 'Resident' OR 2) the current assignment is Global Temporary Assignment and DFF value is either 'Assignee' , 'OTP' or 'Resident' B) There will be Vesting Period if 1) the current assignment is NOT First assignment and DFF value is neither of 'Assignee' , 'OTP' or 'Resident' OR 2) the current assignment is NOT Global Temporary Assignment and DFF value is neither of 'As- signee' , 'OTP' or 'Resident'
  • 84. FORMULA CODE : /******************************************************************** FORMULA NAME: A2F_ANC_AssigneeOTPResident_VESTING_1MONTH FORMULA TYPE: Global Absence Vesting Period DESCRIPTION: This sample formula removes the vesting period for Assignee/OTP/Resident Name Date Comments ----------------------------------------------------------------------------------------------------------------- Ashley Hardy 15-Jun-2015 Initial Version Ashley Hardy 06-Jul-2015 Incorporate Changes Required for 'Global Temporary Assignment' ---------------------------------------------------------------------------------------------------------------- ********************************************************************/ /*==============DATABASE ITEM DEFAULTS BEGIN =====================*/ DEFAULT for PER_ASG_REL_DATE_START is '1951/01/01 00:00:00' (date) DEFAULT for PER_ASG_REL_ORIGINAL_DATE_OF_HIRE is '1951/01/01 00:00:00' (date) DEFAULT for PER_PERSON_ENTERPRISE_HIRE_DATE is '1951/01/01 00:00:00' (date) DEFAULT FOR PER_ASG_ATTRIBUTE5 IS ' ' DEFAULT FOR PER_ASG_ACTION_CODE is ' ' /*==============DATABASE ITEM DEFAULTS ENDS======================*/ /*================== FORMULA SECTION BEGIN =======================*/ IF ((PER_ASG_REL_DATE_START = PER_ASG_REL_ORIGINAL_DATE_OF_HIRE) OR (PER_ASG_ACTION_CODE = 'GLB_TEMP_ASG')) THEN ( If (PER_ASG_ATTRIBUTE5 = 'Assignee') OR (PER_ASG_ATTRIBUTE5 = 'OTP') OR (PER_ASG_ATTRIBUTE5 = 'Resident') then( vestingUOM = 'M' vestingUnits= 0 ) else( vestingUOM = 'M' vestingUnits=1 ) ) else (vestingUOM = 'M' vestingUnits=1 ) /*=================== FORMULA SECTION END =======================*/ return vestingUOM,vestingUnits SCREENSHOT:
  • 85. Click on Edit Button and then select Correct as shown:
  • 86. Creating Custom HCM Extracts in Fusion Applications HCM Extracts and BI / OTBI / OBIA (currently enabled in on premise) are the most commonly used modes via which data can be transferred from Fusion Applications to 3rd Party System. While BI Publisher even OTBI and OBIA in same cases allows you to get the specific data set which is be- ing desired by the third party system, we still need a robust outbound tool / mechanism to cater to all busi- ness needs. Some important features being: a) Dynamic File Name b) Dynamic File Location c) Capability to capture ‘Changed Data’ only feature d) Capability to provide data into different formats like E-Text, XML, PDF, RTF While it is agreed all this can be done using BI Publisher ( Using advanced Features like Bursting which al- lows dynamic file name generation and also allows encryption too) still for large Data Set and for more co- herent integration the preferred and most commonly used mechanism( as of today) is HCM Extract. The literal meaning of HCM Extract as the name suggests is HR Output. ‘HR’ for HCM and Output for ‘Ex- tract’ so HCM Extract means HR Output in simple terms i.e. when you get HR Data as Output from Fusion Applications it is called HCM Extract. Custom HCM Extract Creation: Available Options There are three available options while creating Custom HCM Extract in a Fusion POD (Application Envi- ronment): A) Import Custom HCM Extract from another Fusion Instance B) Make a copy of existing delivered extracts. Add/Edit/Delete/Modify/Extend the same and make a Custom HCM Extract C) Create a Custom HCM Extract from scratch To make things simpler we would try to publish all three categories in three different articles which would be posted soon. The article names (proposed) are: A) How-to Migrate Custom HCM Extract B) How-to Make a Copy of Existing Delivered HCM Extracts C) How-to Create a Custom HCM Extract from scratch.
  • 87. How-To Migrate Custom HCM Extract in Fusion Applications Business Requirement At times we have multiple instances and we intend to move one HCM Extract (created in Development) environment to another instance ( UAT ) or even in Production. We can use the Export Import feature then. Export Login to Fusion Applications, Navigate to ‘Data Exchange’ and then search for the custom worker extract you wish to export. Click on the Export symbol and xml file gets downloaded as displayed: IMPORT Navigate to ‘Data Exchange’ as displayed: Under Tasks -> HCM Extracts -> Manage Extract Definitions
  • 88. Click on Import Extract Option A new popup window opens which asks for the File Path as displayed:
  • 89. Give a new name if you wish to Once the import Process is complete you would be able to search for the Extract:
  • 90. Data Extraction HCM Extracts or Reporting Tools Which one to use when & why In Fusion Applications we have various methods of extracting data. The most popularly used ones being: a) HCM Extracts b) Fusion Reporting Tools (BIP, OTBI , OBIA also referred to as OTBI-E) A very common question for any Technical Consultant is which one of the above mentioned mechanisms (be it either HCM Extracts / BIP / OTBI / OBIA) are used for extraction. But before going into the details let us try to understand what the above terms mean : a) BIP BIP stands for Business Intelligence Publisher BIP Reports stands for Business Intelligence Publisher Reports For technical consultant with Reports 6i or more advanced versions it is just a new name given in Fusion Applications. These kind of reports comprises of : i) Data Model This is typically a name given to a Data Set which comprises of Data Set (which in turn is a name given to a Data Source which could be with of SQL Query, LDAP Query, XML Query, Static Data…. ) Also has provision of adding separate placeholder columns, formula columns and other features ii) Layout This is a page/graphical area which shows how the report would look like. This can comprise of Table, Letters, Logos, Icons, Images and what not. Can have repeating and Non-Repeating Segments, XML Tags, Dynamic Values, Summary Columns….. The layout can be any of the output formats like PDF, RTF, Excel, E-text, CSV……….. b) OTBI OTBI Stands for Oracle Transactional Business Intelligence Typically referred to as Drag and Drop Reporting (similar to Discoverer Reports) This kind of Reports are created from specific subject areas (basically specific folder structure made up of logical data attributes clubbed together and are associated with some specific areas of application like for Payroll we have Payroll Real Time, Workforce Management Real Time … and so on OTBI Agents are new features which works similar to like ( Oracle Alerts we had in EBS) Also there are ways to combine 2 different subject areas using a common attribute (named as facts) c) OBIA OBIA stands for Oracle Business Intelligence Applications Pre-seeded Analytics Reports Details about Trends, Historical Analysis, Predictions On-Premise Applications has these features enabled Off late Oracle has planned to release it to Cloud Customers too renaming them as OTBI-E d) HCM Extracts This is the Oracle recommended way of data transfer from Fusion Applications to other 3rd party systems. While this tool comprises of: i) Define Comprises of Define Tab (here we name the Extract Names and the parameters) ii) Design This is the section where we define the Extract Definition (HCM Data Objects as well as the Extract Attributes) iii) Delivery Options Different ways of delivery ( File Naming, Output Type, Delivery Frequency , Output Format, Layout …..) In essence while it’s not impossible to create data extract for integration from either of the above mentioned op- tions but HCM Extracts is preferred because of following reasons: a) It is a mix and match of all above options Design is OTBI + OBIA (you drag and drop extract attributes and they could be both real time attrib- utes(OTBI) or historical extract attributes(OBIA)) . Deliver is BIP (you create layout, report, template) Define is again BIP (allows you to have custom parameters) b) This has DELTA extract features So each new run can compare itself with previous run (depending on parameter value passed during define extract phase) and provides only the changed data
  • 91. Chapter 8: Other Miscellaneous Topics FUSION APPLICATIONS – USER ROLE DETAIL REPORT BUSINESS REQUIREMENT: It is a very common requirement in almost all implementation where in the Stakeholders are interested to know how many user accounts are there is the system along with the corresponding roles attached to them. While oracle has delivered some seeded Reports which could be run from ‘Application Diagnostic Framework, screenshot below (Troubleshooting -> Run Diagnostic Tests) ORACLE DELIVERED REPORTS: 1) User Roles Display 2) User and Role: Role Details 3) User and Role: User Details NAVIGATION TO RUN DELIVERED REPORTS: Login to Application -> Run Diagnostic Tests After Running Reports :
  • 92. DELIVERED REPORT 1 -> USER ROLES DISPLAY User Roles Display: (Displays the Roles attached to procurement user) Input Value : Sachin.Satpute Output Screenshot : DELIVERED REPORT 2 -> USER AND ROLE: ROLE DETAILS User and Role: Role Details Takes Role Name as input and displays all users who have the role attached to their user account. (Secured i.e. if the individual who is running the Report has access to a specific Data Set individuals belonging to that Data Set would only be displayed). Input Value : Employee Output Screenshot:
  • 93. DELIVERED REPORT 3 -> USER AND ROLE: USER DETAILS User and Role: User Details Takes User Name as input and displays all roles attached to the user. (Secured i.e. if the individual who is running the Report has access to a User Account being passed as input data would be displayed else no.) Input value : Sachin.Satpute Output Screen-shot:
  • 94. NEED FOR A CUSTOM CONSOLIDATED REPORT But if we need a consolidated report which will list all the users along with all the roles they have neither of the delivered ones help. So we need a Custom Report (Preferred O/P Format could be RTF, Interactive, Excel, PPT. ) Since we are planning to display a colorful report with different color Code Combination (using Conditional Formatting feature we choose PPT Format for this example) CUSTOM REPORT (NAME) -> USER AND ROLE DETAILS REPORT SQL Used for User and Role Details Report: select papf.person_number "PersonNumber", ppnf_emp.full_name "PersonName", pu_emp.user_start_date "UserAccountStartDate", pu_emp.user_end_date "UserAccountEndDate", pu_emp.is_user_ac- count_active "UserAccountStatus", pu_emp.username "UserAccountName", pu_emp.is_user_ac- count_suspended "IsUserAccountSuspended", pu_emp.user_distin- guished_name "UserAccountInternalName", pur_emp.method_code "RoleProvi- sioningMethod", pur_emp.is_user_role_active "IsUserRoleActive", pur_emp.is_user_role_terminated "IsUserRoleTerminated", Case When (pur_emp.is_user_role_active = 'Yes' AND pur_emp.is_user_role_terminated = 'No' ) Then 'Active' When (pur_emp.is_user_role_active = 'No' AND pur_emp.is_user_role_terminated = 'No') Then 'NeitherAc- tiveNorTerminated' When (pur_emp.is_user_role_active = 'Yes' AND pur_emp.is_user_role_terminated = 'Yes') Then 'Ac- tiveAndTerminated' When (pur_emp.is_user_role_active = 'No' AND pur_emp.is_user_role_terminated = 'Yes' ) Then 'InactiveAndNotTerminated' End as "UserRoleStatus", pur_emp.role_start_date "UserRoleStartDate", pur_emp.role_end_date "UserRoleEndDate", prd_emp.abstract_role "Is- RoleAAbstractRole", prd_emp.job_role "Is- RoleAJobRole", prd_emp.data_role "IsRoleADa- taRole", prd_emp.is_role_active "IsRoleActive", Case When (prd_emp.abstract_role = 'Y' AND prd_emp.job_role = 'N' AND prd_emp.data_role = 'N' ) Then 'Abstract Role' When (prd_emp.abstract_role = 'N' AND prd_emp.job_role = 'Y' AND prd_emp.data_role = 'N' ) Then 'Job Role' When (prd_emp.abstract_role = 'N' AND prd_emp.job_role = 'N' AND prd_emp.data_role = 'Y' ) Then 'Data Role' When (prd_emp.abstract_role is NULL AND prd_emp.job_role is NULL AND prd_emp.data_role is NULL ) Then '- NA--' End as "UserRoleType", prd_emp.role_common_name "RoleCommonName", prd_emp.mul- titenancy_common_name "MultitenancyCommonName", prd_emp.role_distin- guished_name "IsRoleDistinguishedName", prdt_emp.role_name "UserRoleName", prdt_emp.RoleDescription FROM per_all_people_f papf JOIN ( SELECT ppnf.full_name, ppnf.person_id FROM per_person_names_f ppnf WHERE ppnf.name_type = 'GLOBAL' AND TRUNC(SYSDATE) BETWEEN ppnf.effective_start_date AND ppnf.effective_end_date ) ppnf_emp ON ( ppnf_emp.person_id = papf.person_id
  • 95. AND TRUNC(SYSDATE) BETWEEN papf.effective_start_date AND papf.effective_end_date ) LEFT OUTER JOIN ( SELECT pu.person_id, pu.user_id, pu.username, to_char(pu.start_date,'DD- MM-RRRR') user_start_date, to_char(pu.end_date,'DD-MM- RRRR') user_end_date, DECODE(pu.active_flag,'N','Inactive','Y','Active') is_user_account_active, DE- CODE(pu.suspended,'N','No','Y','Yes') is_user_account_suspended, pu.user_distinguished_name FROM per_users pu ) pu_emp ON (pu_emp.person_id = papf.person_id AND TRUNC(SYSDATE) BETWEEN papf.effective_start_date AND papf.effective_end_date) LEFT OUTER JOIN ( SELECT pur.user_id, pur.role_id, pur.role_guid, DECODE(pur.method_code,'A','Automatic','M','Manually','E','Externally Provisioned') method_code, DECODE(pur.active_flag,'N','No','Y','Yes') is_user_role_active, DE- CODE(pur.terminated_flag,'N','No','Y','Yes') is_user_role_terminated, to_char(pur.start_date,'DD-MM-RRRR') role_start_date, to_char(pur.end_date,'DD-MM-RRRR') role_end_date FROM per_user_roles pur ) pur_emp ON (pu_emp.user_id = pur_emp.user_id) JOIN ( SELECT prd.role_id, prd.role_guid, prd.abstract_role, prd.job_role, prd.data_role, DECODE(prd.active_flag,'N','No','Y','Yes') is_role_active, prd.role_common_name,
  • 96. prd.multitenancy_common_name, prd.role_distinguished_name FROM per_roles_dn prd ) prd_emp ON (pur_emp.role_id = prd_emp.role_id AND pur_emp.role_guid = prd_emp.role_guid) JOIN ( SELECT prdt.role_id, prdt.role_name, prdt.description RoleDescription, prdt.source_lang FROM per_roles_dn_tl prdt ) prdt_emp ON (prd_emp.role_id = prdt_emp.role_id AND pur_emp.role_id = prdt_emp.role_id AND prdt_emp.source_lang = 'US' ) WHERE papf.person_number = nvl(:pn_person_number, papf.person_number) AND TRUNC (SYSDATE) BETWEEN papf.effective_start_date AND papf.effective_end_date CONDITIONAL FORMATTING The different color code feature can be added using the Conditional Formatting fields (Highlight and Manage Formats)
  • 98. ESS JOB CREATION PARAMETER DEFINITION RUNNING SCHEDULED JOB
  • 99. RUNNING SCHEDULED JOB FOR ONE PERSON Person Number: 10
  • 100.
  • 101. FusionAbsenceManagementREL92-SampleFastFormulas /****************************************************************************** FORMULA NAME: XX_ANC_ACCRUAL_XX_ExtendedChildCare FORMULA TYPE: Global Absence Accrual DESCRIPTION: This formula returns the accrual for employees enrolled in Extended Child Care Change History: Name Date Comments ----------------------------------------------- Ashish Harbhajanka 10-Apr-2015 Initial Version *******************************************************************************/ DEFAULT FOR PER_ASG_FTE IS 1 DEFAULT FOR PER_REL_ORIGINAL_DATE_OF_HIRE IS '4712/12/31 00:00:00' (date) DEFAULT FOR PER_REL_ACTUAL_TERMINATION_DATE IS '4712/12/31 00:00:00' (date) ln_accrual = 0 ld_effective_date=PER_REL_ORIG- INAL_DATE_OF_HIRE ld_emp_term_date =PER_REL_AC- TUAL_TERMINATION_DATE ld_current_date = GET_CON- TEXT(EFFEC- TIVE_DATE,'4712/12/31 00:00:00' (date)) ld_term_start_date = TO_DATE('01-01- '||TO_CHAR(ld_effective_date, 'rrrr'),'dd-mm-rrrr') ld_term_end_date = TO_DATE('31-12- '||TO_CHAR(ld_effective_date, 'rrrr'),'dd-mm-rrrr') ld_term_duration = DAYS_BETWEEN (ld_term_end_date, ld_term_start_date) ld_hire_year = TO_NUMBER(TO_CHAR(ld_effec- tive_date,'rrrr')) ld_curr_year = TO_NUMBER(TO_CHAR(ld_cur- rent_date,'rrrr')) accrual = 0 IF (ld_curr_year = ld_hire_year) THEN ( IF (TO_NUMBER(TO_CHAR(ld_effective_date,'MM')) < 7) THEN ( accrual = 2 ) IF (TO_NUMBER(TO_CHAR(ld_effective_date,'MM')) >= 7 AND TO_NUMBER(TO_CHAR(ld_effective_date,'MM')) <= 12) THEN ( accrual = 1 ) ) IF (ld_curr_year > ld_hire_year) THEN (accrual = 2)