Guide To Oracle HCM
Guide To Oracle HCM
• Home
• Contents
• About
• eBS HRMS
WELCOME
FF: USER FUNCTIONS
Functions are the sub-programs that take some inputs and after performing a particular Mathematical /
logical calculation, return a value. The subprogram once defined, can be called from and used in any
Formula.
Read more...
1|Page
OAB: OPEN ENROLLMENT
Open Enrollment / Open Season / Annual Enrollment, is a process with which employers provide an option
to the employees to add/remove/update their benefits elections. This is usually once a year process; however
there will be instances where the employer would wish to do it twice a year. The mostly used plan year is
1 Jan of every year till the 31 of December.
st st
Read more...
DEFINE A PAYROLL
As per Core – HR Design, every employee assignment must have a payroll attached to it. The entity payroll,
tells the system about the payroll frequency/ cycles, the valid payment methods, the check dates to which
the assignment is entitled. Employees in a same payroll share the same payroll frequency and pay dates.
How do we define a Payroll?
Read more...
CORRECTING PAYROLL
What if something goes wrong on Payroll calculation? You just come across something on your Payroll
register that needs corrections. How do we fix that?
2|Page
Read more...
Read more...
Read more...
Oh, so you like your books! Here's the content to help you navigate this site..
3|Page
Introduction to eBS
Introducing ERP
Architecture
Concurrent Programs
Flexfields
4|Page
Oracle Core HR
Date Tracking
Flexfields in HR
Organizations
Tools in HR
Payroll
Setting up KFFs
Payroll Essentials
Element Entries
5|Page
Balances
Processing Payroll
Correcting Payroll
Fast Formula
User Functions
Writing Formula
Managing Formula
6|Page
Eligibility
Life Events
Enrollments
Enrollment Certifications
Benefits Conversions
Benefits Administration
Communications
System Extracts
Medicare
7|Page
System Administration
Configuration
8|Page
INTRO TO ORACLE E-BIZ
INTRODUCTION
Ever since the inception of mankind, continuous improvement has been a key factor. Innovative thinking and
the attitude of experiment has guided us to what we are today. It’s the willingness to find something new,
and doing things in a better way that has led Homo sapiens thus far. The path of technical advancement had
been similar.
Information Technology had been the answer to a lot of complicated and repetitive issues lately. With the
advent of software engineering, we have been trying to eliminate the human intervention from the complex
processes and automate them, and so far we have been very successful. If we reopen the history of
Information technology, we will find a lot of pioneering products that has changed the way things worked
before its introduction. ERP is one such product.
ERP stands for Enterprise Resource Planning. This is a software application that enables the flow if
information between different streams of business, like Finance, Manufacturing, Sales, Human resources
etc. An enterprise uses ERP systems to support its daily business transactional needs and reporting
capabilities based on the transactions made.
9|Page
OVERVIEW
This chapter talks about:
▪ ERP, and its usage in today’s world
LEARNING OUTCOMES
After reading this chapter, one should be able to:
▪ Understand the concept of ERP
back to top
10 | P a g e
ARCHITECTURE OF E-BIZ
This section describes the basics of E-Biz Architecture. Although there are a lot attached to the Oracle apps
architecture, we will discuss the concepts that will help us in understanding the functionality better. Oracle
E-Biz runs with three tier architecture. See Figure 1.1 – Architecture.
(Figure 1.1 – Architecture)
Desktop Tier
This is the client facing or user facing interface. It runs HTML based Java applets to pop up forms and web
based applications, for the user access. This tier accepts our log in authentication credentials and keeps
them for further usage. So once logged in, we can use oracle applications as well as other tools embedded
within. The Oracle forms are brought in with a Forms client applet which in turn is a collection of Java Archive
files (JAR files). When we log in for the first time, the Forms client applet and frequently used JAR files are
downloaded to our machine and cached. Later less frequently used JARs get downloaded based on necessity.
11 | P a g e
INTRO TO ERP
INTRODUCTION TO ERP
Managing and automating the business processes is one of the core errands of any given enterprise.
Conventionally enterprises created their own software packages to manage their automation needs and the
software used to be strict to their own business functions; until the concept of standard customize-able
software came into the market.
The thought was to create a software package that would cater to all kind of businesses and processes. The
software should be customize-able and scale-able enough to make sure any given enterprise can pick it and
tweak it based on their requirements. That thought gave birth to the ERP. Software, which is created keeping
various industries in mind, in order to satisfy the business needs on a global platform, still being adaptable
to support any further extensions / customization.
But before that, it is essential to understand the requirement of software to manage the business process.
So what all processes are involved in an enterprise that needs automation / management? To answer this
question, let’s take one enterprise as an example. The example is a small company that deals with textiles.
They take cottons from a set of cotton sellers, who are their vendors. Then they make t-shirts and sell those
to the distributors, who are their customers. To keep track of the money they spend on purchasing the
cotton, they maintain a book, let’s name it Purchasing. Similarly, they have their machinery with which they
12 | P a g e
make t-shirts, which is their asset and a set of people running them, who are their employees. Similarly, they
have another book maintaining the sales and the Orders from the customer.
If we see, as they have the business to run, they will need software to automate all their books. The one that
should save all the transactions, and should be able to tell the business management, how much did they
spend on what, what is the net profit, how much did they pay to their employees etc. The more information
they have, the better is the grip on their business, because with the detailed information, they can make
budget forecasting, budget management etc with ease.
To automate the books, some company might give them a software that will be made just for their business
need, which will have different modules, like Purchasing (to track the raw material cost), Inventory (to
manage the entire stocks of materials), Human resource (to enable them manage their Employees and Ex-
employees with automated pay checks and benefits), Order management (to manage all the orders and
deliveries), and finally a General Ledger (to give them an eye on the entire financials) combined together.
This one will be like a jackpot, everything together. But yes, they will have to pay a lot for it, just because it’s
made just for their business need with their business rules embedded on to it.
So what’s the solution now? Let someone come up with a software package, which will be very generic in
nature, however intelligent enough to be able to be customized based on any business need and business
rule.
We just discussed a software product that is similar to ERP. ERP is very generic software that can be
customized based on any business need. Although the design will be constant, it will still have handles, so
that the enterprises can tweak it, based on their business needs. Again fail proof, as it’s tested and being
used by a lot of other firms with a broad spectrum of industries. It will also be capable of Inter-
13 | P a g e
communications of Modules, which solves a lot of the business logic implementation issues. Another big
advantage of ERP is that, it is frangible. The enterprise can pick modules that they want, club them together
and then start using it. They don't have to buy everything in an ERP. For an example, if someone does not
want a Material Management module, they just wouldn’t buy it. Buy everything else and start using them.
Oracle E-Business suite, PeopleSoft, SAP, Sage, MS Dynamics, JD Edwards, Baan are few big names in the ERP
space today.
History of ERP
It was the early 60s where enterprises made software to handle their material management needs.
Although the software inured to be highly customized, it was used to handle the Materials and Inventory of
the given firm. Later in 70s they came up with something called MRP (Materials Resource Planning), this
was better software that could manage the Procurement and Inventory with the logic of timeliness. Then in
the 80s MRP-II came. It was just an extension of MRP with the advantage of managing shop floors and
Distribution. Finally they started involving all other functionalities as well, like Finance, Order management,
Human Resource etc, and then the software were named more suitably as ERP.
14 | P a g e
Oracle in ERP
Oracle has been a big name in the software industry since 1980s. Because of its robust hold on the
database management and Business intelligence sector, it was one of the leading software industries that
time. It started off with Oracle financials as one of its products in 1980s. It was a software product that was
capable of managing the financial ledgers of a firm. That incepted the role of Oracle in ERP market.
Gradually with time, it started adding different other modules to its ERP sphere. Products like Supply chain
management and Human Resource Management increased its visibility and made it a big name n the ERP
market.
It started introducing oracle forms and reports as tools to create and extend GUI for its products, they
named it, Oracle developers 2000; very popularly known as Oracle D2K. D2K brought in a fantastic GUI and
reporting capability to the ERP world, and made the Oracle ERP, one of its kinds back then. The entire
package was then called Oracle E-Business Suite and came with the first release as Oracle 10i. Eventually,
based on the requirements, a lot of modules and sub-modules are added to the product. Along with that,
came in a lot of tools like Oracle Workflow, AME, XML Publisher. These tools increased the scalability of the
entire Product. Oracle released its E-Business Suite version 11i in the mid of 1990s. It had near about 50
modules and many more sub-modules. In 2006 Oracle released Release 12, popularly termed as Oracle
R12.
While the E-Business Suite track kept on challenging its own brand with wonderful new features release by
release, Oracle never stopped working on the supporting tool. It released the Oracle Developer suite 6i,
15 | P a g e
which was an advanced and sophisticated version of the D2K. Later Oracle Developer suite 10g and 11g
came up with an amazing product embedded to it. The new addition were called Oracle Fusion Middleware
and Oracle Applications framework. These two products changed the look and feel of the ERP line of
Products. Finally grabbing a strong base in market, with the acquisitions of PeopleSoft, JDE and sun
Microsystems, Oracle was capable of synthesizing its ERP line of products into a large-scale emblem. They
called it Oracle Fusion Applications. It was released in late 2010, and still being piloted on a major set of its
clients. The embellishment through innovation continues and so does the chronicle of Oracle E-Business
Suite.
History of ERP
▪ Oracle 10g
▪ Oracle 11i
▪ Oracle R12
▪ Oracle Fusion apps
16 | P a g e
Rest of the Market
E-Biz holds the second largest chunk of market share in this field, followed by SAP. After the Acquisition of
PeopleSoft Inc, Sun and JDE, Oracle is measured to be one of the Prime stake holders in this market. It’s
considered to be the one and only package in market with 360 degrees business support. Looking at the
other contenders in Market, SAP has the biggest pie. It has its own flavors to the segments it serves. Apart
from Oracle and SAP, some other notable names are Bann, PeopleSoft, JDE, Microsoft Dynamics and Sage.
INTRODUCTION TO HRMS
Each and every enterprise needs people to manage and run its business. People are the most basic and the
most important ingredient of any business. It could be an NGO, a Bank or a Robotics laboratory, no matter
where the enterprise focuses on, it must need people to run it. That is why it becomes necessary for the
enterprise to store organizational data along with employee data, and use them to manage the people
related to the enterprise effectively. This requirement creates the market for a system called the Human
Resource Management System.
Oracle E-Biz provides a very effective and scalable way to manage the Human Resource of an enterprise. It
is called Oracle human Resource Management System (a.k.a Oracle HRMS / Oracle HCM). Oracle HRMS as a
whole is a combination of few Sub Modules. Each sub module supports one particular type of application /
practice. The most popular modules in Oracle HRMS are:
17 | P a g e
Oracle Human Resources: Also known as Core HR. This module helps managing enterprise structures, and
Organizational hierarchy, position hierarchy, supervisor hierarchy etc. This module is the backbone of all the
other sub modules in HRMS, also holds true for any other module in E-Biz.
Oracle Payroll: Also known as Payroll. This one helps managing employee payroll related details; whom all
to pay, how much to pay, how to pay, when to pay, etc can be managed through this module.
Oracle Advanced Benefits: Also known as OAB/ Benefits. This module accounts for any non-monetary
privileges provided by the enterprise for the employee. Life Insurance, Medical claims, enrolments etc are
managed through this module.
Oracle Time and Labour: Also known as OTL. This module tracks the time sheet information of the
employees. Who worked for how many hours, for which project or order, overtimes etc can be managed
through this module.
Oracle Learning Management: Also known as OLM, This module manages the trainings and the
competencies of a given enterprise. With this one can manage employee training needs, hiring external
trainers, setting up classes etc.
Oracle iRecruitment: Also known as iRec. This module is used for recruitment processes. Managing
applicants, vacancies, releasing offers etc are managed through this.
Compensation Workbench: Also known as CWB. This module is used to manage and budget the bonus,
stock options etc. This empowers the enterprise with the statistical analysis, external comparisons, for
better decision making on Compensation.
18 | P a g e
Oracle Performance Management: Also known as Oracle Talent Management/ performance
management / PMS (Performance Management System). This one deals with the appraisals, competencies,
proficiencies etc. This helps us to manage the appraisal cycles as a whole.
Oracle Daily Business Intelligence for Human Resources: Also known as DBI, a very powerful reporting
tool for the HR and line managers. This is capable of summarizing the employee related details, for better
decision making.
Oracle Self Service HR: Also known as SSHR. Quite effectively used as an interface to all other modules in
HRMS, this module is like the face of HRMS. For an example, if an employee were to go in and submit his
time sheet, or check his pay check or ask for training, this module gives him the interface. This is a web
based interface that can be configured and be available to the employees for their usage.
19 | P a g e
INTRO TO HRMS
INTRODUCTION TO HRMS
Each and every enterprise needs people to manage and run its business. People are the most basic and the
most important ingredient of any business. It could be an NGO, a Bank or a Robotics laboratory, no matter
where the enterprise focuses on, it must need people to run it. That is why it becomes necessary for the
enterprise to store organizational data along with employee data, and use them to manage the people
related to the enterprise effectively. This requirement creates the market for a system called the Human
Resource Management System.
Oracle E-Biz provides a very effective and scalable way to manage the Human Resource of an enterprise. It
is called Oracle human Resource Management System (a.k.a Oracle HRMS / Oracle HCM). Oracle HRMS as a
whole is a combination of few Sub Modules. Each sub module supports one particular type of application /
practice. The most popular modules in Oracle HRMS are:
Oracle Human Resources: Also known as Core HR. This module helps managing enterprise structures, and
Organizational hierarchy, position hierarchy, supervisor hierarchy etc. This module is the backbone of all the
other sub modules in HRMS, also holds true for any other module in E-Biz.
20 | P a g e
Oracle Payroll: Also known as Payroll. This one helps managing employee payroll related details; whom all
to pay, how much to pay, how to pay, when to pay, etc can be managed through this module.
Oracle Advanced Benefits: Also known as OAB/ Benefits. This module accounts for any non-monetary
privileges provided by the enterprise for the employee. Life Insurance, Medical claims, enrolments etc are
managed through this module.
Oracle Time and Labour: Also known as OTL. This module tracks the time sheet information of the
employees. Who worked for how many hours, for which project or order, overtimes etc can be managed
through this module.
Oracle Learning Management: Also known as OLM, This module manages the trainings and the
competencies of a given enterprise. With this one can manage employee training needs, hiring external
trainers, setting up classes etc.
Oracle iRecruitment: Also known as iRec. This module is used for recruitment processes. Managing
applicants, vacancies, releasing offers etc are managed through this.
Compensation Workbench: Also known as CWB. This module is used to manage and budget the bonus,
stock options etc. This empowers the enterprise with the statistical analysis, external comparisons, for
better decision making on Compensation.
21 | P a g e
Oracle Daily Business Intelligence for Human Resources: Also known as DBI, a very powerful reporting
tool for the HR and line managers. This is capable of summarizing the employee related details, for better
decision making.
Oracle Self Service HR: Also known as SSHR. Quite effectively used as an interface to all other modules in
HRMS, this module is like the face of HRMS. For an example, if an employee were to go in and submit his
time sheet, or check his pay check or ask for training, this module gives him the interface. This is a web
based interface that can be configured and be available to the employees for their usage.
22 | P a g e
USING ORACLE E-BIZ
USING ORACLE E-BIZ
Before getting into Oracle applications, we must know how to use Oracle applications. So let’s discuss a little
bit about that. We will start with the different GUIs (Graphical User Interfaces) available with the application.
GUI is commonly known as the Graphical User Interface. These are the screens that open up on the user’s
window, so that a user can enter, query and update data with ease. There are two types of GUIs available in
Oracle E-Biz R12.
▪ Form Based
▪ HTML Based
23 | P a g e
(Figure 1.4 – Forms GUI)
If we see Figure 1.4 – Forms GUI, the forms based GUI looks similar to the image given here. This is the first
screen that opens up, when we open any responsibility. This is called the navigator. There are two distinct
sections.
▪ Menu Functions (On the left side of the figure 1.4)
Menu Functions:
The Menu function section opens up the different menus attached to the responsibility. When we double
click on the menu, it either opens another sub menu or simply calls a function, which in turn opens up a
24 | P a g e
form / a web based GUI. There are two ways to open a menu, either double click on it, or single click it and
then click on the Open Button on the fourth co-ordinate. The ‘+’ sign tells us, that the menu has one or more
menus / functions attached to it. If we click on the ‘+‘sign, it expands with the sub menus/ functions, and the
sign is then changed to ‘-’; clicking on which causes the menu to collapse. The text on the top, tells the
Responsibility name and the description of the highlighted menu.
Let’s have a look at the extreme left of the figure 1.4. We will find small icons with ‘+’ and ‘-’ Signs. They help
us navigate the screen better.
▪ The ‘+’ sign expands the highlighted menu.
The Top Ten lists are the most frequently used screens, put on the other side for ease of access, because we
do not have to go on finding the function from the menus. However system does not determine what to put
on the list. The list will be determined by the user, and system remembers the list and brings it up once same
user logs in again. The two arrow buttons on the middle of the navigator are the ones that are used to move
a function to the top ten lists and vice versa. As the name suggests, we can have ten functions listed out
there.
25 | P a g e
Another amazing thing about top ten list is the shortcut, once the function is added to the list, it gets added
with a number as a Prefix. Next time we wish to open the function, we will just key that number from the
number pad of the keyboard, and that opens up the related form.
Let’s have a look at the tools available to the Form Based GUIs. See Figure 1.5 – The Toolbar.
26 | P a g e
J Copy Copies the selection
K Paste Pastes the cut or copied portion
L Clear Clears the record
M Delete Deletes the Record, with a prompt
N Edit Field Opens a Editor to edit the text in the selected field
O Zoom Zooms the view based on users preferences
P Translate Opens the translation window; translates the text,
Q Attachments Shows the added attachments
R Folders Opens up the Folder tools, it helps users to add / remove columns from some
basic windows.
S Help Opens the window help button; however we should have the Profile options set for
this.
back to top
The Menu in the application is almost the same as we have in Toolbar, and are pretty self explanatory. So
we are not going to discuss more about that.
Querying in the Forms GUI is very simple. The function key ‘F11’ is used for the same. Pressing F11 turns the
entire form grey. Then we can enter the string that we are looking for in the grey fields and press CTRL + F
11. The system then tries finding out a match for the query we have entered and puts it on to the form. For
example, if the query returns 5 records, the form will initially show up the first record it had fetched, and
then we can navigate through the other four by using the up and down arrow keys.
27 | P a g e
If we know just a portion of the string and not the whole String we want to query for, then we can do a
pattern matching using a Wild Card Character. For an Example, we want to look for an employee name; and
all we know that the last name starts with a ‘MOH’ then we can query like this: ‘MOH%’
With this query in place, the system will look for all records that start with ‘MOH’ and will return all records
that match the requirement. That is called Pattern Matching mechanism. The ‘%’ is called a wild card
character; there is another one, the underscore ‘_’.
When we enter the ‘%’, it searches for the string that can have any number of characters in place of the ‘%’
sign. Similarly the ‘_’ replaces just one character. Let’s take an example. If there are five records in my
database like:
▪ 1. MOHANTY
▪ 2. MOHA
▪ 3. MOHAN
▪ 4. MOHANT
▪ 5. BISWAJIT
And we will enter a query for ‘MOH%’; the system will return all the rows, except the last one; as the % sign
will replace all other characters, and every row starts with a ‘MOH’, except the last one.
If we enter a query for ‘MOH_’ then the system will return me just one row, as it will look strings that has just
one character after MOH, and the result is ‘MOHA’; all other strings will not be pulled because either the
string does not match, or they have more than one characters after MOH.
28 | P a g e
There is another way to query the database. We can just use the Find window. Almost all forms have a Find
window associated with it. We can open the window just by clicking the Find button from the toolbar. The
Find button opens up a window with the prompt of data fields that are unique to the records. We can key in
the strings with the wild card characters if we wish to, and then press find to fetch the records.
29 | P a g e
Down Next row Takes us to the next record.
Up Previous Row Takes us to the Previous row.
Shift + CTRL Show Error Shows the error occurred in the form.
+E
Shift + F5 Duplicate Field Copies the field with the value available from the previous record.
We have discussed the most widely used keyboard shortcuts here. However if we want to learn more
shortcuts then we need to use one, (CTRL + K) on the navigator.
30 | P a g e
through the Forms. Hence the web based GUI are very self explanatory. The only other difference that we
might find from the Forms GUI is there will be buttons and small icons that represent different actions. The
buttons, and the icons, as shown here, have text labels that help the users to understand the underlying
actions. Self Service Human resource is a complete web based GUI module that helps the end users to enter
and maintain, data for their day to day activities.
Although we can do wonders using SSHR, and it is a complete module by itself, we are not going to discuss
the techno-functional aspects of SSHR; because of the vastness of the subject matter. However what we
certainly plan to do is to discuss, how to use SSHR with respect to the different modules and application
utilities we have learnt so far.
As we already discussed, it is a module by itself and there is a different responsibility to be attached to the
user to be able to use it. Actually two:
▪ Employee Self Service
31 | P a g e
▪ Manager Self Service
The first one is used for the Employees, where they can enter their personal details, manage their
competencies, self appraisals etc. and the second one is for managers, where they can manage their
subordinates, Approve applications, Conduct appraisals etc.
▪ 2. Talent Management
▪ 3.Compensation and Benefits Management
People Management
These are functionalities that enable the user to maintain their personal, professional and employment
details.
32 | P a g e
▪ Managing Documents of Records to store the Electronic documents
▪ Manage competencies
▪ Manage work preferences
Talent Management
Talent management set of functionalities are more related to the appraisal process, employee reviews and
all. Some of the major functionalities are:
▪ Users can do self appraisal and submit it to the Supervisors
33 | P a g e
▪ Managers can complete employee appraisals, and submit reviews
▪ Users can create and manage events and bookings like presentations, training etc.
▪ Managers can enroll directs in to specific bookings.
▪ Managers can do a suitability matching to find out if there are any suitable profiles.
▪ Managers can also do succession planning for the positions that are going to be vacant in future, and
identify the possible successors for the positions.
34 | P a g e
These are most widely used functionalities that a user or a Manager can do with SSHR. However as we had
discussed earlier, the possibilities are huge. It is advised to log into SSHR and start exploring the usages, to
learn more about the module. Using SSHR should not be a problem, as it is a user friendly GUI for end users.
35 | P a g e
ARCHITECTURE
ARCHITECTURE OF E-BIZ
This section describes the basics of E-Biz Architecture. Although there are a lot attached to the Oracle apps
architecture, we will discuss the concepts that will help us in understanding the functionality better. Oracle
E-Biz runs with three tier architecture. See Figure 1.1 – Architecture.
(Figure 1.1 – Architecture)
Desktop Tier
This is the client facing or user facing interface. It runs HTML based Java applets to pop up forms and web
based applications, for the user access. This tier accepts our log in authentication credentials and keeps
them for further usage. So once logged in, we can use oracle applications as well as other tools embedded
within. The Oracle forms are brought in with a Forms client applet which in turn is a collection of Java Archive
files (JAR files). When we log in for the first time, the Forms client applet and frequently used JAR files are
downloaded to our machine and cached. Later less frequently used JARs get downloaded based on necessity.
36 | P a g e
Application Tier
This tier beholds all the servers that are responsible for the services we avail on the desktop tier. For an
example, if something is queried from the database, then apart from the data, the appearance, the
business logic etc are needed; these extra things other than the data are called Services. This is the tier
where the servers will reside, and provide us the services. A basic application tier will comprise of:
▪ Web Server: Manages the web services, like HTTP requests, Java Controller, Servlet engines etc. In short
it provides end to end handle on application appearance (except form based applications) and request-
response management.
▪ Form Server: Manages the form based application requests and the Form listener Servlets.
▪ Concurrent Server: This is an innovative piece of architecture, where the application allows us to run
programs that can process in the background without putting any pressure on the other transactional
processes we are working on. For an example, we can just put in a request for a report and keep
working on the application, without any interventions; as the report is being run by the concurrent
manager, which is independent of the application server.
▪ Admin Server: This one manages the applications data and patches. It records the patches installed in
the system, along with the administration of application data.
37 | P a g e
Database Tier
The database tier contains the Oracle database server, which stores all the data maintained by Oracle
Applications. In short, it is the database of the applications.
TECHNOLOGY LAYER
There are a set of technology that are used across modules. These provide common features to all Oracle
application products. These technologies are:
▪ Oracle Applications DBA
38 | P a g e
These are all standalone modules. We will learn about these in details, as and when we emanate through
the chapters.
FILE SYSTEMS
There is a given pattern in which the files are stored in the servers. The pattern is nothing but a defined
folder/directory structure, which is commonly known as the File System. The file systems have evolved
along with the Oracle E-Biz. There had been significant changes to the File systems with the advent of R12
and we will discuss the file system based on R12.
Database server
Talking about the Database server first, it contains stacks like Application stack and Technical stack. See
Figure 1.2 – Database Server. And the stacks further contain different directories.
39 | P a g e
(Figure 1.2 – Database Server)
DATA_TOP: This directory resides in ./apps_st/data. Here apps_st represents the application stack directory
in the database server. It contains the database level data like, the system table space, data table space,
Index Table space, database files, redo-log files etc.
ORACLE_HOME: This directory resides in ./apps_st/10.2.0. It is the Oracle Home for the 10g database being
used in the application backend.
40 | P a g e
Application server
The application server holds the application elated data, and in the vein of database Server, it holds the
application stack and the Technical stack. See Figure 1.3 – Application Server. The stacks further hold the sub
directories.
APPL_TOP: This is considered the Mother directory, as it stores the product directories within. Each product
holds its own directory and this one lists them all.
41 | P a g e
If we go further down to the granular level in to APPL_TOP, we will find the directory containing the following
subdirectories:
▪ The product files and directories
The Product directories store information related to the Product. And are named based on the Product short
name. For an example, the Prod directory for General Ledger will be called GL_TOP, as GL is the short name
for General Ledger. Each product has a two-three lettered short code. The Product Top directory stores
directories like admin, bin, forms, html, Java etc.
Under each product directory, there will be a directory for the version, like 12.0.0, 12.0.1, etc. For each version
directory, there will be directories for each and every language the application is installed in. Like US, FR, GB
etc. And under each language directory there will the following folders:
42 | P a g e
· Publisher: Stores the XML Publisher template files
COMN_TOP: This directory holds the technology layer products. The ones that are used across products (e.g.
FND, WF)
43 | P a g e
APPLICATION OBJECT LIBRARY
INTRODUCTION
Oracle E-Biz is a combination of modules, and the modules are interlinked with each other to ascertain the
business rules. Each and every module works with its own set of implementation steps and logistics.
However all the modules need a set of Foundation objects that are available to them for initial set up and
ongoing maintenance purposes. These are the set of functionality that are common across the modules.
Oracle combines functionality like that in a unique Separate module called Application Object Library
(AOL), prevalent known as FND. In this chapter we will learn the basics of AOL.
Every implementation needs a role called Application Developer, who is responsible for providing the
foundation AOL functionality to the Functional and Technical consultants, based on which they would be
developing their modules. While we go on discovering the basics of AOL, we will learn the different
functionality that an application developer uses and maintains for the rest of the users.
44 | P a g e
CHAPTER OVERVIEW
This chapter talks about:
▪ Application developer as a Role
LEARNING OUTCOMES
After going through this Chapter, you should be able to:
▪ Appreciate the design of Flex Fields in Oracle E-Biz
45 | P a g e
AOL OBJECTS
LOOKUPS
Lookups are a set of code and meanings. Sometimes, it can also be used to store extra set of data using
contexts. The purpose of having lookup is to have fast recovery of data for validation. For an example, if we
were to store the termination codes available in a firm, we will have a structure similar to this.
01 Normal Termination
02 Retirement
03 Retrenchment
04 Personal
Here, the 01, 02 are the codes and the reasons are stored as the meaning. So, if we wish to just key the in
code, and we want the system to understand the meaning, then we must store the codes and meanings
somewhere. Oracle gives us expedient tables to store codes and meanings which are easy to access. It uses
the concepts of Lookups to store the quick reference data in a tabular format, which are easy to store retrieve
and amply extensible. Let’s see how to configure one. See Figure 3.8 – Lookup Types.
46 | P a g e
▪ Responsibility: Application Developer
▪ Navigation: Flex field -> Key -> Cross Validation
47 | P a g e
Type The name of the lookup type
Meaning The meaning. This can be used as a reference to the lookup type, that explains the purpose of the lookup
Extensible: Although it is seeded, a user can add records here; however cannot delete a seeded record
Code The code of the lookup value must be unique for each row.
Meaning The meaning of the Lookup value
Description Any description, it can explain the meaning in details.
Tag These are mostly used in seeded lookups. The system puts the localization information here. If it is ‘+FR’
that means it is applicable for France, if it is ‘-RU’ means the row does not apply for Russia. These are mere
data fields, the actual logic of including or excluding the Localization is actually in the code that uses the
lookup.
48 | P a g e
Eventually when we keep on discussing more about the Application, we will realize the huge dependency
we have over Lookups. This is one of the most frequently visited screens, during implementations.
Let’s say we want to add some more data into a lookup; something more than mere codes and meanings.
We can do that by adding a context to it. It is a DFF with title as ‘Common Lookups’. See Figure 3.9 – Lookup
Contexts.
49 | P a g e
We will just have to add a new context and add on segments. It’s as good as a normal DFF. Once the DFF
segments are defined, we can use this as a context related flex field where the data can be stored using the
segments, based on the chosen context in the lookup screen.
50 | P a g e
(Figure 3.10 – UDT Structure)
Steps:
▪ UDTs are date track enabled, so pick a date before creating a table
51 | P a g e
▪ The match type is selected as range, when there is a range to be defined, like a lower bound or upper
bound. Similarly the UOM is selected from the UOM field; however it is always a number.
▪ Now, it is time to define the columns. Click on the Columns button to do so. Define the different
columns that would be needed in our table. Use a formula to validate the data entered in the
formula.
▪ Then the rows. As our table is just in design phase, this is the place where we just define the row
labels; the actual row is entered later. Put the row along with the sequence, row key and the exact
row name. In case of range types, use the lower and upper boundaries.
▪ This completes the definition of the table. Let’s now put some rows in it. See Figure 3.11 – UDT
Values.
▪ Responsibility: Super HRMS Manager
▪ Navigation: Other Definition -> Table Values
52 | P a g e
(Figure 3.11 – UDT Values)
Steps:
▪ Query the table name.
53 | P a g e
▪ Now the screen shows us the rows with only the first column.
▪ To navigate through columns, click on the Column Name, and use up and down buttons.
▪ In the Exact field, key in the exact row number and the column value of the row.
▪ Similarly fill in the other columns, using the up and down arrows.
Now, to use the UDTs, we can fetch the table columns from ‘PAY_USER_COLUMN_INSTANCES_F’ and
‘PAY_USER_TABLES’. The other important tables are: ‘PAY_USER_ROWS_F’ and ‘PAY_USER_COLUMNS’.
back to top
VALUE SETS
Apart from the seeded tables, Oracle E-Biz gives another set of tables that a user can design, create and
use in order to satisfy the business needs. Those are called the User defines tables, in short, UDTs. Let’s
see how to define a table. See Figure 3.10 – UDT Structure.
A Value set, as the name suggests, holds a set of values. The values are then used in different places in the
application for validation. For an example, if we have three different Audit Departments, A1, A2 and A3;
and we want the Employees to enter an Audit Department number in which they wish to be audited. We
wouldn’t want them to enter something other than these three departments. We wouldn’t allow them to
save the record if they entered A4; because A4 is not a valid value. So what is the solution?
54 | P a g e
To manage situations like this, we could define a value set that holds these three values, and attach that
value set to the field. So whenever an employee starts filling in details, s/he has to fill in with a value that is
valid as per the value set. Let’s see how to define one. See Figure 3.10 – Value Sets.
55 | P a g e
Steps:
Value Set Name Name of the Value set.
Usages This one shows all the places where the value set is being used, either a Concurrent Program or a KFF or a
DFF.
Description Any description, free text.
List Type Choose a list type:
Long LOV: For a List of Value, that is expected to pull a long list. When we use this, the LOV initially appears
with No Values, unless a search String is entered for to do a pattern match.
Pop List: A Pop list is used when the list of values is expected to be very small, usually less than 10 values.
Security Type This is to justify the security rules attached to the value sets, if any. Choose any one of the three:
Hierarchical: This ensures we have access to the entire hierarchy of data being entered.
Non-Hierarchical: This option does not check for the entire hierarchy. If we have access to the data being
entered, we can.
For example: If we do not have access / privilege for the Head Cost centre we will not be allowed to enter the
Sub divisional Cost Centre name in case of Hierarchical model. In case of Non hierarchical model, it just
checks the access for the cost centre being entered.
56 | P a g e
Format Type The Format in which the values stored in this Value set are going to be.
Max size The Maximum size. For some standard Format types, it is fixed.
Validation Types
These define the way the values in the value sets are stored or matched.
▪ None: No validation, other than the ones in Format checks attached in the parent screen.
▪ Independent: with this type, the Values are stored in an AOL Table, along with a meaning. For
example, we might have a code as 02 and the meaning as “Boston Division”. We will learn how to set
values in an independent Value set.
57 | P a g e
▪ Table: It is similar to the Independent Value set, however the data is stored in an application table.
▪ Dependent: With this type, although the data is stored in an AOL Table, the values are filtered based
on another Independent Value set, which is linked to the dependent Value set. So based upon the
value we enter in an Independent Value set, values for the Dependent Value sets are populated
▪ Special: These are like a Flex Field in a value set. So these are like a combination of values, mostly
from a Key Flex Field, that appear in the value set.
▪ Pair: This allows us to use a range of Concatenated Flex Field segments in a value set.
▪ Translatable: The Translatable value sets are similar to the Dependent and Independent types.
However these enable us to use hidden codes, so that user sees only the meaning and not the codes.
Table Types
In case of a Table type of value set, as we wish to see the values from a Table, we must define the columns
and the table from which the data will be pulled. See Figure 3.11 – Table Type Validation.
Steps
▪ Click on the Edit Information.
▪ Enter the name of the application to which the table belongs to.
▪ Enter the table name.
58 | P a g e
▪ Enter the column in which the Value is being stored in the Value field along with the data type and
size.
▪ Enter the meaning if any.
▪ Enter the column that stores the Id, if we want to use the Ids as well; along with the data type and
size.
▪ If the value set is used in Concurrent requests, the Value is taken as the front Parameter; however
the Id is the one that is fed to the process.
59 | P a g e
(Figure 3.13 – Table Type Validation)
60 | P a g e
▪ In parallel, write a query in our database, and park this screen for a minute. Take the value, meaning
and Id in the “select clause” and Table name in the “from clause” and in where clause, put the
conditions that must match to get the values.
▪ Once the query is complete, put the where clause and the Order by clause if any, in the where
section.
▪ If we are using any extra columns, for matching the values or to be used in the Order by Clause;
other than the Value, Meaning and ID, then put those in the additional columns field.
back to top
Segment Values
We discussed that the dependent and independent value set fetch the valid values from an AOL Table. Let’s
see how and where we store the values. See Figure 3.14 – Segment Values.
▪ Responsibility: Application Developer
61 | P a g e
(Figure 3.14 – Segment Values)
62 | P a g e
Steps:
MESSAGES
In an application, there will be errors and warnings at the runtime; and the application will be giving
messages based on the errors / warnings. However at times, we might wish to change the error / warning
message as per the business needs. And sometimes, we would even need to set up our own personalized
messages on the application forms / self service. For this, AOL has functionality in place, called FND
Messages. These are pure text messages along with tags, which could be used to fill in specifics related to
the messages at the run time. And once the message is defined, it can be attached to different functions or
routines from which they will be called and displayed.
63 | P a g e
Definition
Let’s see how to define one message, and then we will look further in to the usages and the Tags that are
used in the messages. See Figure 3.15 – Defining Messages.
▪ Responsibility: Application Developer
64 | P a g e
(Figure 3.15 – Defining Messages)
65 | P a g e
Name Name of the message can be entered here. It is advised to have a meaningful name along with the
application it is being used for and the error number.
Language Pick a language in which the message will be displayed.
Application The application in which the message will be used.
Number The Error Number, this is the number with which the calling routine identifies the message uniquely.
Type The Type of the Message, whether an Error or hint or a Note or may be the title of the message. It can
also be a % of Expansion, which means the system will open up a window of size 30% of the window,
and shows the message in there as a Prompt, if it is a 305 Expansion prompt. Likewise for 50 and 100% it
works the same way.
Maximum Length The Maximum Length of the message.
Description The Description of the message a free text.
Alert Category The type of alert, like it is an alert on the system, Product or is it about security. All these are usually used
by the seeded system messages. Blank or User is the type we want to use in a custom message.
Alert Severity The type of the severity of the alert is it an Error/ warning or is it critical to the system. For custom
messages leave blank.
Log Severity If the message is being logged for system administrator, then what type of log would this be? Usually this
raises another set of routines, to inform the system administrator about the issue via emails / texts.
Message Text
66 | P a g e
This is the place that stores the text of the message that gets displayed. There are a lot of possible ways to
decorate it and make it more meaningful.
Parameters: We can receive parameters from the calling routine, and use them as part of the message text.
We can set variables for the same. They can be used with an Escape Character ‘&’ or ‘:’. For an example:
“The exemption limit is not set up for the legal employer &ORG_NAME for the current
period.”
This is a message text, and &ORG_NAME is the variable that can be passed to the Message by the calling
routine. So if the routine passes ORG_NAME = ‘ABC Corp.’ then the message will look like this:
“The exemption limit is not set up for the legal employer ABC Corp. for the current
period.”
Formatting: In formatting, we can use the HTML codes to format our messages. It can start with
a <html> tag and can have the required tags in the body. Here is a sample.
<html><b>You cannot complete this task because one of the following events caused a
loss of page data:<br> <ul><li>Your login session has expired. <li>A system failure
has occurred.</ul></b> To proceed, please select the global Home link to return to
the main menu. Then, access this page again using the navigation controls (menu,
links, and so on) within the application. </html>
67 | P a g e
CONCURRENT PROGRAMS
CONCURRENT PROGRAMS
Concurrent, in English means, simultaneous, happening at the same time. Likewise in Oracle E-Biz, a
concurrent program can be termed as a program that runs simultaneously with the application without
disturbing the later. So our application is live, and hundreds of thousands of users are accessing our system,
and our business needs some reports or some updates at the same time, then how are we going to do that?
Oracle E-Biz gives a dedicated server to run Concurrent Programs, which is capable to run the requests
without impacting the performance of the actual application. The Concurrent programs can be designed,
defined and deployed to help business with these kinds of requirements.
There are four distinct processes involved with the definition of a Concurrent Program
▪ Define the Execution File.
▪ Define Executable
▪ Define Program
▪ Deploy the Program into a request group
68 | P a g e
Defining Execution File
This is the file / code that actually get executed as part of the concurrent program. It could be any of these:
PL/SQL Stored Procedure, Oracle Reports, Perl Reports, SQL Loader, SQL*Plus reports, Java Reports, Unix
codes etc. The first and the most essential step, is to write the code first. The code must have the Business
logic in it. Once the code or file is done, the next step is to registering that in to an Executable.
The Executable
This is the place where we register the code / file with the application. See Figure 3.16 – Defining Executables.
▪ Responsibility: Application Developer
69 | P a g e
(Figure 3.16 – Defining Messages)
Executable Name of the Executable File
Execution Method This is the place we tell the system about the type of the code, whether it is a PL/SQL/ Java
/ Reports / Perl etc.
Execution File Name The Name of the File / code that will be executed. Must be in apps Schema in case of
reports. For others must be in appropriate folder.
70 | P a g e
Subroutine Name If there is any sub routine, that needs to be executed based on the Execution Method. Only
opens if the Method is “Immediate”
Execution file path The path of the execution file, only used with Java Concurrent Program.
71 | P a g e
The Program
As the Executable is all set now, the next step is to define the concurrent program. See Figure 3.17 – Defining
Concurrent Programs.
▪ Responsibility: Application Developer
▪ Navigation:
▪ Concurrent -> Program
72 | P a g e
(Figure 3.17 – Defining Concurrent Program)
Program The name of the Program, this is the name that is going to be used in Submit Request window.
Short name The short Name, that identifies this program uniquely.
73 | P a g e
Application The Application that owns the request.
Enabled This flag, if unchecked, makes the Program unavailable for run.
Printer The name of the registered printer on which it should print the output.
Once the Concurrent program is registered, the next task is to set the parameters.
The Parameters
If our code needs parameters, then we must define parameters that will be asked when we put in the request
name, and then eventually be passed on to the code being executed. In the Program window, the parameters
button leads us to the parameters screen.
74 | P a g e
(Figure 3.18 – Defining Concurrent Parameters)
Sequence A Sequence number
75 | P a g e
Parameter The Name of the parameter
Default Type/ Value The Default type of the Parameter is the value that is going to appear when we open the
parameter window in the submit Request screen.
SQL Statement: A Value returned by the SQL statement put in Default Value
Required Makes the Parameter a mandatory one to be entered on the request submission
Range Could be put as High, Low or Pair. It works hand in hand with the other parameters.
Display Size The size of the field that will be used in the submit request to fetch the Value of this parameter.
Concatenated size The Size of the parameter while all the parameters are concatenated in submit window.
76 | P a g e
Prompt The Prompt against the Parameter field. This name will appear on the submit request screen, as a
label against the Parameter in concern.
Token name The Token name is used as an Identifier in some codes, where we do not pass the parameter
explicitly. Like in Reports. The Token name is used in the Reports as a Parameter.
77 | P a g e
FLEXFIELDS
FLEX FIELDS
In E-Biz, data storage is configurable to a great extent. The entire cycle of storing required data, includes,
capturing the data, administering it with ease and embedding the business rules to the data. The product
is designed to cater different types of requirements for a largely diverse set of businesses. Every business
has a requirement of capturing different set of data, firm ‘A’ might need field ‘X’ to be stored in
PER_ALL_PEOPLE_F and Firm ‘B’ might need field ‘Y’ instead of ‘X’. It is just a mere example; however if we
look at the diverse set of businesses that use Oracle E-Biz, we will realize, how different can be the
business rules of one enterprise from another, and so can be the required data. How does oracle manage
to give the liberty to the firms, to store data based on their particular requirement; keeping in mind that it
has to keep its table structures and internal programs stable.
The answer is Flex Fields. Oracle takes a Particular table, and analyzes the different types of data, which
might be needed to be stored in that table. It takes the maximum possible attributes that might be needed
taking the Performance and normalization into consideration. Now, what if we need another attribute to
be used in one of my tables, and that attribute is not provided by Oracle? This is where Flex Fields come
handy. Oracle E-Biz gives us the liberty to define and use our own set of additional attributes; those
78 | P a g e
attributes are called Flex Fields. Just as the name suggests, they are flexible Fields, which can be used to
store extra information.
▪ Storing intelligent fields that can be used to store the data along with meanings
▪ The fields can then be validated against the list of values specific to the requirements
▪ These extra fields need no extra programming; they can just be configured and used
79 | P a g e
DFFs can be context specific. We could configure the DFFs in a way that, the data will appear based on the
value filled in a specific table. For example, if we wish to store the VISA details of the employee, only if the
employee is not a resident of the country he works in; we could use the work status as a context column. If
the value of the field is Expatriate, we will use the DFF to store the VISA details; else the DFF won’t appear at
all. So we can say, the DFF can be so be customized that data entered in one attribute completely depends
on the data entered in another, which is the context.
▪ Business Contexts
The Global data elements always appear on the form, where as the Business Context specific Data
Elements appear only when there is a context specified. The context can be set from either any value in the
Form or might just be another value from the DFF. If the value is seeded from the forms then it is called a
reference field; whereas, if it is just another attribute inside the DFF, it is called a context field. Mostly
Context fields are used and it’s put in the DFF itself. Once the Context field is entered, it extends the form
to capture the context specific data elements.
Each and every attribute in DFF has a window prompt, an attribute number, on which the data is stored,
and a set of values, although being optional. Let’s see, how to define the different contexts and the related
attributes.
80 | P a g e
Register
A user, as the name suggests in an entity that logs in to the system, and uses the system resources for their
requirement. So who are the users?
▪ Responsibility: Application Developer
Steps:
Application Name of the application to which the DFF belongs to.
81 | P a g e
Name Name of the Structure; this will be used by the routines, to call the DFF from Forms or Programs.
Table Application The application to which the Parent Table belongs to.
Structure Column The name of the column in the table that can be used by the DFF to distinguish between structures.
Based on the data supplied to this Column different DFF structures will be opened.
Context Prompt The Prompt we want to see for the field on which the user will be specifying the context.
DFF View Name This shows us the view created by the application to store the DFF data.
Protected This check box makes sure that, there cannot be any changes to the structure of the DFF.
Reference Fields This is the place where, we mention all the possible reference fields for the DFF. Although we use
them or not, it is always better to list the reference items for future use.
Columns This screen lists all the fields in the table along with the DFF attributes with an Enabled Flag against
them. The flag denotes the fields that are part of the DFF structure.
82 | P a g e
This is “Register DFF” Screen. See Figure 3.1 – Registering a DFF. This is the screen, where we need to find
the name of the title of the DFF that we are going to use, based on the name of the Table and the
Application.
Once the new DFF is registered, the next step is to define / update the DFF structure and the contexts.
Definition
A user, as the name suggests in an entity that logs in to the system, and uses the system resources for
their requirement. So who are the users?
▪ Responsibility: Application Developer
83 | P a g e
(Figure 3.2 – DFF Contexts)
84 | P a g e
To choose our DFF, we can query for the Title, we got from the Register window / we can just use “View (M)
-> Find” to get the list of available DFFs. See Figure 3.2 – DFF Contexts.
Application The Application to which the DFF belongs to.
Freeze Flex field Definition This flag is checked to freeze the definition, this does not allow updates to the DFF, to update
something in the DFF< we need to uncheck the flag first before doing changes.
Segment Separator This is the character that is going to separate one segment from the other in case of
Concatenated Description fields.
Prompt This is where we choose the prompt for the Context fields. Based on the data entered against
this prompt, the dependent attributes will appear.
Value Set This is the value set for the context. If we have a context that holds the valid set of contexts for
the DFF, then this is the place to use that.
Reference Field Enter the reference field that we want to use, from which the context will be automatically
derived. The Reference field must be defined in Reference Field section in Register screen to be
used here.
Required This makes the context field mandatory. If the flag is checked, we cannot leave the context field
blank for any record.
85 | P a g e
Displayed This check box was earlier known as the “Override Allowed” flag. By checking this check box, we
make sure; the context value is visible and updatable to users. If the flag is unchecked, the
context value is auto populated by the reference field and later just the dependent attributes
appear based on the hidden context. A user can not choose its own context, if the flag is
unchecked.
Synchronize with This flag makes sure, whenever there is a change in Reference Field, the context is updated
Reference Field automatically; so that the synchronization happens.
Code This is the name of the DFF Context Structure, must be unique.
Compile This button is clicked only after the contexts are defined to compile them.
Segments This button leads us to a new screen on which we are going to define the attributes.
Let’s discuss some more things about the Context Field Block. We use this block, when we have a user
defined context other than the Global Context. This block can be used to define the context value prompt,
the Value set attached to the field, the Default value, and the related reference field on which the context
will be dependent on. Finally the other flags like ‘Required’, ‘Displayed’ and ‘Synchronize’ can be used to add
actions to the field.
86 | P a g e
About the Context Field Values Block, this is where we are going to define the Context and the related
attributes in use. In here, once the Segments button is clicked, it opens a new screen, which allows us to
define the attributes and the related value sets. See Figure 3.3 – DFF Segments.
87 | P a g e
Name Name of the Attribute
The caption-less flag on This flag synchronizes the dependent screens opened using the buttons downstairs.
the top
Value Set This opens the value set Button; we are going to discuss more about this in Value set Section.
Open This button opens a screen that explains more about the Flex Field.
New This is similar to that of Open; but this button creates a new row in the context.
Let’s click on the Open Button and see the other details of the Flex Field attribute. See Figure 3.4 – Segment
Details. We can use the new button, that opens the same screen, to create a new record here itself;
without putting the details in the parent screen.
88 | P a g e
(Figure 3.4 – Segment Details)
Name Name of the field as entered in the Previous window.
89 | P a g e
Enabled Makes the attribute usable.
Default Type The type of Default value for the attribute. Could be a Constant, a Field, a Profile Value, a
Segment or even a SQL statement.
Security Enabled Makes the Security rules apply based on the security Profile and responsibilities.
Range The Range could be High or Low. This is additional security, to make the High attributes depend
on the Low Attributes.
Display Size The size of the text field which will be displaying this field.
Concatenated size This is the size to be displayed when the application shows the attribute on a concatenated Flex
field values.
90 | P a g e
Range: The range defines the dependency of a particular attribute. For an example, if we are using a start
date and an end date in our context and we want our end date to be later than that of start date, then we
might want to put the start date with a low range, and end date on high. That explains the dependency.
Again, the sequencing of our attributes must be as per the range. The attribute with high range must be put
at a higher number than that of low, so the low range attribute should appear first than the high range one.
The set of codes are separated by segment separators and once all the segments are filled in, as a whole
the codes are known as the Combination of codes. Each combination of code identifies a particular type of
data independently.
Let’s take an example of “Cost Allocation KFF”. This KFF in captures the money spent by each of the
departments, and divisions in the enterprise. We have the KFF with the following details:
▪ Company Code
91 | P a g e
▪ Division Code
▪ Sub division code
▪ Department Code
▪ Cost Centre Code
Even our organizational hierarchy is designed in the same order. Now, if we fill in the codes, with the
segment separator as ‘;’the combination might look like this:
02; 005; 03; 58; 10586
Here, 02 is the Company code, 005 is the division code and so on. Now, this combination of code identifies
our cost centre uniquely. It will also have a code Combination id number, that helps identify the series with
upmost ease. The combination codes are also known as “Intelligent keys” that are easy to remember and
use in day to day business needs.
92 | P a g e
Grade Human Resources Mandatory
Competence Human Resources Mandatory
People Group Payroll Mandatory
Cost Allocation Payroll Mandatory
Personal Analysis Human Resources Optional
CAGR Human Resources Optional
Soft Coded Human Resources Optional
Bank Details Payroll Optional; However if the country does not have a seeded
localization, this becomes Mandatory
Item Contexts Human Resources Optional
Training Resources Learning Management Optional
Unlike DFFs, KFFs are stored in more than one table structure. There will be one table that stores the
structure of the KFF, and the other stores the Combinations. The Seeded KFFs always have the
Combination tables defined. However if we are planning to create our own KFF, we will have to create and
register our own KFF Tables.
93 | P a g e
Register
Let’s discuss how to setup / update an KFF. We will start with the register screen. See Figure 3.5 – KFF
Registration. This screen lists all the KFFs defined in the installation of E-Biz. This screen is used to define a
new KFF, and it is also handy to find an already defined / seeded KFF.
▪ Responsibility: Application Developer
94 | P a g e
Code Every KFF has a unique code
Title The Name of the title, this is unique as well
Description Description of KFF, Free Text
Table Application The application owner of the table on which the KFF sits
Table Name The name of the Table
Unique Id Column The unique id to be used in the Combination table
Structure Column The column to be used in the combination table to distinguish between the flex field structures
KFV View Name The name of the view that shows the KFF details.
Qualifiers This buttons opens up a screen in which we enter the Flex Field Qualifiers.
Columns Lists the available columns along with the enabled flag telling about the availability of the
column in the database.
Qualifiers
A qualifier is a level in which KFF Segments can be updated. Let’s reconsider the Cost Allocation KFF example.
The combination looked like this: 02; 005; 03; 58; 10586. Here, if we wish to use this KFF in five different
levels, like Organization, Payroll, Elements, Element Entries and Assignment; and we want only a set of
segments to be accessible in certain levels; say, we should be able to enter the Company code, only at the
KFF attached to the Organization screen, and nowhere else. Similarly, the Department Code should not be
95 | P a g e
entered at the Assignment level, there is a way to do so. To enable the user to do configurations like this,
Oracle has come up with a concept of Qualifiers. There are two stages of defining qualifiers; the Flex field
qualifiers and the segment qualifiers. While the Flex Field qualifiers define the different stages where the
KFF is going to be used, the segment qualifiers define the rules on the usages of the segments in those levels.
Segments
Now, let’s move to the next section, and learn the definition of KFF segments. See Figure 3.6 – KFF Definition.
▪ Responsibility: Application Developer
96 | P a g e
(Figure 3.6 – KFF Definition)
97 | P a g e
The details in the KFF segments form is exactly the same as the DFF segments with small differences. Like,
we cannot have Context Values in KFFs; we do not have a reference field. Considering the similarity, we are
not going to reiterate the information; however we will be discussing the differences here.
Cross Validate We can define Cross validation rules against segments. These are the additional
Segments checks we can perform over the KFF segments. If we are going to use the Cross
validation on this structure, we must check this box.
Freeze Rollup This is more for Oracle Financial. This is used for grossing up / summing up the
Groups segment values.
Allow dynamic This tells the system whether to allow a save, if the combination that the user is
insert entering at the runtime, is unavailable as a valid combination in the Combination
table. If the flag is marked Yes, then the system allows the user to enter new valid
combinations.
In the Segments, there is just one extra button that we have not discussed, the Segment Qualifiers Button.
This is the screen in which we can see the different Flex Field qualifiers and add the enabled flag to make
that particular Segment available at the given level.
98 | P a g e
Cross Validation Rules
The Cross validation rules can be applied to the KFFs, when we wish to validate the segments based on the
business needs, to control and maintain the new combination being inserted into the tables.
99 | P a g e
(Figure 3.7 – Cross Validation Rules)
Steps:
100 | P a g e
▪ Select the application and the Flex Field title that we want to define
▪ Enter a unique name for the Validation rule in the Name field along with the description of the rule
and make it enabled
▪ Put the Error Message in the Error field along with the segment on which it should error
▪ We can also set start and end dates to it; to make the error effective for s certain time
▪ Now, in rules, put the type as Include or Exclude along with the High and Low range for the segments
we want the check for
▪ As we have defined the Low and High, if the Type in Include, the error will appear, if the user entered
value, does not fall in between the lows and high
▪ If the type is selected as Exclude, the error will appear, if the user value falls in to the low and high
range.
▪ If user enters a blank, it is considered to be a pass, if any one of the Low or High value is put as
Blank.
Now we know how to set validations to our KFF Segments. At any point of time, we wish to see the values
used in the KFF; we can go to the Values submenu in the Key Flex Field menu to do so.
101 | P a g e
SUMMARY
TECHNICAL ASPECT
Let’s look at some of the important tables in AOL. Although a lot of the tables are discussed in other chapters
of the book, as they are related to the FND application, we will look for some of the very important and
frequently used tables.
Note:
▪ In the table below, if the Date tracked column is marked as Yes, assume the Primary key to be
Composite. The given Primary with bind with the two date tracked columns to make the Composite
Primary key.
▪ Some of the values in the column Table could be a view / synonym. However they pull data.
SUMMARY
In this chapter, we learnt about the Flex fields. We discussed about the Descriptive and Key flex fields, and
their usages. We learnt how to define the flex fields. We discussed about the different expedient ways to
102 | P a g e
store frequently used data in Oracle E-Biz, using Lookups and User Defined Tables. We also discussed
about value sets, their usages and the required setups. We learnt about the Messages. Then we moved on
to Concurrent Programs, and we learnt how to set one up.
103 | P a g e
ORACLE CORE HR
INTRODUCTION
Human resource management system, as the name suggests, is a system that accounts for the human
resource / the human capital / asset. This is very nice to count Employees to be an asset to the enterprise.
However like all other assets of the Firm, human resource also needs renewal and maintenance. This module
in Oracle E-Biz helps us manage our Human capital and lets us embed the HR related data with other
modules.
HRMS as a module is needed in almost all other modules in the enterprise. For an example, if we are entering
any data related to procurement, we might want to record the person details who wanted it. Similarly for a
Project request, we might want to record who the Project manager for the project is. For an Order to be
approved, we might need the manager's name of the person who punched that particular order. So HRMS
is everywhere. Progressively when we keep reading about the various functionalities, we will be able to relate
the concepts to the real world.
104 | P a g e
CHAPTER OVERVIEW
This chapter talks about:
▪ Core-HR as a module
105 | P a g e
LEARNING OUTCOMES
After going through this Chapter, you should be able to:
▪ Understand the concept of Date tracking and the record structure
▪ Support and implement Core-HR components like Organization, Location, Job, Position, Grades etc
▪ Use the tools associated with Core-HR
▪ Appreciate and implement the Security features in Core-HR
▪ Understand the Multi-org architecture
106 | P a g e
DATE TRACKING
DATE TRACKING
Date tracking is a design / concept, which is used by Oracle E-Biz, in order to support the storage of historical
data, along with the current ones. It is a mechanism to store data based on dates. Let’s try this with an
example. There was Mr. Joe, who used to work as a Manager. He had been with the company since last 8
years. In this period of 8 years, he had been working in a set of different positions. Initially he joined as an
Analyst, then he got promoted to senior analyst, then he became, the manager of a department.
If we were to know the position he was in, as of a date in 2008; how do we do that? Imagine, we are making
a database table to store the employee related data, or rather let’s take the well known Employee table (that
we all played with, while learning SQL), all it stores is the current position. Do we have a way to know the
employee’s previous position? The answer is No.
So here is an innovative way, if we introduce, two more columns to the employee table, with names like
“START_DATE” and “END_DATE”, and store the dates in there, it might solve my problem.
107 | P a g e
EMP_ID EMP_NAME POSITION START_DATE END_DATE
Now, if we ask the same question again, it tells me, oh yes, he was a Sr. Analyst in 2008. This is a nice table,
which is capable of storing the historical data as well, however our data is repetitive. It’s not greatly
normalized. But well, that’s the price we will have to pay, in order to get the advantage of storing historical
data.
Hick ups:
▪ Yes our data is not normalized.
▪ We will have to use a Composite Primary key, so that means, anytime we are querying the table for
current data, we will need a self join to say, "SYSDATE between START_DATE and END_DATE"
There are a lot of tables in Oracle E-biz that need to store Historical data. All those tables are date tracked.
They hold two extra columns to store the start and end date of the record. And the columns are named
EFFECTIVE_START_DATE and EFFECTIVE_END_DATE respectively. These columns do not accept null value. All
Date Tracked table names end with “_F”.
108 | P a g e
Concept of EOT
But now, how do we manage the Till Date thing? We need to store a date there, it does not accept null. For
that Oracle added another model, concept of EOT (End of Time). As per this concept, 31st December 4712 is
the end of time. So at any place, if we were to show the record is the latest one, we would use, the “31-DEC-
4712” in the EFFECTIVE_END_DATE column.
The date track also makes us capable of storing Future data. Let's say, we will promote Mr. Joe to Director as
of 01-JAN-2014. So we will add another record in the table with Start Date as 1-JAN-2014 and end date as 31-
DEC-4712. And will update the manager record's END_DATE column with 31-DEC-2013, right?
So having the EOT in the EFFECTIVE_END_DATE column does not always fetch us the currently active record.
We should always use the condition (SYSDATE between EFFECTIVE_START_DATE and EFFECTIVE_END_DATE).
109 | P a g e
▪ Purge : This removes the entire record from the database
▪ End Date: This updates the EFFECTIVE_END_DATE on the currently active row to today's date.
While inserting a new record, we will not be prompted for any modes. The EFFECTIVE_START_DATE is the
today's date and EFFECTIVE_END_DATE is the EOT.
While updating a record; for an example, we want to make Mr. Joe a Sr. Manager. It prompts for these
options:
▪ Update: This will add another row to the table, with an EFFECTIVE_START_DATE of today, and
EFFECTIVE_END_DATE as EOT; and it will update the currently active record's EFFECTIVE_END_DATE to
yesterday's date. So Mr. Joe's manager row will get updated with the new EFFECTIVE_END_DATE as
Yesterday's date; and a new record will get created with the EFFECTIVE_START_DATE as Today, and
EFFECTIVE_END_DATE as EOT. Clear? Alright.
▪ Correction: This is simple. It will simply go and update the column. It will not create a record. Our
previous column value will be lost. So in this case, Mr. Joe's record of manager will be updated. The
position field will get updated to Sr. Manager, and no one will ever know, that Mr. Joe was a manager
at one point of time.
If UPDATE was selected, the system checks, whether the record being updated has already had future
updates entered or not. If it has been updated in the future, we will further be prompted for the type of
update. Those options are
▪ UPDATE_CHANGE_INSERT (Insert) - The changes that the user makes remain in effect until the effective
end date of the current record. At that point the future scheduled changes take effect.
110 | P a g e
▪ UPDATE_OVERRIDE (Replace) - The user's changes take effect from now until the end date of the last
record in the future. All future dated changes are deleted.
So for an example, we promoted Mr. Joe to Director as of 01-JAN-2014. Now, the currently active row has an
EFFECTIVE_END_DATE of 31-DEC-2013. We get a request from my manager that Mr. Joe should get promoted
to Asst Director First and then should get promoted to the director.
Here is a diagrammatic representation that will explain it better. See Figure 2.1 – Date Track Modes.
111 | P a g e
(Figure 2.1 – Date Track Modes)
As we are updating a record, that has changes in future, It will ask if we want to do an Insert / Replace.
112 | P a g e
If we choose Insert, it will go ahead and insert the record from today to 31-DEC-2013. So a new record gets
created with EFFECTIVE_START_DATE of today and EFFECTIVE_END_DATE of 31-DEC-2013, and the currently
active record gets updated with an EFFECTIVE_END_DATE of yesterday.
If we choose Replace, it will discard the future change. So a new record gets created with
EFFECTIVE_START_DATE of today and EFFECTIVE_END_DATE of 31-DEC-4712, and the currently active record
gets updated with an EFFECTIVE_END_DATE of yesterday. The Record with Director as the position gets
purged.
End Dating
Usually, we do not delete any data from system in HRMS. Although we should purge the data that was never
relevant to the enterprise or any given employee or assignment, however we should just populate the end
date in case of data, which was used earlier and not being used anymore.
For an example, there is a date tracked table that stores the car hire details. In that table, we are storing the
data related to the options available to choose a car for hire. We are giving 4 options to the employees to
hire a car; for say, a Chevy, a Dodge, a Hyundai and a Lamborghini. However from year 2010, due to low
budget, we are not going to be giving Lamborghini as an option anymore. In this case, we are going to
populate an end date (EFFECTIVE_END_DATE) on the Lamborghini record with a date of 31-DEC-2009. So that
it will tell me, the car was available in past, but is not available now (01-JAN-2010). This feature is known as
End Dating.
113 | P a g e
NOTE
Usually in a date track table, if we opt for a delete in forms; it will prompt us to enter, whether it’s
an End Date or a purge.
DATED Tables
Now, we know what a date tracked table is. Let’s talk about DATED Tables. These are more or less similar to
the Date Tracked enabled tables; however these tables do not use the composite primary key like the former.
These tables use only one Primary key, but with two date fields - DATE_FROM and DATE_TO.
So what’s the use of these tables? Although they serve the same purpose of storing historical and future
records, unlike the Date Tracked tables, the consistency of data is not maintained. So we can consider these
to be partially date tracked. To make it simpler, let’s try Mr. Joe's example again. As we would need the
position column to be maintained without any hassle of dates, we created two new fields and then tried
identifying individual rows with the combination of EMP_ID and the date columns. So that enabled me with
features like, Update, Correction, Insert and Replace.
However imagine a case where, we do not need that much data consistency, so that whenever we do some
updates to a column, it adds a new row to the table. Like address. So if we were to store Mr. Joe's address,
we will keep it in a table, that can just tell me, since when, till when did he live in a given address, we do not
want any complexity of Insert and replace. All we want to do is to be capable of updating the address (that’s
114 | P a g e
a new record), and correct the address (Updating the same record). So in this case every time we update an
address, it creates a new ADDRESS_ID.
These are like a level lower than Date Track enabled tables. These tables do not have any indicator in their
names, unlike the date track enabled tables.
We will discuss more about these tables later, when we discuss about the technical aspect of Core-HR.
You must have guessed that, this is a date track enabled table, as it ends with _F. Hence the table has a
composite primary key, PERSON_ID along with EFFECTIVE_START_DATE and EFFECTIVE_END_DATE. The table
also contains foreign keys to a lot of related tables. Along with that, fields like name, gender, date of birth,
and all basic details are present in this table. As per E-Biz design, this table is considered to be the pivot for
all employee and employee's contact records.
115 | P a g e
Question: What is a contact?
Anybody with any specific relationship with a person is its contact. If Jill is married to Joe, Jill is Joe’s contact.
The relationship can be of any type, spouse, children, domestic partner, grand children, ex-spouse etc.
These are some of the basic and frequently used tables, to store the Person level records, however there are
a lot of tables, and views that can be used to store any specific information about a person. We will learn
about those, as and when we come across them.
Again, there are a set of related tables/ views, that store similar information, but in a different fashion. Let’s
jump on to examples.
▪ PER_ALL_PEOPLE_F: Stores the Person data with Date Track
▪ PER_PEOPLE_F: a view over PER_ALL_PEOPLE_F with additional security on records. Like, which user
can see what all records?
▪ PER_PEOPLE_X: shows up only the currently active record as of SYSDATE.
116 | P a g e
▪ PER_PEOPLE_V: a view used by E-Biz forms to show the data with additional security using security
profiles.
▪ PER_ALL_PEOPLE_D: a view that shows the date track history.
Now we know, even though the data stored is same, various tables/ views are designed to store the data in
different fashions. The reason may be data abstraction or security or in few cases just history.
117 | P a g e
Assignment: This is the unit of an employment period. It starts with a Hire, and ends with a termination /
New Assignment. For an example, Mr. Joe works for three years in the firm, and then gets terminated and
then gets rehired in to the firm after 1 year, and continues for another 5 years. In this case, Mr. Joe had two
assignments with the firm. So every time Mr. Joe got hired, he had a new assignment. These assignments
related details are stored in PER_ALL_ASSIGNMENTS_F. This table stores all the data related to the
employment, like, the Job, his Location, the Organization he is working for, his supervisor etc. It’s a date track
enabled table and ASSIGNMENT_ID is the primary key.
Oracle E-Biz also creates assignments for the ones who are retired, sometimes for the contacts as well. Those
are called Benefit assignments; we will learn more about them later. E-Biz also has something called
Applicant assignment. It’s the assignment details of an applicant, who might become an employee in future.
We can even have more than one assignment for an employee in a given period. It’s like; the employee is
working for two different roles / Jobs. An employee must have at least one and only one primary assignment.
All others are considered Secondary.
Talking about secondary assignments; these get created when an employee is assigned more than one roles
in an enterprise, provided the roles are governed by two different Organizations / GRE or they use different
Jobs and positions. The secondary assignment helps the system to track time entered / salary / payroll etc.
Service: Every Hire created in the firm, will result is a period of Service record. The table that is used for that
is PER_PERIODS_OF_SERVICE. Its primary key is PERIOD_OF_SERVICE_ID. This table stores the Hire date, term
date and the Term reasons, along with other details related to service. If a Person has multiple assignments
but within a single service (without being rehired), he will have multiple ASSIGNMENT_ID, however just one
PERIOD_OF_SERVICE_ID. A hire drives the period of service, but a new employment instance / a change in
role drives the assignment, along with the termination.
118 | P a g e
Salary: Now let's talk about the salary. This is the amount that a Person gets paid. Although Oracle E-biz
considers Annual Salary as the calculation standard; the defined salary gets calculated based on the
frequency of pay and the amount per pay period. The pay frequencies are specific to pay basis and in turn
depends on payrolls. These are some very popular pay frequencies:
▪ Monthly: Once a Month
To determine the Annual salary of any employee, Oracle uses something called as Annualization Factor. It’s
a number, which is multiplied to the salary to get the Annual Salary; so for Monthly, the Annualization factor
will be 12 and for Biweekly, it will be 26.
Employee's ASSIGNMENT_ID.
▪ It gets the PAY_BASIS_ID from the PER_ALL_ASSIGNMENTS_F for the Employee using its
ASSIGNMENT_ID.
▪ It then multiplies the amount with the Annualization factor stored in
PER_PAY_BASES.PAY_ANNUALIZATION_FACTOR based on the Employee's PAY_BASIS_ID.
▪ Then the Multiplication resultant is the Annual Salary.
119 | P a g e
PERSON TYPES
Person Type is a very powerful functionality through which we can identify and group the persons we have
in our system. First of all, what are the different types of persons we store in our system? Many actually; we
store the Employees, applicants, contingent workers, Ex-Employees, Contacts and beneficiaries of the
Employees etc. Now, we should have some way to identify these different groups. Although we can identify
an Ex-employee as someone who used to work with the firm, and does not work anymore, it becomes a
tedious task to do the same number of checks every time, isn’t it? So what’s better? A Single attribute that
can tell us, on this person is an Ex-Employee. How nice would that be, that when a person is currently working
the attribute should say “Employee”, and soon after the termination happens, the attribute should
automatically change to “Ex-Employee”. Wouldn’t that be awesome? This functionality is there. The attributes
are nothing but “Person Types”. Let’s see how to use it.
Oracle application comes with a seeded set of Person types that can be used to identify the population.
However we can further add new person types as and when we require them. Like we can have Fixed-Term
employee as a person type, which is different than Employee. We can have Retirees different than Ex-
Employees etc. the one that are seeded are called the system person types; and the one that the user creates
is called the user person type. There are eight system person types in R12. And we can create as many user
person types as we want based on the requirement. Let’s see how to.
120 | P a g e
Responsibility: Super HRMS Manager
User Name The name of the Person Type; choose a meaningful name.
System Name The seeded Person type, of which we are creating a sub class; choose
a most appropriate type from here.
Active To say if the Person type is active as of today.
Default Each System Person Type will have one and only one default User
Person Type. So when the system finds a person to be falling in the
System Person type criteria, it will change it to the Default one.
Did the Default flag make confusion? Ok let’s try this. We have three types of Employees in our system, and
we want to make different person types for each of them.
So what we should do is, go to the Person Types Screen and add three records with the System name as
“Employee”. One for each type of user name “Night Shift Staff”, “Mid-Shift Staff” and “General Shift Staff”.
Now, we can make any one of these three as Default; for example let’s set “General Shift Staff” as default.
Now whenever there is a hire, the system will identify, oh, it’s an Employee, then what is the Default Person
Type? Oh, it’s “General Shift Staff”. So it will make the person type of new hire as “General Shift Staff”. But if
later he changes his shifts, we can just go and add a new person type usage in his record and make him a
“Night Shift Staff” from “General Shift Staff” manually. Simple, isn’t it?
121 | P a g e
Navigation: Fast Path -> Person Type Usages
Steps:
▪ · Query for the employee
▪ · Add a new Person Type usage / End date the old one.
122 | P a g e
FLEX FIELDS
FLEX FIELDS IN HRMS
We already know about the flex fields; KFFs and DFFs, and also the related setup instructions. However let’s
see the role of the flex fields in Core-HR implementation.
KFFs
Let’s pick KFFs first. As we have discussed already, there are around ten KFFs in Oracle HRMS; out of which
six are mandatory for a successful Core-HR implementation. The mandatory KFFs are:
▪ Job
▪ Position
▪ Grade
▪ People Group
123 | P a g e
▪ Competence
▪ Cost Allocation
Apart from the mandatory ones, there are a few optional KFFs present in the Oracle HRMS. Like: Personal
Analysis, Collectively Agreed Grades Flex field, Soft Coded Key Flex field, Bank Details Key Flex Field, Training
Resources and Item Contexts Key flex. Now the task is to identify and define the different KFFs that we need
for the implementation.
NOTE
For Even if we do not need segments of a particular KFF, it is advised that we define a dummy
segment and make the display as off. Because there will be cases where presence of at least one
KFF segment will be necessary; in order to make a functionality work. So better have it ready from
the beginning.
DFFs
Now, talking about the DFFs, The Descriptive Flex Fields are the ones that store the additional information
based on any table; the information that are not being captured by the attributes supplied by Oracle.
124 | P a g e
There will be situations, where we will need a particular data to be captured somewhere and the table would
not have a seeded place to store it. We will have to figure out such data fields and use that table’s DFF to
store the data. We must practice caution while using contexts to relate them to appropriate segments.
changes the base table, creates extra rows for DFFs, but EITs stay intact, making it more normalized.
▪ EITs do not store historical information, neither are they date tracked. So any information which is
static (data that hardly changes) can be put in EITs and others in DFF.
▪ EITs are enabled at the responsibility level, enhancing the data security a lot better than the way
DFFs do.
▪ Assignments
▪ Job
125 | P a g e
▪ Position
▪ Location
▪ Organization
Let’s see how to configure one. We will first learn the EIT creation for all other EITs except the Organization
one. We will discuss about the Organizations later. See Figure 2.5 – EITs.
Steps:
▪ Put the name of the table in the Table Name Field
Figure 5 EITs
126 | P a g e
(Figure 2.5 – EITs)
Steps:
▪ · Query for the Title in the table
▪ · Now create or update the contexts with new segments, with the same steps we created a DFF.
▪ · Once done, freeze and compile the DFF.
▪ · Now the EIT is created.
127 | P a g e
However the EIT must be linked to the responsibility that we are using. Only after the EIT is linked to the
responsibility we will be able to use the EIT with that responsibility. This is an additional security feature. For
an example, we might not want to allow our Payroll User to view /update someone’s location DFF. In that
case just do not link the EIT to the payroll user Responsibility. Let’s see how to link EITs.
Steps:
▪ Query for the Responsibility we want the EIT to be linked to. See Figure 2.6 – Linking DFFs to
Responsibilities
▪ Add a new record with the EIT context name in the drop down.
▪ Save the record.
128 | P a g e
(Figure 2.6 – Linking DFFs to Responsibilities)
129 | P a g e
Before creating an EIT, we must make sure there are ample reasons for us to create an EIT. We must know
the segments we are going to need and the respective value sets as well. Once we have all the information
and we are convinced that we need an EIT to achieve what we are looking for, only then we should go for it.
While creating the EIT for organization types, we need to consider the classifications; because the EITs are
actually linked to the “HR_ORGANIZATION_INFORMATION” table, not the actual organization table. Now,
what are organization classifications? These are the different attributes that define an Organization better.
We will discuss more about them later in this chapter. As of now, let’s consider adding up EITs on to them.
The Organization classifications are present in an extensible lookup type: “ORG_CLASS”.
To create the EITs, we must go to the Register screen and look for “HR_ORGANIZATION_INFORMATION” table.
Now we will find a title named: “Org Developer DF”. Now open the segments and look for the EIT we want to
update. Please remember, Organization data are very sensitive for the reason that, they represent the firm
with respect to reporting to Government and Legalization. Hence before creating or updating an EIT of that
sort, we should always be very cautious.
130 | P a g e
▪ Register the new KFF, as an instance of the Personal Analysis KFF
▪ Update/ add the segments that you need against the SIT
▪ Enable the SIT in the business group
Please remember, SITs do not need any responsibility linking like EITs do, which makes SITs less secured
than EITs. Hence it is advised to chalk out the data design that we are planning to store in SITs, consider the
usage and security etc; before going ahead and creating the SIT and the segments.
JOB
As the enterprise has employees, there will be jobs to fill in; Positions to support the type of job with details,
People Group to classify a set of employees for a given purpose. However all these are data fields/ columns,
which are used to represent some or the other characteristic of the Employee's assignment.
Job is a generic Role within a business group that tells us more about the assignment carried out by the
employee. It is independent of a Division / Department. Like, Manager, Director and Programmer are Jobs.
Jobs are stored in PER_JOBS. It’s a dated table. The Job Id is the primary key here, and acts as the foreign key
to the PER_ALL_ASSIGNMENTS_F, to link the job to a particular assignment. So let’s shift our focus on how to
create and use a job.
131 | P a g e
Job KFF
This is the first step. Job KFF stores the basic information related to the jobs available in the firm; like we
have job like a manager, a technical assistant etc. So this is the place where we define those jobs. The first
thing that we need is the list of segments we want to use in the Flex Field. So the question we ask ourselves
/ the business is, what all do we want to store in a Job? Do we need the job name, the occupational function,
the title s/he shares, etc? Once the segments are determined, the next step is to figure out the valid values
for each and every segment; and create corresponding value sets.
For an example, if we were to create a job, and our firm wants us to store the job name, job code and a
functional title, we will define the different job names, codes and titles available at my firm, and then create
value sets based on that. We can go for a quick code that stores the job names and codes, and another quick
code to store the titles. We will configure the value set in such a manner that, it will show me the values that
are in the quick code. And will attach the value set with the segments.
Now, as the segments are decided and the value sets are defined, the next stage is to configure the KFF. See
Figure 2.2 – KFF definition.
Steps:
132 | P a g e
▪ Query for the FF titled: Job Flex field
▪ Create a new row with appropriate data
133 | P a g e
(Figure 2.2 – KFF definition)
We have already discussed the steps to create a KFF, so we are not going to revisit that; however we must
understand the application of the segments, which will be added to the Job KFF. So let’s go to the Segments
tab and start adding the segments one by one, with a sequence. The name and window prompts are self
explanatory. Column is the segment with which the data will actually be stored in the table. We can choose
segment 1 to 30. And value set field is the place where we attach our value set. If we wish we can save a
segment without a value set that will allow the users to enter any alphanumeric value in it, up to 150 chars.
However it is always advisable to create a value set even if it’s a free text.
If we continue with our example, we will create three segments, somewhat similar to the Figure 2.3 – KFF
Segments.
134 | P a g e
Once the Segments are defined, close the segments window and freeze the KFF Definition. And Compile it.
Finally run the Run Create Key Flex field Database Items Process. Do not forget to update our lookup types
used in our Value sets with available values.
Job Groups
The Job Groups are a collection of jobs. Every business group must have a default job group so that all the
jobs can be grouped under the same. However in a case where there is a different line of jobs needed, we
can go for a new job group altogether. See Figure 2.9 – Defining Job Groups.
135 | P a g e
(Figure 2.9 – Defining Job Groups)
Setting up Jobs
Next task is to add jobs. See Figure 2.10 – Defining Jobs.
136 | P a g e
Dates Enter the start and end dates
Approval Authority This will be a number. This number will be referenced by the AME
(Approval Management Engine) in Oracle to determine if any person
attached to this job has ample authority to approve a request. It is
advised to use 10 for the base workers and then keep on adding 0 to
the right as and when the position increases. Like line managers will
have 100, senior managers will have 1000 and so on.
Additional This flag is added when there is any extra Employment Rights
Employment
Rights
Benchmark Job Add if it’s a Benchmark Job. This is helpful in surveys
Evaluation The Evaluation information about the job can be entered here. This
is like a score matching available in Oracle that enables us to evaluate
and compare employees in one job.
Requirements Requirements is an SIT; that helps us to track competencies about
the employees
Grades This is the place where we define the various grades available in the
particular job
Work Preferences The work preference explains the job requirements a little bit more.
These details are then further used by the iRecruitment for hiring into
the job
Extra Information This is the Job EIT, to store extra information. If you have the EIT
segments defined, you can now start storing data into those.
137 | P a g e
(Figure 2.10 – Defining Jobs)
POSITION
138 | P a g e
Position is a specific instance of Job, within an Organization. Like, Accounts Manager, Information Security
Manager are Positions, where as Manager is the Job. If we excavate a little more, it’s more like a specific type
of Job that an assignment is assigned to, with specifics related to Organization / Location / Departments. Job
is the superset of the positions. Positions are stored in PER_POSITIONS, and like Jobs have JOB_ID, the linkage
to assignments for positions is done through POSITION_ID.
Question: Is it a Role?
No. Although Role is just a concept, often used in HRMS, there is no such table that stores roles in here. We
are not talking about User-Roles here. Role, as the name suggest is the type of act the concerned
assignment is doing. It’s very different than a position.
In the statement above, Accountant is the JOB, Finance Manager is a POSITION and CFO is the role he is
acting.
Position KFF
As we had discussed earlier, Position represents a particular instance of the job. It is time to capture the
positions and the underlying segments. We know the steps,
139 | P a g e
▪ · Figure out the segments we will be using in a Position KFF
▪ · And then create the value sets and if necessary the lookup types as well
▪ · Go to KFF screen, look for Position Flex field
▪ · Create a new one with the new segments
▪ · Then freeze it and compile it
▪ · Do not forget about the “Create Key Flex field Database Items Process”
Setting up Positions
As we have the KFF defined, let’s see how to create a new position.
140 | P a g e
Date Effective Enter the name of the position. If there are any segments in the
Name position KFF, we need to enter a unique combination of segments to
make a new position.
Start Dates Enter the start date.
Type Depicts the type of the position:
141 | P a g e
• Single Incumbent: Only one employee is allowed to hold the
position at any point of time
• None: Default
Permanent Use this flag to make the position Permanent and to be budgeted
every year.
Org and Job Add the Org and job name in these fields. Once entered these details
will never be changed.
Hiring Status This tells about the hiring status of the positions. Along with the dates
since which the status is active and up until when.
Location Enter a Location if the position is fixed to a location.
Status The status of the position. Mark Valid/ leave blank.
Hiring Information
FTE The number of Full Time Equivalent needed for the position.
Headcount The planned number of FTEs in the field
Bargaining Unit If the employees in this position have to be in a particular bargaining
unit then it must be defined here.
Earliest Hire Date Enter the date by which the Applicants must be hired for the position.
Fill by Date Enter the date by which the position should be filled in.
Permit Recruiting Information Only.
Payroll The Payroll into which the hired employee for the position will go to.
Salary Basis Salary basis for the position
Grade The Grade in which the employee must go in. The Grade must be one
of the valid grades for the Job to which this position belongs to.
Grade Steps The rest of the Grade step Progression data must be entered.
Probation The period up to which a new employee must be in Probation.
142 | P a g e
Overlap Define the required transition period for the new employee and the
leaving employee.
Rest of the tabs The rest of the tabs are self explanatory; however very rarely used
in HRMS.
Position Hierarchy
The Position hierarchy is more or less similar to what we have in the Organizational hierarchy, but here, the
structure is based on the Positions. Like, for an example, our firm has clerks, then Senior Clerks, Line
Mangers, Managers, Senior Managers etc, and the reporting structure is in the same order, isn’t it? Now
where do we store this information? This is where it is done. We define the positions and define a hierarchy.
The configuration of position hierarchy is exactly the same way we do the Organization Hierarchy, so is the
Diagrammer. So we are not going to explain anything on this one, we can try it by ourselves and it should be
very simple.
143 | P a g e
LOCATION
Locations are the physicals addresses / sites where we have our Firm placed. It could be our corporate office,
our Manufacturing centre or Sales Office. Location is a very simple concept to understand.
There are two types of locations, Global and Local. A location with Global Scope can be seen and used in
more than one business groups; however the one with Local scope can be used only with the business group
it’s created. See Figure 2.8 – Defining Locations.
144 | P a g e
(Figure 2.8 – Defining Locations)
145 | P a g e
Scope Choose Global or Local.
Name Name of the Location.
Description Self Explanatory.
Inactive Date Date after which the location will no longer be used.
Address Style Type of address style, based on country.
Address The Physical address.
Time zone The Time zone of the location.
Shipping Details Choose the flags based on the type of the location.
Extra The EITs can be used to add more information to location.
Information
GRADES
The enterprise uses grades to compare roles within their organizational structure and relate compensation
to grades to pay their employee in groups. Grades are stored in PER_GRADES. The primary key GRADE_ID
acts as the foreign key in assignment table to create a relationship with in grade and assignments.
Let’s start with an example. A firm has different positions. And in one position, there are different levels. Like
someone who is a Production manager, might have a level as L5, but another Production manager might
146 | P a g e
have 3 years of experience in the same position and he might have a level as L6. So L6 is a higher level than
L5. The levels are usually called grades.
Grade is a part of grade step progressions functionality. Although in today’s world Grade is used across firms,
however grade step progression is not used a lot. So in this section we will focus only on grades and their
usages. We will discuss about grade step progression though, but only after we understand Grades
completely.
Grade KFF
This is the KFF that is going to hold our grade related information of our firm. For an example it might look
like this: “L6.Senior.Technical”. This typically de[ends on the business reqirement. Oracle E-Biz gives us the
liberty to store as much information to store as we wish to in the Grades. That’s why it’s a KFF. Now, on the
setup part of the KFF, the steps are similar to the Job and Position KFFs.
▪ Figure out the segments we will be using in a Grades KFF.
▪ And then create the value sets and if necessary the lookup types as well.
▪ Go to KFF screen, look for Grades Flex field.
▪ Create a new one with the desired segments
▪ Then freeze it, compile it and run “Create Key Flex field Database Items Process”
147 | P a g e
Setting up Grades
Responsibility: Super HRMS Manager
Steps:
▪ Enter the sequence number.
▪ Enter a name of the grade. If there are more than one segment in grades KFF, fill them in.
▪ A Short name can be entered.
▪ Enter the From and To Date.
▪ Add in the details in any of the EITs if any.
There will be instances where one grade has spun across positions. Meaning, two people might be in a single
grade but with two different positions; so we cannot really say, grades belong to positions; unlike the
relationship between jobs and positions.
148 | P a g e
Grade Rate
Once the Grade is defined; the next task is to define the grade rates. The Grade rates define a salary range
for each of the grades. An employee of that grade is liable to be within the salary limits. If the Employee
crosses the salary limits, system throws a warning, not an Error.
Steps:
▪ Enter Name of a rate.
Grade Rates are very useful for Salary surveys, to tell the employee’s manager, where he stands in his grade
scale, and how far he is from the mid value etc.
149 | P a g e
Grade step progression
Usually the Performance Management planning flow is to promote a Person from one grade to another
when there is a performance review. Once the grade increases the salary is also increased. However in some
firms, where the promotions are managed through the years of experience or points, the grade step
progression comes handy.
How it works is, we set up rules of eligibility to get into a Grade. So if someone passes the criteria he will be
moved to next grade. The eligibility can be based on Years of Service, points etc. Once the Employee gets the
value, he moves to the next grade and so does his salary.
For an example, we will set it up like this: If someone is a Production Manager since one year, the grade is
L4, if two years, it is L5 and likewise, so If Mr. Joe is L4 and completes his second anniversary as a Production
engineer, he should get promoted to L5 automatically, and his salary should also change to the band of L5.
So the promotion becomes an automated process, but now-a-days, the competition defines the promotion
not the Years of Service; so Grade Step Progression is not a widely used functionality.
150 | P a g e
ORGANIZATIONS
ORGANIZATIONS
An Enterprise might have a set of child Organizations attached to it. Similarly, it might have operations in
more than one country with the expanded business. In these cases, each entity, which operates with its own
business rules, is called an Organization. Again, there could be internal and external Organizations. Internal
Organizations are the divisions and departments inside the enterprise. Externals are the ones that are not
directly under the enterprise umbrella; however peripheral entities with which our enterprise deals on a
frequent basis. For an example, a Life Insurance Provider might be an External Organization.
Organizations are stored in HR_ALL_ORGANIZATION_UNITS, with ORGANIZATION_ID as the primary key. It’s
a DATE_TO Enabled table. The Type of the Organization informs us whether it’s an Organization / Department
/ Division.
To understand it better, let’s take an example of an enterprise that manufactures car tyres. In the enterprise,
there will be a registered executive office that manages all the judicial and legal relations of the firm. Then
there will be big departments / pillars that are focused into one type of activity / business for the firm, like
sales, marketing, manufacturing, systems etc. Now each of these big departments will have smaller
151 | P a g e
departments / divisions and further those departments divide further into smaller sub-divisions. This might
go on and on to the most granular level of the firm. If we sort them graphically, that will look like an inverted
tree, wont it? This is known as Organizational hierarchy and the structure in them, like our divisions, sub-
divisions are known as Organizations.
NOTE
Organizations are not essentially Internal. There will be clients and vendors that are connected to
the firm by a business Channel; and if we need to capture information of them, we should define
them as Organizations as well.
Organization Classification
Organization classification is like a tag attached to the Organizations that specify the purpose and usage of
the Organization in the application. Let’s take an example. We have our Manufacturing Department. Which
is an Operating unit, because it has its own set of managers managing it, a Company Cost centre, because it
maintains its own ledger books for costing, and an Inventory Organization, as it maintains its own inventory
structure. Now the same organization is classified as three different types of classifications and the
classifications tell us more about the organization.
But why need classification? Simple, we need classification to capture Information. For an Example, if we
have to make an organization, a Legal Entity, we will have to store the name of the CEO, the Remuneration
152 | P a g e
head’s name, the tax id number, the Employer id number etc. and we need all these because of the
Government requirements. Because our Seeded reports and interfaces that are sent to the Government/
tax entities will look for Information like that in our system, and we must store them. Again, we do not need
these details for all the Organizations. We just need the details for the Organizations that are legal entities.
The simplest way, one can think of, is to create a classification named “Legal Entity” and add an EIT to it, and
then just add the classification whenever necessary so that we can capture the information. If we have four
different legal entities in the firm, we will have to attach it to the four different organizations. Oracle has
designed it the same way.
Legal Entity was just an Example, there are many such classifications that need specific information to be
stored, in order to get the system working as expected.
Configuring an organization
Now, let’s create an organization. See Figure 2.7 – Defining Organizations.
Steps:
153 | P a g e
Figure 7 Defining Organizations
154 | P a g e
Location The Location where it is situated; we will create locations later in this
chapter.
Internal Or To specify if it is an Internal Organization or something external.
External
Location Address This gets populated automatically once the location is entered.
Internal Address Internal address, if any. Like an Office Number or Identifier.
Classifications This is where we list the classifications.
Enabled To say if the classification is enabled in here.
Others This is the place where the EITs related to the Classifications open.
The Organization table has a DFF that can be used to store more information that we are unable to store
with in Organizational Attributes. This is time to add Classifications. A normal firm needs a different set of
classifications based on the localization. Like if our firm is in UK, we must have an “Education Authority”; if
we are in India, we must have a PTO (Professional Tax Organization) etc. So based on our localization, we
must choose our classifications.
NOTE:
For the list of required organizations for a particular Localization; please refer to Oracle
documentation.
Let’s discuss the mandatory classifications that are needed for every HRMS set up: like Operating Company,
Business Group, Legal Entity, HR Organization, Operating unit etc. Let’s discuss them one by one.
155 | P a g e
Business Group
Business group is an entity that represents an instance of the enterprise. A business group enables us to
group and manage data in accordance with the rules and reporting requirements of each enterprise model,
and to control access to data. Business Groups are also a type of Organization. They are stored in the same
HR_ALL_ORGANIZATION_UNITS table.
A Business Group is like the backbone of the firm. This is the classification that uniquely identifies the firm
in one particular country / localization. For an Example, if we have XYZ Corp. in India, Poland and UK, we
should have three different entities with us, isn’t it? So that each entity deals with the legal compliance with
the Government of each of the countries we operate in. Those entities will manage the reporting, data
management and rules of the country. That entity is known as Business Group. In this case we will create
three Organizations with business Group as a classification added to them.
NOTE:
Each localization should, however not necessarily hold its own Business Group. Creation of business
group entirely depends on the design of the HR Organization structure.
Almost all the details that we store in our system can be classified based on Business Groups. The system
looks at the business group we are working in, and then filters the set up and data based on that while in
use.
156 | P a g e
The Business Group EITs / BG EITs hold a lot of set up attributes. These set up are used by the system, based
on the business group we are using. For an example, in XYZ, Poland, we may not want the employee numbers
to be generated automatically, but in UK, we want it to be generated automatically whenever there is a new
employee created; based on the last number used. This can be added in the BG EITs, and later can be
referred by the system. Not only that, there are a lot of defaults that can be used in BG EITs.
Once we have added Business Group as a Classification in an Organization (The one that we want to use as
a BG); click on others and we will see a lot of EITs in there. Those EITs store the default values. Here are the
some important ones:
3. The KFF names of Job, Position, Grade, People Group, Cost allocation and Competency.
157 | P a g e
2. Do we want to create the benefits assignment or not.
1. Balance type: date earned / date paid: this is where we instruct our system to pick the date, based on
which the accruals will be calculated in Payroll. Don’t worry about accruals and payroll now; we have an
entire chapter based on it. : )
1. If there is some balance/information that is not appearing on the Pay slip and we want it to be added on
to it, this is the EIT where we need to do it.
SOE Information
1. Same as the Pay slip EIT, however this manages the SOE- Statement of Earning.
1. This is a place to configure some details on our SSHR. Like the following questions.
3. Do we want to have the pay slip available based on date paid / pay slip view date?
4. Do we want the Address on pay slip to be the address from Legal Entity or the HR Org?
There are many more to it; however we are discussing some basic ones that are used most frequently.
158 | P a g e
We can associate our business group with the responsibility we are using, so that the data and configuration
filtration can happen accordingly.
Legal Entity
A legal entity is a representation of an employer. A Country knows each and every legal entity as independent
Employers and the various rules and regulations are attached to this entity. So If XYZ Poland, has a Marketing
team, that operates parallel to the Manufacturing team, however is considered a separate employer, then
manufacturing team will be a separate legal entity. On the flip side, if we are employing in a country, we must
have a legal entity.
The Legal Entity has EITs as well; however most of them are based on the localizations. Let’s discuss the most
important one: Tax Information. In this EIT we specify the Company tax Reference number, Registration
number, the Trade classification: telling the system the type of trade our company does etc. We might also
need to key in the Income tax Number for the tax departments (IRS/ ITD / SARS etc) based on the localization.
159 | P a g e
HR Organization
This is the entity that is assigned to the employees. This is the actual organization that appears on the
assignment screen; so all departments, divisions, subdivisions etc are actually HR Organizations. We must
create all the internal organizations (Departments, Pillars, and Verticals) with this classification on them.
Operating Unit
An Operating unit classification is used in a case, where we have a Multi-Org application. In that case, a set
of operating units operate like independent units that works under an umbrella of a big organization. Usually
each Operating unit is also classified with the HR Organization. So that employees in that HR Organization
or below are considered part of that Operating unit. Although the Operating unit does not relate a lot to
HRMS, it has a very vital role in Finance and SCM modules.
160 | P a g e
ORGANIZATION HIERARCHY
Every firm follows a hierarchy. It is the structure with which the Departments, Divisions and sub divisions are
sorted in the firm. It is the reporting structure that looks like an inverted tree. Once the organizations are
created, we create a hierarchy, which can be called as Primary Reporting Hierarchy. This is the basic way with
which the entire reporting has to work. However we can create a number of secondary hierarchies to support
other laterals of the business.
Question, is this just to make sure that the reporting is defined? Or are there other usages of Organizational
hierarchies?
There are many. However let’s focus on the two important ones here.
▪ Security: In many security profiles, we use the parent organization name, and all the children
Organizations are considered automatically. For an Example HR-Global is our parent Organization for
HR, and there are other HR children Organizations like, HR-New York, HR-Philadelphia, HR-SFO, HR-
Colorado etc. Now, we do not want the Colorado HR people to see the data of HR-New York. So we
will create a security profile just based on HR-NY and add that to HR-NY responsibility. Similarly we
will create one for each of the Organizations. But what about the HR-Head of our Organization, he
needs to be able to see everything. Here, we will create a new security profile called: HR-Global, and
use the same in Hr-Head’s responsibility. As HR-Global is the parent and all others are children, HR-
Head can now, access all children organization data as well. It is similar to the Folder structure, where
one folder when locked, locks all the subfolders accordingly.
161 | P a g e
▪ Reports: While running reports to include all children organizations we can just key in the Parent Org
along with the hierarchy, and it does it all. For example, if we want to run a report for all HR data, we
can just run it on the HR-Global and all children organizations will be included automatically.
So those were the two additional advantages of Organizational hierarchies. Let’s see, how to define and
control one.
Creating a Hierarchy
Responsibility: Super HRMS Manager
Steps:
▪ · Create a new hierarchy; add a name in the name field
▪ · Mark it as primary
▪ · Add the Version number (Initially one), from date and to date
▪ · Save the changes
▪ · Now in the Organization field, query for the top most Organization
▪ · And in the subordinate block, keep on adding the organization reporting to the parent one
▪ · Save the changes
162 | P a g e
▪ · Now query one of the secondary organizations (Organizations reporting to the top Org) and keep
on adding its child organizations
▪ · Likewise, keep on establishing the relationship between the organizations
▪ · The up and down buttons can be used to move an Organization up or down in the hierarchy.
▪ Let’s say, our Organization hierarchy changes after two years, and then we do not have to create a
new organization all over again. We can just create a new version.
▪ · Query our primary hierarchy; populate the end date and save it.
▪ · Click on the version number, and press the down arrow to go to the next record.
▪ · Now add the new version number with new start and end dates.
▪ · We know the rest of the steps, keep on adding the organizations.
▪ · Else we can just copy the hierarchy using the copy hierarchy button and then structure as per our
requirement.
Using Diagrammer
This is a screen where we can go and see the hierarchy in a tree like structure for better understanding. The
screen also has search settings to search for the particular organization.
163 | P a g e
Navigation: Work Structure -> Organization -> Diagrammer
Steps:
▪ · Query the name of the Organization hierarchy.
▪ · Go on to the next record, until we find the correct version number with start and end dates.
▪ · Click on Open editor.
▪ · This will show us a diagrammatic representation of the Organization hierarchy.
▪ · We can use the find button to look for the organizations and their child ones.
164 | P a g e
TOOLS IN HR
SECURITY PROFILES
The Security Profiles, as the name suggests, are profiles for Data security. Do you remember the HR-Head
example? The requirement was, HR Department of New York, should not see the data from HR department
of Colorado. To manage this we can take help of Security Profiles. We can create a Profile for HR-Colorado
with eligibility rules attached to it. If our responsibility passes the eligibility profiles, we will be able to see the
HR-Colorado data else we won’t. Those profiles are known as Security Profiles. The profiles act like an access
control system to Organization, Position, payroll, supervisor data and many more inside a business group.
It is just an example; we can do wonders with security profile. Although this is a system administrator’s job,
let’s just see the options available to us. See Figure 2.14 – Security profiles.
165 | P a g e
(Figure 2.14 – Security profiles)
166 | P a g e
Name Enter the name of the security Profile
Business group The business group in which the profile will be used
View Flags Restrict the view to employees, Applicants etc, if any
Organization security Here we can specify the Organization hierarchy / Organization
names etc based on which the Data will be encapsulated.
Position Hierarchy This can be based on position hierarchy and other positions.
Payroll hierarchy We can add a Payroll here, so Participants who are with this
security profile will be able to see persons from the mentioned
payroll only
Supervisor hierarchy This can be based on supervisor’s view of employee as well.
Custom Here we define the code, which is similar to a AND / OR Condition
mapping. If the condition satisfies, the person will be able to see
the data.
PEOPLE GROUP
We discussed about jobs, positions, location etc to classify the employees and this is another handle to
classify employees. We need People Groups to group employees of certain similarities together, in order to
achieve a classification. This is mostly used in Payroll. The table that stores the People Group Information is:
PAY_PEOPLE_GROUPS. The PEOPLE_GROUP_ID being the Primary key here acts as a foreign key in
assignment table.
Question: We already have so many ways to classify people, why again People Group?
167 | P a g e
People group are one of the criteria in the Element links window; which enables the system architects to
attach particular elements based on the people group id. So if you wish to classify employees in order to use
the classification to assign elements, people group is your key.
SALARY ADMINISTRATION
Salary is one of the most important aspects of HRMS. Employees/ contingent workers do work for the
enterprise and in return, the firm gives them a monetary compensation. That compensation as a return of
their assignments is known as Salary. Although enterprises may pay for a lot of other non-monetary benefits,
the salary stays as one of the prime ingredient of the compensation.
The salary can be given in any frequency. It can be monthly, semi-monthly, weekly etc. So the frequency is
known as the Salary Basis. The Salary basis is stored in PER_PAY_BASES. The PAY_BASIS_ID is the primary key
here, and acts as the foreign key to the PER_ALL_ASSIGNMENTS_F, to link the salary basis to a particular
assignment.
Let’s discuss some of the typical salary administration models that Oracle E-Biz supports.
▪ Grade Dependent: This model enables the enterprises to use grades to define the salary of the
employees. Employees in one grade have same salaries. Although this model is not so popular in
168 | P a g e
competitive market, where performance plays a big role in calculating salaries, it is very popular
amongst fixed compensation moulds.
▪ Grade Bands: In this model, grades represent a particular band, and then salaries of employees in a
particular grade, stays in the bands. Even though the salaries stay in the band, it varies based on the
different criteria like Location, Performance, and Responsibilities etc.
▪ Grade Independent: Even though the grade is used to classify employees, this model enables the
enterprises to define salaries independent of the grades. Change in grade does not trigger a change
in salary. The salary is typically calculated individually. The enterprise defines a particular salary and
the employee is paid based on that. For this, the firm can use the enter salary screen, and the payroll
engine calculates the payment based on the defined salary amount.
▪ Payroll Matrix: In this model, the enterprise can create a matrix of different attributes that influence
the salary. Criteria like Overtime, Position, Location etc. Finally based on the matrix, the salary is paid
out to the employee.
Salary Basis
The salary basis is nothing but the duration for which a salary is quoted. Like some employees might get
paid some amount per hour, some are paid some amount annually. So salary basis is the one that defines
the time span on which the salary is being defined. However someone being on hourly salary does not mean,
he gets paid every hour, it means he gets paid per hour.
169 | P a g e
To take an example, an employee might be on a weekly salary, and get paid every week, but the salary will
be based on the number of hours he worked and the rate per hour. To take the example little further, if an
employee is in Annual salary basis, he might get paid every month / week, based on the calculated salary per
pay period.
170 | P a g e
Hourly Salary ; Paid per hour
Leave the filed blank, if you are opting for Period Salary basis,
E-Biz will be able to figure this out based on the pay periods.
Element Name Use the name of the salary element
Input Value name The name of the input value that stores the basis. Please make
sure not to use the Pay Value as the Input value here. Oracle
payroll does not do the calculation on the input value, if the Pay
Value is assigned here.
Grade Rate This is the place where we link the grades to the Salary Basis.
Grade Rate Basis The range mentioned in the grade rate must relate to a basis.
That gets populated here.
Grade annualization This is the annualization factor of the grade rate based on the
factor Grade basis
171 | P a g e
Salary Proposals
Once an applicant is hired, and becomes an employee, his/her salary proposal must be entered to
commence the salary administration. The salary proposal is nothing but a proposed salary, which is entered
by the Compensation manager / admin department, for the employee. Once the proposed salary is
approved, it becomes the actual salary and from then on, that salary amount is used for the payroll
calculations.
Apart from the initial salary, there could be many reasons to propose a change in salary. The reasons could
be Promotion, demotion, annual salary revision, market correction, cost of living revision etc. There can be
as many reasons as an enterprise wishes to have. These reasons are stored in a lookup type called
‘PROPOSAL_REASON’.
While you enter a salary proposal for an employee, it must have a Proposal reason, and an effective date
associated with it. After the proposal is entered, it goes for the employee’s supervisor’s approval. Once the
supervisor approves it, the proposed salary becomes the actual salary as of the effective date.
Other than keeping the record one an employee’s change in salary, the Proposal reason also helps in
reporting purpose. It can be used to answer a lot of compensation related questions. Like, how much money
was given as part of this year’s bonus cycle. What is average hike given to employees in sales department
this year? Salary proposals are stored in PER_PAY_PROPOSALS table.
172 | P a g e
Calculating Salary per Pay Period
The salary proposal is entered based on the salary basis. So for someone in Hourly basis, will have proposed
salary based on rate per hour. Similarly, for someone in annual salary basis, will have the proposed salary in
numbers that represent the annual salary of the person. As the proposed salary is not linear across the
board, Oracle E-biz uses a particular calculation mechanism to calculate the Annual salary of an employee.
TOOLS IN CORE – HR
There are many powerful tools in HRMS, to help us migrate data from one form to another, and as well do a
lot of other things, that saves a lot of time and coding. : ) here is a list:
▪ · Mass update
▪ · Mass move
▪ · Salary Management- Web-ADI
▪ · Checklist
173 | P a g e
▪ · Security Profiles
Mass Update
Imagine a situation where a particular department in our firm decides to go for a new position, for an
example, 98 employees in our firm who were in “Fund Manager” position will now be moving to “Senior Fund
Manager”. How are we going to do it? There are three ways.
▪ Go to all 98 employee records one by one and update them manually with the new position.
The option 1 is not a good choice, because it is manual. Option 2 is a very good one, however one must know
a little bit of PL/SQL in order to get that API thing sorted out. But if for someone who knows PL/SQL, option
2 is the best. : )
Mass update is a functionality that allows us to update a set of assignments is a single go. The procedure is
very simple. See Figure 2.11 – Mass Update.
174 | P a g e
Navigation: people -> Mass update of Person -> Mass Update of Employee Assignments
175 | P a g e
Steps:
▪ · Put a name for the update process in the name field.
This is it. Now, all the 98 employees will have the new position in there.
176 | P a g e
Mass Move
Mass move is similar to that of mass update, however the former is designed just for reorganizing the
employees (Especially position updates) in the firm, where as the later is designed to update anything in an
assignment. See Figure 2.12 – Mass Move.
Navigation: people -> Mass update of Person -> Mass Update of Employee Assignments
177 | P a g e
(Figure 2.12 – Mass Move)
Steps:
▪ · Put a description.
▪ · Put a source and a Target Organization. They both can be same, in case we want to change the
positions of employees inside an Organization.
▪ · Put an effective date of change.
▪ · Click on Positions.
▪ · Choose source job and positions along with Target job and positions.
▪ · Now, save the record and Execute.
This should move all our employees from one position to another across Organizations.
178 | P a g e
Navigation: people -> Salary management
Steps:
▪ · Open the screen
Figure 13 Web-ADI
179 | P a g e
▪ · Now it will save the excel document on our machine.
▪ · Once we open the file, it will download all the data that we could see in the applications screen.
▪ · Now, go and update the Proposed Salary and approve it based on our requirements.
▪ · Once done, go to Add ins Menu in your Excel
▪ · Click on Oracle and say Upload
▪ · This should be all, all our salary updates are done within seconds and couldn’t have been easier
than excel.
Checklist
When someone gets hired in our firm, he goes through a lot of different processes right? Like getting his
email id created, getting an ID card made, system gets assigned, Company orientation etc. Now, how do we
track it? Our HR team just remembers the flow or may be puts it in an excel sheet.
Oracle application comes with an awesome toll called checklist, where we can define the tasks related to a
particular event, like new hire, and associate that with the employee. Then we can set up a flow where the
tasks are executed one after another with dependencies attached. It is very similar to the MS-Project. Now,
as and when the tasks get assigned, we can send emails to the task owners as reminders, and do a lot of
other stuff with that.
180 | P a g e
MULTI-ORG ARCHITECTURE
Multi-Org is an acronym for Multiple Organization. As the name suggests this architecture enables the Oracle
E-Biz users to implement the product for more than one organization within the Enterprise. In most cases
an enterprise holds different organizations / business units with in it. Those Organizations represent one
particular business function or a business location or both. For an example, the Finance department of
Germany could be one organization and the Finance department of Australia could be another. In this case,
we would need some kind of data security between these two organizations; like we wouldn’t want the
Finance clerk at the Germany office to be able to see or modify the Australia data, and vice versa. Oracle E-
Biz provides the solution to this security issue with a feature called the multi-org architecture. Let’s discuss
this feature in details.
First of all we must identify the clerk’s location in order to provide / revoke access to a set of data. We can
do that using Responsibilities. So the Finance clerk at Germany will log in with a responsibility, something
like “Germany Finance User” which is related to the Germany data only, and the Australian one logs in with
the Australian responsibility. So with the responsibilities we should be able to differentiate between the
users. And we already know we can define the screens accessible to those responsibilities through menus.
With the responsibilities and menus in hand, we will be able to control the screens and requests that the
Germany Clerk can run. However we have no control over the data yet.
181 | P a g e
To encapsulate the data based on organizations, E-Biz labels all the important and secured data with the
Organizations / operating unit associated with it. As each record will have the name of the organization that
owns the record, it becomes very easy to identify, whether it belongs to Germany or Australia. With that
logic, security profiles will be able to segregate the data to be shown from the protected data. Finally those
security profiles are attached to the respective responsibilities. So finally, based on the responsibility that a
person is logged in, s/he will be able to see the data that are related to the organization to which he belongs.
NOTE
Not all tables are Multi-Org enabled in Oracle E-Biz; so all the tables do not store the Organization
name in the records. This functionality is limited to the appropriate tables that are needed to be
secured.
Both 11i and R12 use two different ways to encapsulate the data based on Responsibilities. Oracle 11i uses
the security profiles to be directly associated with the responsibilities, which establishes a one to one
relationship between them. Where as Oracle R12 uses a modern approach to handle that.
In a case where you have the one common financial controller sitting Europe, who controls the financial data
across Europe, Middle East, Africa and Australia, you might want him to see the data for both Germany and
Australia. For him, it might be difficult to switch responsibilities every time he wants to see the data for a
different country. Oracle R12 gives the solution with an approach called the Multi-Org Access Control. With
which a particular responsibility is allowed to have more than one Organization linked to it, using the
Organization hierarchy. As the organization hierarchy would have a tree like structure that lists all the
Children organizations under the parent one; that comes handy for the Multi-Org Access Control. Hence
using the same responsibility across more than one organization becomes possible in Oracle R12.
182 | P a g e
SUMMARY
TECHNICAL ASPECT OF CORE-HR
Let’s see the tables that are used in Core-HR.
Note:
▪ In the table below, if the Date tracked column is marked as Yes, assume the Primary key to be
Composite. The given Primary will bind with the two date tracked columns to make the Composite
Primary key.
▪ Some of the values in the column Table could be a view / synonym.
183 | P a g e
HR_ORGANIZATION_INFORMATION No ORG_INFORMATION_ID Stores the EIT attached to HR
Organization Classifications.
PER_ADDRESSES No ADDRESS_ID It is a DATE_TO table and stores the
address of persons with Primary flag
and address style.
PER_ALL_ASSIGNMENTS_F Yes ASSIGNMENT_ID Stores the assignment details of the
Person. More details can be found in
Lexicons.
PER_ALL_PEOPLE_F Yes PERSON_ID Stores the person related information.
More details can be found in Lexicons.
PER_ASSIGNMENT_EXTRA_INFO No ASSIGNMENT_EXTRA_INFO_ID Stores the Assignment EITs
PER_BUSINESS_GROUPS No BUSINESS_GROUP_ID Stores the Business Group information,
it is a DATE_TO table
PER_GRADES No GRADE_ID Sores Grades related information
PER_JOB_EXTRA_INFO No JOB_EXTRA_INFO_ID Stores the Job EIT
PER_JOBS No JOB_ID Stores the Job related information
PER_ORGANIZATION_STRUCTURES No ORGANIZATION_STRUCTURE_ID Stores the Organization hierarchy
PER_PAY_BASES No PAY_BASIS_ID Stores the Pay Basis related information
along with the Annualization factor
PER_PAY_PROPOSALS No PAY_PROPOSAL_ID Stores the Salary of the Employees
along with approval details.
PER_PERIODS_OF_SERVICE No PERIOD_OF_SERVICE_ID Stores the service related information,
from hire to termination.
PER_PERSON_TYPE_USAGES_F Yes PERSON_TYPE_USAGE_ID This table stores the user Person type
with a link to the PERSON_ID for the
person. So if we wish to see the valid
person types of one person as of a date,
this is the table we should look for.
PER_PERSON_TYPES No PERSON_TYPE_ID This table stores the valid System and
user person types, along with the
BUSINESS_GROUP_ID
184 | P a g e
PER_PHONES No PHONE_ID This table stores the phone numbers of
persons.
PER_POSITION_EXTRA_INFO No POSITION_EXTRA_INFO_ID Stores Position EIT
PER_POSITIONS No POSITION_ID Stores Position details.
PER_SECURITY_PROFILES No SECURITY_PROFILE_ID Stores the security profiles.
Although we have considered all the important concepts of Core-HR there are a lot to it. However those
functionalities are there to help certain modules only. Hence the attempt was to add those functionalities
with the modules they are used for. So keep on turning the pages and there are a lot to come with Core- HR.
SUMMARY
In this chapter we discussed about the basic of Core HRMS including the concepts like date tracking, how E-
Biz stores different data, Person types and the different flex fields used in Core-HR. We then moved our
focus towards the Implementation steps, we discussed about the job, position, locations and grades. We
also discussed about different Organization classifications and Organization hierarchy. We then moved to
salary administration techniques, and discussed the different tools used in Oracle Core-HR to make the
administration simple and elementary. We discussed about the Multi-Org architecture and how is it used to
185 | P a g e
help big enterprises. Finally the underlying tables are discussed with their usage and relationship with
others.
186 | P a g e
PAYROLL
INTRODUCTION
Processing payroll is a very typical and fundamental business requirement across enterprises. If we have
human resource, we will have to pay them. This sounds pretty simple. When we have 10 odd employees
working in our firm, and we write checks for them; this can be done with the help of a spreadsheet and it
won’t take a lot of time or resource to get something of this sort to be done. But let's think about a big
enterprise. Processing payroll for a big enterprise is a gigantic task to do. It takes a lot of preparation just for
the payroll processing and again a lot of post execution steps to make sure all the data are accurate and
stored for further usage.
We do a lot of stuff, like calculating an employee's salary, calculating the amount to be paid per pay period.
Determining how to pay, by check or by direct deposit into a bank? Figuring out if he had worked for the
entire period, or was he on leave; if so, does that entail cutting off some portion of his salary? OK, Once we
know, how much to pay. What next? Taxes, what are his incomes/ earnings? What should we deduct?
Calculating the taxes based on that, again processing the payroll, getting the checks / direct deposits in place.
After all that we should let our bank know, to debit that salary into his account. Will have to let my ledger
books know; out of which budget, how much has been given as pay checks. So there are a lot of things.
187 | P a g e
Imagine doing all these by ourselves, without any software in place. Won’t we have to run another enterprise,
just to process pay checks for our firm? Yes it might take those many numbers of people, just to do that job
right. We are here to avoid that. We will use Oracle Payroll for our firm.
Let’s take two minutes, and imagine Oracle Payroll has been successfully implemented in our firm. Now we
are trying to run our Payroll. For that Processing portion of it, Oracle payroll, divides the entire payroll
process in to three broad divisions:
▪ Pre-Processing
▪ Capturing salary
▪ Tax remittance
▪ Gross to Net Calculation
▪ Determining Payment Methods
▪ Check writers / BACS / NACHA/ ACS / Garnishments / Manual Payments
188 | P a g e
▪ Payment Register
▪ Retro-Pay
▪ Reversals
▪ Advance Payments
▪ Archivers
▪ Costing
▪ Transfer to GL
A lot of words here sound like a foreign planet language, don’t they? We will go through each and every step
of it to understand what exactly happens in the entire course of payroll processing. However we will have to
first get Oracle Payroll Implemented and running.
OVERVIEW
This chapter talks about:
▪ Oracle Payroll as a module
189 | P a g e
▪ Retro Pays
▪ Case Studies
LEARNING OUTCOMES
After going through this Chapter, you should be able to:
▪ Understand the basic components of payroll and relate them to a real time pay check
190 | P a g e
DICTIONARY
DICTIONARY
Before getting started, we must know the terms that are going to be used in this chapter. We must know the
processes and taxonomy in order to understand the basics easily, so here we go.
Elements
An element is the building block of payroll. It is a place holder to contain values, which will be used for a
Payroll processing. The primary usage is to embed a type of income or deduction into an element, so that
the entries can be made on the Employee's record related to the element. Later with the entries, we can
calculate the payroll.
For an example, if we were to give Bonus to 5 employees in our organization. We will create an element for
Bonus. The Bonus element can be attached to the 5 employees. While processing Payroll, the Payroll engine
will give the bonus, only if there is the Bonus element attached. So that only the chosen five employees get
the bonus, and others don't.
191 | P a g e
An element can be of two types: Recurring and Non-recurring. Recurring are the ones that are processed for
each and every pay period, and the ones that are paid once in a while are called non-recurring. From the
bonus example above, Bonus is a non-recurring one. So Regular Salary will be a recurring element and Bonus
will be a non Recurring one.
Element Links
Element links are like qualifiers. They determine if the element is linkable to an employee or not. So it gives
us an extra handle, where we can specify who all can be eligible to get this element attached. To take our
Bonus example further, if we define a criteria on the Bonus element, so that only those 5 employees can get
the Bonus element, then it will be easy for us to maintain. The Criteria can be defined in the element links.
There is a lot to it, rather just defining criteria, we will learn more about it in Configuration section.
192 | P a g e
Earnings
An earning is a type of element which is as simple as what it means in English. This is a type of element which
actually Debits the amount value attached to it. For an example, Regular salary/ Bonus will be an earning. In
Oracle Payroll prospective, Earning is a template form. We will learn more about it when we start configuring
Payroll.
Deductions
This is a type of element as well; however it credits the amount value. These are used to deduct some amount
from our payroll. For an example, our Medical Insurance amount (Rate) is a deduction that gets credited
from our gross income. Our Tax amount, Provident fund etc are deductions. To generalize, anything that
gets deducted from your Salary is known as a deduction. This is exactly opposite to Earnings.
193 | P a g e
Balances
A Balance is an aggregate of one or more elements that have a numerical value attached to it. These are
created for tracking purpose; to track the aggregated values with different dimensions.
OK, let’s discuss that a little more with an example. Let's take an example of Bonus again. We will create a
balance with name BONUS_BAL. We will attach my Bonus element to it. We would expect the BONUS_BAL
to answer the following questions for me.
▪ How much Bonus did we pay in the fiscal year of 2010?
So these parameters Fiscal Year, Quarter, Length of service, these are all Dimensions, based on which we
can get a value. If we draw Bonus as X axis, Time in Y axis, and plot a graph, it will give us a point for the
Quarter of 2010, Right? So the axis here is one dimension. Similarly we can put dimensions of many types.
So bonus is usually a Multi-Dimensional architecture of a collection of data; where Data being the numbers
attached to the elements.
So to rephrase Balance, we will say, it’s a collection / summation of one or more elements, which can be used
to retrieve data with multiple dimensions.
194 | P a g e
Why would we need that? In our pay slip, there is something called as Income Tax deduction, and something
called as YTD (Year To Date) Deduction. Where is that YTD Deduction coming from? It’s coming from the
balance attached to the Income Tax element, and the dimension we are using is Year to date, that is for the
fiscal year being evaluated. Clear? Nice. This is just a simple example of balance usages; there are actually a
lot of usages of balances, and we will discuss them while discussing about the Payroll implementation steps.
Payment Methods
An employee gets options related to the way he wants to get paid. Those options can be:
▪ Check Payment
Again based on the localization of the payroll, we need to use automatic money transfer via a certain Media,
like NACHA / BACS / ACB. These are needed for direct deposits. The other two (Check Payment and
Garnishments) are clearly driven through the checks, however the recipient changes. An employee can also
have liberty to divide his salary in two different accounts.
195 | P a g e
For an Example, If Joe has two accounts, one checking and one savings, and then he might request his salary
like this:
▪ Give me a check for $300.
▪ Then $500 should go as a garnishment to pay out my ex-spouse, as per court order.
▪ Rest of the money should go to my Savings account.
Payroll Frequency
Every enterprise runs on a schedule of payroll frequencies. These are the frequencies on which the payroll
is processed and payments are made. The Frequency again depends upon the type of payroll a particular
employee is on. Examples are:
▪ Monthly
▪ Semi-Monthly
▪ Bi-weekly
▪ Weekly
So if Joe is entitled to the Monthly payroll, he will get paid every month. So his payroll frequency is monthly.
196 | P a g e
Consolidation Sets
If an enterprise has three payroll cycles; Monthly, Semi Monthly and weekly; it means, it has employees who
are paid every week / once in a fortnight / once a month. This also means it will have to process at least one
payroll every week (weekly). Every alternate weeks, it will have to process two payrolls (one weekly and one
semi-monthly), and all three on the last week of the month. Its not just about the payroll process, the
enterprise must process post processing steps for each one of them.
To summarize, the payroll processing team of the enterprise will have to repeat a set of task multiple times
for each payroll. To solve problems like this, Oracle E-Biz uses a methodology called Consolidation set. A set
of payrolls can be combined and grouped together through a consolidation set and different processes can
be run on the consolidation set, rather running it individually on each payroll. It will pick the payrolls
processed between the provided date range and will execute the rest of the processes for all of them at
once. So payrolls with similar timelines can be clubbed together in a group called Consolidation set.
197 | P a g e
Costing
The Process with which the Pay check amounts are segregated among the various departments and cost
centers in any Enterprise is known as Costing.
Let's take an example of Mr. Joe, who is working in our enterprise since last 7 years. Now he is a Project
Manager, and his billing (his pay check) should be paid by the department for which he is working. Similarly
Ms. Jean, who is a contractor, and has been hired to do some market research, should get paid by the
department of Sales.
We know that after the payroll is run, we are going to send these reports to General Ledger aka GL, so that
the books/accounts are updated accordingly. However how do we specify, which pay check is paid by which
department? There will be situations where we want the cost to be paid by the Admin cost centre, as the job
was department independent. So to cater all these requirements, we have a concept called Costing.
We define a cost allocation flex field just for the same purpose. It will have different segments where we can
attach my cost; like, Project, Product. Cost centre, Account Code etc. These are highly based on my enterprise
hierarchy / design. With that in hand, we can start assigning costing to the payrolls. We will also have places
where we will be able to override costing. We will learn more about it while configuring those.
The General Ledger has a Flex field called: Accounting Flex field. In a best case design, the accounting Flex
field and the cost allocation flex field should match. However for all cases, we need to map these two flex
fields in order to link the accounts from HR end to the GL end. There is a form in HRMS, where the Accounting
flex field is mapped to the Cost Allocation Flex Field via segments. That process is known as the GL Mapping.
198 | P a g e
Electronic payments
In case of direct deposits, when the payroll processing is done, the bank must be informed to transfer the
amounts to the respective accounts. So how do we do it?
In most countries, all banks have an association through which they manage electronic transfers, like NACHA
(National Automated Clearing House Association) in US and BACS (Bankers' automated clearing services) in UK.
The association determines a format and an electronic data transfer methodology with which one can
communicate to the bank to fill in money into the employee accounts.
As part of Post Processing of payroll, we usually run a report that prints the Account number and the Amount
in a desired format, based on the localization (either for NACHA or BACS). That report is then sent to the
bank using a preferred media, which is again specific to localization. That report is then used by the bank to
credit the Money in to the mentioned accounts. The entire process of generating a Payment report and
sending it to bank is called the Electronic Payment data Transfer.
199 | P a g e
Element Classifications
There are a set of predefined classifications available with Oracle Payroll, which can be used to represent
the characteristics of a particular element. Each and every element must have a classification attached to it.
The Classification in turn depicts the way the element behaves. For an example, an Element of classification
type ‘earning’, tells us that it’s an Earning, and the money accumulated in it will be added to the pay check.
An element with Classification as "Information", tells us it’s just for the information purpose only, and will
not be holding any money.
Let's say, we have a primary classification that has 10 elements associated to it. Out of those 10 elements, 5
elements are very similar. They belong to the same payroll entity/ they have similar usage. In this case, we
can define a secondary classification that will help us group the similar elements together. Although
Secondary classifications are not mandatory they are very useful in Balance configuration. As an example, a
Travel Allowance, House Rent Allowance, uniform allowance are of type Earning (Primary Classification) and
are type Paid Allowance (secondary classification).
200 | P a g e
SETTING KFFS
There is a swim lane procedure for the configuration of Oracle Payroll, and w are going to follow the same.
We will start with defining the KFFs.
201 | P a g e
Responsibility: Application Developer
Steps:
▪ Click on Title.
202 | P a g e
Figure 1 Cost Allocation KFF
To define the segments, we will have to click on the segments button. However, let's first finalize the levels
where the cost can be added. We will have to decide the valid levels from the structure of our enterprise. In
case we are implementing the ERP for our client, we need to discuss these requirements in details. Usually,
the levels in which the costs are allocated are: Company, Cost centre, account Code, Project and Product.
203 | P a g e
However, if we have the GL implemented for our client, it’s advised to create the segments in parallel with
our accounting flex field.
OK, once we know the levels, let's configure them. See Figure 5.2 – Cost Allocation Segments.
Number The sequence number that decides the precedence in which the
segments are going to appear.
204 | P a g e
Name The name of the segment.
Window Prompt The name that would appear on forms.
Column The segment number column in our KFF table. Advised to start with 1 and
keep incrementing after that.
Value Set Assign a value set.
Displayed Check Box Enables the segment to be displayed.
Enabled Check Box This one enables the segment to be usable.
Value Set We can update/assign/define a value set to be attached to the segment.
Flex field qualifiers We have learnt about these in AOL
As the segments are added now, the next task is to set the details for that segment. To do so, click on the
first segment and press open. See Figure 5.3 – Cost Allocation Segment Description.
205 | P a g e
(Figure 5.3 – Cost Allocation Segment Description)
Value Set The Value set attached to the segment.
Default Type This one enables us to add a default value if needed in the segment.
Required Marks the segment Required. So every time we open the KFF, we
must enter a value for the segment.
Security Enabled In case we want to use the security rules to be attached.
Sizes Self explanatory.
Range Allows another set of validation, explained below.
206 | P a g e
Sometimes we would like to add an extra set of eyes to the segments, where we want the segment value to
be dependent on another. The best example in this case is the start date and the end date, where we’d
always want the start date to be smaller than the end date, which logically makes sense, as we cannot end a
record in the past that is created in future.
In cases like this, we can make use of the range. A segment with high range must always be bigger than the
segment with the low range. To solve the dates issue here, we can define the end date to be in High and the
start date as low.
Laws of Range:
▪ We should have the Low segment appear before the High segment
▪ We cannot just assign one segment as High and not assign any as low, or Vice versa. If we have a low
segment, we must have a high segment too.
As the ranges are set, let's talk about qualifiers. Remember we talked about these while talking about the
KFFs in the core HR and AOL section? OK here it is; Qualifiers define the segments that can be updated at
one given level. Talking about the Cost Allocation KFF, we have the Following places where a segment can be
updated:
▪ Payroll
▪ Element link
▪ Organization
▪ Assignment
▪ Element Entries
207 | P a g e
In these levels, the cost can be attained or assigned, with precedence from payroll to element entries with
increasing order. So it means, the cost associated to an element entry has the highest precedence, hence it
can be overridden by anything we enter at any upper level.
So what's the role of the qualifiers here? The qualifiers define the segments that can be updated in the above
given levels. For an example, if we have an Overtime element attached to an employee's record. The costing
is allocated to the HR department at the payroll (highest) level. On Monday, the employee worked for 4 extra
hours to support the Admin Department. Now, the account Department wants the cost for those 4 hours to
be added to the Admin department, not to the Payroll department. We can then come down to the Element
links (Lowest) level, and override the costing to the Admin dept.
This configuration was possible, just because we made the Project code (for an example) available to be
updated at the element links level. If we won’t make the project code segment available at the element links
level, we will have to choose any other segment code to override the cost. So we have the autonomy to
enable or disable any particular segment at any level. This is done through qualifiers.
▪ Click on the qualifiers tab on any segment.
208 | P a g e
People Group KFF
The people group flex field enables us to create and track another set of criteria for the employees. Although
Oracle HRMS gives us a lot of such criteria types, like job, position, grades, locations but this one is another
grouping that can be used for anything like, a stock option or may be a union or sometime just leave accruals.
HRMS also has things like, Benefit Group and Bargaining units to group employees. This is a mandatory KFF
in Payroll implementation. In case our Enterprise does not need an additional grouping, we can still create a
dummy one for the future usage.
One of the most important reasons to have People Groups is the element Link. In element links, there are
various criteria based on which we can set eligibility of an employee to have the element attached to him.
However the eligibility options are limited. In a case where the user cannot separate the employees using
the given eligibility options, he always has the liberty to use people groups. We will discuss more about the
usage of people Groups while discussing Element links.
Steps:
▪ Click on Title
209 | P a g e
▪ Define a new structure with the following data. See Figure 5.4 – People Group Segments.
210 | P a g e
Freeze Flex field Needs to be checked, once the updates are done. This makes the
definition window display only once checked.
Enabled This one makes the structure possible to be used. Disabled this is as
good as end dating.
Segment separator The character we select here is used as the separator between
segments.
Cross Validate Can be used, if cross validation is needed.
segments
Allow Dynamic Allows users to create new possible combinations in the table.
Inserts
Compile Compiles the FF structure.
Now, once the segments are added, click on the first one and press open to get started with the value sets if
any.
211 | P a g e
Value Set The Value set attached to the segment.
Default Type This one enables us to add a default value if needed in the
segment.
Required Marks the segment Required. So every time we open the KFF, we
must enter a value for the segment.
Security Enabled In case we want to use the security rules to be attached.
Sizes Self explanatory.
Range Allows another set of validation.
212 | P a g e
PAYROLL ESSENTIALS
SETTING UP PAYROLL
As per Core – HR Design, every employee assignment must have a payroll attached to it. The entity payroll,
tells the system about the payroll frequency/ cycles, the valid payment methods, the check dates to which
the assignment is entitled. Employees in a same payroll share the same payroll frequency and pay dates.
Payment Methods
Every organization has rules for its payment methods. Some organizations pay by Check, some by direct
deposits to banks, and some even pay by cash. These methods of payments that an organization follows to
pay its employees, is known as the Organizational Payment method.
Each employee of the organization may get to select the method with which s/he liked to be paid every pay
period. These are the valid options that an employee can choose in order to get his salary. Some people like
it on their bank account, some might like a check, and for some it could be both.
213 | P a g e
Each and every payroll clubs together a set of valid payment methods in it. So the available options can be
specific to each payroll. For an example, an enterprise can define payment methods like this:
▪ Weekly : Check only
▪ Biweekly and Semi monthly : Check and Bank account (Automatic Transfer)
▪ Monthly: Bank account only (Automatic Transfer).
The payment methods vary with the types of banks as well. For an example, if the enterprise deals with 4
different banks, like A, B, C and D. It will need four different payment methods defined for each of the banks
it deals with, even though all of the payment methods will be of type ‘Automatic Transfer’.
Steps: Create a new record and start filling in the details. See Figure 5.15 – Payment Methods.
214 | P a g e
(Figure 5.15 – Payment Methods)
Name Name of the Payment Method
Type The types of payment. Like check, cash or NACHA
Currency The currency of the payment
Third Party Payment Checked if the payment is of type third party payment
Source Bank Country The country of the bank
Bank Details This is the Bank details KFF
215 | P a g e
Consolidation Set
A consolidation set is a methodology that is used, to group payrolls with similar timelines together. This
makes payroll process and post processes easy to manage and run. Although a lot of payrolls can be part of
one consolidation set; every payroll must have one, and only one consolidation set attached to it.
Steps: Create a new row with the name of the consolidation set. We can create as many as we want, based
on our requirement. See Figure 5.16 – Consolidation Sets.
216 | P a g e
(Figure 5.16 – Consolidation Sets)
Payroll Definition
Once the payment methods and consolidation sets are defined they can now be associated with the payroll
definition, along with the time period and the costing information. So payroll definition is the screen where
payment dates, check dates, consolidation set, a default payment method etc are assigned to a particular
payroll.
Steps: Create a new record and fill in the details. See Figure 5.17 – Define Payroll.
217 | P a g e
(Figure 5.17 – Define Payroll)
Name Name of the Payroll.
Period Type The frequency of the payroll must be selected here. New Frequencies can be defined in.
(Navigation: Other Definitions -> Time Periods
218 | P a g e
This is an offset. So if it is -1 that means the checks will be cut as of 1 day before the payroll end date.
Scheduled Run Date This is an Offset as well. This is the date as of which the payroll will be run.
Cut Off Date This offset represents the date post which, no updates to the payroll data should be made.
Pay slip Date This is date as of which the online pay slips (in self service HR) will be visible to the employees.
Payment Method This is the default Payment method of the payroll.
This will be applied if an employee does not have any preferred payment method added to his
assignment. In most cases its set as Check.
Consolidation Set The Consolidation set is added here
Costing This is one of the screens, where cost allocation KFF can be updated.
Suspense Account If the costing of a particular payroll / element is not costed to any account. It gets added to the
suspended account. The suspended account details need to be added here.
Negative Payment This field determines if a negative value be issued in case the deductions are higher than the earnings
Allowed for a pay check
Multiple This field tells the system, whether to process an employee, if he has multiple assignments with two
Assignments different payrolls.
Period Dates This button opens up a screen that shows the dates for each payroll cycles, along with the cut off date,
check date etc.
These dates can be changed (overridden) in this screen, in case the dates are to be changed for a given
period.
Valid Payment This lists out the valid payment methods that an employee might choose.
Methods
219 | P a g e
GL FLEXFIELD MAPPING
Payroll is all about paying salaries to employees. And the salary must be heaved from an account in the
enterprise. Usually the labour cost is distributed based on different organizations that get benefited by the
work. The distribution system is known as costing.
As discussed earlier, the costing information must be passed to the finance department in order to keep an
account of labour cost. GL (Oracle General Ledger, a module in Oracle Financials) owns a key flex field known
as Accounting flex field. Oracle financials uses the Accounting flex field to identify different accounts linked
to the enterprise.
The GL Flex field mapping helps the system link different accounts setup in the HRMS system with the
accounts available in GL (accounting flex field). In other words, with the GL Mapping we are going to establish
a relationship between the Cost allocations KFF with the Accounting KFF. With this mapping in place, when
the costing process (A post processing process) is run, it helps the system to carry the costing information
to GL.
Steps: Query the payroll and fill in the details. See Figure 5.18 – GL Flex Field Mapping.
220 | P a g e
(Figure 5.18 – GL Flex Field Mapping)
Payroll Name of the Payroll
Period Period type of the Payroll. This is auto populated
GL Set of Books The set of books to which the costing data belongs
Payroll Costing The Cost Allocation KFF segments
Segments
GL Chart of The corresponding Accounting FF segments
Accounts
Segments
221 | P a g e
ELEMENT SETS
There will be many situations in payroll processing, where we need some kind of grouping to keep things in
order and to keep them easy. Tools like, Element sets, or Assignment sets help us processing things easily
on a group of elements / assignments, without any hassle of re-entering the Element Names and Assignment
Numbers repeatedly.
on a configured version of the Element Entries window. It can also be selected for element entry
purposes, using BEE in the Batch Assignment Entry window.
▪ Run Set: In a situation where an Oracle Payroll user wants to run payroll for a given set of elements,
rather running it on all elements; s/he can use a Run set to specify the elements to be processed in the
run.
▪ Distribution Set: An Oracle Payroll user can use a Distribution set to define the elements over which
the costs of other elements are to be distributed.
Let’s look at the steps to configure an element set.
Steps: Create a new record and start entering the details. See Figure 5.19 – Element Sets.
222 | P a g e
Figure 19 Element Sets
223 | P a g e
Classification Rules A user can select One or more Primary Classifications here to Include the elements in that
classification.
ASSIGNMENT SETS
Assignment sets enable us to group a number of assignments together, and then run any process on them.
Examples of its usage are, running payroll for a set of assignments, Loading Element entries for a set of
assignments etc.
224 | P a g e
Navigation: Payroll -> Assignment Set
Steps: Create a new record and start entering the details. See Figure 5.20 – Assignment Sets.
Name Name of the Assignment Set
Payroll May or may not be populated. If a payroll is chosen, then assignments, only from that payroll will be
included
Criteria One or more conditions can be defined in this window, which will define the eligibility of an assignment
to be part of this set. For an example, one assignment set can have the following conditions.
So all the assignments that are hired after 1 st JAN 2012 and are Full time will be included in the
assignment set.
Amendment In case there are a list of employees to be included as part of the assignment set, one can use the
Include/ exclude flag and the employee numbers to define the criteria.
For an example, one assignment set can include employees with employee numbers: 13662, 13663,
13664 and Exclude 13661.
Generate The Generate button is used, to generate a formula once a assignment set is defined. We can view
and edit the formula in the Write Formula window. The name of the formula remains same as the
assignment set.
In other hand, if we evaluate the fast formula for an assignment, it will return Yes / No based on the
eligibility criteria and the assignment being evaluated.
225 | P a g e
ELEMENTS AND LINKS
DEFINING ELEMENTS
We have talked a little about elements before. It’s a placeholder to hold the values that can be assigned to
store an entity of payroll; like an earning, a deduction, a life insurance premium etc. Elements are the building
block of the payroll. If we look at a payslip, we will see different types of pay, like the basic, travel allowance,
Medical allowance, deductions etc. Those are all elements.
Before going ahead and creating elements, we must make sure we list down all the elements that we need,
along with their names, reporting names (that will appear on the pay slip), type of the element etc.
There are two ways to create an element.
▪ Use the traditional Element screen
▪ Use a template
226 | P a g e
Using Traditional Way
Before creating anything related to a date tracked table, we must date track to a date that will be able to
catch all our historic information. What's that date? May be 01-JAN-1951, or 01-JAN-1980? We can use any
date which is well enough in past that all our transactions could be recorded on or after that date. The most
popularly used date is, 01-JAN-1951. We must date track to that date we have decided to go with; before
entering any information.
227 | P a g e
(Figure 5.5 – Define Elements)
Name The name of the element. One should always use meaningful names. The best practice is to use suffixes to
identify types of elements. For an example, element name starting with E_ can depict an Earning Element,
similarly D_, I_, T_ etc can be used to name the elements of types deductions, Information and Third Party
payments respectively.
Reporting Name This name must be more meaningful; as this appears on the pay slips and statement of earnings.
Description Information purpose only.
228 | P a g e
Primary Choose a Primary Classification that suits the element the most. We will learn more about this later in this
Classification chapter.
Benefit Choose one if required.
Classification
Effective Date This should give us the date we have date tracked to. The Start date of the record. This is populated
automatically.
Currency Choose one currency, if the element's currency is different than our Business group's default currency.
Age An eligibility Indicator. In case we want the element to be available, based on age criterion.
Length Of Works the same way as age, however on Length of Service criterion.
Service
Standard If standard box is checked, system creates an entry to all the employees who are eligible for the element
automatically.
As the eligibility of an element is determined through element links, the standard check box can be
overridden at the element links level.
An element must not be Non Recurring or multiple entries must not be allowed in order to be standard.
Further It's a DFF on the Elements table. It can store additional information, which can be used in fast formulas.
Information
Type Recurring : Elements that appear in every payroll cycle, like Basic Salary
Non Recurring: Elements that do not appear in every payroll cycle, like Overtime
Termination This determines, if an employee is terminated, how long this element should get processed.
Dates Actual Term date: The element ends as of Termination Date
Last Standard Process date: The element ends as of the pay period end date on or after the termination date
Final Close Date: The element ends as of the final settlement date mentioned, as per the termination record.
Multiple Entries This enables an element to be entered more than once in one pay period. Example: Overtime element, as
Allowed overtime can be entered multiple times in a week’s time. On the other hand, Regular salary can not be
entered multiple times in a period. There should be just one entry per pay period.
Closed For This will make the element unavailable for any future use. However the existing entries will work as
Entry expected.
229 | P a g e
In case we wish to stop using an element, this is the flag to be updated. End dating or Purging are not good
practice for elements.
Process in Run If not checked, the element will not be processed as part of Payroll run.
Indirect Result This flag is checked, if any other element seeds any value to this one for usage. We will discuss more about
these in Formula results section of this chapter.
Third Party This flag is used, if the element is associated with third party payments.
Payment
Skip Rules This accepts a FF. The FF returns a Y or N. Based on the return value; the element is included on a payroll
run.
The skip rule stands useful when you wish to include the element on specific cases only. For an example, you
wish to pay the Bonus element only if the YTD salary is greater than $75,000.
Priority A number based on which it is picked by the payroll process. The one with the smallest priority number gets
picked up first. A Default value is always fed based on the classification chosen for the element. However, we
can change it if any specific requirement forces it to be updated.
Especially in case of Indirect results, where one element feeds values to another, the feeding one should be
processed first and hence must have a smaller number.
Input Values
We know that the elements store values. However the actual places where the values are stored / recorded
by the elements are known as Input Values. These are the place holders that keep the values that can be
used for calculations related to payroll. One element can have one or more input values attached to it. The
230 | P a g e
input values store the different values that are used for the calculation of the final value of the element. In
some cases one Input value for an element might feed values to another element for its calculations. Those
are called indirect results.
Let's play an example; we are storing the Overtime with an element. So what are the things we should track?
One Input Value storing the number of hours we have worked, and another to store the hourly overtime
rate of the employee. That will give us the money to be credited to the employee's payroll. So will need
another Input value to store the final amount.
The one input value that stores the final amount must be stored in an Input value with name "Pay Value".
Let's navigate through the form. See Figure 5.6 – Input Values.
231 | P a g e
Name Name of the Input Value.
Units It can be one of these: Money, Hours, number etc. A pay value should always have the unit as Money.
Sequence This is the order in which the elements appear in the Element Entries Inputs screen.
Required Makes the Input value Mandatory for the element. This means, the entry will not be saved, unless this value is
entered.
User Makes the Input value user enterable. Like the number of hours and Overtime hourly rates.
Enterable
Database Creates a database item for this Input value.
Items
Default Takes the default value for the Input value.
Hot Default Updates the existing entries, if the default values are changed. For an example, if a Default value for overtime
hourly rate is changed, it will enforce all the existing unprocessed entries to be updated, if the hot default is
chosen. If it’s not checked, then it will just use the new default going forward; without updating the existing
entries.
Lookup Use a look up for validation of the Input values. The Entered value must be in the look up codes. This is like
an extra set of validations attached to the data entered to the input value.
Formula We can use a formula to validate the input value.
Minimum and Takes the minimum or maximum of the allowed values.
Maximum
Warning or We can use a Warning or Error message here. The warning will appear on the payroll process results, if
Error validation of the data fails.
Effective The effective date of the Input value.
Dates
232 | P a g e
Classifications
Choosing a correct primary and secondary classification is very important in order to ensure the elements
behave the way they are designed to. The primary classification is a seeded functionality, however the
secondary classification is customizable, and we can add new secondary classifications based on our
business needs. Here is the list of Primary classifications, the categories and their meanings.
Classifications Categories Descriptions
Earnings Regular, Overtime , Premium, Shift Pay, Student Earnings Earnings based on the hours worked. The
salaries, Overtime etc are the direct result of
the labour, and termed as Earnings.
Supplemental Dismissal Payments, Educational The special type of earnings that one
Earnings Assistance, Deferred Compensation Plans, Jury Duty Pay, receives, along with the Earnings. Like
Moving Expense Reimbursement, Pensions/ annuities, Awards Bonus, awards etc. Even though these are
n Prizes, Bonuses, Commissions, cafeteria Plans, Deceased type of earning, these are additional cash to
Employee Wages, Sick Pay, Travel Expense Reimbursements, the employee, other than the ones entitled.
Vacation Pay
So technically, any cash numeration, which
is not a type of earning is called
Supplemental earnings
Imputed Group Term Life Insurance, Personal Use of Company Car, The Non Cash types of earnings are listed as
Earnings Non-Cash Awards Imputed Earnings. We’ll learn more about
these in Advanced benefits.
PTO Accruals Vacation, Sick These are the Paid Time Off
(PTO) accrued by the employee. Usually
enterprises give the employees an amount
of days to accrue once s/he completes a
month / year as an employee. Those
233 | P a g e
vacations are paid ones. So the employee
keeps gathering them and uses them
whenever s/he needs them. Those accruals
are stored with PTO accruals.
Voluntary N/A These are the deductions that are done as
Deductions part of any loan payment / insurance
premium etc.
Involuntary Garnishments, Bankruptcy order, Federal Tax Levy, State Tax The Involuntary deductions where the
Deductions Levy, Local Tax Levy, Child Support Order, Spousal support employees pay the amount based on some
order, Alimony, School Loan, Credit Debt, Employee Alimony or by court order or by any third
requested payments party garnishment orders.
Pre-Tax differed Comp 401K, Health care 125, dependent care 125 The deductions that happen before taxes are
Deductions applied. Like Health care and retirement plan
premiums / rates.
Tax Deductions Federal tax, state tax, Local tax The employee taxes for the Country or state
or even local taxes come under these.
Employer Taxes Federal tax, state tax, Local tax The employer taxes.
Employer Benefits, Overhead These are the non tax liabilities to the
Liabilities employer that gives health coverage benefits
and usable things to the employees like a
safety harness.
Tax-credit N/A These are the credits that are paid back to
the employees as part of
some accreditations.
Non-Payroll Expense Reimbursement These are not actually earnings, hence not
Payments taxable. These appear separate on earning
report, as these expenses are just being
reimbursed, not an additional payment.
Information Absence Hours, Straight-Time Overtime Hours, Tax Balance, These elements are not monetary types.
Labour hours, Regular Hours They just hold the counts for reporting
purposes.
234 | P a g e
Formula Results
Fast Formulas can be used for various purposes like, Calculating Pay values, validating entries, Skipping a
payroll etc. There are precise places where we can use a particular FF. We will concentrate on the most widely
used one; the payroll calculation formula.
Let's see the form, and discuss about the various possibilities. See Figure 5.7 – Formula Results.
235 | P a g e
(Figure 5.7 – Formula Results)
Element Name Name of the element.
Classification It is auto populated with the primary classification of the chosen element
Description It is auto populated with the description of the chosen element
Processing Rule Name This is a LOV with assignment status types of employees (PER_ASS_SYS_STATUS lookup).
Choose a ‘standard’ rule for standard processing. Also choose any other status type, if the
processing rules for the element changes with a change in that status change.
Processing Formula Name Name of the formula to be used against the status change
236 | P a g e
Formula Result Name Name of the result that should be linked to input value of an element. This is a LOV, populated
with the return values of the FF. If the FF has three return values, those three will be populated
in the LOV.
Type Type of formula result. We will discuss about it later in this chapter.
Element The element to which the result is being passed.
Input Value The input value in use.
Units Auto populated based on the chosen unit
Message In case the result type is Message, the message needs to be added here.
Direct Result: This is used when we are updating the pay value of the element being evaluated.
Indirect Result: This is used when the calculation result of one of the Input Value of the element being
evaluated needs to be fed to another element's input value. The later then takes it as an Input and processes
237 | P a g e
its calculation. Continuing with our example, If Bonus needs to be 15% of the regular Salary. Regular Salary
might have an Indirect result to feed the value to the Bonus element. Bonus element can then take the value
and calculate 15% of the value and use that amount as pay value. So to pass the value from Regular salary
to Bonus element, we can use the Indirect Results.
Order Incorrect: This result updates the sub priority of the element selected in element field.
Stop: This formula result uses the effective date of the payroll run to put an end date on a recurring entry of
this or another element (which must be defined with multiple entries not allowed.)
Update Recurring Entry: This result updates recurring entries of this or another element. The receiving
element must be defined with multiple entries not allowed unless we are passing a recurring element's
entries to itself, which is updating another entry of the same element.
Message: Sometimes, we want a simple message to be displayed based on the calculation. That can be done
using a Message type.
238 | P a g e
▪ Never check "Closed for Entry" for a standard element. It will create issues with Hiring and
terminations.
▪ For validation, we can use any one of the three possibilities (Lookup / formula/ min and max).
Let’s start with earnings template first. It is more or less a type of classification. However using this template
to create an earning type of element creates the following things in Oracle Payroll.
▪ One element with the same name as earning
▪ Two support elements (one special input and one Adjustment/ special feature)
▪ One Fast Formula
▪ One Balance
▪ The input values
239 | P a g e
Navigation: Total Compensation -> Basics -> Earnings
Steps: Create a new record and start filling in the details. See Figure 5.8 – Earnings Template.
240 | P a g e
(Figure 5.8 – Earnings Template)
Name Name of the Element
Reporting Name The Name that appears on the Pay slips and statements of earnings
Description Just a description of the element
Classification The Primary classification
Category This is a sub type of Primary Classification
Priority The order in which the data is going to be processed
Overtime Base If this Box is checked, it takes the element as the base for the Overtime entries
FLSA Hours This is used in US localizations only. If this Box is checked, it takes the initial 8 hours as regular and the next
hours as Overtime, as per FLSA rules in US. FLSA stands for Fair Labour Standards Act.
Reduce Regular In a case where we want the regular hours to be divided into "Regular Worked" and "Regular Non Worked"
hours, we should use this. For an example, if there is a full time employee appointed for 40 hours a week,
but he has worked for only 36 hours as per the time sheets, then 36 hours will be Regular worked, and 4
hours will be the regular non worked hours.
Standard Link This enables an element to be standard. If the box is checked, the element gets added to
all eligible employees automatically.
Standard This defines the way the Pay value calculation will be done.
Calculation Rule
Type Recurring / Non Recurring. Same as we discussed in Elements screen
Termination The date until which the element will be used.
Deduction We can choose one of the three Tax deduction types:
Processing Tax Only: Only Tax deductions apply.
Tax and Pre-Tax only: Only Tax and Pre-Tax deductions apply.
Default: All types of Tax deductions apply.
Separate Check Select Yes, if we want a separate check to be issued just for this element.
Let's talk about the standard Calculation rule a little bit. There are four predefined standard calculation rules
in place:
241 | P a g e
· Flat amount: The Earning is a flat amount.
· Hours X Rate: The Earning is a multiple of number of Hours worked and Rate per hour.
· Hours X Rate Multiple: This is as good as Hours X Rate, however multiple entries are allowed.
· Replacement Value: This amount, if entered will replace the amount filled in with the original element.
· Adjustment Value: This amount, if entered will be adjusted against the amount filled in with the original
element.
To continue the same example further, we will use the replacement amount and put the new regular salary
there, or will put in $50 in the adjustment value, so that it will be added to the original element while
processing.
242 | P a g e
Using Deductions Template
What’s a deduction? It's the amount that needs to be deducted from the payroll. When we consider
deductions, there are two major types:
▪ Tax Deductions
We know what tax deductions are. These are the taxes we pay. Oracle has tied up with a vendor called Vertex,
who takes care of all the taxes in Oracle Payroll in US. So we do not have to worry about the tax percentage
and everything as of now. Oracle has got it covered. It will get cut from the employee's payroll automatically,
based on his work address and home address. For all other localizations, there are specific taxing rules that
are to be followed.
What are the Non Tax Deductions? These are the voluntary and involuntary deductions. Like a Life Insurance
Premium / rate or a loan amount to be paid or a debt to be paid back to the company etc. So to configure
these types of non tax deductions, we can either go for an element creation or create it via a template. Let's
see how the template looks like. See Figure 5.9 – Deductions Template.
243 | P a g e
Figure 9 Deductions Template
244 | P a g e
Benefit Classification This is another set of classification in place that can be used to handle benefits level deductions.
Type Recurring / Non Recurring - same as explained in elements.
Start Rule On Entry : The deductions begin as of the date on which the deductions are recorded.
Earning Threshold: The deductions begin only after the Gross Earning Balance reaches a threshold.
Run Type Regular : It will be applied only to the Regular Runs.
Supplemental: It will be applied both to regular and supplemental Runs.
Termination The date until which the element will be used (same as explained in Elements).
Standard Check box Appears on all eligible employee payrolls.
Total Reached Stop rule The Deductions stop once the deduction balance reaches a specific amount.
Series EE Bonds Check if the deductions are related to series EE Bonds.
Buy Back Check Box This is used in Retirement plans.
Deferred Compensation Eligible employees may elect to participate in a deferred compensation plan (e.g., 401(k), 457) or
Rules contribute to a tax–sheltered annuity (e.g., 403(b)) rather than receive the full amount of their
salary in cash. Participation in a deferred compensation plan is usually a pre–tax contribution that
reduces the employee’s taxable income. The maximum amount of salary that an employee may elect
to defer and have contributed to a plan is subject to change yearly. In addition to Pre-tax
contributions, employees may make after–tax contributions once the plan’s contribution limit has
been reached. Employers may contribute matching amounts (the employer’s matching contribution
does not have to equal the employee’s contribution).
Once the deduction is created and saved, Oracle Payroll automatically generates both the pre- and
post-tax deduction elements (if applicable). Oracle Payroll requires us to link and enter values for
these elements separately. Deferred compensation elements and links only need to be created once
for an organization. Individual deferred compensation values must be entered and maintained for
each individual assignment as dictated by ones benefit elections policy.
Catch Up Processing 403(b) and 457 catch–up provisions allow eligible employees to exceed a plan’s maximum pre–tax
deferral limit.
Oracle Payroll supports deferred compensation plans with catch–up provisions (e.g., 403(b) and
457). By enabling the appropriate catch–up provision, Oracle Payroll will automatically adjust an
eligible employee’s maximum pre–tax contribution limit. We can then adjust the employee’s 403(b)
or 457 deductions accordingly.
245 | P a g e
Rules This determines the amount to be deducted.
• Payroll Tables : It can be obtained from a user table. The table name in the Payroll Table
text box must be mentioned, if this option is being selected
• Benefits Table : It can be obtained from the Benefits Module. Based on the Coverage and
plan the employee is enrolled in
Insufficient Funds With this option, system determines the action, if there are not enough funds to pay off the entire
deduction.
Arrearage: This options tells the system to use the remaining amounts as arrears for forthcoming
months
Partial Deduction: instructs the system to deduct the money partially, period after period.
In few cases, the deductions have to be made based on a particular frequency. For an example, an enterprise
may wish to deduct $10 towards Company Car as of first pay period of every month. So, for an employee in
weekly payroll, the $10 will get cut as of first week of every month; and for all other pay periods in that
month, there will be no deductions towards the Company Car.
For requirements like these, Deductions have a mechanism known as Frequency Rules. One can choose the
desired number of times deductions are to happen in one month, for each payroll. To satisfy the requirement
in the example cited earlier, we must go to frequency rules button on the Deductions screen, and check the
246 | P a g e
check box 1 against the required payroll. Here the number one signifies the first week of the month. Like
wise one must check the numbers of the week on which the deductions are to be made.
DEFINING LINKS
Once the elements are in place, some eligibility criteria must be defined to help the system determine,
whether an element can be attached to a particular employee or not. That concept is known as linking.
Element links help us define the criteria using a set of indicative data. The elements will be visible on the
element entry screen of an employee, only if s/he passes the eligibility criteria. One element must have at
least one, and can have more than one links in order to be attached to an employee’s element entry.
The indicative data with which the eligibility criteria of an element link can be defined are:
▪ Organization
▪ People Group
▪ Job
▪ Position
▪ Grade
▪ Location
▪ Employment Category
▪ Payroll
▪ Salary Basis
247 | P a g e
Responsibility: HRMS Manager
Steps: Create a new record and populate the details. See Figure 5.10 – Element Links.
248 | P a g e
(Figure 5.10 – Element Links)
Element Name Name of the element for which the link is being created
Standard If checked, It creates an entry for all eligible employees
Eligibility Criteria Choose the set of eligibility criteria for the element.
Link to All Payrolls If Checked, the element becomes available to all eligible employees in all payroll
Costing • Not Costed : The element is not costed against any account
• Costed : The element is costed. Overriding the costing at lower level is allowed
• Fixed Costed : The element is costed. Overriding is not allowed at lower levels. If this is chosen,
the account details for the “to be costed “account must be entered here.
• Distributed : The element is costed, however using a distribution set.
Transfer to GL This check box makes sure that the cost is transferred to GL once the payroll is run and ‘Transfer to GL’
process is run.
Qualifying Qualifying conditions like age and length of service defined at the element description level can be
conditions overridden here for a particular set of employees, who satisfy the link.
Input Values The values given at the element description level can be overridden here. One addition on this screen
is the ‘Costed’ checkbox next to each input value.
Remember, if we Override the Input Value default here, it does not change the default on the elements
screen. The new Default will only be applied to the entries with the given link. All other links to the same
elements remain intact.
249 | P a g e
ELEMENT ENTRIES
MANAGING ENTRIES
Once the elements and the links are defined, they are available to be distributed to individual assignments
(employees) based on the eligibility. This distribution of elements is known as entries. The entries store the
name of the element along with the input values, and also the values assigned to them. Later, when payroll
is run, payroll manager engine picks the entries with the input values and processes them.
For an example, Bonus is a non-recurring element, and it contains two mandatory input values namely,
subject to and percentage; along with Pay Value. There is a non-standard link on the bonus element that has
an eligibility criterion of Payroll = ‘XXMonthly’.
1. As the link criterion suggests, a person who belongs to ‘XXMonthly’ payroll is eligible to receive this
element
2. As it is not a standard link, it’s not going to make an element entry all by itself, so the element entry
must be created explicitly
3. Once the entry is made, the start date will be the date on which the entry was made, and the end date
will be the Pay Period end date, because it is a non-recurring element
4. With every entry, the mandatory input values must be populated with some value
250 | P a g e
5. The pay value can either be populated or be calculated based on the design (whether its user enterable
/ calculated through a formula )
6. Finally, when the ‘XXMonthly’ payroll for that pay period is run, it will populate / calculate the pay value
based on design, and the final value is then used in payroll calculations
There are different ways to make an element entry. However we will discuss the major contributors.
Automatic Entries
In many cases automatic element entries can be done on assignments. Mostly the regular earnings are
configured in a way that the entries are made by design. The assignment and element must satisfy the
following conditions for an entry of this type.
▪ The element link must be standard
251 | P a g e
Manual Entries
There are cases where the payroll users key in entry by themselves. This type of entry is known as the manual
entries.
Navigation: Total Compensation -> Enter and Maintain -> <Query the Employee> -> Assignments -> Entries
Steps: Select the element we want to update / create a new record with the element name. See Figure 5.21
– Element Entries.
252 | P a g e
Figure 21 Element Entries
253 | P a g e
Processed Once the payroll is processed and the element entry is taken in to calculation, the processed box gets
checked to symbolize that.
To give input values to the element, we will have to select entry values.
Input values All the input values attached to the element appear here. However
only the ones with user enterable flag checked, can be updated
Date Earned This signifies the date on which the wage / hours are earned
Payee Details In case of Third Party Payments, the payee details are added to show
the particulars related to the Organization, court order number etc.
Processing Priority This defaults with the processing priority attached to the element. The
priority can be overridden here
In cases where the Benefits system is managed by another vendor organization, the vendor might send a
spreadsheet with the Insurance premium / rate to be cut off from employee's payroll as a deduction. It
becomes impossible to get into each assignment and keep on adding the details without any mistake.
Similarly, if time tracking is done by an external system or if OTL is housed in a different environment, then
the time must be transferred to appropriate element entries in the payroll system.
254 | P a g e
To facilitate an interface between an external system and the element entries, oracle has developed a feature
called the batch element entry. This feature enables the users to update assignment entries of huge
numbers, at one shot as a single batch.
Steps: Create a new record with these details. See Figure 5.22 – Batch Element Entries.
255 | P a g e
Figure 22 Batch Element Entries
• Unprocessed: The Batch is fresh, and has not been processed yet
• Valid: Validation is done, no errors found
• Transferred: Data Transfer is done. Process is complete
• Error: There is an error with one of the entries. The message button can be used to check the error
details.
• Status Mismatch: The process is running; the row must be queried again to see the latest status
Action if Entry In a case, where one element entry is being added, and the entry already exists with the assignment for the
Exists same pay period, the system must take one of the following actions.
• Create New Entry: It creates a new entry. However only if the multiple entries are allowed for the
element. Otherwise it throws an error on the batch line.
• Reject Entry: It does not alter the existing entry and rejects the batch line.
• Change Existing Entry: This will update the old entry with the new entry values fed by the batch line.
Reject If Future In a case where there already exists an entry in future, that matches the batch line; it will reject the entry if
Changes this box is checked. This is exactly opposite of Override. Hence both the options cannot be selected together.
256 | P a g e
Purge after This will cause the temporary tables linked to the BEE process to be purged off. Once this option is chosen,
transfer no roll back can be performed henceforth the transfer
Auto Query This box needs to be checked, If the assignment lines window is being used and any existing batch lines for
the assignment/element set need to be automatically displayed.
Auto Validation Once this box is checked, it validates each and every assignment number is entered and it flashes an error
message, as soon as an invalid assignment number is entered.
Element Lines This window is to enter assignments. This helps in creating entries for one element for multiple assignments.
Assignment This helps in creating entries for multiple elements in one assignment.
Lines
Assignment Set This can be chosen for a particular element to be entered for an assignment set.
Totals This is a type of validation, where the totals of the entries are to be validated.
Messages A Message can be Set up to display error messages.
Process This tab gives user an option to choose the next action he wants to take. i.e. Validate / Transfer etc.
This is the button to be used, when there is a need to make an entry for an element for multiple assignments.
Element Select an element
Find After pressing this button, it displays the list of assignments added with the element for this BEE.
Line Just a sequence number called Line number
Assignments The list of assignments. While creating a new BEE, we can keep on adding assignments here.
Input Values The Input values appear like columns here.
Costing Can enter Costing string here as well. This is the element entry level of override.
Date Earned Can enter the Date Earned t override the element screen priority
Processing Priority Can enter the Priority to override the element screen priority.
Effective date The date as of which the entry should be made.
Status Displays the status of the Batch line.
Messages Displays the error messages
257 | P a g e
Defaults Can enter the Default value for the Input values. This will be taken if no entries are available on the
batch line.
Now, this is the button, we would use, when we want to make an entry for multiple element for a single
assignments.
Assignment Select an Assignment for which the element entries are going to be made
Name It will be auto populated based on the chosen assignment.
Element Set Choose an element set.
Element Elements as per the chosen element set appear here. Then one of the elements can be selected and
the Input values, Defaults, Costing etc can be entered as explained in Element lines.
This is the Button, we would use, when we want to make an entry for a single element for multiple
assignments. However the multiple assignments must be grouped together with an assignment set.
Assignment Set Select an Assignment Set for which the element entries are going to be made
Payroll Choose a Payroll with which all the assignments in the assignments are related to.
Element Enter an element for which the entries are going to be made
Rest of the Fields The rest of the fields are identical to what we have in Element Lines / Assignment Lines.
258 | P a g e
Using Totals:
Totals can be used to validate the BEE Transfer. We can put in conditions in order to validate if the number
of entries made matches with the number of entries requested by us. Or even compare the sum of the
number of hours entered as a whole. Or even do the summation of the monetary units and compare it with
calculation. So this is a powerful tool to validate data.
For an example, we want a total of entries that are made. We choose a type of Line Count. Now, we add 55
in the Control Total, as we know there are 55 entries that are to be made. Then we can set up a message
that will pop up if the line count exceeds or goes down the number 55.
259 | P a g e
BALANCES
MANAGING BALANCES
A balance is helpful to store positive or negative accumulation of elements. This can be fed by the pay run
results or by an Input value. Usually a balance is created when we need to track an aggregated value
associated to one or more elements, for the purpose of reporting or validations. To Measure a balance, we
have dimensions and levels.
Dimensions: These are the different axes through which the system can calculate the numbers. For an
example, the gross earning in this month, in this Quarter, in this Year; are the different time dimensions.
Levels: These are the levels on which the dimensions will be applied. For an example, if we take Month as
the time dimensions, the levels can be, Monthly Salary of an assignment, Monthly Salary of an employee,
Monthly Salary of a department etc.
To summarize, balances are a way of keeping track of one or more elements with various dimensions and
levels. Once the balance is created, the system needs to know the different elements that will be part of the
balance calculations. The attachment of elements to balance, can be done in three ways:
▪ Using Primary Classifications: The run result of all elements, under the classification will be gathered
in the balance.
260 | P a g e
▪ Using Secondary Classification: It’s as good as using Primary classification, however the classification
changes to a more granular level.
▪ Using Individual Elements: We can either choose a Run Result or an Input value for the same. However
if we are using an Input value, we should always have the units same as balance's unit.
Steps: Create a new record and start filing the details in the fields. See Figure 5.11 – Define Balance.
261 | P a g e
(Figure 5.11 – Define Balance)
Name A name of the balance.
Reporting Name This is the name that appears on Reports and payslips
Units The unit on which the balance is going to Operate. Like Money, Hours Worked etc.
Currency If the Unit is Money, It must have currency added to it
Use for This is used for remuneration Balances and only one balance can have this box checked
Remuneration
Gross Up Once checked, the balance works as a gross up
Feeds This window can be used, to assign elements to the balance. The “Add / Subtract” column can be used to
instruct the system whether to add / subtract the amount from the base value.
262 | P a g e
Classification One can select a Classification, in case the entire classification (including all elements in it) is to be
included in balance calculations
Dimension These control the number of values to include in the balance. It could be based on time span (year to
date, quarter), level (person, assignment) or restriction (by database item).
Initial Feed This stores the initial value of the balance. It’s not mandatory; however it helps in implementation cases.
Let’s say there is a requirement, where a balance for Car hire must be set as 30 at the start of every
year. And each time an employee hires a car through the company, the amount must be subtracted from
the base amount to store the remaining hires. For situations like this Initial feeds come handy.
Laws of Balance:
▪ Either Feed or Classification has to be entered in a balance. We must not enter both.
▪ In either screens, it populates only those elements that have an input value of the same unit as of
Balances.
Balance Feeds
As we discussed earlier, there are three ways to assign elements to a balance. However we can broadly divide
the ways into two, using Elements, and using Classifications (Including both primary and secondary). Let’s
discuss both the ways in detail.
Using Elements:
263 | P a g e
Navigation: Total Compensation -> Basics -> Balance -> Feeds (Button)
Steps: Create new rows and start filling in the details. See Figure 5.12 – Balance Feeds.
This screen helps us to seed the Input values of various Elements into the Balance.
Element Name The Name of the element to be associated.
Classification It auto populates the Primary classification for the element
selected
Input Value Name Select the Input value that will be used in the Balance. The Unit
must match with the unit of the balance
Add / Subtract To be selected based on the logic of balance calculation
264 | P a g e
Using Classifications:
Before assigning Classifications to the Balances, there might be a need to create secondary classifications.
Because in most cases, all the elements in a Primary classification are not meant to be included in a single
balance; and the inclusion is needed just for a subset of it. So in cases like that, secondary classification is
created first as a subset of the primary, with the required elements in list; and then the secondary
classification is attached to the balance.
Navigation: Total Compensation -> Basics -> Balance -> Classifications (Button)
Steps: Create new rows and start filling in the details. See Figure 5.13 – Balance Classifications.
265 | P a g e
(Figure 5.13 – Balance Classifications)
Classification Name The Name of the element to be associated
Add / Subtract To be selected based on the logic of balance calculation.
Balance Dimensions
As discussed earlier, Dimensions are the axes of a balance that can provide data related to a specific area/
time. Most of the dimensions used in balances are related to time.
Navigation: Total Compensation -> Basics -> Balances -> Dimensions (Button)
Steps: Create new rows and start filling in the details. See Figure 5.14 – Balance Dimensions.
266 | P a g e
(Figure 5.14 – Balance Dimensions)
Dimension Name Name of the dimension. Select one from the LOV.
Description This is auto populated, and explains about the selected dimension.
Gross up Balance This is as good as a default check box. Only one of the dimensions can have this checked.
Status Shows up status. This is auto populated based on processing.
Navigation: Total Compensation -> Basics -> Balances -> Initial Balance Feed (Button)
Input Value Name The Input value of the selected element, to be used as the initial value.
267 | P a g e
PROCESSING PAYROLL
Now, let's come back to the place where we started. In the flash back, we learnt, how to configure things
alright? Now we will learn about the processing. Here we will use everything that we've defined this far.
▪ Processing
▪ Post-Processing
PRE-PROCESSING
This is the stage where all the preparations are done; things like, creating element entries, getting the costing
in place, taxing etc. So let's talk about these a little bit.
268 | P a g e
Getting Time Card Data
It all starts with the Time card entry, which happens to be another module in Oracle HRMS called OTL (Oracle
Time and Labour). With OTL, we get all the time cards captured. Employees log in to OTL, enter the time
sheets and then it stores the time entered by each employee. It also has rules in place to determine, whether
it’s a regular working hour or an Overtime Hour.
Now, as we have the time card in OTL, we can either run a process to get it loaded on to Payroll system, or
we might get the Time card entries in the form of a file(Cases where Time card is managed by a vendor),
which can in turn be loaded by using BEE. So once either of the process is complete, which means the data
is transferred to the assignment entries, the time sheet information is captured.
269 | P a g e
same. Once we receive the Extract, we will have to use either an Interface or BEE to load the Entries on to
the assignments. So that takes care of the Benefits portion of it.
270 | P a g e
about the accrual numbers. For Unpaid leaves, the data is taken from the OTL, and based on that the
payments are made.
Once all these data are captured, the next task is to Process the Payroll.
PROCESSING
Now, we will process a Payroll. To do the same, we will have to run it through a seeded Concurrent
Program. The name of the Program is "Payroll Run / Payroll Process".
Navigation: View (M) -> Request (M) ->Submit a new request -> Single request
Steps: Enter the name of the Process "Payroll Run / Payroll Process" and enter the parameters. See Figure
5.23 – Payroll Process Parameters.
271 | P a g e
(Figure 5.23 – Payroll Process Parameters)
Payroll Name Name of the Payroll
Consolidation Set Name Name of the Consolidation set used in the Payroll
Date Earned The Pay period end date
Date Paid The Pay period end date
Element Set Name Name of the element set, if the run has to be on specific Elements
Assignment Set Name Name of the assignment set, if the run has to be on specific Assignments
Regular Type of run : Regular / Supplemental
This will process the payroll. We can always check the Concurrent Program to see if there are any Errors in
the log file. We can also check the number processed to be reasonable. There is a screen called Payroll
Process Results (Navigation: View -> Payroll Process Results). Look for the payroll Name and the time
period, if the process status is complete, that means the payroll has no errors. We will discuss more about
it later in this chapter.
272 | P a g e
POST PROCESSING
So now, as the payroll is processed, what are the next steps? There is a lot of processing involved. Some
are mandatory processes, and some are optional. Usually the Optional Processes are to generate reports
that can be used for verification. Usually Payroll Administrators ask for their own set of reports for
comparison and logging, which is very enterprise specific. However in this section, we will learn about the
Mandatory processes first and then will look at some of the widely used optional Processes.
Prepayments
This is a mandatory Process. This process looks in to the amounts processed for each of the employees
and their respective Payment methods. It then divides the money to be paid on to their Payment methods.
So for an example, Joe's salary for his month is $5000, and he has two preferred payment methods, 20% as
a check and rest of the money in a Bank Account. After running Prepayments, the system will know that it
has to transfer $1600 in to his bank account and it has to give $400 as a check to Joe. To run the process,
we need to go to single Request and put the process name as PrePayments. See Figure 5.24 – PrePayments
Parameters.
273 | P a g e
(Figure 5.24 – PrePayments Parameters)
Name of the PrePayments
Process
Payroll Name of the Payroll
Consolidation Set Name of the Consolidation set used in the Payroll
Start Date The Pay Period End Date
End Date The Pay Period End Date
Payment Method This can be used to override all payment methods. For an example, if our Enterprise wants to pay everyone by
Override Check this month. No Bank Transactions. We can override this payroll run to be on Checks only.
Usually in Start and End Date fields we should enter the date span in which the Prepayment will be run.
The System will look in to the payroll tables to see, if there is any amount that has not paid yet with in
those two dates. If it finds any, it will sort that according to the Payment methods. However as we should
274 | P a g e
be running Prepayments after every payroll, the dates should always be the Pay Period end date. This
saves a lot of system time.
If the system does not find details about the Personal Payment methods, then it will default the payment
with the Default payment method used with the payroll. Usually the default payment method is Check.
Magnetic Transfer
As we know, this is the process for direct deposits. UK localization supports the BACS and North American
Localization support NACHA, similarly all localization follow a specific payment gateway. This process
generates an output file that can be sent to the Bank and the treasury.
Name of the Process NACHA / BACS/ Process type based on Localization
Payroll Name of the Payroll
Consolidation Set Name of the Consolidation set used in the Payroll
Start Date The Pay Period End Date
End Date The Pay Period End Date
Payment Method Choose Direct Deposit
Deposit Date Override An Override date, if we want the Deposit to happen later
File Id Modifier Choose 0
Once the Process is run, we can select the output of the Process and verify the details. We can then send
the Output report to the Bank via established Preferred Electronic Media.
275 | P a g e
In few cases, in US Localization, we would also need to run the NACHA Report. This Report gives us the
clear picture about the Number of Deposits and the Total Dollar amount.
NACHA Process Choose the NACHA process that was run with the table above.
Archiver
Now, as the Payments are about to happen through the Direct Deposits, which is Bank's headache now, we
will proceed to the next action item, Payroll Archive. This Process generates a pay slip kind of report. This is
an optional step for most of the localizations.
276 | P a g e
Here, we must have the start check number with us. We can get that from the Printer. All we need is the
number of the first check leaf which is going to be printed.
We will have to run this Process twice, once for the Normal Payroll check, and again for the Third party
Garnishments.
Deposit Advice
The Deposit Advice actually prints the Pay slips that we might send to the Employees. This Process goes
through the Statements of Earning and gets us the details of the Earning and Deductions in a more
understandable format as a report.
Costing
As Part of this process, Payroll Engine divides the costs according to the Cost Allocation Flex Field, keeping
Overrides in consideration. This Process assures that the cost paid for labour is accurately being captured.
If no Costing Information is found on any particular entry, the cost goes to the Suspense Account.
Transfer to GL
This Process is the one that takes care of the migration of cost to the General Ledgers. The Payroll Costs
are migrated to the General Ledger and then it gets added against the actual financial accounts.
277 | P a g e
Other Standard Reports
There are a few other Standard Reports that can also be processed as part of the Oracle Payroll for
reporting purposes. Here is a list of few popular ones; however there are a lot of seeded reports that can
be used. We can also create our own reports and use them for analysis, based on the requirements posted
by our Payroll administration team.
Payroll Activity Report: This report is run just after the Payroll Process and before the Prepayments. With
this report we can view the status of the Payroll with details like, how many employees are processed, what
is the total Earnings, Total Deductions, Total Taxes etc. It can be processed with the following details:
278 | P a g e
Costing Detail Report: This is run after the Transfer to GL process is complete for all Payrolls as of that
date. This gives us a detailed picture of the accounts and the respective Labour costs for all Payrolls run as
of the given dates.
Costing Summary Report: This is run after the Transfer to GL process is complete for all Payrolls as of
that date. This is more or less similar to the Costing Detail report, however with a summary of data, not
with details.
Payroll Register Report: This is run after the Transfer to GL process is complete for all Payrolls as of that
date. This gives us details on the entire payroll process, starting from prepayments to costing for all
Payrolls run as of the given date.
279 | P a g e
Name of the Process: Payroll Register Report
▪ Beginning Date Paid: Last Day of Pay Period (i.e. 06-MAR-2010)
Payment Register Report: This is run after the Transfer to GL process is complete for all Payrolls as of
that date. This gives us details on the Payments made to the Employees as part of Labour cost for all
Payrolls run as of the given date.
280 | P a g e
▪ Summary Report: No
▪ All the other parameters should be NULL.
Third Party Payment Register Report: This is more or less the same as the Payment Register Report.
However this tracks the Third Party Payments only.
US Gross to Net Summary: With this report, we can see the summation of Salary information of the
employees with Gross Earnings, Net Earnings and deductions.
281 | P a g e
▪ Sort Option One: NULL
▪ Sort Option Two: NULL
▪ Sort Option Three: NULL
▪ Template: US Gross to Net Summary (PDF)
282 | P a g e
(Figure 5.25 – Payroll Process Results)
283 | P a g e
Figure 26 Assignment Process Results
284 | P a g e