Sei sulla pagina 1di 181

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

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, 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

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:

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.

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.

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.

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.

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


 Oracle Applications Object Library
 Oracle Applications Utilities
 Oracle Common Modules
 Oracle Workflow
 Oracle Alert
 Oracle Applications Framework
 Oracle XML Publisher

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.

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

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.

(Figure 1.3 – Application Server)

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.

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 core technology files and directories
 application environment files <*.env / *.cmd>
 consolidated environment files <*.env / *.cmd>

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:

· Bin: Stores the Control files and data Load files.

· Data: Stores the data files used in the product.

· Forms: Stores the fmb files.

· Java: stores the Java class files and XML files.

· Patch: Holds the different downloaded patches.

· Publisher: Stores the XML Publisher template files

· Reports: Stores the Oracle Report Files.

· SQL: Stores all the database objects related to the Product.


COMN_TOP: This directory holds the technology layer products. The ones that are used across
products (e.g. FND, WF)

ORACLE_HOME: Holds application technology stack tools components in application server.

JAVA_HOME: Holds application technology stacks Java components in application server.

Using Oracle E-Biz


Before getting into Oracle applications, we must know how to use Oracle applications. So let’s discuss a
bit about that. We will start with the different GUIs (Graphical User Interfaces) available with the applicati

GUI is commonly known as the Graphical User Interface. These are the screens that open up on the us
window, so that a user can enter, query and update data with ease. There are two types of GUIs availab
Oracle E-Biz R12.

 Form Based
 HTML Based

Form Based GUI

The Forms based applications are the most widely used GUI in E-Biz. These are developed by the Forms Bu
in Developer 2000 (D2K) or Developer suite; and are launched to the client machine by Java using the
files.

(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
screen that opens up, when we open any responsibility. This is called the navigator. There are two dis
sections.

 Menu Functions (On the left side of the figure 1.4)


 Top Ten List

Menu Functions:

The Menu function section opens up the different menus attached to the responsibility. When we double
on the menu, it either opens another sub menu or simply calls a function, which in turn opens up a form
web based GUI. There are two ways to open a menu, either double click on it, or single click it and then
on the Open Button on the fourth co-ordinate. The ‘+’ sign tells us, that the menu has one or more men
functions attached to it. If we click on the ‘+‘sign, it expands with the sub menus/ functions, and the sig
then changed to ‘-’; clicking on which causes the menu to collapse. The text on the top, tells the Responsib
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
us navigate the screen better.

 The ‘+’ sign expands the highlighted menu.


 The ‘-’ sign collapses the menu.
 The third sign ‘+ ->’ expands the entire menu, including all submenus in it
 The ‘++’ sign expands all the menus in the screen to the granular level, expanding all menus
submenus
 The ‘--’ sign collapses all the menus and submenus

Top Ten List:

The Top Ten lists are the most frequently used screens, put on the other side for ease of access, because
do not have to go on finding the function from the menus. However system does not determine what to pu
the list. The list will be determined by the user, and system remembers the list and brings it up once s
user logs in again. The two arrow buttons on the middle of the navigator are the ones that are used to mo
function to the top ten lists and vice versa. As the name suggests, we can have ten functions listed out th

Another amazing thing about top ten list is the shortcut, once the function is added to the list, it gets ad
with a number as a Prefix. Next time we wish to open the function, we will just key that number from
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.

(Figure 1.5 – The Toolbar)

A New Creates a New Record


B Find Opens the find record window
C Navigator Shows the navigator, putting all other active windows in the back

D Save Saves the record


E Next Step Takes us to the next step in the process
F Switch Opens up a window listing all available responsibilities for the use
Responsibility that a user can switch to.
G Print Prints the current page
H Close Closes all windows in the navigator
I Cut Cuts the selection
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 Profi
options set for this.

back to

The Menu in the application is almost the same as we have in Toolbar, and are pretty self explanatory. So
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
entire form grey. Then we can enter the string that we are looking for in the grey fields and press CTRL
11. The system then tries finding out a match for the query we have entered and puts it on to the form.
example, if the query returns 5 records, the form will initially show up the first record it had fetched, and
we can navigate through the other four by using the up and down arrow keys.

If we know just a portion of the string and not the whole String we want to query for, then we can do a pat
matching using a Wild Card Character. For an Example, we want to look for an employee name; and al
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
match the requirement. That is called Pattern Matching mechanism. The ‘%’ is called a wild card charac
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 data
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 %
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
one character after MOH, and the result is ‘MOHA’; all other strings will not be pulled because either the st
does not match, or they have more than one characters after MOH.

There is another way to query the database. We can just use the Find window. Almost all forms have a
window associated with it. We can open the window just by clicking the Find button from the toolbar. The
button opens up a window with the prompt of data fields that are unique to the records. We can key in
strings with the wild card characters if we wish to, and then press find to fetch the records.

Let’s discuss the keyboard shortcuts that are available in forms.

CTRL + K Open Opens a window with all available shortcuts.


shortcuts
CTRL + L List of Values Opens a window with all available values.

If pressed on navigator, opens up all possible Functions to


choose from.
F7 Clear Block Clears the Entire Block.
F5 Clear Field Clears the field.
F8 Clear Form Clears the entire form.
F11 Query mode Enters in the query mode.
CTRL + Execute Queries based on the data.
F11 Query
F12 Count Counts the number of records to be returned by the query
CTRL + U Update Updates the Record.
CTRL + P Print Prints the page.
CTRL + H Help Opens help window.
Tab Next Field Takes us to the next field.
Down Next row Takes us to the next record.
Up Previous Row Takes us to the Previous row.
Shift + Show Error Shows the error occurred in the form.
CTRL + E
Shift + F5 Duplicate Copies the field with the value available from the previous
Field record.
Shift + F6 Duplicate Copies the entire record, as it is in the Previous record.
Record
Shift + Next Block Moves the cursor to next Block
page down

We have discussed the most widely used keyboard shortcuts here. However if we want to learn more short
then we need to use one, (CTRL + K) on the navigator.

HTML Based GUI

HTML based GUIs, as the name suggests, are pages popped up on client window in HTML. See Figure 1
HTML Based GUI. The pages are usually OAF pages / Java pages that are translated onto HTML at the des
tier. The query standards and the basics remain the same; however there will be no application specific m
toolbar in it. The HTML pages are executed on a web browser, like the Forms GUI. The HTML based page
R12 are made mainly for the end user interactions, as the end user might not be able to browse through
Forms. Hence the web based GUI are very self explanatory. The only other difference that we might find f
the Forms GUI is there will be buttons and small icons that represent different actions. The buttons, and
icons, as shown here, have text labels that help the users to understand the underlying actions. Self Ser
Human resource is a complete web based GUI module that helps the end users to enter and maintain, data
their day to day activities.

Using Self Service

Self service Human resource or SSHR is a set of web based GUI, specially created for the end users. Users
employees, applicants, ex-applicants need not have to log in to forms and browse for data, they can simply
in to the SSHR pages and query and update data from there. There are two major reasons to do so, firstly
end user need not know the flow in which Oracle works or the basics of Forms GUI; secondly the user need
have to be exposed to the enormous data we store in the applications. All it needs is to see data related t
With these things in mind, Oracle gives the users a wonderful Web Based GUI Interface called Self Ser
Human Resource.

Although we can do wonders using SSHR, and it is a complete module by itself, we are not going to discuss
techno-functional aspects of SSHR; because of the vastness of the subject matter. However what we certa
plan to do is to discuss, how to use SSHR with respect to the different modules and application utilities we h
learnt so far.

As we already discussed, it is a module by itself and there is a different responsibility to be attached to


user to be able to use it. Actually two:

 Employee Self Service


 Manager Self Service

The first one is used for the Employees, where they can enter their personal details, manage
competencies, self appraisals etc. and the second one is for managers, where they can manage t
subordinates, Approve applications, Conduct appraisals etc.

If we look at the key functionality, we can divide it in three distinct types:

 1. People Management
 2. Talent Management
 3. Compensation and Benefits Management

People Management

These are functionalities that enable the user to maintain their personal, professional and employment det

Maintaining personal details will include functionality like:

 · Store the Personal details


 · Managing Addresses and phone numbers
 · Managing Contacts, dependents and beneficiaries
 · Managing Emergency Contacts
 · Managing Documents of Records to store the Electronic documents

For Professional details:

 · Store details on Educational Qualifications and Resume


 · Manage competencies
 · Manage work preferences

And lastly for employment details, the functionalities are:

 · Store data in EIT and SITs


 · Manage the assignments of subordinates.
 · Manage Locations and supervisors of directs.
 · Manage the pay rates for Contingent workers and other employees.
 · Manage the work schedule and other employment information of the subordinates
 · Terminate Employees and End the placements for contingent worker

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


 · Managers can complete employee appraisals, and submit reviews
 · Users can create and manage events and bookings like presentations, trainings etc.
 · Managers can enrol 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 futu
and identify the possible successors for the positions.

Compensation and Benefits Management

These set of functionality enable the users to do the following:

 · Users can opt for Online or paper pay slips.


 · Users can view their online pay slips.
 · Users can set up their preferred payment methods, along with the bank account details if
necessary.
 · Users can see their absences, apply for absences.
 · Managers can approve/ reject absences.
 · Users can manage their Benefits online.

These are most widely used functionalities that a user or a Manager can do with SSHR. However as we
discussed earlier, the possibilities are huge. It is advised to log into SSHR and start exploring the usage
learn more about the module. Using SSHR should not be a problem, as it is a user friendly GUI for end us
System Administration
Introduction

Every system has administrators, the professional / team of professionals that manage the syst
users and ensure the apposite functionality of the application. Oracle E-Biz is no different. We will not dis
the core System administration tasks as part of this section, because it is a role by itself, and a comple
different archetype with respect to the job responsibilities. However we are going to look at the diffe
concepts and screens those as useful from a Techno-functional point of view.

Chapter Overview

This chapter talks about:

 Users, Roles and Responsibilities


 Concepts of Functions, Menus and Request Groups
 Concurrent programs and their usages

Learning Outcomes

After going through this Chapter, you should be able to:

 Understand difference between user and roles


 Understand the concept of responsibility
 Usage of menu and functions
 Define concurrent programs and attach them to Request Groups
 Run concurrent programs

The Dictionary

Users

A user, as the name suggests in an entity that logs in to the system, and uses the system resources for t
requirement. So who are the users?

 The HR person, the person who manages employee data and other HR related processes.
 The employees working in the firm, as they will log in for their daily needs, like seeing their pay sli
updating their information in system, Choosing their benefit enrollments, entering time onto the
system and entering appraisals are to name a few examples.
 The External Vendors, like trainers, recruiting agencies etc, who use our system to put data and
access the same.

These examples are just based on HR systems. If we look at other modules as well, there will be a hun
different types of users, like the Procurement team users, the financial users etc.

Role

Continuing with the set of users that we have discussed above, every user is entitled to a distinct group o
tasks, he does. For an example, a HR user manages the HR related data of employees of an Organization.
be little specific, a Payroll user, who is a type of HR user, manages the Payroll data, a talent development
user in HR, creates and manages the training classes and administers the enrolments. So every type of us
has certain tasks to do, in the application. That set of tasks is known as a role. Hence a role is a set of tas
combined together that is assigned to one or more than one user(s).

Responsibility

A responsibility controls the accesses and the transactional/ reporting authority to a user. To be specific, a
responsibility defines the set of screens that a user with that particular responsibility can go to, the report
he can run, the approvals he can make etc. For an example, if we create a responsibility called Payroll Use
we can club the functionalities, reports and the tasks it can access. Then once a user is attached to that
particular responsibility he will be able to access and use those functionalities. However another user with
some other responsibility will not be able to use the functionalities that are not attached to his responsibil

Talking about functionalities, what are the different types of functionalities that are offered by or
application? The functionality count is enormous, but if we are looking at the types, those will be:

 A screen, either a Form or a web page that allows us to navigate through the data, and process
certain tasks. These are called Functions.
 A Report / Concurrent process.

So every function opens up a Form / webpage that can be used to perform a certain task / view some d
We will learn about the Reports in detail, later in this book.

Menu
Let’s make sure we understand the different bits we learnt so far. There are Functions that will let a user
certain task. And there are responsibilities that control the access of tasks/ functions. Now, let’s see how,
we control the access to the tasks?

Here comes the Concept of Menus. A menu is a combination of functions. Once a menu is defined, we atta
that to the Responsibility. The Responsibility is then attached to the users. As the user logs in, he will see
only those functions that are attached to the menu, and eventually to the responsibility on which he is
attached to.

Concurrent Requests

Let’s imagine a case where a user wants a report of all the employees who have joined in the month of
January last year, he might have to run some program to query the database and generate the output for
you. The developer can create the program using a programming language, however in order to make it
available to the user, we must have an interface where he goes and enters the required parameters and r
the program. That interface is known as a concurrent request.

In a live instance of Oracle E-Biz, a lot of records get created, updated and logged every second. Which
means the system is busy all the time. To reduce the load, Concurrent requests are run in a dedicated ser
which runs parallel to the live database server, without disrupting the heavy load on the database server.
concurrent requests also give a mechanism to schedule the programs at a given intervals, which helps in
checking / reporting things or cleaning up garbage data periodically.

Request Set

Request set as the name suggests is a group of concurrent requests clubbed together that can be run one
after another. For an example, if a user wants to run a program, load the output on to a remote server us
Unix Script and once both the programs complete successfully, he wants another program to send the log
the user’s email address. So this needs three different concurrent requests, one to run the program, one t
load the output and the last one to mail it to the user.

If the user wants he can run it one after another, however he can also create a request set where he defin
the stages to be the three different programs and then when he runs the request set, the system will exec
one after another in order in which they are staged.

Request Group

The concept of request group is exactly similar to that of Menus. Where Menu is a combination of Function
and Request group is a combination of Requests/ Request sets. Like menus, request groups are attached
the responsibility that limits the access to the various requests available for the user.
Profile Option

As we know, Oracle E-Biz is highly scalable, in order to support a wide variety of businesses. With each
implementation, there will be some preferences that are needed to be set, so that the system will translat
the business need from the preference. Those preferences are known as Profile options. They can be set b
the System administrator, and the application refers to the preference values to take decisions.

Let’s take an example, in a firm, how do they want the person names to be displayed in the forms and we
The application would like to know this in order to show the name in that manner. We can just set the pro
option “HR:Display Person Name” as “Full name”; that tells the system to show the name as full name.
Similarly, if we wish to count the Unpaid Absences of Employees then set the “BEN: Count Unpaid Absenc
as Yes.

Configuration

One must follow some set of steps, in order to create a component / object
in application. Those steps are known as the Configuration steps. In this
section, we will discuss about the Configuration steps required for creating
System Administration Components.

Creating a Function

 Responsibility: System Administrator


 Navigation: Application -> Function

(Figure 2.1 – Defining Functions)

Function A unique name for the function.


User Function This name appears on the forms and web. This must be
Name unique as well.
Description Any Description. It’s a free text

Properties Tab
Type The type of the function, we will discuss more about this
later in this chapter
Maintenance This attribute determines if the menu is supported, when
Mode Support the application runs in the Maintenance mode. Unless it
is very useful or a System Administrator types function,
we should use the option ‘NONE’.
Context Specifies whether the function depends on any context or
Dependency not. If it does, then a user must have the context set in
order to use this menu.
Form Tab
Form / If it‘s a form function, we must add the form and the
Application application name here.
Parameters The parameters to the Form function must be passed
here.

Parameters should be separated by space.


Web HTML tab
HTML Call This is for OAF pages type function. This can either be a
static page or a Procedure. For Mobile applications, we
can use a java class name to call the function.
Web Host Tab

Host Name This is used in OAF pages. The URL is entered here.
Agent Name The web agent determines the database to be used while
calling the function.
Icon The icon to be used in the function.
Secured This is used only when the function uses Oracle workflow.
If it is checked, then the system allows the notification
recipients to respond back using email.
Encrypted This functionality makes sure that the user cannot tamper
Parameters the browser web access to use functionalities, other than
going through the defined process. This flag makes the
web addresses encrypted, so altering it, does not help.

Creating a Menu

 Responsibility: System Administrator


 Navigation: Application -> Menu
(Figure 2.2 – Defining Menus)

Menu Name of the Menu; user does not see this menu name.
View Tree Shows the menu in a tree structure, only after it is
defined.
User Menu The user name of the menu.
Name
Menu Type Choose one of these, based on requirement:

Standard: If the menu is going to be used in navigation


forms.

Tab: If the menu will be used in SSHR as tabs.

Security: If the menu is going to be used for data


security and to aggregate functions, This menu will not
be available in Navigator Forms.
Description Any Description. It’s a free text.
Sequence This is a number that will be used by the system to sort
the menu. So one menu / function with higher sequence
appears after the ones in Lower sequence. It is better to
use a sequence of 10, 20, 30... rather 1, 2, 3... Because
it helps us to insert any new menu, in between two, if
needed; without renumbering the existing sequence.
Prompt The Prompt that will appear on the navigator / web. It is
always helpful to use prompt names with unique first
letter, so that that alphabet can be used as a hot key for
Key Board Shortcut.
Submenu This lists other menus, so that we can create a menu
inside a menu. If user chooses this submenu, it opens
the tree for the selected menu, for more options.
Function Attach the form function here. The one that will be
called if the menu sequence is selected.
Description Any Description. It’s a free text. This text appears at the
top of the navigation window.
Grant This enables the user to use the menu. If this is not
checked the menu is not available for use, unless some
extra set of data security is applied.

back to top

Creating a Request Group

A request group, as explained earlier, is a group of requests combined


together. We attach the group to the responsibilities. Once attached a user
can execute only those requests that are part of the request group attached
to the responsibility in which the user has logged in. See Figure 2.3 –
Defining Request Sets.

 Responsibility: System Administrator


 Navigation: Security -> Responsibility -> Request

(Figure 2.3 – Defining Request Groups)

Group Name of the request group.


Application The application that owns the request group.
Code The request code identifies the request group uniquely.
Description Description of the request.
Type Choose the type as one of these:

Program: Include a concurrent Program.

Set: Include a request set.

Application: Include all the requests owned by the


application.

Stage Function: Include a Staging / Loader function.


Name Name of the object, based on the type. For an example,
If the selected type is program, include the program
name.
Request The application to which the object belongs to; auto
Application populated.
Request The Description of the object; auto populated.
Description

Creating a Responsibility

Now it’s time for a new responsibility. See Figure 2.4 – Defining
Responsibilities.

 Responsibility: System Administrator


 Navigation: Security -> Responsibility -> Define

(Figure 2.4 – Defining Responsibilities)

Name Name of the Responsibility


Application Name of the Application that will own the responsibility.
Key This is like an identifier. This is unique per application.
Description Any Description. It’s a free text.
Effective Dates The dates within which the Responsibility will be
available.
Available From The type of navigator. A responsibility can be available
through one type of navigator only. Use Mobile, if we are
using Mobile apps with .mobi sites, and Oracle
Applications for all others.
Data Group Oracle Apps framework does not support data groups
anymore. Leave blank, or use Standard.
Menu The Menu attached to the responsibility.
Request Group The request group attached to the responsibility.
Menu Exclusions This is again for backward compatibility. This used to be
used to exclude specific functions or menu from a
responsibility. However the current day approach is to
create a new menu if needed, rather excluding from
here. Add the type menu / function and add the name of
the object.

back to top

Creating a User

To create a user, we need to login to Oracle applications, and we must have


the System Administrator Responsibility to do so. We should contact the
system administrators / Installation analysts to get one user created first, so
that we can log in and create other users.

 Responsibility: System Administrator


 Navigation: Security -> User -> Define

(Figure 2.5 – Defining Users)

User Name The user name. Should be unique.


Password Should be within 5 to 30 characters long; and must
have a number. Password cannot have username in it,
and must not have repeating characters.

All Characters allowed; however it is better to use


alphanumeric passwords, as they are more secure.

This is the initial password. Once entered, system


prompts us to enter the password again for verification.

Once user logs in with the new password, he is asked


to change the password right there with his initial log
in.
Description Any Description. It’s a free text.
Status This is updated by the system, based on its validation.
If the status is not active, the user can not log in. The
three consecutive failed attempts, invalid passwords at
the Definition etc make the status Invalid.
Person/ Customer/ The Person/ Customer / Supplier, who uses this user.
Supplier It’s optional. The list of values is populated from
PER_ALL_PEOPLE_F.
E-Mail The email id of the user.
Fax The Fax Number of the user.
Password Days: The maximum number of days within which the
Expiration password must change.

Like, with in every 50 days, the user must change


his/her password.

Accesses: The maximum possible logons to the


application between the password changes.

Like, with in every 50 log on, the user must change


his/her password.
Effective Dates The start and end date of the user’s validity.
Responsibilities Select the responsibilities we want this user to have,
enter a security group if any, and the dates as well.
Indirect A user may inherit an indirect responsibility through
Responsibilities membership of a group to which the responsibility has
been assigned.
Securing In few cases, we would like the user to see only filtered
Attributes data. The filtration can be done here. Like, If we attach
Earliest date as ’01-JAN-2010’; then the user once logs
in will see the rows with data no earlier than that date.
For this we will choose the attribute as “Earliest Date”
and Value as ’01-JAN-2010’.

This filtration only applies to HTML based pages, not to


forms.

Monitoring a User
There will be instances in which we will need to monitor a specific set of users,
and see the current activities. To do so, one can use the monitor user
functionality given to the System administrator. See Figure 2.6 – Monitoring
Users.

 Responsibility: System Administrator


 Navigation: Security -> User -> Monitor

(Figure 2.6 – Monitoring Users)

Steps:

 Query for the user, and it will list the current usage of the application of
the user.
 The Responsibility and form section tells us about the application and
the forms being used.
 The Time tells the length of the time, the user had been in that form /
responsibility
 The Oracle Process textbox tells us the Process id, of the Oracle process
being executed by the user.

There will be instances in which we will need to monitor a specific set of


users, and see the current activities. To do so, one can use the monitor user
functionality given to the System administrator. See Figure 1.17 –
Monitoring Users.

back to top

Administrating Profile Options

As discussed earlier, Profile options are the preferences that the system uses
to make decisions. So these options direct the way our application behaves.
Oracle E-Biz lists a set of Profile options that we need to define for each
module to work in a certain way.

There are six different levels at which we can attach Profile Options.
1. Site
2. Application
3. Responsibility
4. Server
5. Organization
6. User

The hierarchy follows the same order. Like the Responsibility level overrides
the option value given in the site level, and the Organization level overrides
the option value at the Responsibility level. The user level, being the lowest
overrides them all.

(Figure 2.7 – Profile Options)

Let’s see how to find and update a profile option. See Figure 1.8 – Finding
Profile Options.

 Responsibility: System Administrator


 Navigation: Profile -> System

(Figure 2.8 – Finding Profile Options)

Steps:

 Check the level at which we want to see the Option value.


 Unless the level is Site, enter the name of the Object. Like if application
is checked, enter the name of the application.
 If we wish to see the values of Options with blank values in the particular
level, check the “Profile with No values” flag.
 Select the name of the profile, and press find.
 Once the option value is open, we can go and update the option values
if needed.
 We can also set few profile options in Functional Administrator
responsibility (Functional Administrator -> Core Services -> Profiles).

Creating Request Sets

A request set is a set of concurrent requests pooled together to run one after
another. Let’s discuss about the steps involved in creating a request set.

 Responsibility: System Administrator


 Navigation: Concurrent -> Set

(Figure 2.9 – Defining Request Sets)

Steps:

Set The name of the Request set


Set Code The request set code. This identifies the request set
uniquely
Application The application that owns this request set
Description The description, free text
Owner User who owns the request set
Active Dates The request set is valid and can be used with in the
given dates
Print Together In case there are more than one requests that have
print options enabled to print the output, checking
this box ensures the system will wait until the last
request is completed before starting to print
Allow In some cases we might not want two different
Incompatibility programs to be run together. For an example we do
not want Program A to run when Program B is in
running state. Then we can make Program A
incompatible for Program B.

However the rules of incompatibility apply to single


concurrent requests only.

Check this box, in case you want the incompatibility


rules to be applied on related Request sets as well.
Define Stages
Sequence The serial number / stage number of the Program.
The program with lowest serial number will be
executed first
Stage The name of the single concurrent request
Requests button This window should show the related single
concurrent request that is attached to the selected
stage
Link Stages
Sequence The serial number of the program
Name Name of the single concurrent request
Success This should list the program to be invoked in case the
current request completes successfully.
Warning Similarly, what should be invoked if the current
request completes with warning
Error The program which will be invoked in case the current
one errors

Concurrent Requests
The concurrent requests are the requests that can run in the system without
impacting the ongoing transactions. To elaborate, if a system is live, then a
lot of users might be using it at one point of time, and in that period if we wish
to run a report or run a process, then we can do it with Concurrent requests
without impacting the performance of the system. Again, we can submit the
request and keep on working on the regular application tasks. The request will
automatically get completed, and we could check the results anytime later.

We can either submit a concurrent request or a set of requests combined


together, known as the request sets. Let’s see how.

Submitting a New Request

A request set is a set of concurrent requests pooled together to run one after
another. Let’s discuss about the steps involved in creating a request set.

 Navigation: View (menu) -> Request (menu)

(Figure 2.10 – Submitting New Requests)

Steps:

 It opens up the Find Request screen. See Figure 2.10 – Submitting New
Requests.
 Enter Submit a request to create a new Request
 The system asks, if we wish to submit a single request or a request set.
Choose single request
 It opens up the submit request screen

(Figure 2.11 – Submit Requests)

 From the List of Values choose the name of the request, and press tab.
See Figure 2.11 – Submit Requests.
 It should open up all the mandatory and optional Parameters that are
needed for the request to run.
 The language of the output can be changed by clicking on the language
settings.
 The request can be scheduled for a later point in time. To do so, go to
the Schedule button, and select the schedule; else choose as soon as
possible
 If we wish to print or email or fax the output, put the required
information in the Delivery options button
 Press Submit. Once submitted, the system assigns a REQUEST_ID for
the request and the Requests window opens.

(Figure 2.12 – View Request Status)

 The requests window shows all request submitted by us / our group


based on the settings. See Figure 2.12 – View Request Status.
 There are four different phases of a request
o Pending: The request is either waiting to be picked up based on
priority / waiting for another request to be processed/ scheduled
for later.
o Running: The request is running.
o Completed: The Request is complete.
o Inactive: The Request is not prioritized yet; waiting for the
Concurrent manager

 Based on the phases, there are different statuses that a request can
have:

Pending Normal, Scheduled, Waiting, Stand By

Running Normal, Terminating, Paused, Resuming

Completed Normal, Cancelled, Terminated, Error, Warning

Inactive No Manager, Disabled, On Hold


 For Child requests, the parent of the request shows the request that in
turn created this child request.
 The Hold Request Button pauses the processing of the request and
changes the Phase to Inactive – On Hold.
 Cancel request, cancels the reques
 View Details button shows the submitted parameters with all the
preferences on output and language as read only.
 Diagnostics button opens up a new window detailing the status of the
request.
 View output button opens up a new window with the Output in it.
 View Log shows the log file generated by the Process
 Only the Parent requests have the log and the output; that to only after
the request is completed
 While browsing through the log and output, we can either use the page
numbers to navigate or simply go to Tools menu -> Copy File to copy
the entire output/ log to an Internet Explorer or a Text file.

back to top

Finding a Request

Once the request is submitted, the request status and the output can be
checked anytime. Let’s see how to find a request. See Figure 2.13 – Find
Requests.

Navigation: View (menu) -> Request (menu)

(Figure 2.13 – Find Requests)

 Once the Find request window is open, we have the following Options.
o Search all our completed requests by using ‘My Completed
Requests’
o Search all our running requests by using ‘My Requests in Progress’
o Search all our request irrespective of any criteria by using ‘All my
Requests’
o Search requests by
 Request Id
 Concurrent Program name
 Submitted / completed date
 Current status or phase
 Request submitted by
 Enter the number of days we want to look for. It queries back till that
many number of days and shows the requests.
 Press Find to find the requests based on the criteria added.

Submitting a Request Set

(Figure 2.14 – Submitting Request Sets)

 Once we click on ‘Submit New Request’, we can choose Request Set this
time, rather selecting the Single request.
 This opens up a new screen for request sets. See Figure 2.14 –
Submitting Request Sets.
 Enter the name of the request set and press tab
 Then it will list the Programs listed under the request set.
 Start entering the Parameters for the program.
 If we wish to print or fax or mail the output, update the Delivery Options.
 Update the schedule in needed.
 Press submit
 Once submitted the find request window opens with the submitted
requests in there.

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.

Do we simply write checks? What exactly do we do in the entire payroll process?

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.

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
o Capturing salary
o Capturing time cards
o Running BEE process
 Processing
o PYU_GEN Process
o Retry and Rollback
o Quick pays
 Post-Processing
o Running Payroll Registers
o Tax remittance
o Gross to Net Calculation
o Determining Payment Methods
o Check writers / BACS / NACHA/ ACS / Garnishments / Manual Payments
o Payment Register
o Retro-Pay
o Reversals
o Advance Payments
o Archivers
o Costing
o 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


 Components of payroll: Earnings, Deductions, Taxes, Elements, Input values, Balances
 Different Payment Methods and Payment Frequencies
 Setting up payroll for an Enterprise
 Pre-Processing Steps: Pre-Payments to Transfer to GL
 Payroll run validation and correction methodologies
 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
 Set up Oracle payroll for an Enterprise
 Process the payroll for an Enterprise
 Process and validate the payroll processes and supporting reports
 Run a retro pay

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.

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.

In a real world, Elements serve a lot of purposes. Like,

 Earnings and Deductions: Salary, Allowances, Bonus, Loans


 Taxes: State taxes, Country level taxes
 Benefits: Vacations, Sick pays, Paid Absences, Pension plans, Employee Stock options,
Insurance premiums / rates
 Supplementary: Mobile Phones, Computers, Uniforms provided by the company,
Expense reimbursements
 Information: Leave adjustments, Loan Amount, Accruals etc.

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.

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.

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?


 How much Bonus did we pay in 3rd Quarter of 2010?
 How much Bonus did Jean receive in her entire length of service?

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.

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
 Direct Deposits (Bank Account credits)
 Garnishments (Third Party Payments; for an example, a court order to pay $200 every
month to someone / charity)
 Cash, although paying by cash is not a very standard practice, few of the countries
allow paying your employees by cash.
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.

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.

Here Joe uses three different payment methods.

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.

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

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.

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

Setting KFFs

There is a swim lane procedure for the configuration of Oracle Payroll, and w are going to follow the same
will start with defining the KFFs.

Setting up Mandatory KFFs

There are two very important Key Flex Fields for a successful, up and running system with Oracle Payroll. T
are Cost Allocation KFF and People Group KFF. While cost allocation KFF deals with the way the costin
managed, the people group KFF provides an additional set of columns to identify different population in Or
HRMS.
Cost allocation KFF
As we had discussed, the Cost allocation Flex Field defines a structure to the various accounts under w
costing can be incurred. This KFF runs in parallel with the Accounting flex field in Oracle General Ledger. Cos
is important in order to credit the appropriate accounts based on the labour costs paid as part of pay chec

Responsibility: Application Developer

Navigation: Flex Field -> Key -> Segments

Steps:

 Click on Title.
 Query for the string "Cost Allocation Flex field".
 Define a new structure with the following data. See Figure 5.1 – Cost Allocation KFF

Figure 1 Cost Allocation KFF

(Figure 5.1 – Cost Allocation KFF)

Application Payroll.
Flex Field Title Cost Allocation Flex field.
Code A user defined name.
Title This appears as the window name in Segments. A user defined
name.
Description Any description. Free Text.
View name It creates a database view with the name specified here.
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. Un-checking this
is as good as end dating the record.
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.

To define the segments, we will have to click on the segments button. However, let's first finalize the le
where the cost can be added. We will have to decide the valid levels from the structure of our enterprise
case we are implementing the ERP for our client, we need to discuss these requirements in details. Usually
levels in which the costs are allocated are: Company, Cost centre, account Code, Project and Product. Howe
if we have the GL implemented for our client, it’s advised to create the segments in parallel with our accoun
flex field.

OK, once we know the levels, let's configure them. See Figure 5.2 – Cost Allocation Segments.
Figure 2 Cost Allocation Segments

(Figure 5.2 – Cost Allocation Segments)

Number The sequence number that decides the precedence in which the
segments are going to appear.
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
segment and press open. See Figure 5.3 – Cost Allocation Segment Description.

Figure 3 Cost Allocation Segment Description


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

Sometimes we would like to add an extra set of eyes to the segments, where we want the segment valu
be dependent on another. The best example in this case is the start date and the end date, where we’d alw
want the start date to be smaller than the end date, which logically makes sense, as we cannot end a re
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
segment with the low range. To solve the dates issue here, we can define the end date to be in High and
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
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 K
in the core HR and AOL section? OK here it is; Qualifiers define the segments that can be updated at one g
level. Talking about the Cost Allocation KFF, we have the Following places where a segment can be update

 Payroll
 Element link
 Organization
 Assignment
 Element Entries

In these levels, the cost can be attained or assigned, with precedence from payroll to element entries
increasing order. So it means, the cost associated to an element entry has the highest precedence, hen
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 ab
given levels. For an example, if we have an Overtime element attached to an employee's record. The cos
is allocated to the HR department at the payroll (highest) level. On Monday, the employee worked for 4 e
hours to support the Admin Department. Now, the account Department wants the cost for those 4 hours t
added to the Admin department, not to the Payroll department. We can then come down to the Element l
(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
updated at the element links level. If we won’t make the project code segment available at the element
level, we will have to choose any other segment code to override the cost. So we have the autonomy to en
or disable any particular segment at any level. This is done through qualifiers.

 Click on the qualifiers tab on any segment.


 Choose the places where we want the segment to be visible.
 Close the window and repeat the same for the rest of the segments.

People Group KFF


The people group flex field enables us to create and track another set of criteria for the employees. Altho
Oracle HRMS gives us a lot of such criteria types, like job, position, grades, locations but this one is ano
grouping that can be used for anything like, a stock option or may be a union or sometime just leave accru
HRMS also has things like, Benefit Group and Bargaining units to group employees. This is a mandatory KF
Payroll implementation. In case our Enterprise does not need an additional grouping, we can still crea
dummy one for the future usage.

One of the most important reasons to have People Groups is the element Link. In element links, there
various criteria based on which we can set eligibility of an employee to have the element attached to
However the eligibility options are limited. In a case where the user cannot separate the employees using
given eligibility options, he always has the liberty to use people groups. We will discuss more about the us
of people Groups while discussing Element links.

Responsibility: Application Developer

Navigation: Flex Field -> Key -> Segments

Steps:

 Click on Title
 Query for the string "People Group Flex field"
 Define a new structure with the following data. See Figure 5.4 – People Group Segments.
Figure 4 People Group Segments

(Figure 5.4 – People Group Segments)

Application Payroll.
Flex Field Title People Group Flex field.
Code A user defined name.
Title This appears as the window name in Segments. A user defined
name.
Description Just a description.
View name It creates a database view with the name specified here.
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, on to the segments:

Number The sequence number that decides the precedence in which the
segments are going to appear.
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 Enables the segment to be displayed.
Box
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 will learn about it in future.

Now, once the segments are added, click on the first one and press open to get started with the value se
any.

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.

So this completes our KFF set up.

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


 The element must be a recurring one
 The assignment must be eligible for the link, based on the criteria defined on the link

Manual Entries
There are cases where the payroll users key in entry by themselves. This type of entry is
known as the manual entries.

Responsibility: HRMS Manager

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.
Figure 21 Element Entries

(Figure 5.21 – Element Entries)

Period The Payroll period for which element is being displayed.


Classification This is filter to show elements related to the specified classification only
Processing type This option filters out the processing type of the elements like recurring,
Element Name This shows the name of element. In case a new element entry is
required, a new row can be added a with the element name. However, if
the element is already listed for the pay period, it does not appear on
the list again, unless multiple entries are allowed.
Recurring Type Auto populated based on the type of element chosen.
Costing This is the costing level attached to element entries. This is the lowest
level of costing, and holds the highest priority.
Additional If the element is a special input element, and it uses additional input
values then this box is checked to avail the additional input values.
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

Batch Element Entries

There is a feature in Oracle payroll, with which one can directly fill in element entries for a
number of assignments / elements with one single interface. It also helps in validating the
data being entered.

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.

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.

Responsibility: HRMS Manager

Navigation: Mass Information Exchange: MIX -> Batch element entry

Steps: Create a new record with these details. See Figure 5.22 – Batch Element Entries.
Figure 22 Batch Element Entries

(Figure 5.22 – Batch Element Entries)

Batch Name A unique name of the batch. It’s a good practice to add date to the end of
the batch name for better tracking of batches.
Batch Status A Batch can have five different statuses

 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 exists with the assignment for the 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.

Date This enables the date tracking


Effective
Changes  Update: It lets the past data stay, and updates the entry with the
new values as of the date change requested. If any future dated
changes exist, it inserts the row in between.
 Correct: It overwrites the element entry with the new value. Old
data is lost.
 Override: It lets the past data stay, and updates the entry with the
new values as of the date change requested. However unlike
update, If any future dated changes exist, it clears them off.

Reject If In a case where there already exists an entry in future, that matches the
Future batch line; it will reject the entry if this box is checked. This is exactly
Changes opposite of Override. Hence both the options cannot be selected together.
Purge after This will cause the temporary tables linked to the BEE process to be purged
transfer off. Once this option is chosen, 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 Once this box is checked, it validates each and every assignment number
Validation 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 This can be chosen for a particular element to be entered for an
Set 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.

Using Element Lines:

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 Can enter the Priority to override the element screen priority.
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
Defaults Can enter the Default value for the Input values. This will be taken if no
entries are available on the batch line.

Using Assignment Lines:

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.

Using Assignment Set:

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

Type Choose a type of validation we would need.


Control Total Enter the number against the validation.
Message Message to be appeared if validation fails

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.

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
Let's learn about the traditional way first.

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.

Now, let’s open the elements screen.

Responsibility: HRMS Manager

Navigation: Total Compensation -> Basics -> Element Description

Steps: Create a new record and start filling in the details.

Figure 5 Define Elements


(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 This name must be more meaningful; as this appears on the pay slips and
Name statement of earnings.
Description Information purpose only.
Primary Choose a Primary Classification that suits the element the most. We will
Classification learn more about this later in this 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
Information can be used in fast formulas.
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
Dates should get processed.
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 This enables an element to be entered more than once in one pay period.
Entries Example: Overtime element, as overtime can be entered multiple times in
Allowed 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
Entry existing entries will work as expected.
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.

Now, Lets save the changes and move to buttons.

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

Figure 6 Input Values

(Figure 5.6 – Input Values)

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
Enterable Overtime hourly rates.
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 Takes the minimum or maximum of the allowed values.
and
Maximum
Warning or We can use a Warning or Error message here. The warning will appear on
Error the payroll process results, if validation of the data fails.
Effective The effective date of the Input value.
Dates

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, Earnings based on the
Student Earnings 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
Earnings Assistance, Deferred Compensation Plans, that one receives, along
Jury Duty Pay, Moving Expense with the Earnings. Like
Reimbursement, Pensions/ annuities, Bonus, awards etc. Even
Awards n Prizes, Bonuses, Commissions, though these are type of
cafeteria Plans, Deceased Employee Wages, earning, these are
Sick Pay, Travel Expense Reimbursements, additional cash to the
Vacation Pay employee, other than the
ones entitled.

So technically, any cash


numeration, which is not a
type of earning is called
Supplemental earnings
Imputed Group Term Life Insurance, Personal Use of The Non Cash types of
Earnings Company Car, Non-Cash Awards earnings are listed as
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
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
Deductions that are done as part of any
loan payment / insurance
premium etc.
Involuntary Garnishments, Bankruptcy order, Federal The Involuntary deductions
Deductions Tax Levy, State Tax Levy, Local Tax Levy, where the employees pay
Child Support Order, Spousal support the amount based on some
order, Alimony, School Loan, Credit Debt, Alimony or by court order or
Employee requested payments by any third party
garnishment orders.
Pre-Tax differed Comp 401K, Health care 125, The deductions that happen
Deductions dependent care 125 before taxes are 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 liabilities to the 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
Payments earnings, hence not taxable.
These appear separate on
earning report, as these
expenses are just being
reimbursed, not an
additional payment.
Information Absence Hours, Straight-Time Overtime These elements are not
Hours, Tax Balance, Labour hours, Regular monetary types. They just
Hours hold the counts for
reporting purposes.

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.

Responsibility: HRMS Manager

Navigation: Total Compensation -> Basics -> Formula Results

Steps: Query for the Element in concern

Figure 7 Formula Results


(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 of the formula to be used against the status change
Name
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.

Formula Result Types


A payroll calculation formula is capable of returning many values. And based on the need, the
return values are used, either in the element it is called from or passed on to another element
for further calculations. There are cases, where we would need one element to pass a value
to another element, based on which the calculation of the later will take place. For an example,
the bonus can be calculated as 15% of Regular Salary, and the final amount (pay value) of
Regular Salary can be calculated by the fast formula attached to the basic and then fed into
the Bonus element for its calculation. Let’s look at the different ways we can use a return
value of a fast formula.

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

6.7.6 Laws of Elements


 We can make an element standard, only if it’s recurring and multiple entries are not
allowed.
 A category type field must be entered in the DFF for all elements. The LOV is populated
from the look up types: "US_EARNINGS" and "US_SUPPLEMENTAL_EARNINGS".
 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).

Using Earning Templates


As the elements are of different types, there are two templates in Oracle payroll that helps
us create elements and a lot of other related things. These templates save time, make the
elements standardized and easy to manage. The two templates are called, Earnings and
Deductions.

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

So let's configure the earning

Responsibility: HRMS Manager

Navigation: Total Compensation -> Basics -> Earnings

Steps: Create a new record and start filling in the details. See Figure 5.8 – Earnings
Template.

Figure 8 Earnings Template


(Figure 5.8 – Earnings Template)

Name Name of the Element


Reporting The Name that appears on the Pay slips and statements of earnings
Name
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 In a case where we want the regular hours to be divided into "Regular
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 Select Yes, if we want a separate check to be issued just for this element.
Check

Let's talk about the standard Calculation rule a little bit. There are four predefined standard
calculation rules in place:

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

· Percentage of Regular Earning: The Earning is a percentage of the Regular Earning.

Now, what about the two special elements we talked about earlier? The two elements are
used for adjustments. For an example, if an employee’s regular salary is entered, and now,
we want the salary to be increased by $50 just for this pay period, because of some
adjustments. How do we do that? We can use the special Input elements. It can have two
input values:

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

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

Responsibility: HRMS Manager

Navigation: Total Compensation -> Basics -> Deductions

Steps: Create a new record and start filling in the details.

Figure 9 Deductions Template


(Figure 5.9 – Deductions Template)

Name Name of the Element.


Reporting Name Another Name, that displays on the Pay slips and statements of
earnings.
Description Description of the element.
Classification The Primary classification.
Category This is a subtype of primary classification.
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
Rules compensation plan (e.g., 401(k), 457) or 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.
Rules This determines the amount to be deducted.

 Flat Amount: The deduction is a flat amount

 %Earnings: It’s a percentage of the total earnings the


employee earns

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

Responsibility: HRMS Manager

Navigation: Total Compensation -> Basics -> Link

Steps: Create a new record and populate the details. See Figure 5.10 – Element Links.

Figure 10 Element Links

(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 Choose the set of eligibility criteria for the element.
Criteria
Link to All If Checked, the element becomes available to all eligible employees in all
Payrolls 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
conditions description level can be 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.

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.

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

Responsibility: HRMS Manager

Navigation: Total Compensation -> Basics -> Payment Methods

Steps: Create a new record and start filling in the details. See Figure 5.15 – Payment
Methods.

Figure 15 Payment Methods


(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

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.

Responsibility: HRMS Manager

Navigation: Payroll -> Consolidation

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.

Figure 16 Consolidation Sets

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

Responsibility: HRMS Manager

Navigation: Payroll -> Description

Steps: Create a new record and fill in the details. See Figure 5.17 – Define Payroll.

Figure 17 Define Payroll

(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

Responsibility: HRMS Manager)


First Period End The system determines the payroll dates (start date and end date)
Date using the first payroll end date. The date is fed as an example to the
system, using which it calculates all the other possible end dates.

For Example, If monthly, it can be, 31-JAN-2010.


Number of Years Signifies the number of years, for which the payroll will be effective
Check Date Represents the numbers of days after the End date, as of which the
Checks will be cut.

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 This is an Offset as well. This is the date as of which the payroll will be
Date 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 If the costing of a particular payroll / element is not costed to any
Account account. It gets added to the suspended account. The suspended
account details need to be added here.
Negative This field determines if a negative value be issued in case the
Payment Allowed deductions are higher than the earnings for a pay check
Multiple This field tells the system, whether to process an employee, if he
Assignments has multiple assignments with two 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
Methods choose.
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.

Responsibility: HRMS Manager

Navigation: Payroll -> GL flex field Map

Steps: Query the payroll and fill in the details. See Figure 5.18 – GL Flex Field Mapping.

Figure 18 GL Flex Field Mapping


(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

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.

To start with element sets, these are of three types:


 Customization Set: A Customization set is used, to restrict the elements that can be
entered or viewed 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.

Responsibility: HRMS Manager

Navigation: Payroll -> Element Set

Steps: Create a new record and start entering the details. See Figure 5.19 – Element Sets.

Figure 19 Element Sets


(Figure 5.19 – Element Sets)

Name The Name for the element set


Type The type of the see. Should be one of: Customization / Run /
Distribution
Include Elements This window helps the users to assign elements into the element set
Exclude Elements This window can be used to exclude elements from the set, this
comes handy when a user wishes to add up a complete classification
but a few elements
Element Rules This window displays all the Elements included in the set
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.

To create an assignment set:

Figure 20 Assignment Sets

(Figure 5.20 – Assignment Sets)

Responsibility: HRMS Manager

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.

 ‘&EMP_HIRE_DATE’ ‘>’ ’01-JAN-2012’


 AND
 ‘&ASG_EMPLOYMENT_CATEGORY’ ‘LIKE ‘F%’

So all the assignments that are hired after 1st 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.
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.
 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.

Let's seethe steps involved to create a balance.

Responsibility: HRMS Manager

Navigation: Total Compensation -> Basics -> Balance

Steps: Create a new record and start filing the details in the fields. See Figure 5.11 – Define
Balance.

Figure 11 Define Balance

(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
Remuneration this box checked
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.
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:

Responsibility: HRMS Manager

Navigation: Total Compensation -> Basics -> Balance -> Feeds (Button)

Steps: Create new rows and start filling in the details. See Figure 5.12 – Balance Feeds.
Figure 12 Balance Feeds

(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

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.

Responsibility: HRMS Manager

Navigation: Total Compensation -> Basics -> Balance -> Classifications (Button)

Steps: Create new rows and start filling in the details. See Figure 5.13 – Balance
Classifications.

Figure 13 Balance Classifications

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

Responsibility: HRMS Manager

Navigation: Total Compensation -> Basics -> Balances -> Dimensions (Button)

Steps: Create new rows and start filling in the details. See Figure 5.14 – Balance Dimensions.

Figure 14 Balance Dimensions

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

Initial Balance Feeds

An initial feed is used, to initialize a balance with a value to start with. One element and one
of its input values must be selected to initialize the balance. And later, as the processing
continues, the additions and subtractions are made to the initialized value, based on the
definition.
Responsibility: HRMS Manager

Navigation: Total Compensation -> Basics -> Balances -> Initial Balance Feed (Button)

Steps: Create new rows and start filling in the details.

Element Name Choose the name of the element


Input Value Name The Input value of the selected element, to be used as the initial
value.
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.

We know we have three stages to process the payroll.

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

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.

Getting Benefits Data


To move on, we should then look into the Benefits side of it; the deductions by the Insurance
premium / rate. It’s captured by OAB (Oracle Advanced Benefits) OR OSB (Oracle Standard
Benefits). If we have the benefits system implemented, it will automatically create assignment
entries based on the deduction. However If our Benefits is managed by a Vendor, we must
request a Payroll Extract / Payroll Interface for the 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.

Getting Payments Data


So next is the salary. We will have to create Regular Hours / Regular Salary elements to link
it to Assignments. Isn't it? However in few cases, we might have to give some additional
payments to the Employees other than the regular wages. So, we should always have those
types of Non-Recurring elements in place, so that whenever we need some additional
payment, we could use the appropriate Element. The Wage Attachment itself is a big subject
to discuss. Please see the Wage attachment link for further information on the same.

Getting Absence Data

Employees go on leave; sometimes they go on Paid Leaves, and sometimes even on unpaid
leaves. The Paid Leaves are something that an employee must accrue during his tenure/
length of service in the Company. Like the longer he stays, the leaves get added/ get carried
over from one year to another, based on business rules. That is known as PTO (Paid Time
Off) accruals. So we must have the Information elements in place to gather the PTO
information, so that we can print that along with the Pay slips, to let the employee know 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".

Responsibility: HRMS Manager

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.

Figure 23 Payroll Process Parameters

(Figure 5.23 – Payroll Process Parameters)

Payroll Name Name of the Payroll


Consolidation Set Name of the Consolidation set used in the Payroll
Name
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 of the assignment set, if the run has to be on specific
Name 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.
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.

Figure 24 PrePayments Parameters

(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
Override Enterprise wants to pay everyone by 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 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 Localizations support NACHA, similarly all localizations 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 An Override date, if we want the Deposit to happen later
Override
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.

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.

Name of the NACHA Report


Process
NACHA Process Choose the NACHA process that was run with the table above.
Totals Only Choose ‘No’ to get a detailed report.

We can then send this Report to our HR managers for a review.

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.

Name of the Process Payroll Archiver


Start Date The Pay Period End Date
End Date The Pay Period End Date
Payroll Name Name of the Payroll
Consolidation Set The Consolidation set associated with the Payroll
Name

Check / Cheque Writer


Let's write some checks. If we have ‘check’ as one of the valid payment methods then we
need to write the checks to get them out to the Employees. To do so, we will run a process
called the Check Writer process. We must have the Printer in place with the check leaf book
attached, so that the checks can be generated.

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.

Name of the Check Writer


Process
Consolidation The Consolidation set associated with the Payroll
Set
Start Date The Pay Period End Date
End Date The Pay Period End Date
Payment Method Check
Sort Sequence Any sorting preference. Advised : Organization, Person
Start Check The number of the first check leaf on the Printer
Number
End Check Optional. Fill in only if the count is known
Number
Check Style Choose a style of check printing: "Payroll Check" for the Usual check
writer and "Third Party Check" for the Garnishment / third party payments

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.

Name of the Process Deposit Advice


Consolidation Set The Consolidation set associated with the Payroll
Start Date The Pay Period End Date
End Date The Pay Period End Date
Sort Sequence Any sorting preference. Advised : Organization, Person
Assignment Set Enter the Assignment set, if we want to run this for a set of Employees
only.
Deposit Advice Style Choose a style of Deposit Advice. You can create your own style and
use it here.

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.

Name of the Process Costing


Payroll Name of the Payroll
Consolidation Set The Consolidation set associated with the Payroll
Name
Start Date The Pay Period End Date
End Date The Pay Period End Date

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.

Name of the Process Transfer to GL


Consolidation Set The Consolidation set associated with the Payroll
Name
Start Date The Pay Period End Date
End Date The Pay Period End Date

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:

Name of the Process: Payroll Activity Report

 Beginning Date Paid: Last Day of Current Pay Period


 Ending Date Paid: Last Day of Current Pay Period
 Process Type: Payroll Runs
 Suppress Current Zero Records: Yes
 Full Report: Yes
 Reporting Dimensions: Run
 Sort Option One: GRE
 Employee Page Break: No
 All other parameters should be NULL

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.

Name of the Process: Costing Detail Report

 Costing Effective Date Begin: Last Day of Pay Period


 Costing Effective Date End: Last Day of Pay Period
 Output File Type: HTML
 All the other parameters should be NULL.

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.

Name of the Process: Costing Summary Report

 Costing Effective Date Begin: Last Day of Pay Period


 Costing Effective Date End: Last Day of Pay Period
 Output File Type: HTML
 All the other parameters should be NULL.

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.

Name of the Process: Payroll Register Report

 Beginning Date Paid: Last Day of Pay Period (i.e. 06-MAR-2010)


 Ending Date Paid: Last Day of Pay Period (i.e. 19-MAR-2010)
 Suppress Zero Count Records: Yes
 Full Report: Yes
 Reporting Dimensions: Current
 Sort Option One: GRE
 Employee Page Break: No
 All the other parameters should be NULL.
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.

Name of the Process: Payment Register Report

 Starting Pay Date: Last Day of Pay Period


 Ending Pay Date: Last Day of Pay Period
 Payroll: NULL
 Consolidation Set Name: The Consolidation Set being used
 Selection Type: Original Payment Date
 Display Employee Details: Yes
 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.

Name of the Process: Third Party Payment Register Report

 Starting Pay Date: Last Day of Pay Period


 Ending Pay Date: Last Day of Pay Period
 Payroll: NULL
 Consolidation Set Name: The Consolidation Set being used
 Selection Type: Original Payment Date
 All the other parameters should be NULL.

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.

Name of the Process: US Gross to Net Summary

 Starting Pay Date: Last Day of Pay Period


 Ending Pay Date: Last Day of Pay Period
 GRE: NULL
 Payroll: NULL
 Consolidation Set Name: The Consolidation Set being used
 Sort Option One: NULL
 Sort Option Two: NULL
 Sort Option Three: NULL
 Template: US Gross to Net Summary (PDF)
Validating Payroll Run

As the payroll is processed now, how do we validate the results? We can do it in many
ways. We can view the run results sorted by assignments or processes.

Process level View

This window shows all the details related to the processes run for a particular payroll for a
given period. Every process that we run as part of Processing / Post Processing get
registered here. See Figure 5.25 – Payroll Process Results

Responsibility: HRMS Manager

Navigation: View > Payroll Process Results

Figure 25 Payroll Process Results

(Figure 5.25 – Payroll Process Results)

Assignment Process To see the Process Results for a given assignment


Messages To see Error messages related to a given assignment
Costing Breakdown Shows the Costing Breakdown
Process Information Shows the Concurrent Process status and details.
Concurrent Opens up the View Concurrent Programs window

Assignment level View


Like the Payroll Process Results, this screen helps us monitor the processes run for a given
Assignment. See Figure 5.26 – Assignment Process Results.

Responsibility: HRMS Manager

Navigation: View > Assignment Process Results

Figure 26 Assignment Process Results

(Figure 5.26 – Assignment Process Results)

Messages To see Error messages related to a given assignment


Run Results This button opens the Run Results window to show the Pay Value of each
element processed for the employee, together with basic information about
the element. From the Run Results window, choose the Run Result Value
button to view the input values for an element.
Balances Shows up the Balance window for the Balance related Information
Payment Methods Shows the details about the Payment method and the amount of money
added to that as part of the Payroll.
Costing Shows the Costing Breakdown
Balance Shows the Balance Adjustments if any
Adjustments
Payment Shows the Payments made by this payroll. Includes all. Direct deposits,
Garnishments and Check payments
SOE Report Displays the Statement of Earning
Correcting Payroll
Corrections

There will be moments, where we have finished the Payroll run and Pre-Payments. We
processed some report and figured out that, there is some issue with a set of Assignments.
The same thing can even happen just after the Payroll Run, or in some cases, after Transfer
to GL. Now how do we handle the situation? Is there any way we can correct the data. Yes.
There are three different Processes.

 Rollback
 Retry
 Reversal

Let's discuss these one by one.

Rollback

This is the most commonly used feature. We can use this to un-process the Payroll. However
using a Rollback removes the entire history of the data. Let's use Joe's example. All of a
sudden we realize that Joe has been paid $200 extra this time. Now we are at the last stage
of our post processing. We are running costing now. How do we fix the Issue?

We will Rollback the Payroll for Joe. We will Rollback the Costing for Joe first. Then the Check
writer job, then the NACHA / BACS, then the PrePayments and finally we will rollback his
payroll. We will fix his elements, and rerun the entire set of jobs again in the actual order
only for Joe.

Cases: So what are the cases where we would process Rollback?

 We have processed Payroll for a person with a wrong Salary


 We have processed Payroll for a guy who was terminated long back
 We have processed Payroll for a wrong assignment set

How: How to Rollback?


 To rollback payroll of a set of Individuals, Go to the View -> Payroll Process window
OR Go to the View -> Assignment Process. Click on the individuals we want to rollback
and select Delete Record from the Edit Menu.
 To rollback payroll of an entire payroll, Submit a new request: "Rollback US Payroll
Process". Choose the Payroll run. And Submit.

Retry
Retry is used when we see a small mistake just after the Payroll run. We want to fix it and
move ahead with the Process. This is done when we see a set of assignments are processed
wrong. We fix the data causing issue and then mark them to retry. It processes only those
entries that are incorrect. In some cases where we saw there is something wrong with the
Fast Formula we just recompiled; probably a calculation mistake. We fix it and run a retry.

Cases: So what are the cases where we would process a Retry?

 We have an issue with the Calculation method used in a FF


 We found out an issue with a set of assignments, where an earning was not added at
all.

How: How to Retry?

 To retry for an assignment, Go to View ->Assignment Process and select the Process
we want to retry. Check the Retry Box.
 To retry for a set of assignments, Go to View ->Payroll Process and select the
assignments we want to retry. Check the Retry Box. And then run the "Retry US Payroll
Process".
 To retry an entire Payroll, Go to View ->Payroll Process and select the run, Check the
Retry Box. And then run the "Retry US Payroll Process".

Reversal
Reversal is chosen in cases when all the processes are already complete, and we see an issue
with an assignment. This will reverse all the Processes this far for the particular Run for the
particular assignment.

Cases: So what are the cases where we would process Reversal?

 An assignment was processed incorrectly like: An employee got a payment of $400 by


a check, which should have gone to someone else.

How: How to Reverse?

 Open the Employee's assignment screen.


 Others -> Reverse Run
 Select the Run we want Reverse.
 Check the Reverse check Box.

5.4.6.4 Adjusting Balances


When Balances are calculated wrong, or we have done some manual workaround and want
the Balance to be updated for the same, we can opt for Balance adjustments.

 To view Balance of any particular assignment, we can go to View -> Assignment


Process Results -> Employee Assignment Processes
 To Adjust Balances, we can go to the Assignment Record of the Employee, Others-
>Adjust Balance.

Quick Pay

QuickPay is the process that can be used to process Payroll and Prepayments
for one Individual assignment at a time. So this is the Assignment level version
of the Payroll Process. Although all the other Post Processing except the
Prepayments has to be done separately, but this tool, can help us to do small
changes on the assignments and rerun the payroll for them, after a successful
rollback. This can also be used as a testing tool. We can just run a quick pay
and see the SOE. Once our validation is done, just roll back the Quick pay. It’s
so simple.

Figure 27 QuickPay Process


(Figure 5.27 – QuickPay Process)

Quick pay can be processed from the assignment screen of an employee. Others -> QuickPay

 Choose the pay period for which we want to process the quick pay
 Enter the Pay period end date
 Select run type as Regular
 Save the record and Process.

Retro Pay

Retro Pay are one of the Important tools with which we can fix something that
has happened in Past. For an example, salary of an employee is increased to $300 as of
March, effective from the Month of January. Now, we need to make sure that the Amount of
money accumulated since January to March to be paid as part of March Payroll; Similarly, if
the Rate of Medical Insurance has been changed from $450 to $550 as of March, effective
from the month of January. Here we need to adjust the $100/ month for three months. How
do we do that?

There is a process called the Retro Pay that can solve the problem. There are three types of
Retro pays, however not all of them are available in a particular localization.

 Retro Pay by Aggregate


 Retro Pay by Run
 Retro Pay by Element

Even though the concept looks simple, it’s not. We must think about the deductions and taxes
in place. If the salary increases by $100, my system will need the entire calculation to be
done once again. Not only that, even my balances will need updates. Oracle Payroll takes care
of all that. Let's discuss how to achieve the same.

Retro by Aggegate
We can use this, if we do not want to see the way Payroll derives the amount. If we take Joe's
example forward, we will never see how payroll came up with that $300 for the three Months,
if we use Retro Pay by Aggregate. It’s abstracted. Here it was simple to track, as its just
$100/ month. But in Complex Calculations it will be completely abstract.

Set up:
 Complete the Salary level changes.
 First thing is to create/ update the element entries with the new value.
 Now, create the retro pay elements with the following details.
o Pick an appropriate classification. Should not be Information.
o Type should be Non-Recurring
o Should have three input values - Pay Value, Start Date, End Date
 Create an Assignment set with the Impacted assignments
 Link the element to the assignment set
 Create a Retro pay set
 Process Retro pay request.

Retro by Run

This one is similar to "Retro Pay by Aggregate". Just that it gives us the clear picture without
any abstraction. It allows us to see how backdated changes are distributed across Individual
processes. Here the system uses the old information and also calculates the difference using
the new information and finally updates the system.

Set up:

 Follow everything that's there in the "Retro Pay by Aggregate". However with the
following changes on the element:
o Multiple Entries allowed flag should be checked
o It just needs one Input Value "Pay Value". No Start date or end date would be
required.

Retro by Element
This option is chosen when we want the retro to be applied for one single Element without
recalculating the others. This is highly specific to Elements and does not happen a lot often.
Imagine just a Post Tax Bonus was updated wrong in Joe's record. To correct situations like
that, we might need Retro Pay by Element

Set up:

 Update the element entries with the desired value.


 Create an assignment set
 Create an Element Set of type Run Set
 Process Retro Pay request

Retro by Set
This is not required in Retro Pay by Element. This is used only in the other two cases.

Responsibility: HRMS Manager

Navigation: Payroll -> RetroPay Set

Steps: Create a new record and enter the details.


Name A name for the Retro Pay set
Description Description of the Set
Balance If it's for Retro Pay by Run it must be "ASG_RETRO_RUN". Else,
choose an appropriate balance.
Element Name Choose the Retro Pay element here
Input Value Select Pay Value

Retro pay process


Responsibility: HRMS Manager

Navigation: View (M) -> Request (M) ->Submit a new request -> single request

Steps: Enter the name of the Process "RetroPay by Aggregate or RetroPay by Run or RetroPay
by Element." and enter the parameters.

Assignment Set Name of the assignment set


Retro Pay Set Enter the Retro Pay set if it’s not Retro Pay by Element
Element Set Enter the Element set if its Retro Pay by Element
Start Date Start Date of the Retro
End Date End Date of the Retro

Oracle Payroll now rolls back and reprocesses all the payrolls for the assignment set from the
date we specified. The system compares the old balance values with the new ones and creates
entry values for the Retro Pay elements based on the difference. These entries are processed
for the assignments in the subsequent payroll run for our current period. No changes are
made to our audited payroll data.

Summary
Payroll does not deal with a lot of tables, in comparison with other modules like Benefits /
Core-HR. So the idea was to go through the functional set ups first and then look at the
technical aspects, and peep through the tables.

PAY_ELEMENT_TYPES_F: No need to say, that this is a date track enabled table. This table
stores the details about all the elements in the system. The Primary key is ELEMENT_TYPE_ID
and the two date fields. This is usually used to get the name of the element, as
ELEMENT_TYPE_ID is used in a lot of places to refer to the element.

PAY_ELEMENT_LINKS_F: This one is date track enabled as well. This one stores the details
on the links. The primary key is: ELEMENT_LINK_ID and the two date tracked columns, stores
the ELEMENT_TYPE_ID as the foreign key.

PAY_INPUT_VALUES_F: This table stores the Input values for each element. This is the
Date track enabled table. The primary key is INPUT_VALUE_ID and the two date tracked
columns. This table also holds the ELEMENT_TYPE_ID as a foreign key
to PAY_ELEMENT_TYPES_F. This can be used to pull in the Element input value name.

PAY_ELEMENT_ENTRIES_F: This is another Date tracked table. This one stores the details
about the element entries. The table stores the Entries with the ASSIGNMENT_ID and
the ELEMENT_LINK_ID as foreign key. The Primary key is ELEMENT_ENTRY_ID. This table
also links itself to PAY_ELEMENT_TYPES_F with storing ELEMENT_TYPE_ID as a foreign key.

PAY_ELEMENT_ENTRY_VALUES_F: This date track enabled table stores the values for
each entry. This table has only 6 columns. Out of which, the Primary key is:
ELEMENT_ENTRY_VALUE_ID and the two date tracked columns, it stores the
ELEMENT_ENTRY_ID as the foreign key to PAY_ELEMENT_ENTRIES_F and the
SCREEN_ENTRY_VALUE stores the actual value of the Input Value. The INPUT_VALUE_ID
column links the table to the Input values table (PAY_INPUT_VALUES_F).

PAY_PAYROLL_ACTIONS: This table logs all the actions taken by the Payroll Engine.
Primary key is PAYROLL_ACTION_ID, and it logs in each and every activity. The Table is
capable enough to store a lot of information as it has got columns to store all kind of data
used in Payroll; although it does not populate all the columns / row. However it logs in only
the ones those are needed.

PAY_RUN_RESULTS: This table stores the status related to the elements against the
assignment actions. The primary key is RUN_RESULT_ID. ELEMENT_TYPE_ID and
ASSIGNMENT_ACTION_ID are the two other important foreign keys.

PAY_RUN_RESULT_VALUES: This table takes the RUN_RESULT_ID and the


INPUT_VALUE_ID and stores the Value obtained by the Payroll Engine.
So these were the important tables in Payroll. However here is a list of few others, which are
use very frequently.

 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.
 The below table is in Alphabetical order.
 Some of the values in the column Table could be a view / synonym. However they pull
data. That's what we want right? :)

Table Name Date Primary Key Description


Track
ed?

PAY_ACCRUAL_PLANS No ACCRUAL_PLAN_ID Stores details on the


Accrual Plans.
ACCRUAL_PLAN_ELEMENT
_TYPE_ID can be used for
Element value links.
Total Compensation ->
Basic -> Accrual Plans

PAY_PAYROLLS_F Yes PAYROLL_ID Stores the Payroll related


data.
Payroll-> Description

PAY_ASSIGNMENT_ACTION No ASSIGNMENT_ACTION_ Stores the Payroll actions


S ID against Assignments with
action status and
sequence. Links with
PAYROLL_ACTION_ID.

PAY_ASSIGNMENT_LATEST No Logs the Balances with


_BALANCES DEFINED_BALANCE_ID
with each and every
assignment action, related
to ASSIGNMENT_ACTION
_ID.

PAY_ASSIGNMENT_LINK_U Yes ASSIGNMENT_LINK_US Logs the assignment and


SAGES_F AGE_ID element links with date
tracking capabilities.
ELEMENT_LINK_ID and
ASSIGNMENT_ID are the
two foreign keys.
PAY_BALANCE_ATTRIBUTES No BALANCE_ATTRIBUTE_I Stores the Balance
D attributes.
Total Compensation ->
Basic -> Balance->
Attributes(B)
PAY_BALANCE_CATEGORIE Yes BALANCE_CATEGORY_I Stores the
S_F D Balance Categories that
can be used while defining
Balances.

PAY_BALANCE_DIMENSION No BALANCE_DIMENSION_ Stores the Balance


S ID Dimensions.

PAY_BALANCE_FEEDS_F Yes BALANCE_FEED_ID Stores the Balance Feeds.

PAY_BALANCE_TYPES No BALANCE_TYPE_ID Stores the Balances.

PAY_BATCH_LINES No BATCH_LINE_ID Logs the Batch lines at the


Batch element entries.
Linking the BATCH_ID,
ASSIGNMENT_ID and
ELEMENT_TYPE_ID. Logs
the
BATCH_LINE_STATUS.
PAY_COSTS No COST_ID Logs the Cost and the
balances as Debits or
Credits with respect to
each RUN_RESULT_ID and
ASSIGNMENT_ACTION_ID
.
PAY_COST_ALLOCATIONS_ Yes COST_ALLOCATION_ID Logs the Cost against a
F COST_ALLOCATION_KEYF
LEX_ID, with reference to
assignment Ids. This is
where costing is logged.

PAY_COST_ALLOCATION_K No COST_ALLOCATION_KE The Cost allocation KFF


EYFLEX YFLEX_ID table.

PAY_DEFINED_BALANCES No DEFINED_BALANCE_ID Clubs the Balance with its


Dimensions, using
BALANCE_TYPE_ID and
BALANCE_DIMENSION_ID
.
PAY_ELEMENT_CLASSIFICA No CLASSIFICATION_ID Stores the Classifications.
TIONS Total Compensation ->
Basic -> Classification

PAY_ELEMENT_SETS No ELEMENT_SET_ID Stores details on Element


Sets.
Payroll-> Element Set

PAY_ENTRY_PROCESS_DET No Logs the details of Run


AILS results with
RUN_RESULT_ID and
ELEMENT_ENTRY_ID.

PAY_LINK_INPUT_VALUES_ Yes LINK_INPUT_VALUE_ID Clubs Input Values with


F the Element links.

PAY_MESSAGE_LINES No Logs Payroll Messages

PAY_PAYMENT_TYPES No PAYMENT_TYPE_ID Stores the Payment


Methods.
Payroll-> Payment
Methods
PAY_PEOPLE_GROUPS No PEOPLE_GROUP_ID The People Group KFF
table.

PAY_PRE_PAYMENTS No PRE_PAYMENT_ID Logs the Prepayment


information against
ASSIGNMENT_ACTION_ID
with the Monetary Values.

PAY_QUICKPAY_INCLUSION No Logs quickpay actions


S against
ASSIGNMENT_ACTION_ID
and ELEMENT_ENTRY_ID

PAY_RETRO_DEFINITIONS No RETRO_DEFINITION_ID Stores Retro Definitions.

PAY_RUN_BALANCES No RUN_BALANCE_ID Stores the Balance


Updates against
ASSIGNMENT_ID and
DEFINED_BALANCE_ID.

PAY_RUN_TYPES_F Yes RUN_TYPE_ID Stores the different Payroll


Run Types.
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.

Chapter Overview

This chapter talks about:

 Application developer as a Role


 Concepts of Flex Fields
 Swift data retrieval using Lookups and User Defined Tables
 Using Messages and Value Sets
 Concurrent Programs

Learning Outcomes

After going through this Chapter, you should be able to:

 Appreciate the design of Flex Fields in Oracle E-Biz


 Understand difference between Key and Descriptive Flex Fields
 Understand the concept of Lookups and User Defined Tables
 Usage of messages and value sets
 Use FND Objects in various Applications and their designs

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 attributes
are called Flex Fields. Just as the name suggests, they are flexible Fields, which can be used
to store extra information.

The advantages of having flex fields are:

 Capturing data specific to ones business needs that are not seeded by the application
 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

Flex Fields are of two types:

 Descriptive Flex Fields


 Key Flex Fields

Descriptive Flex Fields

Descriptive Flex Fields or DFFs are the additional attributes provided along with the standard
table structures to accommodate the extra data, needed by the enterprise. Every table has
extra set of columns / attributes to store the DFFs. If an enterprise has to store a particular
data that is not stored in any of the standard columns of the table provided by Oracle E-Biz,
that column can be stored in the database using a DFF.

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.

There can be two types of contexts.


 Global Contexts / Global Data Elements
 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.

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


 Navigation: Flex field -> Descriptive -> Register

(Figure 3.1 – Registering a DFF)

Steps:

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.

Application Name of the application to which the DFF belongs to.

Name Name of the Structure; this will be used by the routines, to call the
DFF from Forms or Programs.

Title This is the identifier that identifies each DFF uniquely.

Description Description, free text.

Table Application The application to which the Parent Table belongs to.

Table Name Name of the Table.

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.

Once the new DFF is registered, the next step is to define / update the DFF structure and
the contexts.

back to top

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


 Navigation: Flex field -> Descriptive -> Segments

(Figure 3.2 – DFF Contexts)

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.

Title The Title of the DFF.

Freeze Flex field This flag is checked to freeze the definition, this does not allow
Definition 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.

Context Field
Block

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.
Default Value The Default Context Value, if any.

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.

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
Reference Field Field, the context is updated automatically; so that the
synchronization happens.

Context Field
Values Block

Code This is the name of the DFF Context Structure, must be unique.

Name The name of the Context.

Description The Description, free text.

Enabled Makes the Context available to the application

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.

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.

(Figure 3.3 – DFF Segments)

Number The sequence Number. Never use 1, 2, 3... Use a sequence of 10


with increment of 10, like 10.20, 30. It enables us to insert records
in between.
Name Name of the Attribute

Window Prompt The window Prompt for the attribute.

Column The Column on which it is going to be stored.

Value Set The value set attached to the attribute.

Displayed Enables the attribute to be displayed on the application.

Enabled Makes the attribute usable.

The caption-less This flag synchronizes the dependent screens opened using the
flag on the top buttons downstairs.

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.

back to top

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.
(Figure 3.4 – Segment Details)

Name Name of the field as entered in the Previous window.

Description The description of the attribute.

Column The column on which the data is going to be stored.

Number The sequence Number.

Enabled Makes the attribute usable.

Displayed Enables the attribute to be displayed on the application.

Value Set The Value set to be used against the attribute.

Description Auto populated with the Value set description.

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.

Default Value The Default value of the segment.

Required Makes the attribute a Mandatory one.

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.

Description Size The size of the description of the field.

Concatenated size This is the size to be displayed when the application shows the
attribute on a concatenated Flex field values.

LOV Prompt The Prompt to be displayed in the List Of Values.

Window Prompt The Prompt to be displayed on the Screen.

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.
back to top

Key Flex Fields

As the name suggests, Key Flex Fields / KFFs store the key building blocks of the
components used in a module. Although the primary purpose is to store flexible data, unlike
the DFFs, the KFFs store combination of data segments called codes. Every organization
uses codes to identify the portions of their business components, like Division code,
Company code etc.; and every code is related to a meaning. For example, the Department
code 02 is the Code, and “Sales department” is the meaning of the code. These codes and
meanings can be stored in the KFFs, so that each and every department in the Organization
can use their set of codes without any programming efforts.

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

KFFs in HRMS and Payroll

Talking about HRMS in specific, there are 10 frequently used KFFs

Name Application Type


Job Human Resources Mandatory
Position Human Resources Mandatory
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.

back to top

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


 Navigation: Flex field -> Key -> Register

(Figure 3.5 – KFF Registration)


Application The Application that owns this KFF
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.

back to top

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


 Navigation: Flex field -> Key -> Register
(Figure 3.6 – KFF Definition)

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
Segments the additional 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 /
Groups summing up the segment values.

Allow dynamic This tells the system whether to allow a save, if the combination
inserts that the user is 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.

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.

Let’s see how to set up rules.

 Responsibility: Application Developer


 Navigation: Flex field -> Key -> Cross Validation

(Figure 3.7 – Cross Validation Rules)


Steps:

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

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.

 Responsibility: Application Developer


 Navigation: Flex field -> Key -> Cross Validation
(Figure 3.8 – Lookup Types)

Steps:

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

Application The application owner of the lookup

Description Any description, free text

Access Level The Access Level is automatically set by the system.

User: It is created by user and it is updatable.

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.

From / To The Start and End dates are put here

Enabled We can switch the row to be available or unavailable with this flag.

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.
(Figure 3.9 – Lookup Contexts)

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.

back to top

User Defined Tables

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.

 Responsibility: Super HRMS Manager


 Navigation: Other Definition -> Table Structure

(Figure 3.10 – UDT Structure)

Steps:

 UDTs are date track enabled, so pick a date before creating a table
 Enter the name of the table in the Name field
 The User table key gets defaulted with the table name, however can be changed.
This is the column that uniquely identifies a table.
 The Match type defines a certain type of validation. If the type is selected as match,
system expects the table rows to store data of one particular type. And the Unit of
measure of the types is fetched from the type specified in the key unit of measure
field. UOMs can be Date, text or number.
 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

(Figure 3.11 – UDT Values)

Steps:

 Query the table name.


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

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.

(Figure 3.12 – Value Sets)

 Responsibility: Application Developer


 Navigation: Application -> Validation -> Set

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:

LOV: For any List of values

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:

No Security: No Security rules apply.

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.

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.

Precision Only available with Numbers, sets the precision point.

Numbers Only Ensures only numbers are entered as values.

Uppercase Only Ensures only Uppercase Values are entered.

Right Justify It makes the Value right justified with zero filled to the rest of
characters.
Min Value The Minimum/ Low Value.

Max Value The Maximum / High value.

Validation Type Explained later in this chapter.

Edit This opens a screen based on the validation type, with which the data
will be validated.

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

(Figure 3.13 – Table Type Validation)

 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


 Navigation: Application -> Validation -> Values

(Figure 3.14 – Segment Values)

Steps:

Name Name of the Value Set.

Dependent value Set If it’s a dependent Value set, mention the Value set on which
this value set depends on.

Value The Value.

Translated Value The Meaning of the Value.

Description The Description.

From and To Date The effective dates.

Hierarchy and Qualifiers This is where we can add extra security based on Qualifiers.

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.

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


 Navigation: Application -> Messages

(Figure 3.15 – Defining Messages)

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.

Text This is where we add the text of the messages.

Message Text
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.”

We can also use system parameters in the messages like: <product-code>

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>

Concurrent Programs
Concurrent, in English means, simultaneous, happening at the same time. Likewise in Oracle E-Biz, a concur
program can be termed as a program that runs simultaneously with the application without disturbing the la
So our application is live, and hundreds of thousands of users are accessing our system, and our busi
needs some reports or some updates at the same time, then how are we going to do that? Oracle E-Biz g
a dedicated server to run Concurrent Programs, which is capable to run the requests without impacting
performance of the actual application. The Concurrent programs can be designed, defined and deployed to
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

Defining Execution File


This is the file / code that actually get executed as part of the concurrent program. It could be any of th
PL/SQL Stored Procedure, Oracle Reports, Perl Reports, SQL Loader, SQL*Plus reports, Java Reports,
codes etc. The first and the most essential step, is to write the code first. The code must have the Busi
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 Executab

 Responsibility: Application Developer


 Navigation: Concurrent -> Executable

(Figure 3.16 – Defining Messages)

Executable Name of the Executable File

Short Name The Short Name

Application The Application in which this Executable is going to be used

Description Any Description, Free Text

Execution Method This is the place we tell the system about the type of the code, whether it i
PL/SQL/ Java / Reports / Perl etc.

Execution File Name The Name of the File / code that will be executed. Must be in apps Schema
case of reports. For others must be in appropriate folder.

Subroutine Name If there is any sub routine, that needs to be executed based on the Executi
Method. Only opens if the Method is “Immediate”

Execution file path The path of the execution file, only used with Java Concurrent Program.

The different possible Execution methods are:

 Host: It’s written in a language that the OS would understand, something like Unix scripts
 Immediate: Written with a subroutine written in C or Pro*C.
 Oracle Reports: It is an Oracle Report
 PL/SQL Stored Procedure: Written in PL/SQL.
 Spawned: it’s a stand-alone program in C or Pro*C
 Java Stored Procedure: A Java stored procedure.
 Java Concurrent Program: A program written in Java.
 Multi Language Function: A multi-language support function (MLS function) is a function that supp
running concurrent programs in multiple languages.
 SQL*Loader: A SQL*Loader program.
 SQL*Plus: A SQL*Plus or PL/SQL script.
 Request Set Stage Function: It is a PL/SQL Stored Function that can be used to calculate the
completion statuses of request set stages.
 Perl Concurrent Program: It is a Program written in Perl Scripts.

back to

The Program

As the Executable is all set now, the next step is to define the concurrent program. See Figure 3.17 – Defi
Concurrent Programs.

 Responsibility: Application Developer


 Navigation:
 Concurrent -> Program

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

Application The Application that owns the request.

Description The Description, free text.

Enabled This flag, if unchecked, makes the Program unavailable for run.

Executable Name The name of the defined Executable.

Method The Method is updated automatically with the type of executable.

Format Format Type of output.

Save Saves the output if flagged.

Print Prints the output if flagged.

Columns / Rows The width of rows and columns of the output.

Style The output format style.


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.

back to

The Parameters

If our code needs parameters, then we must define parameters that will be asked when we put in the req
name, and then eventually be passed on to the code being executed. In the Program window, the parame
button leads us to the parameters screen.

(Figure 3.18 – Defining Concurrent Parameters)

Sequence A Sequence number

Parameter The Name of the parameter

Description The Description. Free text.

Enabled This flag makes the parameter available to the Program.

Value Set The Value set attached to the parameter.

Description The Description of the Value set, auto populated.

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.

Could be one of these:

Constant: Any Constant Value put in Default Value field

SQL Statement: A Value returned by the SQL statement put in Default Value

Profile: Any of the Profile Values, put in Default Value

Segment: The segment of any flex field

Required Makes the Parameter a mandatory one to be entered on the request submissio

Enable Security Applies the Security rules on the Value set


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 o
this parameter.

Concatenated size The Size of the parameter while all the parameters are concatenated in submit
window.
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 Report
as a Parameter.

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.

Table Name Date Description


Tracked?

FND_ID_FLEXS Stores the KFF Register Data

FND_ID_FLEX_STRUCTURES Stores Data related to KFF Definitions


FND_ID_FLEX_SEGMENTS Stores the KFF Segments

FND_DESCRIPTIVE_FLEXS Stores the DFF Register Data

FND_DESCR_FLEX_CONTEXTS Stores DFF Contexts

FND_DESCR_FLEX_COL_USAGE Stores DFF Attribute Details

FND_FLEX_VALUE_SETS Stores the value set Definitions

FND_FLEX_VALIDATION_TABLES Stores the Table type value set details.

FND_NEW_MESSAGES Stores Message Details

FND_CONCURRENT_PROGRAMS Stores the Concurrent Programs

FND_EXECUTABLES Stores the Concurrent Program


Executables.

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

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.

Chapter Overview

This chapter talks about:

 Core-HR as a module
 Concepts of Date Tracking
 Storing person data
 Building blocks of Core- HR: Organization, Location, Job, Position, Grades etc
 Tools used in Core-HR
 Security Profile and Multi-Org
 Technical aspect of Core-HR
 Summary
 Questionnaires

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

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.

The table will look like this:

EMP_ID EMP_NAME POSITION START_DATE END_DATE

1234 Joe Analyst 01-JAN-2002 31-DEC-2006


1234 Joe Sr. Analyst 01-JAN-2007 31-DEC-2009
1234 Joe Manager 01-JAN-2010 Till 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”.

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

Date Track Modes

Let’s talk about the application of date track concept? We will start with the modes. The modes
represent the different ways a particular record can be updated in a date tracked table. For
an example, we want to remove a record on a Date tracked table. We have two options:

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

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

Figure 1 Date Track Modes

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

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.

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

Keeping Person Records


Talking about the person records, the indicative details of all persons are stored in a table
named “PER_ALL_PEOPLE_F”. This is considered the base table to store the basic information
of any given person, associated with the enterprise, be it an employee or spouse / child of an
employee. However there are a lot of other tables that store additional information related to
the persons.

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.

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.
The other related tables to store person related details are:

 PER_ADDRESSES: stores the address of a person. It’s a DATED table.


 PER_PHONES: stores the Phone numbers of a person.
 PER_CONTACT_RELATIONSHIPS: stores the contacts of a person.
 PER_DISABILITIES_F: stores the disability information of a person.
 PER_PERSON_TYPE_USAGES_F: stores the person type of a person (example:
Employee, Ex-employee, Beneficiary etc.)
 PER_QUALIFICATIONS: stores the qualification of a person.

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

Keeping Employment Records


The Employment records are very important to the enterprise, as these are going to be the
details about our employees and ex-employees. The way the data is stored in the application
is much normalized. When we talk about the employment, what are the details that we need
to take care of?

 His Assignment
 His Service with the Firm
 His Salary

Let’s discus these details one by one.


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.

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


 Semi Monthly: Twice a Month
 Bi-Weekly: Once in Two weeks
 Weekly: Once in a week

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.

How does the Salary get calculated?

 It takes the PROPOSED_SALARY_N column from PER_PAY_PROPOSALS where


APPROVED_FLAG = Y with 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.

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.

Responsibility: Super HRMS Manager

Navigation: Other Definition -> Person Types

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?

But how do we change it manually? Let’s see.

Responsibility: Super HRMS Manager

Navigation: Fast Path -> Person Type Usages

Steps:

 · Query for the employee


 · Add a new Person Type usage / End date the old one.

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

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.

Extra Information Types

The Extra Information Types or EITs are DFFs attached to six very important entities that help
us capture extra information, that are not available in our tables. It is kind of a DFF. Now, the
question, why something called an EIT is introduced, if there was a concept of DFF already
there?

 EITs are stored in different tables, where as DFFs are stored in the same
very base table. So any 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.

EITs in HRMS are given to only six entities:

 · People
 · Assignments
 · Job
 · 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.

Responsibility: Application Developer

Navigation: Flex Field -> Descriptive -> Register

Steps:

 · Put the name of the table in the Table Name Field


 · And query the table.
 · It should list all the DFFs based on the table. From there, pick the one with
Extra Info. SeeFigure 2.5 – EITs.
 · Copy the Title.
Figure 5 EITs

(Figure 2.5 – EITs)

Now, go to the Segments.

Responsibility: Application Developer

Navigation: Flex Field -> Descriptive -> Segments

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.

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.

Responsibility: Super HRMS Manager

Navigation: Security -> Information Type Security

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.

Now we can use our EIT.

Figure 6 Linking DFFs to Responsibilities

(Figure 2.6 – Linking DFFs to Responsibilities)

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.

Special Information Types

Special Information types or SITs are KFFs. These serve the same purpose as the EITs do,
which is additional data storage. However as it is a KFF; it stores data in form of combinations
unlike EITs do. We can use SITs for Job, Position and Personal analysis in Oracle Core-HR.
Let’s have a look how to implement one.

 Go to KFF Register
 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.

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. SeeFigure 2.2 – KFF definition.

Responsibility: Application Developer

Navigation: Flex Field -> Key -> Segments

Steps:

 · Query for the FF titled: Job Flex field


 · Create a new row with appropriate data

Figure 2 KFF definition


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

Figure 3 KFF Segments


(Figure 2.3 – KFF Segments)

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.

Responsibility: US Super HRMS Manager

Navigation: Work Structure -> Job -> Job Group

Figure 9 Defining Job Groups


(Figure 2.9 – Defining Job Groups)

Job Group Name of the Job Group; should be unique


Job KFF The Job KFF it uses. We might have more than one Job KFFs
Structure
Business Group Add a Business Group. If the “HR:Cross Business Group” profile option
is set to ‘Y’, this should populate automatically.
Master Job Group This is to make the Job Group as a Master Job Group. Master Job
Groups are used in Oracle Projects to make job mappings. So it is
advised to contact to PA consultant before making the Job group a
master one.

Setting up Jobs
Next task is to add jobs. See Figure 2.10 – Defining Jobs.

Responsibility: Super HRMS Manager

Navigation: Work Structure -> Job -> Description

Job Group Enter the Job Group name, which holds this job
Name Enter the name of the Job; if there are any segments in the KFF used
in the Job group, we need to enter a unique combination of segments
to create a new job.
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.

Figure 10 Defining Jobs

(Figure 2.10 – Defining Jobs)

Position
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.
One example will help us understand it better.

An accountant, who is a Finance Manager, is acting as a CFO in ABC Inc.

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,

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

Responsibility: Super HRMS Manager

Navigation: Work Structure -> Position -> Description


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:

• Single Incumbent: Only one employee is allowed to hold the


position at any point of time

• Shared: It can have several incumbents

• Pooled : Position is loosely defined and is available to a set of


employees

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

Responsibility: Super HRMS Manager

Navigation: Work Structure -> Position -> Hierarchy / Diagrammer

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.

Figure 8 Defining Locations

(Figure 2.8 – Defining Locations)

Responsibility: Super HRMS Manager

Navigation: Work Structure -> Location

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 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”

Setting up Grades

Responsibility: Super HRMS Manager

Navigation: Work Structure -> Grade -> Description

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.

That should be all. Simple, isn’t it?

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.

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.

Let’s go define it.

Responsibility: Super HRMS Manager

Navigation: Work Structure -> Grade -> Grade Rate

Steps:

 · Enter Name of a rate.


 · Put units as Money.
 · Select a Grade from the drop down with a currency
 · Key in a Minimum and maximum value, and the mid value must get
calculated automatically.

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.

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.

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

Responsibility: Super HRMS Manager

Navigation: Work Structure -> Organization -> Description

Steps:

Figure 7 Defining Organizations


(Figure 2.7 – Defining Organizations)

Name Name of the Organization.


Type Type of the Organization, is it a department, a division, subdivision
etc.
From The start date.
To The end date; can be left blank
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.

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.

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:
Business Group Info EIT

1. Employee number Generation – Automatic / Manual.

2. Applicant number Generation – Automatic / Manual.

3. The KFF names of Job, Position, Grade, People Group, Cost allocation and
Competency.

4. The Legislation code: defines the Government it should report to.

5. The Currency to be used in the BG.

6. The start of the Fiscal Year.

Benefits defaults EIT

1. Default Payroll name.

2. Do we want to create the benefits assignment or not.

PTO Balance Types

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. : )

Pay slip Information

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.
Self Service preference

1. This is a place to configure some details on our SSHR. Like the following
questions.

2. Do we need paper pay slips / online pay slips / both?

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.

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.

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

 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

Navigation: Work Structure -> Organization -> Hierarchy

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

Responsibility: Super HRMS Manager

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.

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.

Responsibility: Super HRMS Manager

Navigation: people -> Salary management

Figure 14 Security profiles

(Figure 2.14 – Security profiles)

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?

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

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.

Let’s see how to define a salary basis.


Name Enter the name of the Salary Basis
Basis Should be one of the following:

Hourly Salary ; Paid per hour

Monthly Salary: Paid per month

Annual Salary: Paid per Annum

Period Salary: Based on the Pay Period


Pay annualization Enter the factor with which the salary can be converted to
factor annual salary.

For an example, if the salary is monthly, this field will be 12,


for annual it will be 1. For hourly salary, it should be 2080 (52
weeks X 40 hours each week)

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

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.

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
 · Security Profiles

Let’s go through them one by one.

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.
 Run an API to update the 98 employees with new position
 Go to Mass update and update the 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. : )

Option 3; let’s see what a mass update is.

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.

Responsibility: Super HRMS Manager

Navigation: people -> Mass update of Person -> Mass Update of Employee Assignments

Figure 11 Mass Update

(Figure 2.11 – Mass Update)

Steps:
 · Put a name for the update process in the name field.
 · Put an effective date of change.
 · Choose selection criteria, with which we want to filter the Employees for
whom the change is intended. As per our example, we will pull all the employees
with position as “Fund Manager”.
 · Now, press query.
 · This should now list all the employees who are “Fund Managers”.
 · Now, select the employees we want to make a change to. As per our
example, we will select just the targeted 98 of them.
 · We can use the selection drop down to invert selection / all/ none.
 · Now click on the new tab.
 · This tab should list us all the employees we selected in the first tab.
 · Now change the field we want to change in here. As per example, we will
change the position to the new one.
 · Add a date track mode and process it.

This is it. Now, all the 98 employees will have the new position in there.

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.

Responsibility: Super HRMS Manager

Navigation: people -> Mass update of Person -> Mass Update of Employee Assignments

Figure 12 Mass Move

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

Salary Management – Web ADI


Salary Management becomes an issue, when there are a lot of salary proposals in line and
we have to enter the same in the system. We can easily use an API to do so, but as we
discussed, one must be good at PL/SQL to do it. What if someone is not? There is a tool called,
Web-ADI, with which updating salaries can be done in a jiffy.

Responsibility: Super HRMS Manager

Navigation: people -> Salary management

Steps:

 · Open the screen


 · Query with any criteria based on the available fields.
 · If we cannot see the column we wanted to query with then add the required
field, with the Folder Menu -> Show Field.
 · Now, as the query pulls the Salary details of the employee we have queried
for go to file menu and click on Export Data.
 · It should open up a web page asking us the format we want to export the file
to. Choose the Excel version based on our machine and press next. See Figure 2.13
– Web-ADI.

Figure 13 Web-ADI
(Figure 2.13 – Web-ADI)

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

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

Table Name Date Primary Key Description


Tracke
d?
HR_ALL_ORGANIZATION_UNI No ORGANIZATION_ID Stores the details of
TS the Organizations
defined in the
system, including
the type and
BUSINESS_GROUP
_ID.
HR_LOCATION_EXTRA_INFO No LOCATION_EXTRA_INFO_ID Location EIT table
HR_LOCATIONS_ALL No LOCATION_ID Stores the locations
defined in the
system with
address.
HR_ORGANIZATION_INFORMA No ORG_INFORMATION_ID Stores the EIT
TION 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_IN No ASSIGNMENT_EXTRA_INFO Stores the
FO _ID 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_STRUCT No ORGANIZATION_STRUCTUR Stores the
URES E_ID 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_ Yes PERSON_TYPE_USAGE_ID This table stores the
F 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
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 help big enterprises. Finally the underlying tables are discussed with their
usage and relationship with others.

Potrebbero piacerti anche