Oracle Hrms
Oracle Hrms
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
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 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.
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:
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.
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.
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 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:
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
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.
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:
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 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.
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.
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 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.
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.
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.
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
Talent Management
Talent management set of functionalities are more related to the appraisal process, employee reviews and
all. Some of the major functionalities are:
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
Learning Outcomes
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
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.
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
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:
back to top
Creating a Responsibility
Now it’s time for a new responsibility. See Figure 2.4 – Defining
Responsibilities.
back to top
Creating a User
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.
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.
back to top
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.
Let’s see how to find and update a profile option. See Figure 1.8 – Finding
Profile Options.
Steps:
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.
Steps:
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.
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.
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
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.
Based on the phases, there are different statuses that a request can
have:
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.
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.
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
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
Learning Outcomes
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.
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.
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:
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.
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
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
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
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.
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.
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.
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
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.
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.
Manual Entries
There are cases where the payroll users key in entry by themselves. This type of entry is
known as the manual entries.
Navigation: Total Compensation -> Enter and Maintain -> <Query the Employee> ->
Assignments -> Entries
Steps: Select the element we want to update / create a new record with the element name.
See Figure 5.21 – Element Entries.
Figure 21 Element Entries
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
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.
To facilitate an interface between an external system and the element entries, oracle has
developed a feature called the batch element entry. This feature enables the users to update
assignment entries of huge numbers, at one shot as a single batch.
Steps: Create a new record with these details. See Figure 5.22 – Batch Element Entries.
Figure 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.
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.
This is the button to be used, when there is a need to make an entry for an element for
multiple assignments.
Now, this is the button, we would use, when we want to make an entry for multiple element
for a single assignments.
Assignment Select an Assignment for which the element entries are going to be
made
Name It will be auto populated based on the chosen assignment.
Element Set Choose an element set.
Element Elements as per the chosen element set appear here. Then one of
the elements can be selected and the Input values, Defaults, Costing
etc can be entered as explained in Element lines.
This is the Button, we would use, when we want to make an entry for a single element for
multiple assignments. However the multiple assignments must be grouped together with an
assignment set.
Assignment Set Select an Assignment Set for which the element entries are going to
be made
Payroll Choose a Payroll with which all the assignments in the assignments
are related to.
Element Enter an element for which the entries are going to be made
Rest of the Fields The rest of the fields are identical to what we have in Element Lines
/ Assignment Lines.
Using Totals:
Totals can be used to validate the BEE Transfer. We can put in conditions in order to validate
if the number of entries made matches with the number of entries requested by us. Or even
compare the sum of the number of hours entered as a whole. Or even do the summation of
the monetary units and compare it with calculation. So this is a powerful tool to validate data.
For an example, we want a total of entries that are made. We choose a type of Line Count.
Now, we add 55 in the Control Total, as we know there are 55 entries that are to be made.
Then we can set up a message that will pop up if the line count exceeds or goes down the
number 55.
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.
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.
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.
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.
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.
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.
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.
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.
Steps: Create a new record and start filling in the details. See Figure 5.8 – Earnings
Template.
Let's talk about the standard Calculation rule a little bit. There are four predefined standard
calculation rules in place:
· 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.
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.
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.
Insufficient Funds With this option, system determines the action, if there are not
enough funds to pay off the entire deduction.
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
Steps: Create a new record and populate the details. See Figure 5.10 – Element Links.
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.
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:
The payment methods vary with the types of banks as well. For an example, if the enterprise
deals with 4 different banks, like A, B, C and D. It will need four different payment methods
defined for each of the banks it deals with, even though all of the payment methods will be
of type ‘Automatic Transfer’.
Steps: Create a new record and start filling in the details. See Figure 5.15 – Payment
Methods.
Consolidation Set
A consolidation set is a methodology that is used, to group payrolls with similar timelines
together. This makes payroll process and post processes easy to manage and run. Although
a lot of payrolls can be part of one consolidation set; every payroll must have one, and only
one consolidation set attached to it.
Steps: Create a new row with the name of the consolidation set. We can create as many as
we want, based on our requirement. See Figure 5.16 – Consolidation Sets.
Steps: Create a new record and fill in the details. See Figure 5.17 – Define Payroll.
Payroll is all about paying salaries to employees. And the salary must be
heaved from an account in the enterprise. Usually the labour cost is distributed
based on different organizations that get benefited by the work. The
distribution system is known as costing.
As discussed earlier, the costing information must be passed to the finance department in
order to keep an account of labour cost. GL (Oracle General Ledger, a module in Oracle
Financials) owns a key flex field known as Accounting flex field. Oracle financials uses the
Accounting flex field to identify different accounts linked to the enterprise.
The GL Flex field mapping helps the system link different accounts setup in the HRMS system
with the accounts available in GL (accounting flex field). In other words, with the GL Mapping
we are going to establish a relationship between the Cost allocations KFF with the Accounting
KFF. With this mapping in place, when the costing process (A post processing process) is run,
it helps the system to carry the costing information to GL.
Steps: Query the payroll and fill in the details. See Figure 5.18 – GL Flex Field Mapping.
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.
Steps: Create a new record and start entering the details. See Figure 5.19 – Element 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.
Steps: Create a new record and start entering the details. See Figure 5.20 – Assignment
Sets.
Name Name of the Assignment Set
Payroll May or may not be populated. If a payroll is chosen, then assignments,
only from that payroll will be included
Criteria One or more conditions can be defined in this window, which will define
the eligibility of an assignment to be part of this set. For an example,
one assignment set can have the following conditions.
So all the assignments that are hired after 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.
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.
Steps: Create a new record and start filing the details in the fields. See Figure 5.11 – Define
Balance.
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:
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
This screen helps us to seed the Input values of various Elements into the Balance.
Using Classifications:
Before assigning Classifications to the Balances, there might be a need to create secondary
classifications. Because in most cases, all the elements in a Primary classification are not
meant to be included in a single balance; and the inclusion is needed just for a subset of it.
So in cases like that, secondary classification is created first as a subset of the primary, with
the required elements in list; and then the secondary classification is attached to the balance.
Navigation: Total Compensation -> Basics -> Balance -> Classifications (Button)
Steps: Create new rows and start filling in the details. See Figure 5.13 – Balance
Classifications.
Navigation: Total Compensation -> Basics -> Balances -> Dimensions (Button)
Steps: Create new rows and start filling in the details. See 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.
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)
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.
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.
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".
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.
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.
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.
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.
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.
Here, we must have the start check number with us. We can get that from the Printer. All
we need is the number of the first check leaf which is going to be printed.
We will have to run this Process twice, once for the Normal Payroll check, and again for the
Third party Garnishments.
Deposit Advice
The Deposit Advice actually prints the Pay slips that we might send to the Employees. This
Process goes through the Statements of Earning and gets us the details of the Earning and
Deductions in a more understandable format as a report.
Costing
As Part of this process, Payroll Engine divides the costs according to the Cost Allocation Flex
Field, keeping Overrides in consideration. This Process assures that the cost paid for labour
is accurately being captured. If no Costing Information is found on any particular entry, the
cost goes to the Suspense Account.
Transfer to GL
This Process is the one that takes care of the migration of cost to the General Ledgers. The
Payroll Costs are migrated to the General Ledger and then it gets added against the actual
financial accounts.
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:
Costing Detail Report: This is run after the Transfer to GL process is complete for all
Payrolls as of that date. This gives us a detailed picture of the accounts and the respective
Labour costs for all Payrolls run as of the given dates.
Costing Summary Report: This is run after the Transfer to GL process is complete for all
Payrolls as of that date. This is more or less similar to the Costing Detail report, however
with a summary of data, not with details.
Payroll Register Report: This is run after the Transfer to GL process is complete for all
Payrolls as of that date. This gives us details on the entire payroll process, starting from
prepayments to costing for all Payrolls run as of the given date.
Third Party Payment Register Report: This is more or less the same as the Payment
Register Report. However this tracks the Third Party Payments only.
US Gross to Net Summary: With this report, we can see the summation of Salary
information of the employees with Gross Earnings, Net Earnings and deductions.
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.
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
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
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.
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.
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.
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.
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.
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:
Retro by Set
This is not required in Retro Pay by Element. This is used only in the other two cases.
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.
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.
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? :)
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
Learning Outcomes
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.
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
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.
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?
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.
Name Name of the Structure; this will be used by the routines, to call the
DFF from Forms or Programs.
Table Application The application to which the Parent Table belongs to.
Structure Column The name of the column in the table that can be used by the DFF to
distinguish between structures. Based on the data supplied to this
Column different DFF structures will be opened.
Context Prompt The Prompt we want to see for the field on which the user will be
specifying the context.
DFF View Name This shows us the view created by the application to store the DFF
data.
Protected This check box makes sure that, there cannot be any changes to the
structure of the DFF.
Reference Fields This is the place where, we mention all the possible reference fields
for the DFF. Although we use them or not, it is always better to list
the reference items for future use.
Columns This screen lists all the fields in the table along with the DFF
attributes with an Enabled Flag against them. The flag denotes the
fields that are part of the DFF structure.
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?
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.
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.
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.
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)
Default Type The type of Default value for the attribute. Could be a Constant,
a Field, a Profile Value, a Segment or even a SQL statement.
Security Enabled Makes the Security rules apply based on the security Profile and
responsibilities.
Display Size The size of the text field which will be displaying this field.
Concatenated size This is the size to be displayed when the application shows the
attribute on a concatenated Flex field values.
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
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:
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.
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.
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.
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.
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.
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.
Steps:
Meaning The meaning. This can be used as a reference to the lookup type, that
explains the purpose of the lookup
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.
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
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.
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.
Steps:
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.
Steps:
Usages This one shows all the places where the value set is being used, either
a Concurrent Program or a KFF or a DFF.
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:
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.
Right Justify It makes the Value right justified with zero filled to the rest of
characters.
Min Value The Minimum/ Low Value.
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
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.
Steps:
Dependent value Set If it’s a dependent Value set, mention the Value set on which
this value set depends on.
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.
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.
Alert Category The type of alert, like it is an alert on the system, Product or is it
about security. All these are usually used by the seeded system
messages. Blank or User is the type we want to use in a custom
message.
Alert Severity The type of the severity of the alert is it an Error/ warning or is it
critical to the system. For custom messages leave blank.
Log Severity If the message is being logged for system administrator, then what
type of log would this be? Usually this raises another set of routines,
to inform the system administrator about the issue via emails / texts.
Message Text
This is the place that stores the text of the message that gets displayed. There are a lot of
possible ways to decorate it and make it more meaningful.
Parameters: We can receive parameters from the calling routine, and use them as part of
the message text. We can set variables for the same. They can be used with an Escape
Character ‘&’ or ‘:’. For an example:
“The exemption limit is not set up for the legal employer &ORG_NAME for the
current period.”
This is a message text, and &ORG_NAME is the variable that can be passed to the Message
by the calling routine. So if the routine passes ORG_NAME = ‘ABC Corp.’ then the message
will look like this:
“The exemption limit is not set up for the legal employer ABC Corp. for the
current period.”
Formatting: In formatting, we can use the HTML codes to format our messages. It can start
with a <html >tag and can have the required tags in the body. Here is a sample.
<html><b>You cannot complete this task because one of the following events
caused a loss of page data:<br> <ul><li>Your login session has expired. <li>A
system failure has occurred.</ul></b> To proceed, please select the global
Home link to return to the main menu. Then, access this page again using the
navigation controls (menu, links, and so on) within the application. </html>
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
The Executable
This is the place where we register the code / file with the application. See Figure 3.16 – Defining Executab
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.
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.
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.
Enabled This flag, if unchecked, makes the Program unavailable for run.
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.
Default Type/ Value The Default type of the Parameter is the value that is going to appear when we
open the parameter window in the submit Request screen.
SQL Statement: A Value returned by the SQL statement put in Default Value
Required Makes the Parameter a mandatory one to be entered on the request submissio
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.
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
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
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.
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:
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).
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:
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.
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.
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.
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:
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.
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.
His Assignment
His Service with the Firm
His Salary
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:
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.
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.
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?
Steps:
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
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.
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.
· 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.
Steps:
Steps:
However the EIT must be linked to the responsibility that we are using. Only after the EIT is
linked to the responsibility we will be able to use the EIT with that responsibility. This is an
additional security feature. For an example, we might not want to allow our Payroll User to
view /update someone’s location DFF. In that case just do not link the EIT to the payroll user
Responsibility. Let’s see how to link EITs.
Steps:
· Query for the Responsibility we want the EIT to be linked to. See Figure 2.6 –
Linking DFFs to Responsibilities
· Add a new record with the EIT context name in the drop down.
· Save the record.
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 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.
Steps:
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.
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.
Setting up Jobs
Next task is to add jobs. See Figure 2.10 – Defining Jobs.
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.
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.
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,
Setting up Positions
As we have the KFF defined, let’s see how to create a new position.
• 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.
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.
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.
Setting up Grades
Steps:
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.
Steps:
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.
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.
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.
Steps:
NOTE:
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
3. The KFF names of Job, Position, Grade, People Group, Cost allocation and
Competency.
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. : )
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.
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
Steps:
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.
Steps:
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.
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.
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.
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
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. : )
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.
Navigation: people -> Mass update of Person -> Mass Update of Employee Assignments
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.
Navigation: people -> Mass update of Person -> Mass Update of Employee Assignments
· 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.
Steps:
Figure 13 Web-ADI
(Figure 2.13 – Web-ADI)
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.
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.