You are on page 1of 206

Using OracleR

FastFormula
RELEASE 11i
December 2001
Using Oracle FastFormula Release 11i
The part number for this book is A73295–04.
Copyright E 1996, 2000, 2001 Oracle Corporation. All rights reserved.
Major Contributors: Louise Raffo, Julia Margetson, Rebecca Peters, John Woodward,
Andrew Moran, Juliette Fleming, Michael O’Shea, Mark Rowe, Mark Swaine.
Contributors: Kevin Kelley, Michael Laverty, Keith Ekiss, Charles Hudson, Janet
McCandless.
The Programs contain proprietary information of Oracle Corporation; they are
provided under a license agreement containing restrictions on use and
disclosure and are also protected by copyright, patent and other intellectual and
industrial property laws. Reverse engineering, disassembly or decompilation of
the Programs, except to the extent required to obtain interoperability with other
independently created software or as specified by law, is prohibited.

Program Documentation is licensed for use solely to support the deployment of


the Programs and not for any other purpose.

The information contained in this document is subject to change without notice.


If you find any problems in the documentation, please report them to us in
writing. Oracle Corporation does not warrant that this document is error free.
Except as may be expressly permitted in your license agreement for these
Programs, no part of these Programs may be reproduced or transmitted in any
form or by any means, electronic or mechanical, for any purpose, without the
express written permission of Oracle Corporation.

If the Programs are delivered to the US Government or anyone licensing or


using the Programs on behalf of the US government, the following notice is
applicable:

RESTRICTED RIGHTS LEGEND


Programs delivered subject to the DOD FAR Supplement are ‘commercial
computer software’ and use, duplication and disclosure of the Programs
including documentation, shall be subject to the licensing restrictions set forth
in the applicable Oracle license agreement. Otherwise, Programs delivered
subject to the Federal Acquisition Regulations are ‘restricted computer software’
and use, duplication and disclosure of the Programs shall be subject to the
restrictions in FAR 52.227–19, Commercial Computer Software – Restricted
Rights (June 1987). Oracle Corporation, 500 Oracle Parkway, Redwood City, CA
94065.

The Programs are not intended for use in any nuclear, aviation, mass transit,
medical, or other inherently dangerous applications. It shall be licensee’s
responsibility to take all appropriate fail–safe, back–up redundancy and other
measures to ensure the safe use of such applications if the Programs are used for
such purposes, and Oracle disclaims liability for any damages caused by such
use of the Programs.
Oracle is a registered trademark, and Oracle Financials, Oracle Discoverer, OracleMetalink,
PL/SQL, and SQL*Plus, are trademarks or registered trademarks of Oracle Corporation.
Other names may be trademarks of their respective owners.
Contents

Preface Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
Audience for This Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
How To Use This Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
Do Not Use Database Tools to Modify Oracle Applications
Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv
About Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
Your Feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv

Chapter 1 Oracle FastFormula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 –1


Oracle FastFormula Overview . . . . . . . . . . . . . . . . . . . . . . . . . 1 –4
Uses for Oracle FastFormula . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 –5
Introduction to Formula Components . . . . . . . . . . . . . . . . . . . 1 –8
Formula Writing Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 – 15
Writing or Editing a Formula . . . . . . . . . . . . . . . . . . . . . . . . . . 1 – 20
Defining Global Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 – 22
Registering a Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 – 23
Writing Payroll Formulas for Elements . . . . . . . . . . . . . . . . . . 1 – 25
Writing Formulas for Accrual Plans . . . . . . . . . . . . . . . . . . . . . 1 – 26
Writing Formulas To Calculate Absence Duration . . . . . . . . . 1 – 32
Writing Formulas for Element Skip Rules . . . . . . . . . . . . . . . . 1 – 33
Copying and Adding Features to a QuickPaint Formula . . . 1 – 34
Writing Formulas for Validation . . . . . . . . . . . . . . . . . . . . . . . . 1 – 35
Editing Assignment Set Formulas . . . . . . . . . . . . . . . . . . . . . . 1 – 36
Bulk Compiling Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 – 37
Editing a Quick Paint Formula . . . . . . . . . . . . . . . . . . . . . . . . . 1 – 38

Contents iii
Checking an Element Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 – 39
Checking a User Table Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 – 40
Writing Formulas for Templates . . . . . . . . . . . . . . . . . . . . . . . . 1 – 41

Chapter 2 Oracle FastFormula Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 –1


Formula Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 –2
Input Values in Payroll Formulas . . . . . . . . . . . . . . . . . . . . . . . 2 –3
Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 –5
Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 –7
Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 – 11
Arithmetic Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 – 12
Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 – 13
..................................................... 2 – 20
Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 – 33
Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 – 34
Formula Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 – 40
Formula Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 – 41
Database Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 – 43
Static Database Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 – 44
Dynamic Database Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 – 61
Formulas for Payroll Legislative Checks . . . . . . . . . . . . . . . . . 2 – 67
Formulas for Benefits Administration . . . . . . . . . . . . . . . . . . . 2 – 68
Total Compensation Formula Types . . . . . . . . . . . . . . . . . . . . . 2 – 69
User Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 – 88
UK Only Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 – 89
JP Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 – 91
Sample Accrual Formula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 – 93
Sample Proration Formulas (UK Only) . . . . . . . . . . . . . . . . . . 2 – 106
Sample Rates History Formulas (UK Only) . . . . . . . . . . . . . . 2 – 118

Glossary

Index

iv Using Oracle FastFormula


Reader’s Comment Form
Using Oracle FastFormula, Release 11i
A73295–04

Oracle Corporation welcomes your comments and suggestions on the quality and usefulness
of this publication. Your input is an important part of the information we use for revision.
• Did you find any errors?
• Is the information clearly presented?
• Do you need more information? If so, where?
• Are the examples correct? Do you need more examples?
• What features did you like most about this manual? What did you like least about it?
If you find any errors or have any other suggestions for improvement, please indicate the topic, chapter,
and page number below:

Please send your comments to:


Oracle Applications Documentation Manager
Oracle Corporation
500 Oracle Parkway
Redwood Shores, CA 94065
Phone: (650) 506–7000 Fax: (650) 506–7200
If you would like a reply, please give your name, address, and telephone number below:

Thank you for helping us improve our documentation.


Preface

Preface v
Audience for This Guide
Welcome to Release 11i of Using Oracle FastFormula
This guide assumes you have a working knowledge of the following:
• The principles and customary practices of your business area.
• Oracle FastFormula
If you have never used Oracle FastFormula, Oracle suggests you
attend one or more of the Oracle FastFormula training classes
available through Oracle University.
• The Oracle Applications graphical user interface.
To learn more about the Oracle Applications graphical user
interface, read the Oracle Applications User’s Guide.
See Other Information Sources for more information about Oracle
Applications product information.

How To Use This Guide


This guide contains the information you need to understand and use
Oracle FastFormula. It provides details of syntax for each of the
statements and functions available in FastFormula as well as examples
of the different types of formulas you may want to write.
This preface explains how this user guide is organized and introduces
other sources of information that can help you. This guide contains the
following chapters:
• Chapter 1 contains an introduction to Oracle FastFormula and
information about writing, editing, and using formulas to
configure your system.
• Chapter 2 contains reference information for each command or
function, sample formulas, and lists of all static and dynamic
database items that are available to you in Oracle FastFormula.
This list of items provides a simple method of accessing your
HRMS data in FastFormula.

Documentation Accessibility
Our goal is to make Oracle products, services, and supporting
documentation accessible, with good usability, to the disabled
community. To that end, our documentation includes features that

vi Using Oracle FastFormula


make information available to users of assistive technology. This
documentation is available in HTML format, and contains markup to
facilitate access by the disabled community. Standards will continue to
evolve over time, and Oracle Corporation is actively engaged with
other market–leading technology vendors to address technical
obstacles so that our documentation can be accessible to all of our
customers. For additional information, visit the Oracle Accessibility
Program web site at http://www.oracle.com/accessibility/.
Accessibility of Code Examples in Documentation
JAWS, a Windows screen reader, may not always correctly read the
code examples in this document. The conventions for writing code
require that closing braces should appear on an otherwise empty line;
however, JAWS may not always read a line of text that consists solely
of a bracket or brace.
Accessibility of Links to External Web Sites in Documentation
This documentation may contain links to web sites of other companies
or organizations that Oracle Corporation does not own or control.
Oracle Corporation neither evaluates nor makes any representations
regarding the accessibility of these web sites.

Other Information Sources


You can choose from many sources of information, including online
documentation, training, and support services, to increase your
knowledge and understanding of Oracle FastFormula.
If this guide refers you to other Oracle Applications documentation,
use only the Release 11i versions of those guides.

Online Documentation
All Oracle Applications documentation is available online (HTML and
PDF).
• Online Help – The new features section in the HTML help
describes new features in 11i. This information is updated for
each new release of Oracle HRMS. The new features section also
includes information about any features that were not yet
available when this guide was printed. For example, if your
administrator has installed software from a mini–pack as an
upgrade, this document describes the new features. Online help
patches are available on Metalink.

Preface vii
• 11i Features Matrix – This document lists new features available
by patch and identifies any associated new documentation. The
new features matrix document is available on Metalink.
• Readme File– Refer to the readme file for patches that you have
installed to learn about new documentation or documentation
patches that you can download.

Related User’s Guides


Oracle FastFormula shares business and setup information with other
Oracle Applications products. Therefore, you may want to refer to
other user guides when you set up and use Oracle FastFormula.
You can read the guides online by choosing Library from the
expandable menu on your HTML help window, by reading from the
Oracle Applications Document Library CD included in your media
pack, or by using a Web browser with a URL that your system
administrator provides.
If you require printed guides, you can purchase them from the Oracle
store at http://oraclestore.oracle.com.

Guides Related to All Products

Oracle Applications User’s Guide


This guide explains how to enter data, query, run reports, and navigate
using the graphical user interface (GUI) available with this release of
Oracle HRMS (and any other Oracle Applications products). This guide
also includes information on setting user profiles, as well as running
and reviewing reports and concurrent processes.
You can access this user’s guide online by choosing ”Getting started
with Oracle Applications” from any Oracle Applications help file.

Oracle Alert User’s Guide


This guide explains how to define periodic and event alerts to monitor
the status of your Oracle Applications data.

Oracle Applications Developer’s Guide


This guide contains the coding standards followed by the Oracle
Applications development staff. It describes the Oracle Application
Object Library components needed to implement the Oracle

viii Using Oracle FastFormula


Applications user interface described in the Oracle Applications User
Interface Standards for Forms–Based Products. It also provides information
to help you build your custom Oracle Forms Developer 6i forms so that
they integrate with Oracle Applications.

Oracle Applications User Interface Standards for Forms–Based


Products
This guide contains the user interface (UI) standards followed by the
Oracle Applications development staff. It describes the UI for the
Oracle Applications products and how to apply this UI to the design of
an application built by using Oracle Forms.

Guides Related to This Product

Using Oracle HRMS – The Fundamentals


Use this guide to learn about representing your enterprise on your
application. This includes setting up your organization hierarchy,
recording details about jobs and positions within your enterprise,
defining a payroll, and also how to manage your costs.

Managing Your Workforce Using Oracle HRMS


Use this guide to learn about all aspects of managing your workforce.
This includes how to represent your workforce on your application,
recruiting new employees and developing their careers, and also
defining and managing budgets.

Running Your Payroll Using Oracle HRMS


This user guide provides information about wage attachments, taxes
and social insurance, the payroll run, and other processes.

Managing Total Compensation Using Oracle HRMS


Use this guide to learn about setting up the application to store and
process information on your total compensation package, including
salary administration, other earnings, deductions, benefits, absence
management and PTO accrual plans. For US users, standard and
advanced benefits is covered in a separate guide called Managing Total
Compensation Using Oracle HRMS.

Preface ix
Configuring, Reporting and System Administration in Oracle HRMS
This guide provides information about extending and configuring
Oracle HRMS, managing security, auditing, information access, and
letter generation.

Implementing Oracle HRMS


This guide explains the setup procedures you need to carry out in order
to successfully implement Oracle HRMS in your enterprise.

Implementing Oracle Self–Service Human Resources (SSHR)


This guide provides information about setting up the self–service
human resources management functions for managers and employees.
Managers and employees can then use an intranet and Web browser to
have easy and intuitive access to personal information and career
management functionality.

Using Oracle Training Administration (OTA)


This guide provides information about how to set up and use Oracle
Training Administration to facilitate your training and certification
business.

Using Oracle SSP/SMP


This guide provides information about setting up and using Oracle
SSP/SMP to meet your statutory sick pay and statutory maternity pay
obligations.

Using Application Data Exchange


This guide provides information about using Application Data
Exchange to view HRMS data with desktop tools, and upload revised
data to your application.

Oracle Business Intelligence System Implementation Guide


This guide provides information about implementing Oracle Business
Intelligence (BIS) in your environment.

x Using Oracle FastFormula


BIS User Guide 11i
This guide is provided as online help only from the BIS application and
includes information about intelligence reports, Discoverer workbooks,
and the Performance Management Framework.

Using Oracle Time Management


This guide provides information about capturing work patterns such as
shift hours so that this information can be used by other applications
such as General Ledger.

Installation and System Administration

Oracle Applications Concepts


This guide provides an introduction to the concepts, features,
technology stack, architecture, and terminology for Oracle Applications
Release 11i. It provides a useful first book to read before an installation
of Oracle Applications. This guide also introduces the concepts behind
Applications–wide features such as Business Intelligence (BIS),
languages and character sets, and Self–Service Web Applications.

Installing Oracle Applications


This guide provides instructions for managing the installation of Oracle
Applications products. In Release 11i, much of the installation process
is handled using Oracle Rapid Install, which minimizes the time to
install Oracle Applications and the Oracle8 technology stack, and the
Oracle8i Server technology stack by automating many of the required
steps. This guide contains instructions for using Oracle Rapid Install
and lists the tasks you need to perform to finish your installation. You
should use this guide in conjunction with individual product user’s
guides and implementation guides.

Upgrading Oracle Applications


Refer to this guide if you are upgrading your Oracle Applications
Release 10.7 or Release 11.0 products to Release 11i. This guide
describes the upgrade process and lists database and product–specific
upgrade tasks. You must be either at Release 10.7 (NCA, SmartClient,
or character mode) or Release 11.0, to upgrade to Release 11i. You
cannot upgrade to Release 11i directly from releases prior to 10.7.

Preface xi
Maintaining Oracle Applications
Use this guide to help you run the various AD utilities, such as
AutoUpgrade, AutoPatch, AD Administration, AD Controller, AD
Relink, License Manager, and others. It contains how–to steps,
screenshots, and other information that you need to run the AD
utilities. This guide also provides information on maintaining the
applications file system and database.

Oracle Applications System Administrator’s Guide


This guide provides planning and reference information for the Oracle
Applications System Administrator. It contains information on how to
define security, customize menus and online help, and manage
concurrent processing.

Other Implementation Documentation

Oracle Applications Product Update Notes


Use this guide as a reference for upgrading an installation of Oracle
Applications. It provides a history of the changes to individual Oracle
Applications products between Release 11.0 and Release 11i. It includes
new features, enhancements, and changes made to database objects,
profile options, and seed data for this interval.

Multiple Reporting Currencies in Oracle Applications


If you use the Multiple Reporting Currencies feature to record
transactions in more than one currency, use this manual before
implementing Oracle HRMS. This manual details additional steps and
setup considerations for implementing Oracle HRMS with this feature.

Multiple Organizations in Oracle Applications


If you use the Oracle Applications Multiple Organization Support
feature to use multiple sets of books for one Oracle HRMS installation,
this guide describes all you need to know about setting up and using
Oracle HRMS with this feature.

Oracle Workflow Guide


This guide explains how to define new workflow business processes as
well as customize existing Oracle Applications–embedded workflow
processes. You also use this guide to complete the setup steps necessary

xii Using Oracle FastFormula


for any Oracle Applications product that includes workflow–enabled
processes.

Oracle Applications Flexfields Guide


This guide provides flexfields planning, setup, and reference
information for the Oracle FastFormula implementation team, as well
as for users responsible for the ongoing maintenance of Oracle
Applications product data. This manual also provides information on
creating custom reports on flexfields data.

Oracle Technical Reference Manuals


The technical reference guides are now available in electronic format
only. You can now access technical reference manuals for any Oracle
Applications product you have licensed.

Oracle Manufacturing and Distribution Open Interfaces Manual


This manual contains up–to–date information about integrating with
other Oracle Manufacturing applications and with your other systems.
This documentation includes open interfaces found in Oracle
Manufacturing.

Oracle Applications Message Reference Manual


This manual describes all Oracle Applications messages. This manual is
available in HTML format on the documentation CD–ROM for Release
11i.

Training and Support

Training
Oracle offers a complete set of training courses to help you and your
staff master Oracle HRMS and reach full productivity quickly. These
courses are organized into functional learning paths, so you take only
those courses appropriate to your job or area of responsibility.
You have a choice of educational environments. You can attend courses
offered by Oracle University at any one of our many Education
Centers, you can arrange for our trainers to teach at your facility, or
you can use Oracle Learning Network, Oracle University’s online
education utility. In addition, Oracle Training professionals can tailor
standard courses or develop custom courses to meet your needs. For

Preface xiii
example, you may want to use your organization structure,
terminology, and data as examples in a customized training session
delivered at your own facility.

Support
From on–site support to central support, our team of experienced
professionals provides the help and information you need to keep
Oracle FastFormula working for you. This team includes your
Technical Representative, Account Manager, and Oracle’s large staff of
consultants and support specialists with expertise in your business
area, managing an Oracle8i server, and your hardware and software
environment.

Do Not Use Database Tools to Modify Oracle Applications Data


Oracle STRONGLY RECOMMENDS that you never use SQL*Plus,
Oracle Data Browser, database triggers, or any other tool to modify
Oracle Applications data unless otherwise instructed.
Oracle provides powerful tools you can use to create, store, change,
retrieve, and maintain information in an Oracle database. But if you use
Oracle tools such as SQL*Plus to modify Oracle Applications data, you
risk destroying the integrity of your data and you lose the ability to
audit changes to your data.
Because Oracle Applications tables are interrelated, any change you
make using an Oracle Applications form can update many tables at
once. But when you modify Oracle Applications data using anything
other than Oracle Applications, you may change a row in one table
without making corresponding changes in related tables. If your tables
get out of synchronization with each other, you risk retrieving
erroneous information and you risk unpredictable results throughout
Oracle Applications.
When you use Oracle Applications to modify your data, Oracle
Applications automatically checks that your changes are valid. Oracle
Applications also keeps track of who changes information. If you enter
information into database tables using database tools, you may store
invalid information. You also lose the ability to track who has changed
your information because SQL*Plus and other database tools do not
keep a record of changes.

xiv Using Oracle FastFormula


About Oracle
Oracle Corporation develops and markets an integrated line of
software products for database management, applications
development, decision support and office automation, as well as Oracle
Applications, an integrated suite of more than 160 software modules
for financial management, supply chain management, manufacturing,
project systems, human resources and customer relationship
management.
Oracle products are available for mainframes, minicomputers, personal
computers, network computers and personal digital assistants,
allowing organizations to integrate different computers, different
operating systems, different networks, and even different database
management systems, into a single, unified computing and information
resource.
Oracle is the world’s leading supplier of software for information
management, and the world’s second largest software company. Oracle
offers its database, tools, and application products, along with related
consulting, education and support services, in over 145 countries
around the world.

Your Feedback
Thank you for using Oracle FastFormula and this user’s guide.
Oracle values your comments and feedback. This guide contains a
Reader’s Comment Form you can use to explain what you like or
dislike about Oracle FastFormula or this user’s guide. Mail your
comments to the following address or call us directly at (650) 506–7000.

Oracle Applications Documentation Manager


Oracle Corporation
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.
Or, send electronic mail to appsdoc_us@oracle.com.

Preface xv
xvi Using Oracle FastFormula
CHAPTER

1 Oracle FastFormula

Oracle FastFormula 1 –1
Oracle FastFormula

What is Oracle FastFormula?


Oracle FastFormula is a simple way to write formulas using English
words and basic mathematical functions. You can use information from
your database in formulas without learning the database structure or a
programming language.

How can you use formulas?


You can use formulas to:
• Calculate element pay values and run results during payroll
processing.
• Check that element entry values are valid for an assignment.
• Check that entries made to a user table are valid.
• Specify the criteria for including an assignment in an assignment
set.
• Create rules for benefits administration, such as eligibility
determination
• Select the database information you want to display in a
QuickPaint report, and perform calculations for the report.
• Specify the rules for skipping an element during payroll
processing.
• Prepare records in the format you require for the magnetic tape
writer. For most countries, the Oracle localization team has
written the required formulas.
• Perform legislative checks during a payroll run.
• Specify the rules for Paid Time Off accrual plans, such as how
much time is accrued and over what period, when new starters
are eligible to begin accruing time, and how much time can be
carried over to the next accrual term.
• Calculate the duration of an absence, given the start and end
dates and times.
• Configure the people management templates in a number of
ways, including supplying additional information to be available
from fields on the template, and validating field entries.
• Validate forms by calling formulas from the Custom Library.
Calling formulas from the Custom Library also allows you to

1 –2 Using Oracle FastFormula


easily create and maintain business rules. For more information
about calling formulas from PL/SQL, refer to the technical essay
Calling FastFormula from PL/SQL.
When you write a formula, you specify for which of these purposes you
will use it.

Are any formulas supplied?


Yes, formulas are predefined for all the tax calculations required for
Oracle Payroll. You should not edit these formulas; you will
automatically receive updates when tax rules change.
There are also a number of formulas predefined for accrual plans. You
can use these formulas as supplied, or customize them to match the
rules of your own plans.
When US and Canadian Payroll users define earnings and deductions,
the system automatically generates the formulas required to process
these elements. When necessary, you can edit these generated payroll
formulas. In other legislations, some formulas may be predefined, and
you can create as many other formulas as you require to process the
elements you define.
Formulas for QuickPaint reports and assignment sets can be generated
from criteria you enter in windows. You can edit these generated
formulas to add more functionality.

Oracle FastFormula 1 –3
Oracle FastFormula Overview
Formulas are generic expressions of calculations or comparisons you
want to repeat with different input values. They take input from a
window, a database, or a process, such as a payroll run and they return
values or messages. See Uses for Oracle FastFormula: page 1 – 5 for a
description of the different ways to use formulas.
Oracle FastFormulas are made up of a number of different components.
These can include assignment statements, different types of input and
expressions.
When writing formulas there are standard formula writing techniques you
should use. These ensure your formulas are easy to read, use and
understand, not only by yourself but also by other people.
Finally, there are strict rules for components as to the words and
punctuation you must use in a formula. These ensure Oracle
FastFormula can correctly perform the calculations and validation you
require. See Formula Reference: page 2 – 2 to find out the rules for a
particular component.

1 –4 Using Oracle FastFormula


Uses for Oracle FastFormula
You can use Oracle FastFormula to:
• Calculate your payrolls
• Define the rules for PTO accrual plans
• Define custom calculations for benefits administration
• Define QuickPaint reports
• Validate element inputs or user tables
• Edit assignment sets
• Calculate absence duration
• Configure people management templates
• Set up business rules and call them from other PL/SQL
applications
• Define your Oracle Business Intelligence Systems reports.

Payroll Calculations
You can use predefined payroll formulas. When you receive Oracle
Payroll, some formulas are predefined in your system. You cannot
make any changes to these formulas, but you can copy them and
modify the copies.
US Payroll users can use Oracle FastFormula to edit the formulas the
system generates for the earnings types, other payments and
deductions you initiate in Oracle Payroll. You make these edits directly
to the generated formula (not to a copy) using the Formula window.
All Oracle Payroll users can use FastFormula to write payroll
calculations and skip rules for elements you define yourself to
represent earnings and deductions. You can associate more than one
formula with each element, to perform different processing for
employee assignments with different statuses. US Payroll users need
only define their own elements and formulas for earnings and
deductions with highly complex calculations requiring a number of
different calls to the database.

PTO Accrual Plans


You can use Oracle FastFormula to edit the seeded Accrual type
formulas, or to write your own. Each accrual plan needs two formulas:
one to calculate gross accrual, and the other to return information to

Oracle FastFormula 1 –5
the PTO Carry Over process. You can optionally create a third formula
if you want to use the Batch Element Entry (BEE) to make absence
entries against accrual plans. This formula is called by BEE to check
whether an employee is eligible to use accrued PTO. See: Accrual
Formulas in Managing Total Compensation Using Oracle HRMS.

Benefits Administration
You can use Oracle FastFormula to augment the system’s benefits
administration features. Use formulas to configure your plan design to
the requirements of your enterprise. For example, you can write a
formula to calculate benefits eligibility for those cases where eligibility
determination is most complex.

QuickPaint Reports
In the Define QuickPaint Report window, you can paste database items
from a list into the Report Definition area and enter free text to label the
data. When you save your QuickPaint Report definition, a formula is
generated automatically. Formulas generated from QuickPaint do not
include conditional logic or calculations. You may want to add these
features, for example to sum up compensation elements or to report
different data for different assignments.

Validation of Element Inputs or User Tables


You can use Oracle FastFormula to validate user entries into element
input values using lookups or maximum and minimum values.
However, if you need more complex validation, you can write a
formula to check the entry.
You can also use a formula to validate entries into user tables that you
define.

Assignment Sets
When you define assignment sets in the Assignment Set window,
Oracle FastFormula generates a formula to define an assignment set
from the criteria entered. However, you may want to change the
sequence in which the set criteria are checked for each assignment.

Absence Duration
You can write a formula to calculate the duration of an absence from
the start and end dates and times. Your localization team may have

1 –6 Using Oracle FastFormula


created a default formula, but you can override this with your own
version.

Configuring People Management Templates


There are several ways you can use formulas to configure the people
management templates:
• A Template Validation formula can check values entered in a
field.
• A Template Information formula can specify information to be
displayed from the right mouse menu when a user right–clicks in
a field.
• A QuickPaint formula can return a text string to display in the
Assignment field on the Maintenance window and in the Data
Organizer.
• A QuickPaint formula can return message tokens that you can
use in a notification message issued from template forms.

Calling FastFormula from PL/SQL


You can call formulas from PL/SQL applications. This enables direct
access to data items and makes it possible to develop custom code for
localized business rules. More detailed information about calling
FastFormula from PL/SQL can be found in the technical essay Calling
FastFormula from PL/SQL.

Oracle Business Intelligence Systems (BIS) Reports


Using formulas you can configure your HRMS BIS reports so that they
answer the business questions which are important to your enterprise.
You can:
• Define how workforce should be counted within your enterprise
for the Workforce reports.
• Set up information about how you want to record and report on
regular and overtime hours for the Hours Worked Analysis
report.
• Set up the standard hours for your enterprise for the Absence
Analysis report.

Oracle FastFormula 1 –7
Introduction to Formula Components
The following information uses a series of examples to help you
understand how to use different components to build your Oracle
formulas.
To start with a simple example, suppose you wanted to calculate the
pay value for the element Wage by multiplying the number of hours an
employee works each week by hourly rate. You could write this
formula:
wage = hours_worked * hourly_rate
RETURN wage

Note: If you want to know the rules which govern the use of a
specific component, refer to Formula Reference.

Assignment and Return Statements


The first line is an Assignment statement that simply assigns a value to
the element Wage. The second line is a Return statement that passes
back the Wage value to the payroll run.

Constants and Variables


In this example, the Wage value is calculated, but it could be a constant
value, such as: wage = 200. To calculate the Wage value, Oracle
FastFormula needs to get values for the variables hours_worked and
hourly_rate. They are called variables because they can contain
different values depending, in this example, on which assignment the
payroll run is processing.

Data Types
Both variables and constants can be one of three data types:
• numeric
• text
• date
The variables in the Wage example are numeric.

1 –8 Using Oracle FastFormula


Types of Input
We have said that Oracle FastFormula needs to get values for the
variables hours_worked and hourly_rate. There are three ways it can
do this:
• Receiving them as input when the formula is called.
• Finding the values in the database from database items.
• Using global values, which you enter in the Globals window.
To use a database item or global value in your formula, you simply
refer to it by name. You can browse through lists of database items in
the Formulas window. To use a value passed to the formula at run
time, you must write an Inputs statement.

Input Statements
In our Wage example, suppose that hours_worked is an input value to
the element Wage. To pass the element input values to the formula
during a payroll run, you define an Inputs statement, as follows:
INPUTS ARE hours_worked
wage = hours_worked * hourly_rate
RETURN wage

The name you use in the Inputs statement must be the same as the
name of the element input value, and multiple words must be joined by
underscores. In this example, the input value hours_worked is
numeric. If the input value is not numeric, you must tell Oracle
FastFormula whether it is text or date. For example:
INPUTS ARE start_date (date)

Database Items
Suppose that hourly_rate is a standard rate taken from the Grade Rates
table. This is an example of a database item. A database item has a
label, or special piece of code, telling Oracle FastFormula the path to
take to access the data. Oracle HRMS produces most of the database
items you need without you taking any special action. These items
include both information unique to your enterprise, which you hold in
flexfield segments, and standard information such as assignment
numbers and grades.
In the Formulas window, you pick database items from a list. You will
see that the name of the database item for a grade rate called
hourly_rate is actually grade_hourly_rate_value. This is the name you
must use in your formula.
By this naming convention, Oracle FastFormula knows that hourly_rate
is a database item from the Grade Rate table. But how does it know

Oracle FastFormula 1 –9
which hourly_rate to use from this table? It works this out from the
context the payroll run provides for each element entry. The context
identifies:
• the Business Group
• the element and element link
• the payroll and payroll run
• the employee and employee assignment.

☞ Attention: You should use an Inputs statement in preference


to database items where possible because this is more efficient.
See: Writing Efficient Payroll Calculation Formulas: page
1 – 17.

Global Variables
Use global values to store information that does not change often, but
you refer to frequently, such as Company Name, or company–wide
percentages used to calculate certain types of bonus. You define the
global value and change its value using the Globals window.
See: Defining Global Values: page 1 – 22

Local Variables
Local variables exist in one formula only. You can change the value of a
local variable by assigning it a value in an Assignment statement. In
the Wage example, the variable wage itself is a local variable. It
receives a value within the formula by the Assignment statement:
wage = hours_worked * hourly_rate

Note: You cannot change the value of input values, database


items, or global values within a formula.

Functions
The Assignment statement in the wages example above uses a simple
multiplication to calculate the value of the wages element. You can also
use addition, subtraction, division, and a number of functions. For
example:
bonus = GREATEST(days_at_work,163) + bonus_rate

Here the function GREATEST tells Oracle FastFormula to use the value
of the variable days_at_work, if it is greater than 163, and otherwise to
use the constant 163.
The data type of variables and constants determines how operators and
functions act on the values. For example, the addition operator (+) can

1 – 10 Using Oracle FastFormula


be used with numeric or text data, while division can be used with
numeric data only.
There are special functions that convert variables from:
• numbers to text (TO_TEXT)
• dates to text (TO_TEXT)
• text to date (TO_DATE)
• text to number (TO_NUM)
See: Functions: page 2 – 13

Nested Expressions The Assignment statement can use as many arithmetic operators and
functions as you require. Each function or calculation is one expression,
and you can nest expressions to create more complex calculations. You
must use brackets to make clear to Oracle FastFormula the order in
which the calculations are performed. For example:
ANNUAL_BONUS = trunc(((((salary_amount/100)*
bonus_percentage)/183)*(days_between(end_period_date,
start_date) + 1)), 2)

Oracle FastFormula begins calculating inside the brackets and from left
to right, in the following steps:
1. salary_amount/100

2. 1. * bonus_percentage

3. 2. / 183

4. days_between (end_period_date, start_date)

5. 4. + 1

6. 3. * 5.

7. TRUNC(6.,2)

Notice that TRUNC is another function. It rounds a numeric value


down to the number of decimal places specified after the comma (two
in this case).

Incorporating Conditions
In our simple Wage element example, only one value is returned, and it
is calculated in the same way for every assignment. However you may
need to perform different calculations depending on the particular
group of employee assignments, or the time of the year, or some other
factors. You can do this by incorporating conditions in your formula.

Oracle FastFormula 1 – 11
Simple Conditions
For example:
IF age < 20 THEN
training_allowance = 30
ELSE
training_allowance = 0

The formula checks whether the condition (age < 20) is true or false. If
it is true, the formula processes the statement that follows the word
THEN. If the condition is not true, the formula ignores this statement
and processes any statement that follows the word ELSE. The ELSE
clause is optional.

Complex Conditions
In the example above, the condition compares a variable (age) to a
constant (20). The condition can be more complex, comparing
expressions that contain functions and arithmetic operators. For
example:
IF (DAYS_BETWEEN(end_period_date, start_date)+1) >= threshold

DAYS_BETWEEN is another function.


We have seen two comparators: less than (<) and greater than or equal
to (>=). A full list of the comparators you can use appears in the
Reference section.
See: Formula Reference: page 2 – 2

WAS DEFAULTED
There is a special type of condition called WAS DEFAULTED. Use this
to test whether a default value has been placed in an input value or
database item. Default values are placed using the Default statement.
For example:
DEFAULT FOR hourly_rate IS 3.00
X = hours_worked * hourly_rate
IF hourly_rate WAS DEFAULTED
THEN
MESG = ’Warning: hourly rate defaulted’

In this example, if the database item hourly_rate is empty (NULL), the


formula uses the default value of 3.00 and issues a warning message.

Combined Conditions
You can combine conditions using the logical operators AND, OR, NOT.
• Use AND if you want an action to occur when more than one
condition is true. For example:

1 – 12 Using Oracle FastFormula


IF (days_between(end_period_date, start_date) + 1) >= 183
AND employee_status = ’FULL TIME’
THEN . . .

• Use OR if you want an action to occur when any one of two or


more conditions is true. For example:
IF stock_level < 10000
OR order_size >= 1500
THEN . . .

• Use NOT if you want an action to occur when a condition is not


true. For example:
IF NOT (months_between(purchase_date, system_date) => 60
THEN . . .

As with Assignment statements, you may need to use brackets to tell


Oracle FastFormula in which order to test conditions. By default, NOT
has the highest precedence, followed by AND then OR. So the
following condition:
IF X = 6 AND NOT Y = 7 OR P >= 6

is interpreted as:
IF ((X = 6) AND (NOT (Y = 7))) OR (P >= 6)

How you use brackets can change dramatically the meaning of a


formula.
Suggestion: Use brackets whenever you create multiple
conditions, so that the meaning of the formula is clear to other
readers.

Multiple Actions Based On Conditions


We have seen how to make conditions more complex. You can also
make the actions performed as complex as you like. In our simple
example above, the result of the condition was the assignment of a
value to the variable training_allowance. As well as assigning values,
you can perform calculations and return values.

Oracle FastFormula 1 – 13
For example, suppose you must check whether there are sufficient
funds in a bank account before processing a withdrawal:
INPUTS ARE acct_balance,
acct (text),
debit_amt
IF acct_balance >= debit_amt
THEN
(
new_balance = acct_balance – debit_amt
RETURN new_balance
)
ELSE
(
message = ’Account No. ’ + acct + ’ – Insufficient Funds’
message2 = ’Account Balance is ’ + TO_TEXT(acct_balance)
RETURN message, message2
)

Notice that you can return two variables in the same Return statement.

☞ Attention: The brackets following THEN and ELSE are


essential when you have multiple actions based on a condition.
Without them, Oracle FastFormula processes the first statement
conditionally and the other statements unconditionally.

1 – 14 Using Oracle FastFormula


Formula Writing Techniques
When writing formulas there are a number of techniques you should
follow to ensure your formulas are easy to read, use and understand.

Commenting Formula
It is good practice to include comments in your formulas to explain to
other people what the formula does.
So, for example, you can name your formula:
/* Formula: Attendance Bonus */

and write an explanation of your formula:


/* Use this formula to calculate the annual bonus for
clerical staff. Employees receive either a percentage of
their salary (if they have been present for 183 or more
days in the last six months), or a pro rata bonus (if they
have been in attendance for less than 183 days in the last
six months). */

Oracle FastFormula ignores everything between the comment


delimiters: /* and */. You can place comments anywhere in a formula
without affecting the formula’s performance.
Warning: Do not put a comment within a comment. This
causes Oracle FastFormula to return a syntax error.
You can use a comment to explain what part of your formula does. So,
for example, you might want a comment explaining who decides the
bonus percentage:
INPUTS ARE salary_amount,
start_date (date),
end_period_date (date),
bonus_percentage /* decided at board level */

You can also use comments to ‘comment out’ parts of the formula you
do not currently want to use. So, for example, you can include a fifth
input of employee_status, ensuring that employees with a status of full
time are awarded a bonus. However, as you do not yet have a range of
statuses, you do not currently need the fifth input.
INPUTS ARE salary_amount,
start_date (date),
end_period_date (date),
bonus_percentage /* decided at board level */
/* employee_status (text) */

Use comments and white space freely when entering formulas. This
makes the formulas easier to read and understand, and has no effect on

Oracle FastFormula 1 – 15
performance or memory usage. Use indentation for the same reason,
especially when you are using brackets to control the order of
processing.
It is good practice to include the following information in a comment at
the beginning of a formula:
• Formula title and short statement of its purpose
• Description of formula inputs
• List of variables and constants that may require updating
• Description of the input values of the element that receives the
formula’s direct result
• Explanation of the formula’s calculations
• Administrative information such as the name, address and
telephone number of an office administering the earnings,
deduction, or charge the formula affects
• The dates of formula modifications, the names of those entering
the edits, and possibly the reasons for change

Alias Statements

Database items are named by the system when it creates them, and
sometimes these names are too long to conveniently use in a formula.
You cannot shorten the name of a database item (or a global value)
itself, but you can set up an alternative shorter name to use within the
formula. For example:
ALIAS as_overtime_qualifying_length_of_service AS ot_qls

In the rest of the formula, you can use the alias (in this example, ot_qls)
as if it were the actual variable.

☞ Attention: Using an Alias is more efficient than assigning the


database item to a local variable with a short name.

Default Statements
Use the Default statement to set a default value for an input value or a
database item. The formula uses the default value if the database item
is empty or no input value is provided when you run the formula. For
example:
DEFAULT FOR hourly_rate IS 3.00
X = hours_worked * hourly_rate
IF hourly_rate WAS DEFAULTED

1 – 16 Using Oracle FastFormula


THEN
MESG = ’Warning: hourly rate defaulted’

This example sets a default of 3.00 for the database item hourly_rate. If
hourly_rate is empty (NULL) in the database, the formula uses the
default value of 3.00. The formula uses the ’WAS DEFAULTED’ test to
detect when a default value is used, in which case it issues a warning
message.

☞ Attention: You must use the Default statement for database


items that can be empty. The Database Items window includes
a check box labelled Default Required. This check box is
checked for database items that can be empty. The Database
Items window appears when you choose the Show Items
button on the Formulas window.

Writing Efficient Payroll Calculation Formulas


The following guidelines are generally true for typical payroll runs:
• The longer an element’s formula, the longer its processing time.
• The more elements entered for an assignment, the longer its
processing time.
• One element associated with a lengthy formula usually processes
faster than two related elements each associated with a short
formula.
• The overall number of elements and formulas in the system has
little effect on processing efficiency. It is the number of elements
per assignment that affects processing time.

Variable Names and Aliases


To improve readability use names that are brief yet meaningful. Name
length has no effect on performance or memory usage. Use Aliases if
the names of database items or global values are long.

Input Statements
Use Input statements rather than database items whenever possible.
This improves formula processing by as much as a factor of ten. It
speeds up the running of your payroll by eliminating the need to access
the database for the input values.

Oracle FastFormula 1 – 17
Inefficient:
Salary = Salary_annual_salary / 12
RETURN Salary

Efficient:
INPUTS ARE Annual_salary
Salary = Annual_salary / 12
RETURN Salary

Date Literals
Use the TO_DATE function only when the operand is a variable.
Inefficient:
Start_date = TO_DATE ( ’1992–01–12 00:00:00’ )

Efficient:
Start_date = ’1992–01–12 00:00:00’ (date)

Single Expressions
Use a single expression in straightforward formulas where this does
not lead to confusion.
Inefficient:
Temp = Salary / Annualizing_factor
Tax = Temp * 3

Efficient:
Tax = (Salary / Annualizing_factor) * 3

Database Items
Do not refer to database items until you need them. People sometimes
list at the top of a formula all the database items the formula might
need, thinking this helps Oracle FastFormula process more quickly.
However, this in fact slows processing by causing unnecessary
database calls.
Inefficient:
S = Salary
A = Age
IF S < 20000 THEN
IF A < 20 THEN
Training_allowance = 30
ELSE
Training_allowance = 0

1 – 18 Using Oracle FastFormula


Efficient:
IF Salary < 20000 THEN
IF Age < 20 THEN
Training_allowance = 30
ELSE
Training_allowance = 0

The first example always causes a database fetch for Age whereas the
second only fetches Age if Salary is less than 20000.

Balance Dimensions for UK HRMS


Wherever possible, use balance dimensions for single assignments only
in formulas. Multiple assignments require more calculation, leading to
slower processing time. The number of genuine multiple assignments
in a payroll is not normally high, and the presence of a small number
does not lead to any significant increase in overall processing time.
There could be a problem, however, if you unnecessarily link balance
dimensions for multiple assignments into general formulas.

Proration Formulas for UK HRMS


You set up proration formulas to enable element values to be calculated
accurately if they change during a payroll period, for example, if an
employee leaves the company or if their pay rate changes.
For more detailed information on proration, see the Technical Essay
entitled Proration available on MetaLink (Technical Libraries/Human
Resources Management Systems/Payroll/Documentation/United
Kingdom).

Oracle FastFormula 1 – 19
Writing or Editing a Formula
Use the Formula window to write and edit formulas.
Note: You cannot create formulas that exceed 64K in the
Formula window. You must split longer formulas into two.

" To write or edit a formula:


1. Set your effective date to the date when you want to begin using the
formula.
2. To write a new formula, enter the formula’s name and select a type.
To edit an existing formula, query its name.
3. Choose the Edit button to open a blank Edit Formula window where
you can write a new formula, or modify an existing one.
4. If you want to select database items, choose the Show Items button
to display the Database Items window and run a query. Copy and
paste items from this window to the Edit Formula window.
5. When you finish writing or editing the formula, choose the Verify
button to compile it.
This process identifies any syntax errors in your formula.
Note: Once you have compiled any formula, new functions or
changes to existing functions made after the first time you
compile, are not used. You must logout of Oracle HRMS and
login again. You can now compile your formula and the new
functions and/or changes to existing functions will be included.
6. When the formula is verified successfully, save it.
7. Your next step depends on the type of formula:
• If the formula is of type Oracle Payroll, you must associate it with
an element in the Formula Result Rules window.
• If the formula is of type Element Skip, you select it in the Skip
Rule field of the Element window.
• If the formula is of type Element Input Validation, you select it in
the Formula field of the Input Values window when you are
defining an element.
• If the formula is of type User Table Validation, you select it in the
Formula field of the Columns window when you are defining a
user table structure.
• If the formula is of type Accrual, Accrual Carryover, or Accrual
Ineligibility, you select it in the Accrual Plan window.

1 – 20 Using Oracle FastFormula


• If the formula is of type Accrual Subformula, you call it from
another formula of type Accrual.
• If the formula is used for benefits administration, you select the
formula in the Rules field of the appropriate benefits window.
Test your formula in the situation you intend to use it (such as, in a test
payroll run) to ensure it contains no logical errors.

Oracle FastFormula 1 – 21
Defining Global Values
Use global values to store information that does not change often, but
you refer to frequently, as for example Company Name, or
company–wide percentages used in the calculation of certain bonuses.
You can use global values as variables in formulas by simply referring to
the global value by name.

You can never change a global value using a formula. You change
global values in the Globals window. Global values are datetracked so
you can make date effective changes ahead of time.
Global values are available to all formulas within a Business Group.

" To define a global value:


1. Set your effective date to the date when you want to begin using the
global value.
2. Enter a name, data type (number, text, or date), and value. You can
also enter a description.

1 – 22 Using Oracle FastFormula


Registering a Function
You register a new function by naming and defining it, then creating
contexts and parameters for it. Contexts are environment values that do
not get passed to the function.
Where a function requires a mixture of contexts (from the
FF_CONTEXTS table) and parameters, the contexts should be listed first
in the function header followed by the function parameters. Only the
function parameters, however, need to be used to call the function from
FastFormula.
For example, a function requires eight values: three contexts and five
parameters. All eight values are listed in the function header but only
the five parameters are used to call the function.
There are two classes of functions you can register:
• External function: These are further PL/SQL functions in
addition to the ones already delivered with FastFormula. External
functions can use contexts and parameters.
• User Defined function: It is suggested you do not use this class
as it will be removed in future releases. Define new functions as
External function class.

" To register a new function for Oracle FastFormula:


1. Enter a unique name for the new function.
2. Select date, number or text as its data type.
3. Select external or user defined as the class of the function.
4. Enter an alias for the function name if you require an alternative
name for it. You can also enter a description to explain what the
function is for. The Alias and Description fields are both optional.
5. Enter the definition of the function. Use the format: <package
name>.<function name>.
6. Save your entries.

" To enter context usage and parameter information:


1. Choose the Context Usages button.
2. In the Context Usages window, select as many context items as you
require for the function. The data type for each context displays
automatically.
Note: The functionality that calls FastFormula, that is, QuickPaint
or Payroll Processing, determines what contexts FastFormula has
access to from the FF_CONTEXTS table.

Oracle FastFormula 1 – 23
3. Save your entries. The sequence number of each context is entered
automatically when you do this.
4. Close the Context Usages window and choose the Parameters
button.
5. In the Parameters window, select the parameters, or operands, you
require to define the function. Type and class display automatically.
6. Check the Optional check box if you want the corresponding
parameter to be optional.
7. Check the Continuing check box if you want the function to make
more than one call to the parameter.
Note: You cannot define a parameter as continuing unless you also
make it optional. However, an optional parameter does not have to
be continuing.
8. Save your entries.

1 – 24 Using Oracle FastFormula


Writing Payroll Formulas for Elements
If you have defined your own payroll elements, you can write formulas
to calculate earnings and deductions.
For guidance on writing efficient payroll calculation formulas, see:
Formula Writing Techniques: page 1 – 15. For important information
about using element input values in payroll formulas, see: Input Values
in Payroll Formulas: page 2 – 3.

" To define elements and their formulas:


1. Design your element and how it will be calculated.
2. Write any formulas required to validate input values (formula type
= Element Input Validation).
3. Write a formula, if required, to define the rules for skipping the
element during payroll processing (formula type = Element Skip).
4. Define the element, referencing any formulas written in steps 2
and 3.
5. Write the formula or formulas for calculating the run results
(formula type = Oracle Payroll).
6. Associate each Oracle Payroll type formula with the element in the
Formula Result Rules window, and specify what happens to the
formula results for this element.
Note: You can associate several formulas with a single element,
each one for use with a different employee assignment status. You
can also use the same formula for more than one element. In this
case, if the formula references pay or input values (through the
Inputs statement), each element must have pay and input values
with the same names.

Oracle FastFormula 1 – 25
Writing Formulas for Accrual Plans
Each accrual plan needs to be associated with two formulas: an accrual
formula to calculate gross PTO entitlement to date and a Carry Over
formula to be called by the carry over process at the end of the accrual
term.
You can also associate a third formula to be called by BEE (Batch
Element Entry) validation for entries to the absence element associated
with the accrual plan. This Ineligibility formula checks whether an
assignment is eligible to use accrued PTO. It must calculate the end of
the ineligibility period in the same way as the Accrual formula for the
plan. This formula is not required if you enter the ineligibility period
for a plan in the Accrual Plan window.
Some formulas are seeded, see Seeded Accrual Type Formulas in
Managing Total Compensation Using Oracle HRMS. You can use these as
supplied, edit them, or write your own formulas to provide the plan
rules you require.
This topic explains:
• The formula types for formulas associated with accrual plans
• The required inputs and outputs for Accrual, Carry Over, and
Ineligibility formulas
• Checks you must include in your Accrual formulas to avoid
errors
For a sample Accrual formula and suggestions on how to change it to
incorporate a whole range of plan rules, see: Sample Accrual Formula:
page 2 – 93.

Formula Types
There are a number of formula types for formulas associated with
accrual plans. You must define your formulas as the appropriate types
or they will not be available for selection in the Accrual Plan window.

Displays on list of values


Formula Type for . . . Use for . . .

Accrual Accrual Formula The top level formula that


field calculates PTO entitlement for
a plan
Accrual –– Any formulas called by the top
Subformula level formula, such as formulas
for calculating the entitlement
per period.

1 – 26 Using Oracle FastFormula


Displays on list of values
Formula Type for . . . Use for . . .

Accrual Carryover Formula The formula to be called by the


Carryover field Carry Over process.
Accrual Ineligibility Formula The formula to be called by
Ineligibility field BEE (if required) to specify
whether an assignment is
eligible to use accrued PTO.

Required Inputs and Outputs


If you write your own formulas for accrual plans, you must use the
following INPUTS and RETURN statements. Do not add extra lines to
these statements. You can use functions or database items to get extra
inputs. The following values are available as contexts for all the accrual
formula types (and therefore you do not need to retrieve them as
inputs or database items):
• ASSIGNMENT_ID
• DATE_EARNED
• ACCRUAL_PLAN_ID
• BUSINESS_GROUP_ID
• PAYROLL_ID
Some formula functions have been defined specially for Accrual type
formulas. They require some or all of these contexts and they return
values need for the accrual calculation, such as total absences, accrual
band, and period dates. See: Functions for Accrual Type Formulas:
page 2 – 26. You can define and register any other functions you
require.

Inputs and Outputs for Accrual Formulas


INPUTS ARE
Calculation_Date (date)
ACCRUAL_START_DATE (date)
ACCRUAL_LATEST_BALANCE

/* Formula body */

RETURN total_accrued_pto, effective_start_date,


effective_end_date, accrual_end_date

Oracle FastFormula 1 – 27
Input Description

Calculation_Date The date up to which accrual will be


calculated
Accrual_Start_Date The date to begin calculating accrual. If null,
accruals are calculated from beginning of the
accrual term.
Accrual_Latest_ The latest balance for the accrual term up to
Balance the day before Accrual_Start_Date. The latest
balance is held in a payroll balance.

Note: The Accrual_Start_Date and Accrual_Latest_Balance


inputs are required only if your accrual plan uses a payroll
balance to store gross accruals.

Output Description

total_accrued_pto Gross accrued PTO this term


effective_start_date Start date of accrual, which is normally the
start of this accrual term, but may be plan
enrollment date, hire date, adjusted service
date, or other, depending on plan rules.

effective_end_date Normally the calculation date, but should be


the termination date if the employee has been
terminated, or the end date of the plan
element entry if the employee has left the plan.
accrual_end_date This is an optional output. In the seeded
formulas it is the end of the last full accrual
period before the calculation date (because
these formulas do not take account of partial
accrual periods).

Inputs and Outputs for Carry Over Formula

INPUTS ARE
calculation_date (date),
accrual_term (text)

/* formula body */

RETURN max_carryover, effective_date, expiry_date

1 – 28 Using Oracle FastFormula


Input Description

calculation_date Any date falling within an accrual term


accrual_term ’PREVIOUS’ or ’CURRENT’ indicating
whether to return the last date of the accrual
term spanning calculation_date, or the accrual
term previous to that spanning calculation
date.

Output Description

max_carryover Maximum amount the employee can carry


over, which may be dependent on an accrual
band.
effective_date The last date of an accrual term (either current
or previous, as determined by the input). For
example, this would be 31–DEC–YYYY for an
accrual plan based on calendar years.
expiry_date The date by which employees must use carried
over PTO, otherwise they lose it. This output is
optional.

Inputs and Outputs for Ineligibility Formula


INPUTS ARE
calculation_date (date),

/* formula body */

RETURN assignment_eligible

Input Description

calculation_date The effective date of the element entry.

Oracle FastFormula 1 – 29
Output Description

assignment_eligible ’Y’ or ’N’. If Y, BEE creates the entry to the


absence element (assuming all other validation
is successful). If N, BEE creates a warning on
the batch line for the absence entry.

Checks You Must Include In Your Accrual Formulas


You may notice that the seeded formulas contain statements to check a
number of dates to see whether an employee is eligible to accrue any
PTO. Be sure to include these checks in your formulas too.

Termination Date
Check whether there is a termination date for the assignment. If the
termination date is before the calculation date, calculate accrual as of
the termination date. If your formula does not handle partial accrual
periods, check whether the termination date is before the end of the
first accrual period; if yes, set gross accrual to zero.

Enrollment End Date


Check whether there is an end date for the assignment’s enrollment in
the plan. If the end date is before the calculation date, calculate accrual
as of the end date. If your formula does not handle partial accrual
periods, check whether the end date is before the end of the first
accrual period; if yes, set gross accrual to zero.

Calculation Date
If the calculation date is before the end of the first accrual period, set
gross accrual to zero (unless your formula handles partial accrual
periods).

Hire Date
Check the employee’s hire date or continuous service date. If your
formula handles partial accrual periods, check that this date is before
the calculation date, and if not, set the gross accrual to zero. If your
formula does not handle partial periods, check that this date is before
the start of the last full accrual period used in the current calculation. If
the employee has not worked for a full accrual period before the
calculation date, set the gross accrual to zero.

Start Date for New Plan Participants


Check when the employee should start to accrue time. This is typically
the date of enrollment in the plan or (if your formula does not handle

1 – 30 Using Oracle FastFormula


partial accrual periods) the first period starting on or after the date of
enrollment in the plan. If this date (or period) is after the calculation
date (or period), set the accrual to zero.
Note: The seeded and sample formulas also show how to
incorporate other start dates in your plan, such as six months
after hire date, or start of calendar year after hire date.

Ineligibility Period
Check any ineligibility period (which is a time when a new participant
accrues time but cannot use it, so it does not appear credited to him or
her until the end of the period). If the eligibility period is still in force at
the calculation date (or, if your formula does not handle partial accrual
periods, on the end date of the last accrual period used in the
calculation) set the gross accrual to zero.

Inactive Assignment
Check whether the employee’s assignment has been active throughout
the period for which you are calculating accruals. Depending on your
plan rules, your employees might not accrue time when their
assignments are inactive, or they might accrue time at a reduced rate.
You can use the function GET_ASG_INACTIVE_DAYS to check the
assignment status on each day from period start date to period end
date and return the number of inactive working days.

Oracle FastFormula 1 – 31
Writing Formulas To Calculate Absence Duration
You can write a formula to calculate absence duration automatically
when a user enters an absence start and end date, or time. Your
localization team may have written a formula, which the system will
use by default. However, if you need a configured formula to take
account of special work hours or shift patterns, you can create a new
formula that will override the supplied one. You can create one formula
for each Business Group.
Your formula must be called: BG_ABSENCE_DURATION. You must
select the formula type QuickPaint.
The formula inputs must be:
• days_or_hours (units for the duration: D or H)
• time_start, time_end
• date_start, date_end
The formula outputs must be:
• duration (the calculated value or FAILED)
• invalid_msg (optional – an error message name)
Use the supplied example formula
(TEMPLATE_ABSENCE_DURATION) as the basis for your formulas.

1 – 32 Using Oracle FastFormula


Writing Formulas for Element Skip Rules
If your payroll policies require conditional processing of an element,
you can write a formula to define when the run should process the
element and when it should skip it. For example, your formula could
specify:
• process the Union Fees element every run unless the
Union_Fees_Paid balance is greater than 10 000.
Your skip rule formula must be consistent with other processing rules
defined for the element, such as frequency rules, which determine in
which period the element is normally processed. Notice that a skip rule
cannot contravene any other processing rules in place for the element.
You can associate only one element skip rule formula with each element.
You must write and validate the formula before you define the element
so that you can select the formula from a list on the Element window.

" To write a formula defining a skip rule:


1. Select formula type Element Skip in the Formulas window.
2. Use as many input values as you require. The formula must set and
return a local variable of type text, and this variable must be called
skip_flag.
If the returned value of this variable begins with the letter y (such as
’Yes’), all processing for the element is skipped. Otherwise the
element processes as normal.
The following example of a skip rule formula defines that the Union
Fees element is not processed if the Union_Fees_Paid balance is
greater than 10 000:
IF Union_Fees_Paid > 10000
THEN
skip_flag = ’yes’
ELSE
skip_flag = ’no’
RETURN skip_flag

Oracle FastFormula 1 – 33
Copying and Adding Features to a QuickPaint Formula
When you save a QuickPaint Report definition, a formula is generated
automatically. Formulas generated from QuickPaint do not include
conditional logic or calculations. You may want to add these features,
for example to sum up compensation elements or to report different
data for different assignments.

☞ Attention: If you want to add features to a generated


QuickPaint formula, you must copy the formula and edit the
copy. If you edit the original, your edits will be overwritten if
the formula is regenerated from the QuickPaint definition.

" To make a copy of a QuickPaint formula:


1. In the Formula window, query your QuickPaint formula. It has the
same name as your QuickPaint report.
2. Choose the Edit button. Select and copy the formula in the Edit
Formula window.
3. Choose New Record from the Edit menu.
4. Enter a name for your edited copy and select the type QuickPaint.
5. Paste the text of the QuickPaint formula into the Edit Formula
window.
6. Save your work.

1 – 34 Using Oracle FastFormula


Writing Formulas for Validation
You can use Oracle FastFormula to validate user entries into the element
input values, and to user tables that you define.

" To write a formula for validation purposes:


1. Write and validate the formula.
You must do this before you define the element or table, so that you
can select the formula from a list in the Element window or
Columns window.
2. Define the element or table.
3. Select formula type Element Input Validation or User Table
Validation in the Formulas window.

Rules to Observe
• There must be one input value, of type text, and it must be called
entry_value.
• The formula must set and return a local variable giving the status
of the validation (success or error). This variable must be called
formula_status and have the value ’s’ (success) or ’e’ (error).
• Optionally, the formula can also return a text variable giving an
explanatory message. The returned message variable must be
called formula_message and can contain any text. It can be
returned with both successful and unsuccessful statuses.
• The formula must not return any other results.
For an element input value validation formula, you must also observe
the following rules:
• You cannot use the element’s other pay and input values in the
formula.
• You cannot return a value to another pay or input value.
All entry values are stored in the database as text items. Therefore, if
you want to validate an entry value as a date or number, you must use
Oracle FastFormula’s conversion function to convert the text into a date
or number type variable. For example:
TO_NUM (entry_value)
TO_DATE(entry_value,’DD–MON–YYYY’)

Oracle FastFormula 1 – 35
Editing Assignment Set Formulas
Assignment set formulas do not normally need to be edited. If,
however, you enter multiple criteria to define an assignment set, with
conditions joined by AND or OR, you may want to edit the formula to
change the brackets in the generated conditions. This changes the order
in which the conditions are tested.
To view an assignment set formula, query it in the Formula window.
The formula type is Assignment Set and the formula name is the same
as the assignment set name. To edit an assignment set formula, make a
copy, as for a QuickPaint formula.

1 – 36 Using Oracle FastFormula


Bulk Compiling Formulas
Where a formula has more than one version, you can compile all the
versions in one process using the Bulk Compile Formulas process. For
example, you run this process when you upgrade your legislative
information, which contains formulas.

" To bulk compile formulas


1. Select Single Request in the Submit a New Request window.
2. In the Name field, select Bulk Compile Formulas.
You can define when you want to run this process using the
schedule options.
Note: If you make any changes to a function after you have
compiled a formula that uses it, you need to recompile the
formula for the changes to take effect.

Oracle FastFormula 1 – 37
Editing a Quick Paint Formula
If you want to add features to a generated QuickPaint formula, you
must copy the formula and edit the copy. If you edit the original, your
edits will be overwritten if the formula is regenerated from the
QuickPaint definition.
In the following example, an automatically generated QuickPaint
formula has been edited to add Line 09, which totals the input values
used in the report.
LINE01=’’
LINE02=’ Pay Items Value this Period
LINE03=’’
LINE04=’ Salary Value : ’ + TO_TEXT(trunc((SALARY_ANNUAL/12),2))
LINE05=’ Item 1 Value : ’ + TO_TEXT(ITEM_1_PAY_VALUE)
LINE06=’ Item 2 Value : ’ + TO_TEXT(ITEM_2_PAY_VALUE)
LINE07=’ Bonus Value : ’ + TO_TEXT(BONUS_AMOUNT)
LINE08=’ __________________’
LINE09=’ Total : ’+ TO_TEXT(trunc((
(SALARY_ANNUAL/12)+ITEM_1_PAY_VALUE+ITEM_2_PAY_VALUE+BONUS_AMOUNT)
,2))
LINE10=’’
LINE11=’’
LINE12=’’
RETURN LINE01, LINE02, LINE03, LINE04, LINE05, LINE06, LINE07,
LINE08, LINE09, LINE10, LINE11, LINE12,

1 – 38 Using Oracle FastFormula


Checking an Element Entry
You can use FastFormula to validate user entries in element input
values. For example, you can make sure that entries are within a
specified range or do not exceed a predefined value.
The formula below checks that the entry value of the Salary element
does not exceed 200,000.
Figure 1 – 1 Salary Element

/* Formula Name: Salary Range */


/* Formula Type: Element Input Validation */

INPUTS ARE entry_value (text)


IF TO_NUM(entry_value) > 200000
THEN
(
formula_status = ’e’
formula_message = ’Too much money . . . try again!’
)
ELSE
(
formula_status = ’s’
formula_message = ’Fine’
)
RETURN formula_status, formula_message

Oracle FastFormula 1 – 39
Checking a User Table Entry
You can use FastFormula to validate user entries into user tables that
you define. For example, you can make sure that entries are between a
specified range or not a negative amount.
The formula below checks that the deduction entered in the Union A
column of the Union Dues table is between 10.00 and 20.00.
/* Formula Name: Union A Dues Validation */
/* Formula Type: User Table Validation */

INPUTS ARE entry_value (text)


IF TO_NUMBER(entry_value) < 10.00 OR
TO_NUMBER(entry_value) > 20.00
THEN
(
formula_status = ’e’
formula_message = ’Error: Union A dues must be between
$10.00 and $20.00.’
)
ELSE
(
formula_status = ’s’
formula_message = ’ ’
)
RETURN formula_status, formula_message

1 – 40 Using Oracle FastFormula


Writing Formulas for Templates
There are several ways you can use formulas to configure the people
management templates:
• A Template Validation formula can check values entered in a
field.
• A Template Information formula can specify information to be
displayed from the right mouse menu when a user right–clicks in
a field.
• A People Management Message formula can return a text string
to display in the Assignment field on the Maintenance window
and in the Data Organizer.
• A People Management Message formula can return message
tokens that you can use in a notification message issued from
template forms.

Template Validation Formulas


If you use a formula to validate user entries in template fields, you
must observe the following rules:
• Select the formula type Template Validation in the Formulas
window.
• There can be up to five inputs, and they must be called item1,
item2, item3, item4, and item5.
• The formula can return up to three outputs, which must be
named as follows:
– Status, which must have the value ’s’ if the validation was
successful. Any other value is interpreted as an error.
– Message, which is a text variable. The formula can return a
message with validation statuses of success, failure, or both.
– Item, which is the new value of the field that is being
validated.
After creating the formula, you select it in the Validation Formula
property for the field when you are setting up the template in Forms
Configurator. You can also enter up to five parameters to be passed to
the formula, including the value you are validating. For example, you
might enter the name of another field on the template if you want the
formula to cross–validate the value in one field against another.
Example
Here is a formula that validates the entry in the Organization field on
the Maintenance window. It raises an error if the entry is not Corporate
Finance.

Oracle FastFormula 1 – 41
/* Updateable Values Section */
/* Defaults Section */
/* Inputs Section */
INPUTS ARE item1
/* Main Body of Formula */
organization_name = item1
status = ’s’
message = ’ ’
IF organization_name <> ’Corporate Finance’ THEN
(
message = ’Organization must be Corporate Finance’
status = ’f’
)
RETURN message, status

When you are setting up the template in Forms Configurator, select the
Organization (Maintain) item. Select the name of your formula as the
Validation Formula property and select Organization (Maintain) as the
Validation Formula Parameter 1 property. This passes and validates the
value the user enters, not any codes or table identifiers to which it may
be related.

Template Information Formulas


If you write a formula to return additional information for a field, you
must observe the following rules:
• Select the formula type Template Information in the Formulas
window.
• There can be up to five inputs, and they must be called item1,
item2, item3, item4, and item5.
• The formula can return one text output, which must be called
Message. This is the information that is displayed when the user
right clicks in the field and selects a prompt that you define in
the right mouse menu.
After creating the formula, you select it in the Information Formula
property for the field when you are setting up the template in Forms
Configurator. You can also enter up to five parameters to be passed to
the formula. For example, if you were specifying an information
formula for the job field, you might enter the name of the organization
field so that the formula can return different additional job information
depending on the organization.

Example
Here is a formula that returns contact information to be displayed from
the Supervisor field.

1 – 42 Using Oracle FastFormula


/* Updateable Values Section */
/* Defaults Section */
DEFAULT FOR sup_work_phone IS ’ ’
DEFAULT FOR sup_email_address IS ’ ’
/* Inputs Section */
/* Main Body of Formula */
message = ’Supervisor Contact Details||CHR(10)||’Telephone:
’||sup_work_phone||CHR(10)||’Email: ’||sup_email_address
RETURN message

People Management Message Formula for Assignment Field


Applicant and employee assignments are listed by name in the Data
Organizer in the template Summary window and in the Assignment
field on the Maintenance window. Since assignments do not have
names, you can choose what assignment information is displayed as a
name to help your users select the assignments they want to work with.
By default, assignments are identified as <job>.<organization>, such as
Senior Manager.Engineering. However, you can choose any other
database items to display.
If you want to override the default, write a formula (of type People
Management Message) called ASSIGNMENT_NAME. This formula
must return a text string. If there is no formula called
ASSIGNMENT_NAME on the database, the system uses the
predefined formula QH_ASSIGNMENT_NAME.
The QH_ASSIGNMENT_NAME formula is as follows:
/* Updateable Values Section */
/* Defaults Section */
DEFAULT FOR asg_job IS ’ ’
DEFAULT FOR asg_org IS ’ ’
/* Inputs Section */
/* Main Body of Formula */
assignment_name = asg_job||’.’||asg_org
RETURN assignment_name

People Management Message Formulas for Message Tokens


If you write a formula to return messge tokens, you must observe the
following rules:
• Select the formula type People Management Message in the
Formulas window.
• The formula must have the same name as the notification
message that will use the tokens.

Oracle FastFormula 1 – 43
• The formula can return up to five text outputs, which must be
named FF1, FF2, FF3, FF4 and FF5.

Example
Suppose you want to include an employee’s preferred name in a New
Hire notification. The New Hire notification is called NEW_STARTER,
so you create a formula of the same name that returns this name in the
variable FF1:
/* Updateable Values Section */
/* Defaults Section */
DEFAULT FOR per_known_as IS ’ ’
/* Inputs Section */
/* Main Body of Formula */
FF1 = per_known_as
RETURN FF1

Then you edit the New Hire notification to include the FF1 variable.
For example:
Please note, that we have a new employee as of &HIRE_DATE.
They are &FULL_NAME (&EMPLOYEE_NUMBER).
Known as: &FF1.
Their new job details are:
Position: &POSITION
Job: &JOB
Organization: &ORGANIZATION
Location: &LOCATION

1 – 44 Using Oracle FastFormula


CHAPTER

2 Oracle FastFormula
Reference

Oracle FastFormula Reference 2 –1


Formula Reference
Formulas comprise statements and comments. Statements are
instructions telling Oracle FastFormula how to process constants and
variables, which are the basic information units in a formula. The two
key types of statement, which describe the formula’s calculations, are
the Assignment statement and the If statement. These statements can
include expressions, which manipulate constants and variables using
arithmetic operators and functions. The operators and functions you can
use and the results they give depend upon the data type of the
constants and variables. In If statements, one expression can be
compared to another using comparators to create a condition. Conditions
can be combined using logical operators.
There are rules about how you use each of these components. Refer to
the component description for more detailed information.
An example of each of these formula components is identified in the
sample formula.
Figure 2 – 1 Components in a Sample Formula

2 –2 Using Oracle FastFormula


Input Values in Payroll Formulas
In many formulas for calculating pay, some or all of the information you
need comes from the input values of the element.
For example, suppose you pay some salaried employees using a
recurring element called Salary. The Salary element has an input value
called annual_salary. You need a formula that divides the input value
into twelve parts:
INPUTS ARE annual_salary
Salary = annual_salary/12
RETURN Salary

☞ Attention: When you use an Inputs statement, you need to


make sure that none of the input values can have a value of null
because this causes the formula to fail. You can avoid this
problem by using the Default statement.
Using an Inputs statement is the most efficient way to access the input
values of the element with which the formula is associated. However, if
the formula uses the input values of other elements, it must access the
database items for them.
For example, if you want to use the input value annual_salary in the
formula to calculate the element Bonus, you use the database item as
follows:
IF Salary_annual_salary > 20000
THEN
Bonus = bonus_rate * (sales_achieved – sales_threshold)

Notice that the database item name is in two parts: the input value
(annual_salary) name prefixed by the element name (Salary). This is the
naming convention for the database items of element input values.

Multiple Entries of Element Input Values


When you define an element, you can enable multiple entries of the
element within a payroll period.
For example, suppose you use the element Wages to pay some
weekly–paid employees. The Wages element has the input value
hours_worked. Each week, you regularly make five entries for the input
value hours_worked.
To calculate Wages, you can multiply the hours worked each day by the
employee’s standard rate from the grade rates table, so that your
formula looks like this:
INPUTS ARE hours_worked
Wages = hours_worked * standard_rate
RETURN Wages

Oracle FastFormula Reference 2 –3


During the payroll run, the formula processes five times, creating five
separate pay values, one for each entry.
Now consider using the database item Wages_hours_worked instead of
an Inputs statement. The database item for an entry value sums up all
the entries made in the payroll period.
This is a great convenience when referring to input value totals for a
payroll period. However, you must be sure that it is the totals that you
want to use. In this example, using the database item produces the
wrong result.
Wages_hours_worked gives a single value that is the sum of the five
entries in each weekly payroll period. When the payroll runs, the
formula processes five times, each time calculating wages using the total
hours worked in the week.

☞ Attention: If multiple entries are enabled for an element, be


careful when using database items for the element’s entry
values. These database items hold the sum of all the entries.
This includes entries made as indirect formula results during
the payroll run.

Database Items for Numeric Values Only


Entry value database items are not created for input values with units of
character, date, or time when multiple entries are enabled for the
element. This is because entry values of these types cannot be summed
over the payroll period. Only numeric values can be summed. Numeric
input values are those with units of:
• Hours
• Integer
• Money
• Number
Notice that other database items, such as default, minimum, or
maximum, may be created for non–numeric input values.

2 –4 Using Oracle FastFormula


Constants
Every piece of information that you can manipulate or use in a formula
is a constant or a variable.
The data type of a constant or variable describes what kind of data the
constant or variable holds. Generally, you use constant and variables of
the same data type in an expression.
Constants are actual values you use in a formula. Oracle FastFormula
uses constants directly rather than holding them in a variable.
There are three types of constant:
• numeric
• text
• date

Numeric Constants
Enter numeric constants without quotes. Precede negative numbers
with a minus sign (–). Numbers may have a decimal component after a
decimal point. Do not use exponents and floating point (scientific)
notations. So, for example, you cannot use 22 or 10e1.24 as numeric
constants. Do not use commas or spaces in a number. So, for example,
you cannot use 10,000 or 10 000.00 numeric constants.
Examples of valid numeric constants are:
• 63
• 3.55
• –2.3
• – 0.33
• – .2
• 10000

Text Constants
Enclose text constants in single quotes. They may contain spaces. You
can represent the single quote character in a text constant by writing it
twice (’’). Note that this is not the same as the double quote (”).
Examples of valid text constants are:
• ‘J. Smith’
• ‘P O’’Donnell’
• ‘1234’

Oracle FastFormula Reference 2 –5


• ‘Manager’
• ‘12 Union Road’
• ‘The Bonus this year is 23%’

Date Constants
Date constants contain a date. Enclose dates in single quotes and follow
immediately with the word date, in brackets. Use the format
YYYY–MON–DD HH24:MI:SS or DD–MON–YYYY. It is recommended
that you use the first format if you want to compile the formula under
different language settings.
Examples of valid date constants are:
• ‘1989–03–12 00:00:00’ (date)
• ‘12–MAR–1989’ (date)

2 –6 Using Oracle FastFormula


Variables
You use variables in a formula to access information. Variables can have
frequently changing values.
The data type of a variable determines the type of information the
variable holds:
• numeric
• text
• date
You do not have to specify what type you want a variable to be. Oracle
FastFormula works out the type from how you use the variable. For
example, if you set a variable to ‘J. Smith’, this is interpreted as a text
variable.
The system also warns you if you try to perform any inconsistent
operations, such as trying to add a number to a text string.
There are three classes of variable in Oracle FastFormula:
Local Variable Variables that occur in a single formula only.
Global Value Values that can occur in any formula.
Database Item Items that exist in the application’s database.
The variable class determines how a formula uses it.

Local Variables
Local variables occur in a single formula only. You can change a local
variable within the formula by assigning a value to it using an
Assignment statement.
You can use local variables to store data in a formula. You might want
to hold data temporarily while you perform some other calculations, or
to pass data back to the application.
Below is an example showing the use of a local variable, annual_leave.
/* Formula: Annual Leave Formula */
IF years_service >= 10
THEN
annual_leave = 25
ELSE
annual_leave = 20 + FLOOR (years_service/2)
RETURN annual_leave

Global Values
Global values are visible from within any formula. Use global values to
store information that does not change often, but you refer to frequently,

Oracle FastFormula Reference 2 –7


such as company name, or a location allowance that applies to many
employees. Global values are datetracked so you can make date
effective changes ahead of time.
You can never change a global value using a formula. You alter global
values using the Globals window. The global value is the same across
all formulas within a Business Group.
See: Defining Global Values: page 1 – 22
Below is an example using a global value.
/* Formula: HAZARD ALLOWANCE FORMULA */
IF basic_hours > hazard_limit
THEN
hazard_allowance = 2.30
ELSE
hazard_allowance = 2.00
RETURN hazard_allowance

In this example, hazard_limit is a global value, which has been preset to


reflect the point at which workers’ hazard payment increases.

Database Items
Database items exist in the application database and have a label, hidden
from users, that the system uses to find the data.
There are two types of database item:
• Static database items are predefined. They include standard types
of information, such as the sex, birth date, and work location of
an employee, or the start and end dates of a payroll period.
• Dynamic database items are generated from your definitions of:
– elements
– balances
– absence types
– grade rates and pay scale rates
– flexfield segments
The name of your element, pay and input values, balance, absence type,
grade rate, pay scale rate, or flexfield segment becomes part of the name
of the generated database item. This helps you identify the database
item you need when you display a list of all available items in the
Formulas window.
Definitions of flexfield segments only become database items when you
initiate the Declare Descriptive Flexfield process from the Submit

2 –8 Using Oracle FastFormula


Requests window. The other definitions become database items
immediately when you save them to the database.
See:
Static Database Items: page 2 – 44
Dynamic Database Items: page 2 – 61.

Database items are specific to the context in which you use them. For
example, using the database item hourly_rate gives the appropriate
hourly rate for the specific assignment being processed.
Like global values, database item values cannot be changed within a
formula.

Rules for Determining Variable Class and Data Type


The rules that determine the data type and class of variables in a
formula are:
1. The variable can be an input you name in the Inputs statement. For
example:
INPUTS ARE salary_amount,
start_date (date)
frequency (text)

If you do not specify the variable type in the statement, Oracle


FastFormula assumes it is numeric.
2. If the variable is not an input, Oracle FastFormula looks in the list of
global values the first time the variable occurs. If the variable is in
the list, Oracle FastFormula determines the data type from there.
3. If the variable is not in the list, Oracle FastFormula searches the list
of database items. Again, if it is in the list, Oracle FastFormula
knows the data type.
4. Finally, if Oracle FastFormula does not find the variable in either the
global values or the database items, then it treats the variable as a
local variable. It determines the data type from the way you use the
variable.
Notice that if the variable is either a global value or a database item,
then any attempt in your formula to alter the value of the variable
causes an error.
If the variable is a local variable, it does not contain a value when it is
first used in the formula. Therefore you must assign a value to the
variable before you try to use it in a condition or expression. If you fail
to assign a value, Oracle FastFormula fails when you attempt to verify
or run the formula.

Oracle FastFormula Reference 2 –9


Suggestion: To avoid a failure, assign values to your local
variables when they first appear in your formula.

Naming Variables
Variables have names comprising one or more words. The words must
be joined by underscores. The words must each start with an alphabetic
character (A–Z) and can be followed by alphanumeric characters (A–Z,
0–9). The maximum size of a variable name is 80 characters.
Oracle FastFormula is not sensitive to case. So, for example, the variable
called EMPLOYEE_NAME is the same as the variable Employee_name.
The following reserved words cannot be used as the names of variables:

ALIAS AND ARE AS


DEFAULT DEFAULTED ELSE EXECUTE
FOR IF INPUTS IS
NOT OR RETURN THEN
USING WAS
Also, any word consisting only of digits, as these could be mistaken for
numbers.
You may find that the name of a database item or global value is too
long to use conveniently in your formula. You can set up an alternative,
shorter name for use within a formula. You set this up using the Alias
statement.
See: Statements: page 2 – 34

2 – 10 Using Oracle FastFormula


Expressions
Expressions combine constants and variables with arithmetic operators
(+, –, *, /) and functions to return a value of a certain data type. For
example, the expression (3 + 2) returns a value of 5, and is of numeric
data type.
The format of an expression is:
SUBEXPRESSION [operator SUBEXPRESSION ...]

This means that a number of ’subexpressions’ can combine in a single


expression. For example, the subexpressions (3 + 2) and
MONTHS_BETWEEN(start_date, end_date) can combine in a single
expression as follows:
(3 + 2) + MONTHS_BETWEEN(start_date, end_date)

Expressions can also be used inside functions, as in the following


example:
salary = GREATEST(minimum_wage, (hourly_rate * hours_worked))

Data Type of Expressions


The rules for determining the data type of an expression are simple.
Operands in an expression are normally of the same data type, and this
is normally the data type of the expression as a whole. For example, in
the following expression all the operands are numeric and the
expression itself is numeric:
GREATEST(minimum_wage, (hourly_rate * hours_worked))

There are some exceptions to this. For example:


DAYS_BETWEEN(date1, date2)
MONTHS_BETWEEN(date1, date2)

These have date operands, but return a numeric value.


So the expression:
4 + days_between(start_date, todays_date)

returns a numeric result.

Oracle FastFormula Reference 2 – 11


Arithmetic Operators
An expression may contain arithmetic operators, which determine how
variables and constants are manipulated. For example, the operator ”+”
indicates that two items should be added together.
The division, subtraction, and multiplication operators can only be used
with numeric operands. The operands can be variables, constants, or
subexpressions. A formula error occurs if:
• the result of subtraction is too large a negative number
• the result of multiplication is too large
• the second operand of a division evaluates to zero
In both cases, ’too large’ here is determined by the normal limits in the
ORACLE database.
The addition operator can be used with numeric or text operands. If the
result is greater than 240 characters, a formula error occurs.
Notice that you enclose text constants in single forward quotes only (’),
not double quotes (”). For example, the statements:
string1 = ’will ’
result_string = ’Pigs ’ + string1 + ’fly’

set the local variable result_string to ’Pigs will fly’.

2 – 12 Using Oracle FastFormula


Functions
Oracle FastFormula provides functions that manipulate data in different
ways. Some functions work on only one type of data, some can work on
two, others work on all three data types.
The functions are described below, separated into the three data types
and functions that convert between data types. Where a function
returns a different data type result than the data type of its operands, the
description explains this.
Some functions retrieve data from Oracle Applications tables. These are
described in the sections: Functions To Get Values from Tables, and
Functions for Accrual Type Formulas. Some functions enable you to set
and use globals in SQL*Plus. They are described in the section:
Functions to Set and Get Globals.
The general form of a function is:
NAME OF FUNCTION(operand, operand, . .)

Notice that, as with the operators, the operands of a function can be


variables, constants, or complete expressions. If the operand is a text
string, you must enclose it in quote marks.

Text Functions

DEBUG
DEBUG(expr)
This function accepts a string and uses a DBMS_OUTPUT statement to
output the string to the console. Use this function when you are testing a
new formula to track its processing and identify where it is failing.

CHR
CHR(n)
The CHR function returns the character having the binary equivalent to
number operand n in the database character set.
Example
/* CHR (10) used to add a newline to the end of REPORT_TEXT2. */
REPORT_TEXT2 = ’Warning the Transaction Limit has been exceeded’

Oracle FastFormula Reference 2 – 13


GREATEST
GREATEST(expr, expr [, expr] . . .)
GREATEST_OF(expr, expr [, expr] . . .)
The GREATEST function compares the values of all the text string
operands. It returns the value of the operand that is alphabetically last.
If there are two or more operands that meet the criteria, Oracle
FastFormula returns the first.

INITCAP
INITCAP(expr)
The INITCAP function returns the expression expr with the first letter of
each word in uppercase, all other letters in lowercase. Words are
delimited by white space or characters that are not alphanumeric.

INSTR
INSTR(expr1,expr2[,n[,m]])
The INSTR searches expr1 beginning with its nth character for the nth
occurrence of expr2 and returns the position of the character in expr1 that
is the first character of this occurrence. If n is negative, Oracle
FastFormula counts and searches backward from the end of expr1. The
value of m must be positive. The default values of both n and m are 1,
meaning Oracle FastFormula begins searching at the first character of
expr1 for the first occurrence of expr2. The return value is relative to the
beginning of expr1, regardless of the value of n, and is expressed in
characters. If the search is unsuccessful (if expr2 does not appear m times
after the nth character of expr1) the return value is 0.

INSTRB
INSTRB(expr1,expr2[,n[,m]])
The same as INSTR, except that n and the return value are expressed in
bytes, rather than in characters. For a single–byte database character set,
INSTRB is equivalent to INSTR.

LEAST
LEAST(expr, expr [, expr] . . .)
LEAST_OF(expr, expr [, expr] . . .)
The LEAST function compares the values of all the text string operands.
It returns the value of the operand that is alphabetically first. If there are
two or more operands that meet the criteria, Oracle FastFormula returns
the first.

2 – 14 Using Oracle FastFormula


LENGTH
LENGTH(expr)
The LENGTH function returns the number of characters in the text
string operand expr.
Note: The data type of the result of this function is numeric.

LENGTHB
LENGTHB(char)
The LENGTHB function returns the length of char in characters. If char
has datatype CHAR, the length includes all trailing blanks. If char is
null, this function returns null.

LOWER
LOWER(expr)
The LOWER function returns the string operand expr with all letters
lowercase. The return value has the same datatype as the argument expr.

LPAD
(expr, n [,pad])
The LPAD function returns the text string operand expr left–padded to
length n with the sequence of characters in pad. The default for pad is a
blank. If expr is longer than n, then LPAD returns the portion of expr that
fits in n.
Examples:
/* A is set to ’XYXYXhello’ */
A = LPAD (’hello, 10, ’XY’)

/* A is set to ’hell’ */
A = LPAD (’hello’, 4 )

LTRIM
(expr [,set])
The LTRIM function returns the text string operand expr with all the
leftmost characters that appear in set removed. The default for set is a
blank. If none of the leftmost characters of expr appear in set then expr is
returned

Oracle FastFormula Reference 2 – 15


Examples:
/* A is set to ’def’ */
A = LTRIM (’abcdef’,’abc’)

/* A is set to ’abcdef’ */
A = LTRIM (’abcdef’,’bc’)

REPLACE
(expr, search_string [,replacement_string])
The REPLACE function returns the text string operand expr with every
occurrence of search_string replaced with replacement_string. If
replacement_string is omitted or null, all occurrences of search_string are
removed. If search_string is NULL, expr is returned. REPLACE allows
you to substitute one string for another as well as to remove character
strings.
Example:
SELECT REPLACE (’JACK and JUE’,’J’,’BL’) ”Changes”
FROM DUAL
Changes
–––––––
BLACK and BLUE

RPAD
(expr, n [,pad])
The RPAD function returns the text string operand expr right–padded to
length n with the sequence of characters in pad. The default for pad is a
blank. If expr is longer than n, then RPAD returns the portion of expr that
fits in n.
Examples:
/* A is set to ’helloXYXYX’ */
A = RPAD (’hello, 10, ’XY’)

/* A is set to ’hell’ */
A = RPAD (’hello’, 4 )

RTRIM
(expr [,set])
The RTRIM function returns the text string operand expr with all the
rightmost characters that appear in set removed. The default for set is a
blank. If none of the rightmost characters of expr appear in set then expr
is returned

2 – 16 Using Oracle FastFormula


Examples:
/* A is set to ’abc’ */
A = RTRIM (’abcdef’,’def’)

/* A is set to ’abcdef’ */
A = RTRIM (’abcdef’,’de’)

SUBSTRING
SUBSTR(expr, m [,n])
SUBSTRING(expr, m [,n])
The SUBSTRING function returns a substring of the text string operand
expr of length n characters beginning at the mth character. If you omit
the third operand, the substring starts from m and finishes at the end of
expr.
Note: The first operand is a text operand. The second and third
operands are numeric operands. The resulting data type of this
function is text.
Suggestion: Always check string length before you start to
substring. For example:
/* Check that the tax code starts with GG */
IF length(Tax_code) <= 2
THEN
(message = ’Tax code is too short’
RETURN message
)
IF substr( Tax_code, 1, 2) = ’GG’ THEN ...

Or, to check if Tax_code is a string of at least two characters


starting with ’GG’:
IF Tax_code LIKE ’GG%’ THEN ...

SUBSTRB
(expr, m [,n])
The same as SUBSTR, except that the arguments m and n are expressed
in bytes, rather than in characters. For a single–byte database character
set, SUBSTRB is equivalent to SUBSTR.

TRANSLATE
(expr, from, to)
The TRANSLATE function returns the text string operand expr with all
occurrences of each character in from replaced by its corresponding
character in to. Characters in expr that are not in from are not replaced.

Oracle FastFormula Reference 2 – 17


The argument from can contain more characters than to. In this case, the
extra characters at the end of from have no corresponding characters in
to. If these extra characters appear in expr, they are removed from the
return value. Oracle FastFormula interprets the empty string as null,
and if this function has a null argument, it returns null.

TRIM
TRIM(trim_character FROM trim_source)
The TRIM function allows you to trim heading or trailing characters (or
both) from a character string. If trim_character or trim_source is a
character literal, you must enclose it in single quotes. You can specify
LEADING or TRAILING to remove leading or trailing characters. If you
specify none of these, both leading and trailing characters are removed
equal to trim_character.

UPPER
UPPER(expr)
The UPPER function converts a text string to upper case.

Numeric Functions

ABS
ABS(n)
The ABS function returns the magnitude of a numeric operand n as a
positive numeric value.
If the value of the operand is positive, its value returns unchanged. If
the operand is negative then the value’s sign inverts, and the value
returns as a positive number.
Example:
ABS (–17) returns 17

FLOOR
FLOOR(n)
The FLOOR function returns the integer part of a numeric operand n.
If the value of the operand contains information after the decimal point,
Oracle FastFormula discards that information and returns a whole
number.

2 – 18 Using Oracle FastFormula


Example:
FLOOR(35.455) returns 35

GREATEST
GREATEST(n, n [, n] . . .)
GREATEST_OF(n, n [, n] . . .)
The GREATEST function compares all the operands and returns the
largest value.

LEAST
LEAST(n, n [, n] . . .)
LEAST_OF(n, n [, n] . . .)
The LEAST function compares all the operands and returns the smallest
value.

POWER
POWER(m,n)
Returns m raised to the nth power. The base m and the exponent n can
be any numbers, but if m is negative, n must be an integer.

ROUND
ROUND(n [, m])
The ROUND function rounds off a numeric value n to m decimal places
and a date depending on the format of m. For numeric values, the first
operand is the value Oracle FastFormula rounds off, the second the
number of places Oracle FastFormula rounds off to. For dates, ROUND
returns n rounded to the unit specified by the format model of m such as
Year or Day. Refer to the SQL Language Reference Manual for details of
the valid formats you can specify.
Examples:
ROUND(2.3401, 2) returns 2.34
ROUND (2.3461, 2) returns 2.35
ROUND (TO_DATE(’27–OCT–1992’, ’DD–MON–YYYY’), ’YEAR’)
returns 01–JAN–1993

Oracle FastFormula Reference 2 – 19


ROUNDUP
ROUNDUP(n [, m])
ROUND_UP(n [, m])
The ROUNDUP function rounds a numeric value n up to m decimal
places. The first operand is the value to be rounded up, the second the
number of places to round to. If the digits after the rounding point are
zero, the value is unchanged. If the digits are not zero, the value is
incremented at the rounding point.
Examples:
ROUND_UP(2.3401, 2) returns 2.35
ROUND_UP(2.3400, 2) returns 2.34.

TRUNC
TRUNC(n [, m])
TRUNCATE(n [, m])
The TRUNC function rounds a numeric value n down to m decimal
places. The first operand is the value to be rounded down, the second
the number of places to round to. TRUNC also returns n with the time
portion of the day truncated to the unit specified by the format model of
m. If you omit m, d is truncated to the nearest day The default model,
’DD’, returns the date rounded or truncated to the day with a time of
midnight.
Oracle FastFormula drops all digits (if any) after the specified truncation
point.
Examples:
TRUNC(2.3401, 2) returns 2.34.
TRUNC(TO_DATE(’27–OCT–1992’, ’DD–MON–YYYY’), ’YEAR’) returns
01–JAN–1992

Date Functions
ADD_DAYS
ADD_DAYS(date, n)
The ADD_DAYS function adds a number of days to a date. The
resulting date accords with the calendar.
Note: Oracle FastFormula ignores any fractional part of the
number n.
Example:
ADD_DAYS (’30–DEC–1990’ (date), 6) returns 5 JAN 1991

2 – 20 Using Oracle FastFormula


ADD_MONTHS
ADD_MONTHS(date, n)
The ADD_MONTHS function adds a number of months to a date. The
resulting date accords with the calendar.
Note: Oracle FastFormula ignores any fractional part of the
number n.

ADD_YEARS
ADD_YEARS(date, n)
The ADD_YEARS function adds a number of years to a date. The
resulting date accords with the calendar.
Note: Oracle FastFormula ignores any fractional part of the
number n.

GREATEST
GREATEST(date1, date2[, date3] . . .)
The GREATEST function compares all the operands and returns the
latest date.

LAST_DAY
LAST_DAY(d)
The LAST_DAY function returns the date of the last day of the month
that contains d. You might use this function to determine how many
days are left in the current month.

LEAST
LEAST(date1, date2 [, date3] . . .)
The LEAST function compares all the operands and returns the earliest
date.

DAYS_BETWEEN
DAYS_BETWEEN(date1, date2)
The DAYS_BETWEEN function returns the number of days between two
dates. If the later date is first, the result is a positive number. If the
earlier date is first, the result is a negative number. The number
returned is also based on the real calendar.
Note: The result is a numeric data type.

Oracle FastFormula Reference 2 – 21


Example:
DAYS_BETWEEN(’1995/06/27 00:00:00’ (date), ’1995/07/03
00:00:00’ (date)) returns –5

MONTHS_BETWEEN
MONTHS_BETWEEN(date1, date2)
The MONTHS_BETWEEN function returns the number of months
between two dates. If the later date is first, the result is a positive
number. If the earlier date is first, the result is a negative number. The
number returned is also based on the real calendar.
If the result is not a whole number of months (that is, there are some
days as well), the days part is shown as a decimal.
Note: The result is a numeric data type.

NEW_TIME
NEW_TIME(d, zl, z2)
Returns the date and time in zone z2 when the date and time in zone z1
are d. The arguments z1 and z2 can be any one of these text strings:

AST or ADT Atlantic Standard or


Daylight Time
BST or BDT Bering Standard or
Daylight Time
CST or CDT Central Standard or
Daylight Time
EST or EDT Eastern Standard or
Daylght Time
GMT Grenwich Mean Time
HST or HDT Alaska–Hawaii Stan-
dard Time or Daylight
Time
MST or MDT Mountain Standard or
Daylight Time
NST Newfoundland Stan-
dard Time
PST or PDT Pacific Standard or
Daylight Time
YST or YDT Yukon Standard or
Daylight Time

2 – 22 Using Oracle FastFormula


NEXT_DAY
NEXT_DAY(d, expr)
The NEXT_DAY function returns the date of the first weekday named
by expr that is later than the date d. The argument expr must be a day of
the week in your session’s date language. The return value has the same
hours, minutes, and seconds component as the argument d.

Data Conversion Functions


Use data conversion functions to convert from one data type to another
data type. For example, you could have an expression returning a
number value for salary, which you want to include in a printed
message (that is, a character value). To print the number as part of the
message, you need to convert the value of salary from a number to a
character value, using the TO_TEXT function.

CONVERT
(expr, dest_char_set [,source_char_set])
The CONVERT function converts a character string from one character
set to another. The expr argument is the value to be converted. The
dest_char_set argument is the name of the character set to which expr is
converted. The source_char_set argument is the name of the character set
in which expr is stored in the database. The default value is the database
character set.

INSTR
(expr1,expr2[,n[,m]])
The INSTR function searches expr1 beginning with its nth character for
the mth occurrence of expr2 and returns the position of the character in
expr1 that is the first character of this occurrence. If n is negative, Oracle
FastFormula counts and searches backwards.

NUM_TO_CHAR
NUM_TO_CHAR(n, format)
Converts the number n from number data type to text data type using
the specified format. This function is equivalent to the SQL TO_CHAR
function. For example:
NUM_TO_CHAR(amount, ’$9,990.99’)

This returns the amount with a leading dollar sign, commas every three
digits, and two decimal places. Refer to the SQL Language Reference
Manual for a full list of the valid number formats you can specify.

Oracle FastFormula Reference 2 – 23


TO_DATE
TO_DATE (expr [, format])
Converts the expression expr of text data type to a date data type. The
text expression must be of the form ’YYYY/MM/DD HH24:MI:SS’ if no
format is provided. The day and year must be in numeric form. For
example:
/* legal */
date_1 = TO_DATE (’12 January 89’, ’DD Month YY’)
/* illegal */
date_1 = TO_DATE (’12 January Nineteen–Eighty–Nine’,
’DD Month Year’)

Note: When assigning date variables from constants it is much


more efficient to say:
date_1 = ’1989/01/12 00:00:00’(date)

Note: The text expression must be in the format of either


YYYY/MM/DD HH24:MI:SS or DD–MON–YYYY if no format
is provided.

TO_NUMBER
TO_NUM(expr)
TO_NUMBER(expr)
Converts the expression expr of text data type to a number data type.
The expression must represent a valid number. So for example, you
cannot convert an expression such as ‘Type 24’ but you can convert the
text expression ‘1234’. For decimal values, you must always use a period
as a decinal point, for example ’4.5’.

TO_TEXT
TO_TEXT(n) TO_TEXT (date1 [, format])
TO_CHAR(n) TO_CHAR(date1 [, format])
DATE_TO_TEXT(n) (date1 [, format])
The TO_TEXT function converts:
• the number n from number data type to text data type. The
default number format has the decinal point as a period, for
example ’4.5’.
• the date date1 from date data type to text data type. The optional
format should be a text string like ’DD/MM/YYYY’. The default
format is ’YYYY/MM/DD HH24:MI:SS’.

2 – 24 Using Oracle FastFormula


For example:
birthdate = ’21–JAN–1960’ (date)
mesg = ’Birthdate is: ’ + TO_CHAR (birthdate)
/* sets mesg to ’Birthdate is: 1960/01/21 00:00:00’ */
mesg = ’Birthdate is: ’ + TO_CHAR (birthdate,
’DD–MON–YY’)
/* sets mesg to ’Birthdate is: 21–JAN–60’ */
mesg = ’Birthdate is: ’ + TO_CHAR (birthdate,
’DD Month Year’)
/* sets mesg to ’Birthdate is: 21 January Nineteen–Sixty’ */

Functions to Get Values From Tables

GET_LOOKUP_ MEANING
GET_LOOKUP_MEANING(lookup_type , lookup_code)
The GET_LOOKUP_MEANING function enables Oracle FastFormula to
translate a lookup code into a meaning. This can be used for any
descriptive flexfield items or developer flexfield items that are based on
lookups.
Example:
GET_LOOKUP_MEANING (’ETH_TYPE’, PEOPLE_GB_ETHNIC_ORIGIN)

GET_FTE_VALUE
GET_FTE_VALUE(number)
The GET_FTE_VALUE identifies the FTE value for a given assignment
on a specified date in the past from the
PER_ASSIGNMENT_BUDGET_VALUES table.
This function uses the following Input Parameters:
• P_ASSIGNMENT_ID (number) – this is a required input and
identifies which assignment to retrieve FTE for..
• P_QUERY_DATE (date) – this is a required input and specifies the
date at which to retrieve FTE.

GET_TABLE_VALUE
GET_TABLE_VALUE(table_name, column_name, row_value [,effective date])
The GET_TABLE_VALUE function returns the value of a cell in a
user–defined table. The three text operands, which identify the cell
(table_name, column_name, and row_value), are mandatory. The date
operand is optional. If it is not supplied, the function returns the cell
value as of the effective date.

Oracle FastFormula Reference 2 – 25


You cannot use this function in formulas for user table validation or
QuickPaint reports.
Example:
GET_TABLE_VALUE(’WAGE RATES’, ’Wage Rate’, Rate_Code)

RAISE_ERROR
RAISE_ERROR(application_ID, message name)
This function allows you to raise a functional error message from within
a formula. It accepts an Application ID and the message_name of an
Oracle Applications error message to raise.
Example:
ERROR = RAISE_ERROR(800, ’error_name’)

RATES_HISTORY
RATES_HISTORY(element or rate type name, date, element or rate type
indicator, time dimension)
This function uses information stored in the UK Element Attribution
Information EIT and information about the assignment’s contract type
to calculate a payment rate as of the given date and expressed for the
selected time dimension (such as hourly or annual). If the element or
rate type indicator is R, the function sums the rates for all elements
classified with the given rate type (which is stored against the element in
the Rate Type Information EIT).
The time dimension parameter must be A (annual), D (daily), H
(hourly), or P (periodic). The element or rate type parameter must be R
(rate type) or E (element).
The function can also adjust the returned rate for FTE and length of
service, if these factors are set to Yes in the Element Attribution
Information.

Functions for Accrual Type Formulas


In addition to the standard FastFormula functions, you may find the
following functions useful for your Accrual and Carry Over formulas.

CALCULATE_PAYROLL_PERIODS
This function takes no parameters; it uses the payroll id context. It
calculates the number of payroll periods in one year for that payroll, and
sets the global variable PAYROLL_YEAR_NUMBER_OF_PERIODS to
that value. For example, the function would set the global variable to 12
for a calendar month payroll.

2 – 26 Using Oracle FastFormula


Example:
E = CALCULATE_PAYROLL_PERIODS

GET_ABSENCE
GET_ABSENCE(calculation date, start date)
This function calculates the total amount of absence contributing to an
accrual plan between two dates. It counts the whole of any absence that:
• has a start date and an end date, and
• starts on or between the two dates given as inputs
Example:
TOTAL_ABSENCE = GET_ABSENCE(’01–JAN–1999’(date),
’31–DEC–1999’(date))

GET_CARRY_OVER
GET_CARRY_OVER(calculation date, start date)
This function returns the number of days or hours recorded on the
Carry Over element entry with an effective date on or between the two
input dates. If more than one element entry is effective between these
dates, the function sums the hours or days.
Carry Over element entries may also have an expiry date, after which
any unused carry over is lost. If the calculation date is after the expiry
date, the function checks the absences taken between start and
calculation date. If the person took absences totaling the carry over, the
function returns total carry over because it was all used before it
expired. If absences total less than the carry over, the function returns
total absence time; the rest of the carryover is lost.
For example, if the carry over is 10 days and 6 days absence were taken
up to the expiry date, the function returns 6. The other four days of
carry over have expired and been lost.

GET_NET_ACCRUAL
GET_NET_ACCRUAL(calculation date, plan id, accrual start date, accrual
latest balance)
This function calls the accrual formula defined in the accrual plan to
return the net accrual at the calculation date. The following contexts
must be available to a formula calling this function: assignment id,
payroll id, business group id, and assignment action id.

GET_OTHER_NET_CONTRIBUTION
GET_OTHER_NET_CONTRIBUTION(calculation date, start date)

Oracle FastFormula Reference 2 – 27


This function calculates the total amount of net contribution other than
absences or carry over between two dates. It looks for element entries
for all elements that have been added in the Net Calculation Rules
window. It sums the days or hours from all entries with an effective date
on or between the two input dates.

GET_PAYROLL_PERIOD
GET_PAYROLL_PERIOD(date)
This function determines the payroll period spanning the input date and
sets global variables containing the start and end date and the period
number. It returns 0 if successful, and otherwise error.
This example shows how to use this function then use the GET_DATE
and GET_NUMBER functions to retrieve the values it sets in the global
variables:
E = GET_PAYROLL_PERIOD(Calculation_date)
Calculation_Period_SD = GET_DATE(’PAYROLL_PERIOD_START_DATE’)
Calculation_Period_ED = GET_DATE(’PAYROLL_PERIOD_END_DATE’)
Calculation_Period_PNUM = GET_NUMBER(’PAYROLL_PERIOD_NUMBER’)

GET_ACCRUAL_BAND
GET_ACCRUAL_BAND(number)
This function determines the appropriate accrual band for the specified
length of service. It sets global variables containing the
ANNUAL_RATE, UPPER_LIMIT and CEILING values for the band.
ANNUAL_RATE is the amount that should accrue this accrual term.
UPPER_LIMIT is the length of service that must be completed for the
employee to go to the next accrual band. CEILING is the maximum
number of hours or days the employee can accrue at any time. The
function returns 0 if successful, and otherwise error.
This example shows how to use this function then use the
GET_NUMBER function to retrieve the values it sets in the global
variables:
IF (GET_ACCRUAL_BAND(Years_Service) = 0 THEN
(
Annual_Rate = GET_NUMBER(’ANNUAL_RATE’)
Upper_Limit = GET_NUMBER(’UPPER_LIMIT’)
Ceiling = GET_NUMBER(’CEILING’)
ELSE
( ... [processing for error] ....)
)

GET_ASSIGNMENT_STATUS
GET_ASSIGNMENT_STATUS(date)

2 – 28 Using Oracle FastFormula


This function determine the assignment status at a given date. It
populates the globals ASSIGNMENT_EFFECTIVE_SD,
ASSIGNMENT_EFFECTIVE_ED and
ASSIGNMENT_SYSTEM_STATUS. It returns 0 if successful, and
otherwise error.
Example:
ERROR = GET_ASSIGNMENT_STATUS(’01–JAN–1999’(date))

GET_ASG_INACTIVE_DAYS
GET_ASG_INACTIVE_DAYS(period start date, period end date)
This function checks the assignment status on each day from period
start date to period end date. It calls the function
GET_WORKING_DAYS to calculate the total number of working days
in the period (Mondays to Fridays) and subtracts the number of
working days when the assignment was inactive. It returns the number
of inactive working days.

GET_PERIOD_DATES
GET_PERIOD_DATES(date1, unit, date2, number)
This function determines the start and end dates of a period of time with
the duration specified by the unit input and the number (such as 2
months). Valid units are D (days), M, (months), and W (weeks). The
period spans date1 and starts on a date that is a multiple of the unit
duration on from date2 (or backwards from date2).
The function populates the globals PERIOD_START_DATE and
PERIOD_END_DATE. It returns 0 if successful, and otherwise error.
Example:
Error = GET_PERIOD_DATES(’1–FEB–1999’(date), ’M’,
’15–DEC–1998’(date), 1)

This example populates PERIOD_START_DATE with 15–JAN–1999 and


PERIOD_END_DATE with 14–FEB–1999.
An example where the period starts before date2:
Error = GET_PERIOD_DATES(’1–FEB–1999’(date), ’M’,
’15–APR–1999’(date), 2)

This example populates PERIOD_START_DATE with 15–JAN–1999 and


PERIOD_END_DATE with 14–MAR–1999.

GET_START_DATE
GET_START_DATE(accrual start date, start of accrual term)

Oracle FastFormula Reference 2 – 29


This function returns the date at which the accrual formula should start
calculating accruals.
• If there is no payroll balance holding gross accruals, the date is
always the start of the accrual term.
• If there is a payroll balance and there are retrospective absence
entries that have not already been used in an accrual calculation,
the function returns the start date of the earliest of these entries.
• If there is a payroll balance and there are no unprocessed
retrospective absence entries, the function returns accrual start
date.
This date, which is passed into the accrual formula, is the day
after either the Date Earned or the Date Paid of the last payroll
period in which the assignment was processed––depending on
the PTO Balance Type set for the business group.
Note: Although GET_START_DATE returns the start date of
the earliest of any unprocessed retrospective element entries,
this date is not currently used in the seeded accrual formulas. If
GET_START_DATE finds any unprocessed retrospective
element entries, the formula always calculates accruals from the
beginning of the accrual term.

GET_WORKING_DAYS
GET_WORKING_DAYS(start date, end date)
This function returns the number of working days (Mondays to Fridays)
in the period from start date to end date.

PUT_MESSAGE
PUT_MESSAGE(expr)
This function adds a message to the stack to be output at the end of the
formula by the Accruals form.
Example:
E = PUT_MESSAGE(’The assignment is not yet eligible for accrual’)

Functions to Call a Formula


These functions allow you to call another formula, either once or in a
loop. They require all the contexts available to the Accruals formula
type.

CALL_FORMULA
CALL_FORMULA(formula name)

2 – 30 Using Oracle FastFormula


This function runs a named formula with no inputs and no outputs.

LOOP_CONTROL
LOOP_CONTROL(formula name)
This function repeatedly calls another formula, which must have the
return parameter ’CONTINUE_LOOP’. The loop continues until the
function detects a value other than ’Y’ in CONTINUE_LOOP. If it
detects ’N’, the function returns 0 (success); if it detects another value,
the function returns 1 (error).

Functions to Set and Get Globals


Using the following functions, you can set and use globals in SQL*Plus
from within your formulas.

SET_TEXT, SET_NUMBER, SET_DATE


SET_TEXT(variable name, value)
SET_NUMBER(variable name, value)
SET_DATE(variable name, value)
These functions accept the name of a global variable and the value to be
set. They determine whether the global exists and, if not, create a new
global. They return 0 if successful and 1 if not successful.
Examples:
E = SET_NUMBER(’UPPER_LIMT’, 0)
E = SET_DATE(’CONTINUOUS_SERVICE_DATE’, service_start_date)

GET_TEXT, GET_NUMBER, GET_DATE


GET_TEXT(variable name)
GET_NUMBER(variable name)
GET_DATE(variable name)
These functions accept the name of a global variable and return its
value. If they cannot find the global, they return NULL.
Example:
Calculation_Period_SD = GET_DATE(’PAYROLL_PERIOD_START_DATE’)

CLEAR_GLOBALS
This function sets to NULL the value of all global variables that were set
using SET_TEXT, SET_NUMBER, and SET_DATE. There are no inputs.
It returns 0 if successful and 1 if not successful.

Oracle FastFormula Reference 2 – 31


REMOVE_GLOBALS
This function removes all global variables. There are no inputs. It
returns 0 if successful and 1 if not successful.

ISNULL
ISNULL(variable name)
A set of three functions that test whether a text, numeric, or date value is
NULL. Returns Y if the value is NULL and N otherwise.
Example:
IF IS_NULL(VARIABLE_NAME) = ’Y’ THEN
ERROR = SET_NUMBER(VARIABLE_NAME, 0)

2 – 32 Using Oracle FastFormula


Comments
A formula may contain any number of comments, which can be placed
anywhere in the formula.
Comments start with the sequence /* (slash asterisk), and finish with */
(asterisk slash). Oracle FastFormula ignores all text within these
comment delimiters.
Warning: Do not put a comment within a comment. This
causes Oracle FastFormula to return a syntax error.

Oracle FastFormula Reference 2 – 33


Statements
Statements are instructions that Oracle FastFormula carries out. There
are six types of statement you can use:
• Alias statement
• Assignment statement
• Default statement
• If statement
• Inputs statement
• Return statement
An If statement can have Assignment, Return, and other If statements
nested within it, enabling you to build up powerful formulas.

Order of Statements
1. Alias statements (if any)
2. Default statements (if any)
3. Input statement (if any)
4. Other statements

Alias Statement
The format of the Alias statement is:
ALIAS varname1 AS varname2

where varname1 is the name of an existing database item or global


value, and varname2 is a unique name not currently known to the
system nor used previously in your formula.
Use the Alias statement to define another name, or alias, for existing
variables in the system. You can declare aliases for database items and
global values.
Alias statements must appear before any other statements in a formula.

Default Statement
The format of the Default statement is:
DEFAULT FOR <varname> IS <constant>

where varname is an input value or database item, and constant is a


constant value matching the data type of varname.

2 – 34 Using Oracle FastFormula


Use the Default statement to set a default value for an input value or
database item. The formula uses the default value if the database item is
empty or the input value is not provided when you run the formula.
You can use the Default statement with the ’WAS DEFAULTED’ test to
detect when a default value has been used. For example:
DEFAULT FOR hourly_rate IS 3.00
X = hours_worked * hourly_rate
IF hourly_rate WAS DEFAULTED
THEN
MESG = ’Warning: hourly rate defaulted’

This example sets a default of 3.00 for the database item hourly_rate. If
hourly_rate is empty (NULL) in the database, the formula uses the
default value of 3.00 and issues a warning message.

☞ Attention: You must use the Default statement for database


items that can be empty. The Database Items window includes a
check box labelled Default Required. This check box is checked
for database items that can be empty. The Database Items
window appears when you click the Show Items button on the
Formulas window.

Inputs Statement
The format of the Inputs statement is:
INPUTS ARE varname1(data type)[, varname2 (data type)] ...

Use the Inputs statement to pass input values from an element into a
formula.
For example,
INPUTS ARE bonus (number),
start_date (date)

You do not need to declare the type of number variables because this is
the default data type. You can define up to 15 input values for an
element.
The Inputs statement must appear before the other formula statements
except:
• any Alias statements, which must always be at the top of the
formula
• any Default statements that provide default values for input
values

Input Variables or Database Items


Always use the Inputs statement to retrieve the input values of the
element associated with the formula. Using a database item forces the

Oracle FastFormula Reference 2 – 35


formula to execute the code and work out the path to retrieve the
database item.
For example, the formula below:
INPUTS ARE wage_rate,
hours_worked
wage = wage_rate * hours_worked
RETURN wage

is more efficient than the second formula:


wage = wage_wage_rate * wage_hours_worked
RETURN wage

Assignment Statement
Use the Assignment statement to set a value for a local variable. The
format of the Assignment statement is:
varname = expression

For example:
rate = hourly_rate + 14
wage = hours_worked * rate

Oracle FastFormula evaluates the expression on the right hand side of


the statement, and places its result in the variable you name on the left
hand side. The left side of an Assignment statement must always be a
local variable because a formula can only change the value of local
variables.

IF Statement
Use the If statement to check a condition that controls whether a
sequence of statements is executed.
There are two clauses in the If statement: the THEN and ELSE clauses.
• The THEN clause lets you define what to do if the conditions are
true.
• The ELSE clause lets you define what to do if the conditions are
not true.
The If statement is the only statement that can have other statements
nested within it, including other IF statements.

2 – 36 Using Oracle FastFormula


Format of Statement
The format of the If statement is:
IF [NOT] condition
[logical operator] [NOT] condition
THEN
statement [statement ..]
ELSE
statement [statement ..]
The If statement can consist of a single condition, or two or more
conditions combined with logical operators. The logical operators are
AND, OR and NOT. The first two combine the conditions logically, and
the third negates a condition:
• The AND operator means that if both conditions are true, then
their combination is true.
• The OR operator means that if either condition is true, then their
combination is true.
• If the NOT operator precedes a condition, this inverts the truth of
the condition. That is, if condition X is true, then NOT X is false.
Format of Conditions
A condition itself has a valid format. This is:
expression comparator expression
The values represented by each expression are compared together in the
way described by the comparator. The two expressions must both
return the same data type. There are eight comparators, and the way
they work depends upon the data type of the values they are
comparing.

Data
Comparator Symbols Types Meaning

Equals = All The condition is true if both expressions


have exactly the same value. For text, the
case of the expression must be the same.
So, for example, ’Smith’ is not equal to
’SMITH’.

Not Equal to != All The condition is true if the result of the


first expression does NOT have the same
<> value as the result of the second
>< expression.

Greater than > All The condition is true if the first expression
is alphabetically after, or has a numerically
greater value, or a later date than the
second expression.

Oracle FastFormula Reference 2 – 37


Data
Comparator Symbols Types Meaning

Less than < All The condition is true if the first expression
is alphabetically before, or has a
numerically smaller value, or an earlier
date than the second expression.

Greater than or >= All The condition is true if either the greater
equal to than OR the equal to comparator returns a
=> true result.

Less than or equal <= All The condition is true if either the less than
to OR the equal to comparator returns a true
=< result.

Like LIKE Text The condition is true if the two text


expressions match according to the rules of
the LIKE syntax. You can include
Wildcards in the text to allow searching for
text that matches a pattern, or words that
begin with a certain sequence of letters.
– percent sign (%) matches any number of
characters in that position
– underscore (_) matches a single charac-
ter occurrence in that position.

Not Like NOT Text The condition is true if the two text
LIKE expressions do NOT match according to
the rules of the LIKE syntax.

There is a special comparator called WAS DEFAULTED that you can use
to test database items and input values. If there is no value available for
an input value or database item, the formula uses a default value. The
condition containing the WAS DEFAULTED comparator is True if a
default value was used. For example:
DEFAULT FOR employee_middle_name IS ’ ’
IF employee_middle_name WAS DEFAULTED
THEN
/* special processing */

Correct Use of Brackets


If you group more than one statement under the THEN or ELSE clauses,
enclose the group of statements within brackets, that is ( and ). In the
absence of brackets, Oracle FastFormula conditionally executes only the
statement that immediately follows the THEN or ELSE clause. Any
other statements are executed unconditionally. For example, when the
following formula runs, High_salary is always set to Y:

2 – 38 Using Oracle FastFormula


High_salary = ’N’
IF Salary > 20000
THEN Tax = Salary * .25
High_salary = ’Y’

To prevent this, use brackets as follows:


High_salary = ’N’
IF Salary > 20000
THEN
(
Tax = Salary * .25
High_salary = ’Y’
)

Return Statement
Use the Return statement to return values in local variables to the
application. Oracle FastFormula can pass back any number of variables.
The variable does not need to contain a value.
Example:
/* Formula: LONDON ALLOWANCE FORMULA */
INPUTS ARE this_months_extra (number)
London_allowance = (grade_pay/20 + this_months_extra)
RETURN London_allowance

Notice that you do not have to declare the data type of local variables in
the Return statement (as the formula already knows the data type).
Oracle FastFormula stops executing the formula when it reaches the
Return statement. Any statements after the Return statement are
ignored.

Oracle FastFormula Reference 2 – 39


Formula Compilation
When you have created or edited a formula in the Formula window, you
choose the Verify button to compile it.
If you need to compile many formulas at the same time, you can run the
Bulk Compile Formulas process in the Submit Requests window. For
example, you run this process when you upgrade your legislative
information, which includes formulas.
Note: If you make any changes to a function after you have
compiled a formula that uses it, you need to recompile the
formula for the changes to take effect.

2 – 40 Using Oracle FastFormula


Formula Errors
There are two types of error that can occur when using Oracle
FastFormula:
• Verify–time errors occur in the Formulas window when you run
the formula verification. An error message explains the nature of
the error.
Common verify–time errors are syntax errors resulting from
typing mistakes.
• Run–time errors occur when a problem arises while a formula is
running. The usual cause is a data problem, either in the formula
or in the application database.
The basic Oracle FastFormula errors that can occur at run–time are:
• Uninitialized Variables: An uninitialized local variable is one
that has no value when the formula runs. The term ’uninitialized’
means you have not assigned any value to the variable before you
try to use it. This causes an error in all statements except the
Return statement. For example:
IF (tax_band < 2000)
THEN tax = salary / 8
IF (tax_band > 2000)
THEN tax = salary / 10
IF tax > 1000
THEN ...

This formula fails with an ’Uninitialized variable’ message (for


the variable tax) if the tax band is set to 2000.
• Divide by Zero: Dividing a number by zero is an operation that
provides no logical result. If this situation ever arises, Oracle
FastFormula passes a code back to the application indicating an
error (the application then takes the appropriate action).
Always check for the possibility of a divide by zero error if there
is any chance it could occur. For example, the formula:
x = salary/contribution_proportion

produces an error if the contribution proportion is set to zero. In


this formula, check for the divide by zero condition as follows:
IF contribution_proportion = 0
THEN (message = ’The contribution proportion is not
valid.’ RETURN message)
ELSE x = salary/contribution_proportion

• No Data Found: A database item supposed to be in the


database was not found. This represents an error in the
application data.

Oracle FastFormula Reference 2 – 41


• Too Many Rows: The database item definition within the
application caused more than one value to be fetched from the
database.
• Value Exceeded Allowable Range: This can occur for a
variety of reasons such as:
– exceeding the maximum allowable length of a string (which
is 240 characters)
– rounding up a number to an excessive number of places, for
example, round (1,100)
– using an invalid date, for example, 39–DEC–1990.
• Invalid Number: This occurs only when a database item
contains an item that does not make sense as a number.
• Null Data Found: A database item was found to have a null
value when it should have had a non–null value. Use the Default
statement for database items marked as Default Required in the
Database Items window.

2 – 42 Using Oracle FastFormula


Database Items
This topic lists the database items available to you in Oracle HRMS for
writing formulas and defining QuickPaint reports. The database items
are grouped into two listings:
• Static Database Items
• Dynamic Database Items
Static database items are shipped with the system and you cannot
modify them. Dynamic database items are created by Oracle HRMS
processes whenever you define new elements or other related entities.

Oracle FastFormula Reference 2 – 43


Static Database Items

Static database items are shipped with the system and you cannot
modify them.

Accrual Plan Information

Database item Description

ACP_CARRIED_OVER_DATE The effective date stored in the


latest Carry Over element entry
for the assignment and accrual
plan

ACP_CARRIED_OVER_PTO The amount of PTO stored for an


assignment in the latest Carry
Over element entry

ACP_CATEGORY The category of accrual plan

ACP_CONTINUOUS_SERVICE_DATE An employee’s adjusted service


date

ACP_ENROLLMENT_END_DATE The end date of an employee’s


enrollment in the accrual plan

ACP_ENROLLMENT_START_DATE The start date of an employee’s


enrollment in the accrual plan

ACP_INELIGIBLE_PERIOD_LENGTH The length of the plan’s


ineligibility period (a number)

ACP_INELIGIBLE_PERIOD_TYPE The units (e.g. months) for


measuring the length of the plan’s
ineligibility period

ACP_NAME The name of the accrual plan

ACP_SERVICE_START_DATE The start date of an employee’s


period of service

ACP_START The rule for determining the start


date for new hires in the plan

ACP_TERMINATION_DATE The end date of an employee’s


period of service

ACP_U_O_M The units (hours or days) for


accumulating PTO

PTO_ACCRUAL_PLAN_ID The id of the accrual plan.

2 – 44 Using Oracle FastFormula


Database item Description

PTO_DATE_PAID_CALCULATION_DATE The last day of the period for


calculating accruals in the payroll
run (when the PTO Balance Type
for the business group is Date
Paid)

PTO_DATE_EARNED_CALCULATION_DATE The last day of the period for


calculating accruals in the payroll
run (when the PTO Balance Type
for the business group is Date
Earned)

PTO_DATE_PAID_START_DATE The first day of the period for


calculating accruals in the payroll
run (when the PTO Balance Type
for the business group is Date
Paid)

PTO_DATE_EARNED_START_DATE The first day of the period for


calculating accruals in the payroll
run (when the PTO Balance Type
for the business group is Date
Earned)

Applicant Information

Database item Description

APL_DATE_END The date the application ended

APL_DATE_RECEIVED The date the application was


received

Employee Assignment Information

Database item Description

ASG_ASSIGNMENT_SEQUENCE This is used as a default for


assignment number

ASG_BARGAINING_UNIT_CODE The employee’s bargaining unit


code

Oracle FastFormula Reference 2 – 45


Database item Description

ASG_DATE_FROM The date from which this


assignment information is
effective

ASG_DATE_TO The date to which this assignment


information is effective

ASG_EMPLOYMENT_CATEGORY The employment category for the


assignment

ASG_EMPLOYMENT_CATEGORY_CODE The employment category code for


the assignment

ASG_END_TIME The standard end time for the


assignment

ASG_FREQ The frequency for which the


assignment working hours are
measured

ASG_FREQ_CODE The working hours frequency code


for the assignment

ASG_FTE_VALUE The full–time equivalent budget


actual value for the assignment

ASG_FULL_TIME_FREQ The full–time frequency for the as-


signment

ASG_FULL_TIME_HOURS The full–time working hours for


the assignment

ASG_GRADE The employee’s grade

ASG_GRADE_DATE_FROM The date from which this


assignment grade information is
effective

ASG_GRADE_DATE_TO The date to which this assignment


grade information is effective

ASG_GROUP The employee’s group

ASG_HEAD_VALUE The head budget value for the as-


signment

ASG_HOURS The standard number of working


hours for the assignment

ASG_INT_ADDR_LINE The internal address of the


assignment

ASG_JOB The employee’s job

2 – 46 Using Oracle FastFormula


Database item Description

ASG_JOB_DATE_FROM The date from which this


assignment job information is
effective

ASG_JOB_DATE_TO The date to which this assignment


job information is effective

ASG_LABOUR_UNION_MEMBER_FLAG Whether the assignment is a union


member

ASG_LAST_CHANGE_REASON The reason the salary was changed

ASG_LAST_PERFORMANCE_DATE Last performance review date

ASG_LAST_PERFORMANCE_LOCATION Last performance review location

ASG_LAST_PERFORMANCE_RATING Last performance review rating

ASG_LAST_PERFORMANCE_TYPE Last performance review type

ASG_LAST_PROC_PAYROLL_NAME The payroll name the assignment


was last processed

ASG_LAST_PROC_PERIOD_ID The time period ID the assignment


was last processed

ASG_LAST_PROC_PERIOD_NAME The period name the assignment


was last processed

ASG_LAST_PROC_PERIOD_NUMBER The period number the


assignment was last processed

ASG_LAST_PROPOSED_SALARY_CHANGE The proposed salary change

ASG_LAST_PROPOSED_SALARY_PERCENT The proposed salary change as a


percentage

ASG_LAST_SALARY_CHANGE_APPROVED Whether the last proposed salary


change has been approved

ASG_LAST_SALARY_DATE The last salary change date

ASG_LOCATION The employee’s location

ASG_LOC_INACTIVE_DATE The date to which the location


information is effective

ASG_MANAGER Whether the assignment is a


managerial assignment (yes/no)

ASG_MONEY_VALUE The assignment’s money budget


actual value

ASG_NEXT_PERFORMANCE_DATE Next performance review date

Oracle FastFormula Reference 2 – 47


Database item Description

ASG_NEXT_SALARY_DATE The date of the next salary change

ASG_NUMBER The assignment number

ASG_ORG The employee’s organization

ASG_ORG_DATE_FROM The date from which assignment


organization information is
effective

ASG_ORG_DATE_TO The date to which assignment


organization information is
effective

ASG_PAYROLL The employee’s payroll

ASG_PERFORMANCE_REVIEW_FREQUENCY The performance review period


for the assignment

ASG_PERFORMANCE_REVIEW_PERIOD The performance review


frequency for the assignment

ASG_PER_STATUS_DP Personal status for the assignment


(as of Date Paid)

ASG_PFT_VALUE The PFT budget value for the as-


signment

ASG_POSITION The employee’s position

ASG_POS_DATE_FROM The date from which this


assignment position information is
effective

ASG_POS_DATE_TO The date to which this assignment


position information is effective

ASG_POS_END_TIME The standard end time for the


assignment position

ASG_POS_FREQ The frequency for which the


assignment position’s hours are
measured

ASG_POS_HOURS The standard number of working


hours for the position

ASG_POS_PROB_PERIOD The probation period for the


assignment position

ASG_POS_START_TIME The standard start time for the


assignment position

2 – 48 Using Oracle FastFormula


Database item Description

ASG_PRIMARY Whether this is the employee’s


primary assignment (yes/no)

ASG_PRIMARY_CODE The assignment’s primary code

ASG_PROB_END_DATE The probation period end date

ASG_PROB_PERIOD The assignment’s probation period

ASG_PROB_UNITS The units of the assignment’s


probation period

ASG_REC_FULL_NAME The full name for the recruiter

ASG_RELIEF The relief position if the current


position holder is absent

ASG_SALARY The current salary for an employee

ASG_SALARY_BASIS The payment basis (i.e. frequency)


for the assignment, e.g. monthly

ASG_SALARY_BASIS_ANNUALIZATION_FAC The payment basis pay annualiza-


TOR tion factor for the assignment

ASG_SALARY_BASIS_CODE The payment basis lookup code


for the assignment

ASG_SALARY_BASIS_GRADE_ANNUALIZAT The payment grade basis pay


ION_FACTOR annualization factor for the assign-
ment

ASG_SALARY_BASIS_NAME The salary basis name for the as-


signment

ASG_SALARY_ELEMENT The display element name

ASG_SALARY_ELEMENT_VALUE_NAME The display input value name

ASG_SALARY_GRADE_RATE The display rate name

ASG_SALARY_RATE_BASIS The salary rate basis

ASG_SALARY_REVIEW_FREQUENCY The salary review frequency for


the assignment

ASG_SALARY_REVIEW_PERIOD The salary review period for the


assignment

ASG_START_DATE The start date of the assignment

ASG_START_TIME The standard start time for the


assignment

Oracle FastFormula Reference 2 – 49


Database item Description

ASG_STATUS The primary status for the


assignment

ASG_SUCCESSOR The position name that will


succeed into this position

ASG_SUP_FULL_NAME The full name for the supervisor

ASG_TYPE Whether this is an employee or


applicant assignment

ASG_VACANCY The name of the vacancy applied


for

Contact Addresses

Database item Description

CON_ADR_CITY The name of the contact’s town or


city

CON_ADR_COUNTRY The name of the contact’s country

CON_ADR_DATE_FROM The first date on which the contact


can be contacted

CON_ADR_DATE_TO The last date on which the contact


can be contacted

CON_ADR_LINE_1 The first line of the contact’s


address

CON_ADR_LINE_2 The second line of the contact’s


address

CON_ADR_LINE_3 The third line of the contact’s


address

CON_ADR_PHONE_1 The contact’s first telephone


number

CON_ADR_PHONE_2 The contact’s second telephone


number

CON_ADR_PHONE_3 The contact’s third telephone


number

CON_ADR_POSTAL_CODE The contact’s postal code

2 – 50 Using Oracle FastFormula


Database item Description

CON_ADR_REGION_1 The first line of the contact’s


region

CON_ADR_REGION_2 The second line of the contact’s


region

CON_ADR_REGION_3 The third line of the contact’s


region

Contact Information

Database item Description

CON_AGE The contact’s age

CON_APP_NUMBER The contact’s applicant number

CON_BENEFICIARY_FLAG The contact’s beneficiary flag

CON_CURRENT_APP Whether the contact is a current


applicant (yes/no)

CON_CURRENT_EMP Whether the contact is a current


employee (yes/no)

CON_DATE_END The end date of the contact’s rela-


tionship

CON_DATE_START The start date of the contact’s rela-


tionship

CON_DATE_OF_BIRTH The contact’s date of birth

CON_DEPENDENT_FLAG The contact’s dependent flag

CON_DISABLED Whether the contact is disabled


(yes/no)

CON_EMP_NUMBER The contact’s employee number

CON_END_DATE The date to which this contact


information is effective

CON_END_LIFE_REASON_ID ID for the reason for the end of the


relationship

CON_FIRST_NAME The contact’s first name

CON_FULL_NAME The contact’s full name

Oracle FastFormula Reference 2 – 51


Database item Description

CON_KNOWN_AS The contact’s preferred name

CON_LAST_NAME The contact’s last name

CON_MARITAL_STATUS The contact’s marital status

CON_MIDDLE_NAMES The contact’s middle names

CON_NATIONALITY The contact’s nationality

CON_PERSONAL_FLAG Personal relationship flag

CON_PERSON_TYPE The contact’s person type –


employee or applicant, for
example

CON_RLTD_PER_RSDS_W_DSGNTR Whether the contact shares the


same residence as the employee.

CON_RELATIONSHIP The relationship of the contact to


the employee

CON_SEQUENCE_NUMBER Contact’s sequence number

CON_SEX The contact’s sex

CON_START_DATE The date from which this contact


information is effective

CON_START_LIFE_REASON_ID ID for reason for the start of the


relationship

CON_THIRD_PARTY_PAY_FLAG Third party payments relationship


flag

CON_TITLE The contact’s title

CON_WORK_PHONE The contact’s work telephone


number

Contracts Information

Database item Description

CTR_STATUS_MEANING Contract status meaning

CTR_TYPE_MEANING Contract type meaning

2 – 52 Using Oracle FastFormula


Database item Description

CTR_STATUS Contract status code

CTR_TYPE Contract type code

Employee Hire Information

Database item Description

EMP_HIRE_DATE The employee’s hire date

EMP_LAST_PROCESS_DATE The date the employee was last


processed

EMP_LEAVING_REASON The reason the employee left

EMP_PROJ_TERM_DATE The employee’s projected termina-


tion date

EMP_TERM_ACCEPTED_BY The person who accepted the


employee’s notice

EMP_TERM_DATE The employee’s termination date

Location Details

Database item Description

LOC_ADR_LINE_1 The first line of the assignment’s


work address

LOC_ADR_LINE_2 The second line of the assign-


ment’s work address

LOC_ADR_LINE_3 The third line of the assignment’s


work address

LOC_ADR_POSTAL_CODE The postal code for the


assignment’s work address

LOC_ADR_REGION_1 The first line of the assignment’s


region

LOC_ADR_REGION_2 The second line of the


assignment’s region

Oracle FastFormula Reference 2 – 53


Database item Description

LOC_ADR_REGION_3 The third line of the assignment’s


region

LOC_ADR_PHONE_1 The assignment’s first work


telephone number

LOC_ADR_PHONE_2 The assignment’s second work


telephone number

LOC_ADR_PHONE_3 The assignment’s third work


telephone number

LOC_ADR_CITY The town or city where the


assignment works

LOC_ADR_COUNTRY The country where the assignment


works

Work Address Details (US only)

Database item Description

LOC_ADR_US_COUNTY The assignment’s work county (US


only)

LOC_ADR_US_STATE The assignment’s work state (US


only)

LOC_ADR_US_STATE_CODE The assignment’s work state code


(US only)

Work Address Details (UK only)

Database item Description

LOC_ADR_UK_COUNTY The assignment’s work county


(UK only)

2 – 54 Using Oracle FastFormula


Payroll Details

Database item Description

PAY_ARREARS_FLAG Value of arrears flag for payrolls

PAY_EARNED_CUT_OFF_DATE The cut–off date of the earned pe-


riod

PAY_EARNED_DIRECT_DEPOSIT_DATE The direct deposit date of the


earned period

PAY_EARNED_END_DATE The end date of the earned period

PAY_EARNED_PAY_ADVICE_DATE The pay advice date of the earned


period

PAY_EARNED_PERIOD_ID The ID of the time period of the


earned period

PAY_EARNED_PERIOD_NAME The period name for the earned


period

PAY_EARNED_PERIOD_NUMBER The period number for the earned


period

PAY_EARNED_START_DATE The start date of the earned period

PAY_PERIODS_PER_YEAR The number of pay periods in the


year

PAY_PROC_PERIOD_CUT_OFF_DATE The cut off date for the payroll


period

PAY_PROC_PERIOD_DATE_PAID The date the payroll was paid

PAY_PROC_PERIOD_DIRECT_DEPOSIT_DATE The direct deposit date for the


payroll period

PAY_PROC_PERIOD_END_DATE The end date of the payroll period

PAY_PROC_PERIOD_ID The ID of the time period for the


payroll

PAY_PROC_PERIOD_NAME The period name for the payroll

PAY_PROC_PERIOD_NUMBER The current period number for the


payroll

PAY_PROC_PERIOD_PAY_ADVICE_DATE The pay advice date for the payroll


period

PAY_PROC_PERIOD_START_DATE The start date of the payroll period

Oracle FastFormula Reference 2 – 55


People Addresses

Database item Description

PER_ADR_CITY The name of the person’s town or


city

PER_ADR_COUNTRY The name of the person’s country

PER_ADR_COUNTRY_CODE The person’s country code

PER_ADR_DATE_FROM The first date on which the person


can be contacted at this address

PER_ADR_DATE_TO The last date on which the person


can be contacted at this address

PER_ADR_LINE_1 The first line of the person’s


address

PER_ADR_LINE_2 The second line of the person’s


address

PER_ADR_LINE_3 The third line of the person’s


address

PER_ADR_PHONE_1 The person’s first contact number

PER_ADR_PHONE_2 The person’s second contact


number

PER_ADR_PHONE_3 The person’s third contact number

PER_ADR_POSTAL_CODE The person’s postal code

PER_ADR_REGION_1 The first line of the person’s region

PER_ADR_REGION_2 The second line of the person’s


region

PER_ADR_REGION_3 The third line of the person’s


region

2 – 56 Using Oracle FastFormula


Home Address Details (US only)

Database item Description

PER_ADR_US_COUNTY The person’s county (US only)

PER_ADR_US_STATE The person’s state (US only)

PER_ADR_US_STATE_CODE The person’s state code (US only)

Home Address Details (UK only)

Database item Description

PER_ADR_UK_COUNTY The person’s home county (UK


only)

People Information

Database item Description

PER_AGE The person’s age

PER_APPLICANT_NUMBER The person’s applicant number

PER_BENEFIT_GROUP_ID The ID of the person’s benefit


group

PER_COORD_BEN_MED_PLN_NO The benefits medical plan number


for the person

PER_COORD_BEN_NO_CVG_FLAG Whether there is any other bene-


fits coverage

PER_CURRENT_APP Whether the person is a current


applicant (yes/no)

PER_CURRENT_EMP Whether the person is a current


employee (yes/no)

PER_DATE_OF_BIRTH The person’s date of birth

PER_DATE_OF_DEATH The person’s date of death

PER_DATE_VERIFIED The date the employee last


verified his or her personal data

Oracle FastFormula Reference 2 – 57


Database item Description

PER_DISABLED Whether the person is disabled


(yes/no)

PER_DPNT_ADOPTION_DATE The person’s dependent’s adop-


tion date

PER_DPNT_VLNTRY_SVCE_FLAG Whether the dependent is on vol-


untary service

PER_EMP_NUMBER The person’s employee number

PER_FIRST_NAME The person’s first name

PER_FULL_NAME The person’s full name

PER_KNOWN_AS The person’s preferred name

PER_LAST_NAME The person’s last name

PER_MAIL_DESTINATION The person’s mail destination

PER_MARITAL_STATUS The person’s marital status

PER_MIDDLE_NAMES The person’s middle names

PER_NATIONALITY The person’s nationality

PER_NATIONAL_IDENTIFIER The person’s national identifier

PER_ORIGINAL_DATE_OF_HIRE Date the person was first hired

PER_PERSON_TYPE Type of person (employee or


applicant, for example)

PER_PREFIX The person’s name prefix

PER_PREV_LAST_NAME The person’s previous last name

PER_RECEIPT_OF_DEATH_CERT_DATE Date of receipt of the person’s


death certificate

PER_SEND_EXPENSES Where to send the person’s


expenses (home/office)

PER_SEX The person’s sex

PER_SUFFIX The person’s name suffix

PER_TITLE The person’s title

2 – 58 Using Oracle FastFormula


Database item Description

PER_USES_TOBACCO_FLAG Whether the person uses tobacco

PER_WORK_PHONE The person’s work telephone


number

Recruiter Information

Database item Description

REC_CURRENT_APP Whether the recruiter is a current


applicant (yes/no)

REC_CURRENT_EMP Whether the recruiter is a current


employee (yes/no)

REC_EMP_NUMBER The recruiter’s employee number

REC_GRADE The recruiter’s grade

REC_INT_ADDR_LINE The recruiter’s internal address

REC_JOB The recruiter’s job

REC_LOCATION The recruiter’s work location

REC_MANAGER Whether the assignment is a


managerial assignment (yes/no)

REC_ORG The name of the recruiter’s


organization

REC_PERSON_TYPE The recruiter’s person type


(employee or applicant, for
example)

REC_POSITION The recruiter’s position

REC_WORK_PHONE The recruiter’s work telephone


number

Oracle FastFormula Reference 2 – 59


Supervisor Information

Database item Description

SUP_CURRENT_EMP Whether the supervisor is a


current employee (yes/no)

SUP_DATE_FROM The date from which this


supervisor information is effective

SUP_DATE_TO The date to which this supervisor


information is effective

SUP_EMAIL_ADDRESS The supervisor’s email address

SUP_EMP_NUMBER The supervisor’s employee


number

SUP_GRADE The supervisor’s grade

SUP_INT_ADDR_LINE The supervisor’s internal address

SUP_JOB The supervisor’s job

SUP_LOCATION The supervisor’s work location

SUP_MANAGER Whether the assignment is a


managerial assignment (yes/no)

SUP_ORG The supervisor’s organization

SUP_PERSON_TYPE The supervisor’s person type

SUP_POSITION The supervisor’s position

SUP_WORK_PHONE The supervisor’s work telephone


number

Date Information

Database item Description

SESSION_DATE The effective date from


FND_SESSIONS

SYSDATE The system date

2 – 60 Using Oracle FastFormula


Dynamic Database Items
Dynamic database items are created by Oracle HRMS processes
whenever you define new elements or other related entities.

Element Database Items


When you define a new element, Oracle HRMS runs a process to create
a number of related database items for it. To ensure easy recognition of
these items, the process adds the element name <ENAME> to each one.
It also creates further database items for each pay and input value you
use <INAME>.
Here is a list of database items created each time you define an element
using the Element window:

Database item Description

<ENAME>_BEN_CLASS The element’s benefit


classification

<ENAME>_CLASSIFICATION The element’s classification

<ENAME>_CLOSED_FOR_ENTRY Yes/no flag: translated into


local language. If Yes, new
element entries cannot be
created but existing element
entries can still be modified.

<ENAME>_CLOSED_FOR_ENTRY_CODE Yes/no flag: If Yes, new


element entries cannot be
created but existing element
entries can still be modified.

<ENAME>_COSTABLE_TYPE The element’s costable type


(from lookup table)

<ENAME>_COSTABLE_TYPE_CODE The element’s costable type


(code values)

<ENAME>_COUNT The element entry count

<ENAME>_END_DATE The date to which this element


is effective

<ENAME>_INPUT_CURRENCY_CODE The element’s input currency


code

<ENAME>_LENGTH_OF_SERVICE The element’s qualifying


length of service

<ENAME>_OUTPUT_CURRENCY_CODE The element’s output currency


code

Oracle FastFormula Reference 2 – 61


Database item Description

<ENAME>_PROCESSING_PRIORITY The element’s processing


priority

<ENAME>_QUALIFYING_AGE The element’s qualifying age

<ENAME>_QUALIFYING_UNITS_CODE The qualifying length of ser-


vice units (code values)

<ENAME>_QUALIFYING_UNITS The qualifying length of ser-


vice units (from lookup table)

<ENAME>_REPORTING_NAME The element’s reporting name

<ENAME>_STANDARD_LINK Yes/no flag: yes = standard,


no = discretionary

<ENAME>_STANDARD_LINK_CODE Yes/no flag: yes = standard,


no = discretionary

<ENAME>_<INAME>_UNIT_OF_MEASURE The element’s unit of measure


(from lookup table)

<ENAME>_<INAME>_UNIT_OF_MEASURE_CODE The element’s unit of measure


(code values)

<ENAME>_<INAME>_DEFAULT The element’s default input


value

<ENAME>_<INAME>_MIN The element’s minimum input


value

<ENAME>_<INAME>_MAX The element’s maximum input


value

In addition to the items above, Oracle HRMS creates the following four
items for elements defined with multiple entries not allowed:

Database item Description

<ENAME>_<INAME>_ENTRY_VALUE The element value

<ENAME>_<INAME>_USER_ENTERED_CODE Whether a value exists at the


element entry level (yes/no)

<ENAME>_<INAME>_START_DATE The element’s start date

<ENAME>_<INAME>_END_DATE The element’s end date

2 – 62 Using Oracle FastFormula


In addition to the common list above, Oracle HRMS creates the
following item for elements defined with multiple entries allowed
whose input values are numeric (that is, hours, integer, money or
number).

Database item Description

<ENAME>_<INAME>_ENTRY_VALUE The summed element values for


the multiple entries

The units for ’<ENAME> <INAME> ENTRY VALUE’ are generated


for both recurring and nonrecurring elements and are user–definable.
Oracle HRMS modifies the definition text to retrieve the entry value in
the unit of measure as specified in the PAY_INPUT_VALUES_F table.

Grade Rate Database Items


When you define a grade rate, Oracle HRMS runs a process to create a
number of related database items for it. To ensure easy recognition of
these items, the process adds the grade rate name <NAME> to each
one.
Here is a list of database items created each time you define a grade
rate using the Grade Rate window:

Database item Description

GRADE_<NAME>_VALUE The grade rate’s value

GRADE_<NAME>_MINIMUM The grade rate’s minimum value

GRADE_<NAME>_MAXIMUM The grade rate’s maximum value

Pay Scale Rate Database Items


When you define a pay scale rate, Oracle HRMS runs a process to
create the following database item for it. To ensure easy recognition of
this item, the process adds the rate name <NAME> to it.

Database item Description

SPINE_<NAME>_VALUE The pay scale rates value

Oracle FastFormula Reference 2 – 63


Descriptive Flexfield Database Items

When you define descriptive flexfield segments you make them


available for use in QuickPaint by running the Create Descriptive
Flexfield DB Items process from the Submit Requests window. This
process creates database items for each of the descriptive flexfields
listed below.

To ensure easy recognition of these items, the process adds the


descriptive flexfield segment name <SEGMENT_NAME> to each one.

Database item Description

PEOPLE_<SEGMENT_NAME> People descriptive flexfield


database items

PAYROLLS_<SEGMENT_NAME> Payroll descriptive flexfield


database items

ASSIGNMENTS_<SEGMENT_NAME> Assignment descriptive flex-


field database items

GRADES_<SEGMENT_NAME> Grade descriptive flexfield


database items

ABSENCES_<SEGMENT_NAME> Absence descriptive flexfield


database items

ABSENCE_TYPES_<SEGMENT_NAME> Absence Type descriptive


flexfield database items

PERSON_ADDRESSES_<SEGMENT_NAME> Person Address descriptive


flexfield database items

EVENTS_<SEGMENT_NAME> Events descriptive flexfield


database items

JOBS_<SEGMENT_NAME> Jobs descriptive flexfield da-


tabase items

CONTACTS_<SEGMENT_NAME> Contacts descriptive flexfield


database items

PERIODS_OF_SERVICE_<SEGMENT_NAME> Periods of Service descriptive


flexfield database items

RECRUITMENT_ACTIVITIES_<SEGMENT_NAME> Recruitment Activities


descriptive flexfield database
items

POSITION_<SEGMENT_NAME> Position descriptive flexfield


database items

2 – 64 Using Oracle FastFormula


Database item Description

APPLICATIONS_<SEGMENT_NAME Applications descriptive


flexfield database items

ORGANIZATION_<SEGMENT_NAME> Organization descriptive


flexfield database items

Key Flexfield Database Items


When you define key flexfield segments you make them available for
use in QuickPaint by running the Create Key Flexfield DB Items
process from the Submit Requests window. This process creates
database items for each of the key flexfields listed below.
To ensure easy recognition of these items, the process adds the key
flexfield segment name <SEGMENT_NAME> to each one.
Run this process for each of your Business Groups. If you define
context–dependent key flexfield structures using
BUSINESS_GROUP_ID as the reference field, the process creates
database items for those flexfield segments as well.
BUSINESS_GROUP_ID is the only reference field that the Create Key
Flexfield DB Items process supports.

Database item Description

GRADE_KF_<SEGMENT_NAME> Grade key flexfield database items

JOB_KF_<SEGMENT_NAME> Job key flexfield database items

POS_KF_<SEGMENT_NAME> Position key flexfield database


items

GROUP_KF_<SEGMENT_NAME> Group key flexfield database items

Absence Database Items


When you define an absence type, Oracle HRMS runs a process to
create the following database item for it. To ensure easy recognition of
this item, the process adds the absence type name
<ABSENCE_NAME> to it.

Oracle FastFormula Reference 2 – 65


Database item Description

<ABSENCE_NAME>_CUM_BALANCE The cumulative balance for an


absence type

2 – 66 Using Oracle FastFormula


Formulas for Payroll Legislative Checks
Oracle FastFormula contains a formula type called Legislative Check
that may have been set up by your localization team. This formula type
can be set up to perform certain checks during a payroll run. For
example, you can catch errors such as negative gross pay and cause the
payroll run to fail appropriately.
Sometimes you may not want to run the legislation check in the payroll
run so it is possible that this functionality can be enabled or disabled
using the HR:Execute Legislative Check Formula within Run user
profile.

Oracle FastFormula Reference 2 – 67


Formulas for Benefits Administration
Oracle FastFormula contains many formula types that you can use for
benefits administration. For example, grandfathered clauses and other
special case scenarios may require you to write a FastFormula rule that
defines special treatment for a subset of your benefits participants.
You can use Oracle FastFormula to calculate:
• The number of Hours Worked by a person in a given period
• A person’s length of service
• The maximum coverage amount for a life insurance plan
• Participation Eligibility
• Other benefits related functions.
After you write a formula for use with Standard or Advanced Benefits,
you link that formula to your plan design by selecting the formula in the
Rule field of the appropriate window.

2 – 68 Using Oracle FastFormula


Total Compensation Formula Types
The following table lists the formula types you can use in administering
benefits with Oracle HRMS.

Formula Type Description Contexts Input Values Return Sample Rule


Value
Hours Worked Used to determine Business_Group_Id, Hrs_Wkd_Fc Amount Determine total
Calculation an Hours Worked Effective_Date, tr_Id; Value number of hours
amount to be used Jurisdiction_Code, of the worked during the
for Eligibility, Organization_Id, Hrs_Wkd_Fc person’s most
Coverage or Benefit, Assignment Id, tr.Val, Min recent pay period.
Premium, and Rate Pgm_Id, Pl_Typ_Id, Val, Max Val
calculations Pl_Id, Opt_Id,
Ler_Id
Age Used to determine ” Value of the Amount
Calculation an Age value to be Age_Fctr.Val,
used for Eligibility, Min Val, Max
Coverage or Benefit, Val
Premium, and Rate
calculations
Length of Used to determine a ” LOS_Fctr_Id; Amount
Service Service value to be Value of the
Calculation used for Eligibility, LOS_Fctr.
Coverage or Benefit, Val, Min Val,
Premium, and Rate Max Val
calculations
Compensation Used to determine a ” Comp_Lvl_F Amount Sum the amounts
Calculation Total Compensation ctr_Id; Value for person’s
amount to be used of the current Regular
for Eligibility, Comp_Lvl_F Salary defined
Coverage or Benefit, ctr.Val, Min balance as of the
Premium and Rate Val, Max Val beginning of the
calculations year, Prior Year
Total Commission
benefits balance
type, and Prior
Year Total Bonus
benefits balance
type, and return
the total amount.

Oracle FastFormula Reference 2 – 69


Rate Value Calculates a rate ” Acty_Base_R Amount If a person is
Calculation amount for a person. t_Id or currently enrolled
May be used to Vrbl_Rt_Id; in this plan, or has
calculate a base or Value of the been enrolled in
variable rate. Acty_Base_R this plan within the
t.Val, Min past 2 years, then
Val, Max Val; the rate is equal to
Value of the the rate person is
Vrbl_Rt_Prfl. currently paying.
Val, Min Val, Otherwise, rate is
Max Val, equal to X.
Premium Value Calculates a ” Acty_Base_R Amount Premium amount
Calculation premium amount for t_Id or is equal to .05
a person. Vrbl_Rt_Id times Coverage
or amount less 50,000
Actl_Prem_I
d or
Cvg_Amt_Ca
lc_Mthd_Id;
Value of the
Acty_Base_R
t.Val, Min
Val, Max Val
Matching Calculates the ” ” Amount People that work
Amount matching amount. at Division A get
Calculation matching amount
of 5%. All others
get 4% matching
amount.
Minimum Calculates a ” ” Amount If in Benefits
Coverage minimum coverage Group A,
Amount or benefit amount minimum amount
Calculation for a person. is $100. If in
Benefits Group B,
minimum amount
is $200.

2 – 70 Using Oracle FastFormula


Maximum Calculates a ” ” Amount Coverage
Coverage maximum coverage maximum amount
Amount or benefit amount is equal to
Calculation for a person. coverage amount
for current
enrollment; if no
current enrollment,
then maximum is
$100,000.
Period to Date Determines the ” Amount
Amount maximum period to
Calculation date amount a
person may have for
a particular activity
rate.
Coverage Calculates a ” Amount
Amount coverage or benefit
Calculation amount for a person.
Age Determines the date ” Date If person is in an
Determination from which age will Annual Enrollment
Date be calculated (e.g., event then return
the first day of the 10/1/99. If person
next plan year). is becoming
eligible as a result
of a new hire,
rehire, return from
leave or a change
from part–time to
full–time then
return the event
occurred on date.

Oracle FastFormula Reference 2 – 71


Hours Worked Determines the date ” Date If person is in an
Determination from which hours Annual Enrollment
Date worked will be event then return
calculated (e.g., the 10/1/99. If person
first day of the next is becoming
plan year). eligible as a result
of a new hire,
rehire, return from
leave or a change
from part–time to
full–time then
return the event
occurred on date.
Length of Determines the low ” Date Return Start Date
Service Date to date from which from the person’s
Use LOS will be Absence
calculated (e.g., Attendance row in
original hire date or order to determine
rehire date). the elapsed time
that a person has
been on a Leave of
Absence.
Length of Determines the high ” Date Return Start Date
Service date for which LOS from the person’s
Determination will be calculated Absence
Date (e.g., the first day of Attendance row.
the following
month).
Compensation Determines the high ” Date
Determination date from which
Date hours compensation
will be calculated
(e.g., the first day of
the next plan year).
Action Type Determines the date ” Date If person is
Due Date on which the Action currently enrolled,
Type must be 60 days from life
completed (e.g. 90 event creation
days from the Life date. If person is
Event Creation not currently
Date). enrolled, 30 days
from life event
creation date.

2 – 72 Using Oracle FastFormula


Participation Determines when ” Date Add 6 months to
Eligibility Start eligibility for a the event date and
Date person should start. return.
Participation Determines when ” Date If Organization on
Eligibility End eligibility for a current assignment
Date person should end. = A, return date
equal to Event
Date; otherwise,
return date equal
to Start of
Following Month
after event date.
Enrollment Determines when ” Date Coverage start date
Coverage Start enrollment coverage based on how long
Date for a participant you have been
should start. absent from a plan.
Enrollment Determines when ” Date If Calculated LOS
Coverage End enrollment coverage is less than 5
Date for a participant years, then end of
should end. current month. If
Calculated LOS is
greater than or
equal to 5 years,
then end of 6
months after event
date.
Dependent Determines when ” Date If notified of birth
Coverage Start coverage for a within 31 days of
Date dependent should event, Coverage
start. Start Date is Date
of Birth.
Otherwise,
coverage start date
is date of
notification.

Oracle FastFormula Reference 2 – 73


Dependent Determines when ” Date If Contact
Coverage End coverage for a Relationship Type
Date dependent should = Spouse,
end. coverage ends on
date of event; if
Contact
Relationship Type
= Child, coverage
ends on end of the
month following
event.
Rate Start Date Determines when a ” Date Rate starts on the
rate for an date after the rate
enrollment result for end date of the
a participant should current enrollment.
start.
Rate End Date Determines when a ” Date Rate ends on the
rate for an day before the
enrollment result for person’s next pay
a participant should period.
end.
Participation Determines whether Business_Group_Id, Y/N
Eligibility a person is eligible Effective_Date,
for the associated Jurisdiction_Code,
compensation Organization_Id,
object. (This is the Assignment Id,
rule used in the Pgm_Id, Pl_Typ_Id,
eligibility profile Pl_Id, Opt_Id,
rule entities.) Ler_Id,
Balance_Date
Dependent Determines whether ” Y/N Dependent is
Eligibility a person is eligible eligible if
to be covered by a Employee Work
participant in a Location is 001
compensation and Dependent is
object. under age 21 or if
Employee Work
Location is not
001 and
Dependent is
under age 25.

2 – 74 Using Oracle FastFormula


Enrollment Determines whether Business_Group_Id, One of As a result of a
Opportunity the compensation Effective_Date, the transfer event, the
object should be an Jurisdiction_Code, BEN_EN participant can
electable choice for Organization_Id, RT_MTH only enroll in an
the person. Assignment Id, D values: HMO if they were
Pgm_Id, Pl_Typ_Id, A or E; or previously enrolled
Pl_Id, Opt_Id, N in an HMO and
Ler_Id that HMO is no
longer available to
them in their new
location.
To Be Sent Determines the date Business_Group_Id, Date If participant’s
Date on which the Effective_Date, organization is
communication Jurisdiction_Code, equal to {org1} or
should be sent to the Organization_Id, {org2} then return
person. Assignment Id, start of enrollment
Pgm_Id, Pl_Typ_Id, period – 14 days.
Pl_Id, Opt_Id, If participant’s
Ler_Id, Cm_Typ_Id organization is not
equal to {org1} or
{org2} then return
start of enrollment
period – 7 days.
Rounding Rounds a number to None Amount Amount to be
the specified place rounded – $250
or decimal. rounded to the
next $500
Percent Rounds a percent to Amount
Rounding the specified place
or decimal.
Automatic Determines the Business_Group_Id, One of Reinstate active
Enrollment conditions under Effective_Date, the benefits if rehired
Method which a person Jurisdiction_Code, BEN_EN in the same plan
should be Organization_Id, RT_MTH year.
automatically Assignment Id, D values:
enrolled in a Pgm_Id, Pl_Typ_Id, A or E; or
compensation Pl_Id, Opt_Id, N
object. Ler_Id

Oracle FastFormula Reference 2 – 75


Deduction Determines the ” One of If bargaining unit
Schedule deduction schedule the code is not null
to be used for this BEN_DE return ”Second
person. D_SCHE Period In Month”
D values else return ”Every
Pay Period”.
Payment Determines the ” One of If bargaining unit
Schedule payment schedule to the code is not null
be used for this BEN_PY return ”Second
person. MT_SCH Period In Month”
ED values else return ”Every
Pay Period”.
Default to Determines the ” One of Reinstate the
Assign Pending applicable default the active benefits that
Action option or benefit to BEN_DF a person had at the
assign to the person LT_TO_A time that the
when his or her SN_PND person was
choice has been G_CTFN previously active.
suspended. values (NOTE: cannot
reinstate most
recent benefits, as
person could have
some other
elections, such as
COBRA).
Enrollment Determines the ” Y/N Participant does
Certification conditions under not need to
Required which a person must provide
provide certification certification if they
in order to enroll or were enrolled in
elect a particular the compensation
plan or option in object and had
plan, or benefit. provided
certification within
the past 12
months.
Dependent Determines the ” Y/N
Certification conditions under
Required which a person must
provide certification
for his or her
designated
dependents.

2 – 76 Using Oracle FastFormula


Beneficiary Determines the ” Y/N
Certification conditions under
Required which a person must
provide certification
for his or her
designated
beneficiaries.
Waive Determines the ” Y/N
Certification conditions under
Required which a person must
provide certification
when he or she
waives participation.
Inspection Determines whether Business_Group_Id, Y/N If participant’s
Required inspection of the Effective_Date, division =
communication is Jurisdiction_Code, ”Corporate” or if
required. If so, the Organization_Id, participant’s HCE
”Inspection Flag” is Assignment Id, indicator = ”Y”
set to ’yes’ for this Pgm_Id, Pl_Typ_Id, return ”YES”.
person’s Pl_Id, Opt_Id,
communication. Ler_Id, Cm_Typ_Id
Communicatio Determines for this Business_Group_Id, Y/N If person is in an
n Appropriate communication and Effective_Date, Annual Enrollment
trigger, whether the Jurisdiction_Code, event and today’s
communication Organization_Id, date is within
should be sent; Assignment Id, seven days of the
restricts to whom to Pgm_Id, Pl_Typ_Id, enrollment period
send. Pl_Id, Ler_Id, end date return
Cm_Typ_Id ”No”.
Communicatio Determines whether Business_Group_Id, Y/N
n Type the communication Effective_Date,
should be sent. Jurisdiction_Code,
Organization_Id,
Assignment Id,
Pgm_Id, Pl_Typ_Id,
Pl_Id, Ler_Id,
Cm_Typ_Id

Oracle FastFormula Reference 2 – 77


Mandatory Determines whether Business_Group_Id, Y/N
Determination this option in plan Effective_Date,
should be assigned Jurisdiction_Code,
to a person (and not Organization_Id,
be optional) as part Assignment Id,
of the enrollment Pgm_Id, Pl_Typ_Id,
process. Pl_Id, Opt_Id,
Ler_Id
Postelection Performs edits on an ” Y/N and If the participant
Edit enrollment result, Text elects a non–waive
e.g. is the spouse of plan under the
the participant also spouse life plan
enrolled; does the type, the
spouse of the participant must
participant work at elect an equal or
the same company. greater amount of
participant life
insurance.
Partial Month Determines which ” One of If the participant is
Proration value to use: Date the Values paid monthly and
Method Earned, Pay Period of : enrolls in a
End Date, or BEN_PR medical plan
Payment Date. This TL_MO_ between the 8th
tells the proration DET_MT and 15th of the
process which date HD month, then return
to use when 75% of the normal
determining how monthly price tag.
many pay periods
remain, and when
the element entry
should start.

2 – 78 Using Oracle FastFormula


Partial Year Determines the ” Amount
Coverage maximum coverage
Restriction amount for partial
years of coverage.
Allows
determination of
values other than
delivered values of:
1) Standard
maximum as defined
in the plan. 2)
Prorate maximum
based on the number
of months remaining
in the plan year.
Partial Month Determines which ” One of
Effective Date value to use: Date the Values
Determination Earned, Pay Period of :
End Date, or BEN_PR
Payment Date. This TL_MO_
tells the proration EFF_DT_
process which date DET
to use when
determining how
many pay periods
remain, and when
the element entry
should start.
Lack Identifies cases ” Y/N
Certification where certification
Allow is waived.
Reimbursement

Compensation Determines which ” Y/N Run the default


Object compensation process for the flex
Selection objects are to be and nonflex
included for programs only.
processing in a Participation
concurrent manager process selection
process. mode: determine
eligibility for all
compensation
objects that use
derivable factors.

Oracle FastFormula Reference 2 – 79


Person Determines which ” Y/N Select all
Selection people are to be ex–participants
included for who were working
processing in a at a specific
concurrent manager organization.
process.
Verify Family Determines whether ” Y/N
Member the person has one
or more contacts of
a specific type or
types, e.g. spouse,
spouse and one
child, more than one
child.
Five Percent Determines for this ” Y/N
Owner plan and regulation
whether the person
is a five percent
owner as defined in
the regulation.
Highly Determines for this ” Y/N
Compensated plan and regulation
whether the person
is considered to be
”highly
compensated” as
defined in the
regulation.
Key Employee Determines for this ” Y/N
plan and regulation
whether the person
is considered to be a
”key employee” as
defined in the
regulation.
Break in Break in Service ” Amount
Service Value Value
Break in Determines whether ” Y/N
Service a break in service
Determination has occurred and if
this break should not
be ignored.

2 – 80 Using Oracle FastFormula


Contribution Compares individual ” Y/N
Nondiscriminat employee pretax
ory contribution
amounts to total
pretax contributions
for highly and
non–highly
compensated
persons.
Coverage Compares the total ” Y/N
Nondiscriminat number of persons
ory eligible to
participate in a plan
minus the persons
who are not eligible
due to legislated
allowable factors to
the number actually
participating.
Extract Person Specifies person or Business_Group_Id, Text
Data Element assignment Effective_Date,
information to be Jurisdiction_Code,
included as a data Organization_Id,
element item. This Assignment_Id
rule type can also
return the results of
a calculation
performed on person
or assignment
information.
Extract Person Specifies person or ” Y/N
Inclusion assignment level
inclusion or
exclusion for system
extract.
Communicatio Determines whether Business_Group_Id, Y/N
n Usage a Communcation Effective_Date,
Usage requirement Jurisdiction_Code,
has been satisfied. Organization_Id,
If so, then a Assignment Id,
communication Pgm_Id, Pl_Typ_Id,
should be triggered Pl_Id, Ler_Id,
for this usage. Cm_Typ_Id

Oracle FastFormula Reference 2 – 81


Default Determines whether Business_Group_Id,
Enrollment this option in plan Effective_Date,
should be assigned Jurisdiction_Code,
to a person as part of Organization_Id,
the default Assignment Id,
enrollment process. Pgm_Id, Pl_Typ_Id,
Pl_Id, Opt_Id,
Ler_Id
Enrollment Determines the date on which the Date
Period Start enrollment period starts.
Date
Enrollment Determines the date ” Date
Period End on which the
Date enrollment period
ends.
Pop–Up Determines whether ” Y/N For a participant
Message a pop–up message who selects life
displays and it what insurance at 10x
form. salary, display a
warning message
on the enrollment
form if the
participant’s salary
is less than 50k.
Collapse Life When life events are ” Date
Event collapsed this rule
Resulting determines the date
Occurred On to use for the
Date resulting life event.
Collapse Life Determines whether ” One of
Event the life event should the values
Evaluation be collapsed and of:
deleted, collapsed BEN_EV
and voided, or AL_DT:
neither. Collapse
or Void;
or leave
as is

2 – 82 Using Oracle FastFormula


Vested Value Determine the Business_Group_Id, Percent
vested percent for a Effective_Date,
person. Jurisdiction_Code,
Organization_Id,
Assignment Id,
Pgm_Id, Pl_Typ_Id,
Pl_Id, Opt_Id,
Ler_Id,
Balance_Date
Change Used to determine if Business_Group_Id, Y/N
Dependent a dependent can be Effective_Date,
Coverage ’Added Only’, Jurisdiction_Code,
’Removed Only’, Organization_Id,
Added and Assignment Id,
Removed’, or Pgm_Id, Pl_Typ_Id,
’Neither’. Pl_Id, Opt_Id,
Ler_Id
Evaluate Life Determines if this Business_Group_Id, Y/N,
Event life event is valid, or Effective_Date, status
if the life event Jurisdiction_Code, code,
information needs to Organization_Id, unprocess
be changed, e.g. Assignment Id, Ler ed date,
status, voided date, Id processed
unprocessed date. date.
Maximum Determines the low ” Date
Waiting Period date from which the
Date to Use maximum waiting
period will be
calculated (e.g.,
original hire date or
rehire date).
Waiting Period Determines the ” Amount
Value and waiting period and and UOM
UOM unit of measure to
be applied to a
person.
Maximum Determines the ” Amount
Period of maximum and UOM
Enrollment enrollment period
Value and and unit of measure
UOM for a compensation
object.

Oracle FastFormula Reference 2 – 83


Person Change Determines whether ” Y/N
Causes Life this life event is
Event valid for a person
based on the data
that changed.
Related Person Determines whether ” Y/N
Change Causes this life event is
Life Event valid for a related
person based on the
data that changed.
Participant Determines whether Business_Group_Id, Y/N
Eligible to this person may roll Effective_Date,
Rollover over flex credits into Jurisdiction_Code,
a particular Organization_Id,
compensation Assignment Id,
object. Pgm_Id, Pl_Typ_Id,
Pl_Id, Opt_Id,
Ler_Id,
Balance_Date
Payment Must Determines whether ” Y/N
Be Received a payment is
missing or late.
Life Event Determines whether Business_Group_Id, Y/N
Reason a life event has been Effective_Date,
Timeliness reported in a timely Jurisdiction_Code,
manner. Organization_Id,
Assignment Id,
Pgm_Id, Pl_Typ_Id,
Pl_Id, Opt_Id,
Ler_Id
Required Determines the ” Date
Period of earliest
Enrollment deenrollment date
for a person’s
electable choice for
a compensation
object.

2 – 84 Using Oracle FastFormula


Rate Lower Calculates an Business_Group_Id, Amount
Limit amount used to Effective_Date,
determine the lower Jurisdiction_Code,
limit value to which Organization_Id,
an activity rate or Assignment Id,
variable rate value is Pgm_Id, Pl_Typ_Id,
compared. Pl_Id, Opt_Id,
Ler_Id,
Balance_Date
Rate Upper Calculates an ” Amount
Limit amount used to
determine the upper
limit value to which
an activity rate or
variable rate value
is compared.
Coverage Calculates an ” Amount
Lower Limit amount used to
determine the lower
limit for an activity
or variable coverage
or benefit.
Coverage Calculates an ” Amount
Upper Limit amount used to
determine the upper
limit for an activity
or variable coverage
or benefit.
Premium Calculates an ” Amount
Lower Limit amount used to
determine the lower
limit for an activity
or variable
premium.
Premium Calculates an ” Amount
Upper Limit amount used to
determine the upper
limit for an activity
or variable
premium.

Oracle FastFormula Reference 2 – 85


Maximum Period of Business_Group_Id, Y/N
Period of Enrollment Rule Effective_Date,
Enrollment determines whether Jurisdiction_Code,
a person has been Organization_Id,
enrolled for the Assignment Id,
maximum length of Pgm_Id, Pl_Typ_Id,
time allowed for a Pl_Id, Opt_Id,
plan or option in a Ler_Id
plan.
Maximum Determines the low Business_Group_Id, Date
Period of date to be used when Effective_Date,
Enrollment determining whether Jurisdiction_Code,
Determination the person has been Organization_Id,
Date enrolled in a plan or Assignment Id,
option in plan for Pgm_Id, Pl_Typ_Id,
the maximum period Pl_Id, Opt_Id,
of time. Ler_Id
Partial Month Calculates a value ” Percent
Proration Value for a partial month
Calculation enrollment.
Variable Rate Calculates a new ” Result of the Amount Multiply the result
Add On value when a Variable Rate by 102%.
Calculation variable rate result is Calculation
used.
Segment Determines how an ” Key Cost
Costing amount is to be Allocatio
Method costed based on the n
segment in the Flexfield
COST KEY Segment
ALLOCATION
KEY FLEXFIELD.
Extract Specifies enrollment Business_Group_Id, Text
Enrollment information to be Effective_Date,
Data Element included as a data Assignment Id,
element item. This Pl_Id, Opt_Id,
formula type can Ler_Id
also return the
results of a
calculation
performed on
enrollment
information.

2 – 86 Using Oracle FastFormula


Maximum Determines the Business_Group_Id, Amount
Credit Rollover maximum amount a Effective_Date,
Value person may rollover Jurisdiction_Code,
to another plan or Organization_Id,
option in plan. Assignment Id,
Pgm_Id, Pl_Typ_Id,
Pl_Id, Opt_Id,
Ler_Id
Default Excess Determines how any Business_Group_Id, One of
Credit excess credits are to Effective_Date, the values
Treatment be allocated. Jurisdiction_Code, in
Organization_Id, BEN_DF
Assignment Id, LT_EXCS
Pgm_Id, Pl_Typ_Id, _TRTMT
Pl_Id, Opt_Id, _CD
Ler_Id
Prorate Annual Determines how a Business_Group_Id, Amount
Election Value minimum or Effective_Date,
maximum annual Jurisdiction_Code,
election value is Organization_Id,
prorated. Assignment Id,
Pgm_Id, Pl_Typ_Id,
Pl_Id, Opt_Id,
Ler_Id
Extract Post This formula type Business_Group_Id, EXT_RSLT_ Nothing. Allows you to
Process provides additional Effective_Date ID (this is All insert intermittent
system extract found on processin totals, delete
processing and is ben_ext_rslt g should records, change
called after all and be via sorting, format
extraced records are ben_ext_rslt_ formula fields, update
written. dtl tables). function. values, etc.
Commit
will occur
in calling
program.

Oracle FastFormula Reference 2 – 87


User Defined Functions
Functions enable you to manipulate data in different ways. Some
functions work on only one type of data, some can work on two, others
work on three data types.
Many functions are supplied with Oracle FastFormula. See: Functions:
page 2 – 13. In addition, you can create other functions as you require
for use by Oracle FastFormula. Doing this involves two steps: creating a
new PL/SQL function, then registering it in the system using the Define
Function window.
You need to be aware of two restrictions when creating user defined
functions. These are:
• The current release of Oracle Payroll enables you to define
functions with IN type parameters only. This means that a user–
defined function may only return one value. IN OUT and OUT
type parameters are not supported.
• User defined functions should not have any commit, rollback, or
savepoint statements as these could lead to data integrity
problems with the payroll run. In addition, functions should not
save data changes to the database because FastFormula is
intended as a read–only tool.

2 – 88 Using Oracle FastFormula


UK Only Functions
The following functions have been registered for use in the UK only
formulas.

CALCULATE_TIME_WORKED

Calculates the time worked between a start date and end date for an
assignment.

CLASS1A_YTD

Calculate car benefit, year to date

COUNT_ASSIGNMENTS

Count of assignments an employee has

DIRECTOR_WEEKS

Number of weeks an employee has been a director

GET_BACS_PROCESS_DATE

Return the BACS processing date

NI_ABLE_DIR_YTD

NIable pay for a director, year to date

NI_ABLE_PER_PTD

NIable pay for a person with multiple assignments

NI_CO_RATE_FROM_CI_RATE

Find the NI contracted out rate from the CI rate

PAYMENT_YTD

Calculate car payment, year to date

PERIOD_TYPE_CHECK

Test whether the period type is valid

SESSION_DATE

Return the session date

UK_TAX_YR_END

Find the end of the tax year

Oracle FastFormula Reference 2 – 89


UK_TAX_YR_START

Find the start of the tax year

USER_RANGE_BY_LABEL

Lower bound of range from user table using row label

USER_VALUE_BY_LABEL

Value from user table using row label

VALIDATE_BACS_DATE

Return the previous BACS process date to a given date

VALIDATE_USER_VALUE

Verify that a given value is in a user table.

2 – 90 Using Oracle FastFormula


JP Functions
The following functions have been registered for use in Japanese
legislative formulas:

CHECK_FORMAT
(expr, fmt)
The CHECK_FORMAT function returns TRUE or FALSE to verify that
the text string operand expr matches the fmt type as follows:

0:0–9 Numbers only, non–omissible


9:0–9 Numbers only, omissible
A:A–Z Capital alphabet only, non–omissible
P:A–Z Capital alphabet only, omissible
a:a–z Small alphabet only, non–omissible
p:a–z Small alphabet only, omissible
L:0–9, A–Z Numbers and capital alphabet only,
non–omissible
C:0–9, A–Z Numbers and capital alphabet only, omissible
l:0–9, a–z Numbers and small alphabet only,
non–omissible
c:0–9, a–z Numbers and small alphabet only, omissible

Example:
CHECK_FORMAT (’123456ABC’, ’999999PPL’) returns TRUE

CHECK_DATE_FORMAT
(date, date fmt)
The CHECK_DATE_FORMAT function returns TRUE or FALSE to
verify that the date operand matches a given date fmt.
Example:
CHECK_DATE_FORMAT (’19990623’, ’YYYYMMDD’) returns TRUE

GET_LAST_ASSACT
(date1, date2)
The GET_LAST_ASSACT function returns latest assignment_action_id
with ’SEQUENCED’ classification_name between date1 and date2.
Action_types with ’SEQUENCED’ classification_name are as follows:

Oracle FastFormula Reference 2 – 91


ACTION_TYPE MEANING CLASSIFICATION_NAME

B Balance Adjustment SEQUENCED

F Advance Pay SEQUENCED

I Balance Initializa- SEQUENCED


tion

O RetroPay SEQUENCED

Q QuickPay Run SEQUENCED

R Run SEQUENCED

V Reversal SEQUENCED

Z Purge SEQUENCED

ORG_EXISTS
(organization_id, org_class)
The ORG_EXISTS function returns TRUE or FALSE to verify that the
organization ID is in the organization class..
Example:
ORG_EXISTS(12345, ’JP_KENPO’)

2 – 92 Using Oracle FastFormula


Sample Accrual Formula
This topic suggests how you can implement a whole range of accrual
plan rules in your Accrual formula. The suggestions are based on a
simple formula, which is similar to the seeded
PTO_SIMPLE_MULTIPLIER formula. The sample formula is for a plan
with the following rules:
• An accrual term of one calendar year starting 01 January.
• Monthly accrual periods and a fixed accrual of 2 days per
month.
• An accrual ceiling of 20 days, fixed within the formula.
• Accrual for new hires begins on whichever of these dates is the
latest: hire date, plan enrollment date, or continuous service date
(which can be entered as an input value when you enroll an
employee in a plan).
The top level formula repeatedly calls another formula in a loop to
calculate the accrual for each period. Both the top level formula
(PTO_ONE_YEAR_MULTIPLIER) and the looping formula
(PTO_PERIOD_ACCRUAL) are given below.
1. /*––––––––––––––––––––––––––––––––––––––––––––––
NAME : PTO_ONE_YEAR_MULTIPLER
This formula calculates the dates between which
an assignment is to accrue time
––––––––––––––––––––––––––––––––––––––––––––––*/

2. DEFAULT FOR ACP_CONTINUOUS_SERVICE_DATE IS


’31–DEC–4712’ (date)
3. DEFAULT FOR ACP_TERMINATION_DATE IS
’31–DEC–4712’ (date)
4. DEFAULT FOR ACP_ENROLLMENT_START_DATE IS
’31–DEC–4712’ (date)
5. DEFAULT FOR ACP_SERVICE_START_DATE IS
’31–DEC–4712’ (date)

6. INPUTS ARE
Calculation_Date (date)

7. E = SET_NUMBER(’CEILING’, 20)
8. E = SET_NUMBER(’ACCRUAL_RATE’, 2)

9. Accruing_Frequency = ’M’ /* Month */


10. Accruing_Multiplier = 1

11. E = SET_TEXT(’ACCRUING_FREQUENCY’,
Accruing_Frequency)

Oracle FastFormula Reference 2 – 93


12. E = SET_NUMBER(’ACCRUING_MULTIPLIER’,
Accruing_multiplier)

13. Beginning_Of_Calculation_Year = to_date


(’0101’||to_char(Calculation_Date,’YYYY’),’DDMMYYYY’)

14. E = SET_DATE(’BEGINNING_OF_CALCULATION_YEAR’,
Beginning_Of_Calculation_Year)

15. /*–––––––––––––––––––––––––––––––––––––––––––––––
Set the start and end dates of the first accrual
period in the calculation year.
–––––––––––––––––––––––––––––––––––––––––––––––*/

16. E = GET_PERIOD_DATES
(Beginning_of_Calculation_Year,
Accruing_Frequency,
Beginning_Of_Calculation_Year,
Accruing_Multiplier)

17. First_Period_SD = get_date(’PERIOD_START_DATE’)


18. First_Period_ED = get_date(’PERIOD_END_DATE’)

19. /*––––––––––––––––––––––––––––––––––––––––––––––
Set the Calculation_Date to the Termination Date
if not null
––––––––––––––––––––––––––––––––––––––––––––– */

20. IF NOT (ACP_TERMINATION_DATE WAS DEFAULTED) THEN


(
21. IF (ACP_TERMINATION_DATE < Calculation_Date) THEN
(
22. Calculation_Date = ACP_TERMINATION_DATE
)
)

23. /* ––––––––––––––––––––––––––––––––––––––––––––––
Get the last whole period prior to the
Calculation Date and ensure that it is within the
Year (if the Calculation Date is the End of a
Period then use that period)
–––––––––––––––––––––––––––––––––––––––––––––– */

24. E = GET_PERIOD_DATES(Calculation_Date,
Accruing_Frequency,
Beginning_of_Calculation_Year,
Accruing_Multiplier)

25. Calculation_Period_SD = get_date(’PERIOD_START_DATE’)

2 – 94 Using Oracle FastFormula


26. Calculation_Period_ED = get_date(’PERIOD_END_DATE’)

27. IF (Calculation_Date <> Calculation_Period_ED)


THEN
(
28. E = GET_PERIOD_DATES
(ADD_DAYS(Calculation_Period_SD,–1),
Accruing_Frequency,
Beginning_of_Calculation_Year,
Accruing_Multiplier)
29. Calculation_Period_SD = get_date(’PERIOD_START_DATE’)
30. Calculation_Period_ED = get_date(’PERIOD_END_DATE’)
)

31. /* ––––––––––––––––––––––––––––––––––––––––––––––
Set the Continuous Service Global Variable using
the Continuous Service Date (if it was entered
when the employee enrolled in the plan) and
otherwise using hire date, whilst also ensuring
that the continuous service date is before the
Calculation Period.
––––––––––––––––––––––––––––––––––––––––––––– */

32. IF (ACP_CONTINUOUS_SERVICE_DATE WAS DEFAULTED)


THEN
33. (
E = set_date(’CONTINUOUS_SERVICE_DATE’,
ACP_SERVICE_START_DATE)
)
34. ELSE
(
35. E = set_date(’CONTINUOUS_SERVICE_DATE’,
ACP_CONTINUOUS_SERVICE_DATE)
)

36. Continuous_Service_Date = get_date(’CONTINUOUS_SERVICE_DATE’)

37. /* –––––––––––––––––––––––––––––––––––––––––––––
Determine the date on which PTO actually starts
accruing based on Continuous Service Date, the
Start Date of the Calculation Year, and plan
Enrollment Start Date. Remember, we have already
determined whether to use hire date or CSD at
lines 32 to 35 above.
–––––––––––––––––––––––––––––––––––––––––––––– */

38. Actual_Accrual_Start_Date =
greatest(ACP_ENROLLMENT_START_DATE,
Continuous_Service_Date,

Oracle FastFormula Reference 2 – 95


First_Period_SD)

39. /* –––––––––––––––––––––––––––––––––––––––––––––
Determine the start and end date of the first
accrual period to use in the accrual calculation.
Get the start and end dates of the accrual period
in which the Actual Accrual Start Date falls. If
the Actual Accrual Start Date does not fall on
the first day of this period, start accruing from
the next period.
–––––––––––––––––––––––––––––––––––––––––––––––*/

40. IF Actual_Accrual_Start_Date > First_Period_SD


THEN
(
41. E = GET_PERIOD_DATES(Actual_Accrual_Start_Date,
Accruing_Frequency,
Beginning_Of_Calculation_Year,
Accruing_Multiplier)
42. Accrual_Start_Period_SD = get_date(’PERIOD_START_DATE’)
43. Accrual_Start_Period_ED = get_date(’PERIOD_END_DATE’)
44. IF Actual_Accrual_Start_Date > Accrual_Start_Period_SD THEN
(
45. E = GET_PERIOD_DATES
(add_days(Accrual_Start_Period_ED,1),
Accruing_Frequency,
Beginning_of_Calculation_Year,
Accruing_Multiplier)
46. Accrual_Start_Period_SD = get_date(’PERIOD_START_DATE’)
47. Accrual_Start_Period_ED = get_date(’PERIOD_END_DATE’)
)
)
48. ELSE
(
49. Accrual_Start_Period_SD = First_Period_SD
50. Accrual_Start_Period_ED = First_Period_ED
)

51. /* ––––––––––––––––––––––––––––––––––––––––––––
Now set up the information that will be used
when looping through the periods
––––––––––––––––––––––––––––––––––––––––––––– */

52. IF Calculation_Period_ED >= Accrual_Start_Period_ED THEN


(
53. E = set_date(’PERIOD_SD’,Accrual_Start_Period_SD)
54. E = set_date(’PERIOD_ED’,Accrual_Start_Period_ED)
55. E = set_date(’LAST_PERIOD_SD’,Calculation_Period_SD)
56. E = set_date(’LAST_PERIOD_ED’,Calculation_Period_ED)

2 – 96 Using Oracle FastFormula


57. E = set_number(’TOTAL_ACCRUED_PTO’,0)
58. E = LOOP_CONTROL(’PTO_PERIOD_ACCRUAL’)
59. Total_Accrued_PTO = get_number(’TOTAL_ACCRUED_PTO’)
)

60. IF Accrual_Start_Period_SD > Calculation_Period_ED THEN


(
61. Accrual_Start_Period_SD = First_Period_SD
)

62. Effective_start_date = Accrual_Start_Period_SD


63. Effective_end_date = Calculation_Date
64. Accrual_end_date = Calculation_Period_ED

65. RETURN Total_Accrued_PTO,


66. Effective_start_date,
67. Effective_end_date,
68. Accrual_end_date

Looping Formula
1. /* ––––––––––––––––––––––––––––––––––––––––––––––
NAME : PTO_PERIOD_ACCRUAL
This formula calculates the dates between which an
assignment is to accrue time
––––––––––––––––––––––––––––––––––––––––––––––––*/

2. /*––––––––––––––––––––––––––––––––––––––––––––––––
Get the global variable to be used in this formula
––––––––––––––––––––––––––––––––––––––––––––––––*/

3. Continuous_Service_Date = get_date(’CONTINUOUS_SERVICE_DATE’)
4. Total_Accrued_PTO = get_number(’TOTAL_ACCRUED_PTO’)
5. Period_SD = get_date(’PERIOD_SD’)
6. Period_ED = get_date(’PERIOD_ED’)
7. Last_Period_SD = get_date(’LAST_PERIOD_SD’)
8. Last_Period_ED = get_date(’LAST_PERIOD_ED’)
9. Accrual_Rate = get_number(’ACCRUAL_RATE’)
10. Accruing_Frequency = get_text(’ACCRUING_FREQUENCY’)
11. Accruing_Multiplier = get_number(’ACCRUING_MULTIPLIER’)
12. Beginning_of_Calculation_Year =

get_date(’BEGINNING_OF_CALCULATION_YEAR’)
13. Ceiling = get_number(’CEILING’)

14. /* ––––––––––––––––––––––––––––––––––––––––––––––
Calculate the Amount Accrued this Period
–––––––––––––––––––––––––––––––––––––––––––––––*/

15. Period_Accrued_PTO = Accrual_Rate

Oracle FastFormula Reference 2 – 97


16. /*–––––––––––––––––––––––––––––––––––––––––––––––
Calculate any absence or bought/sold time etc. to
be accounted for in this period.
–––––––––––––––––––––––––––––––––––––––––––––––*/

17. Absence = GET_ABSENCE(Period_ED,


Beginning_of_Calculation_Year)
18. CarryOver = GET_CARRY_OVER(Period_ED,
Beginning_of_Calculation_Year)
19. Other = GET_OTHER_NET_CONTRIBUTION(Period_ED,
Beginning_of_Calculation_Year)

20. Period_Others = CarryOver + Other – Absence

21. /* ––––––––––––––––––––––––––––––––––––––––––––––
Now establish whether the Accrual this period has
gone over the ceiling if one exists
–––––––––––––––––––––––––––––––––––––––––––––––*/

22. IF (Ceiling > 0) THEN


(
23. IF (Total_Accrued_PTO + Period_Accrued_PTO +
Period_Others > Ceiling) THEN
(
24. Amount_Over_Ceiling = Total_Accrued_PTO +
Period_Accrued_PTO + Period_Others – Ceiling
25. IF (Amount_Over_Ceiling > Period_Accrued_PTO)
THEN
(
26. Period_Accrued_PTO = 0
)
27. ELSE
(
28. Period_Accrued_PTO = Period_Accrued_PTO –
Amount_Over_Ceiling
)
)
)

29. /*–––––––––––––––––––––––––––––––––––––––––––––––
Set the Running Total
–––––––––––––––––––––––––––––––––––––––––––––––*/

30. E = set_number
(’TOTAL_ACCRUED_PTO’,Total_Accrued_PTO +
Period_Accrued_PTO)

31. /* ––––––––––––––––––––––––––––––––––––––––––––––

2 – 98 Using Oracle FastFormula


Establish whether the current period is the last
one, if so end the processing, otherwise get the
next period
–––––––––––––––––––––––––––––––––––––––––––––––*/

32. IF Period_SD = Last_Period_SD THEN


(
33. Continue_Processing_Flag = ’N’
)
34. ELSE
(
35. E = GET_PERIOD_DATES(ADD_DAYS(Period_ED,1),
Accruing_Frequency,
Beginning_of_Calculation_Year,
Accruing_Multiplier)
36. E = set_date(’PERIOD_SD’, get_date(’PERIOD_START_DATE’))
37. E = set_date(’PERIOD_ED’, get_date(’PERIOD_END_DATE’))
38. Continue_Processing_Flag = ’Y’
)

39. Return Continue_Processing_Flag

Changing the Length of the Accrual Periods


The accrual period is determined by the variables Accruing_Frequency
and Accruing_Multiplier (lines 9 and 10 of the top level formula). You
can set Accruing_Frequency to M (month), D (day) or W (week). For
example, if the frequency is set to W and the multiplier set to 2, time is
accrued every two weeks.
These examples use the calendar to measure the length of accrual
periods. You can also use payroll periods. In this case, you do not need
to set the variables Accruing_Frequency and Accruing_Multiplier. At
lines 16, 24, 28, 41, and 45, replace the call to get_period_dates with a
call to get_payroll_period. For example, replace lines 24 to 26 with:
E = GET_PAYROLL_PERIOD (ADD_DAYS(Calculation_Period_SD, –1))
CALCULATION_PERIOD_SD = get_date(’PAYROLL_PERIOD_START_DATE’)
CALCULATION_PERIOD_ED = get_date(’PAYROLL_PERIOD_END_DATE’)

Changing the Accrual Term Start Date


The accrual term start date is set to 01 January at line 13 of the sample
top level formula. To use another fixed date (such as 01 June) replace
this line with the following:
Beginning_Of_Calculation_Year = to_date
(’0106’||to_char(Calculation_Date,’YYYY’),’DDMMYYYY’)

Oracle FastFormula Reference 2 – 99


If Beginning_Of_Calculation_Year > Calculation_Date then
(
Beginning_Of_Calculation_Year =
add_months(Beginning_Of_Calculation_Year, –12)
)

To start an employee’s accrual term on his or her hire date anniversary,


replace line 13 with:
Beginning_Of_Calculation_Year = to_date(
to_char(ACP_SERVICE_START_DATE,’DD–MM’) ||
to_char(Calculation_Date,’YYYY’),’DDMMYYYY’)

If Beginning_Of_Calculation_Year > Calculation_Date then


(
Beginning_Of_Calculation_Year =
add_months(Beginning_Of_Calculation_Year, –12)
)

This example uses the ACP_SERVICE_START_DATE database item,


although any substitute may be used.

Adding Start Rules for New Hires


In this sample formula, accrual for new hires begins on whichever of
these dates is the latest: hire date, plan enrollment date, or continuous
service date. However, you may want your top level accrual formula to
check whether there is a start rule defined for the plan. The seeded
PTO_PAYROLL_CALCULATION formula shows you how to do this.
In summary, the formula has to:
• Check which start rule was entered for the plan, and calculate
the First_Eligible_To_Accrue_Date accordingly.
• Get the first full accrual period following the
First_Eligible_To_Accrue_Date.
• Check whether the Actual_Accrual_Start_Date is after the
First_Eligible_To_Accrue_Date and, if not, set the
Accrual_Start_Period start and end dates to the
First_Eligible_To_Accrue_Period start and end dates. This affects
lines 40 to 50 of the sample formula.
There are three seeded start rules: hire date, beginning of calendar year
after hire date, and six months after hire date. If you need a different
start rule, define it as a value for the Lookup Type
US_ACCRUAL_START_TYPE.
Then add a line to your formula, of this form:
IF (ACP_START = ’<your new Lookup Value>’) THEN
(First_Eligible_To_Accrue_Date = <calculation for start date>)

2 – 100 Using Oracle FastFormula


Basing the Accrual Amount on Time or Pay Elements
You need to create database items for the element input values that
determine the accrual amount. Suppose plan participants accrue one
hour for every 10 hours worked. You could include this rule in your
formula as follows:
Accrual = ACP_HOURS_WORKED / 10

where ACP_HOURS_WORKED is a database item. This kind of


calculation would be found typically in the looping formula.

Using Up Front Accruals


The sample formula assumes that plan participants accrue a certain
amount of time each month. But in some plans, participants accrue
their full entitlement at the start of the accrual term. In this case the
formula does not need to loop through each accrual period.
Here is a very basic sample formula, assuming an accrual of 20 days for
every calendar year. There are no ineligibility rules or start rules in this
example. It also does not calculate the accrual for part years (for
example, for employees joining the plan midway through a year).
INPUTS ARE
Calculation_Date (date)

Total_Accrued_PTO = 20
Effective_start_date =
to_date(’0101’||to_char(calculation_date, ’YYYY’))
Effective_end_date =
to_date(’3112’||to_char(calculation_date, ’YYYY’))
Accrual_end_date =
to_date(’0101’||to_char(calculation_date, ’YYYY’))

RETURN Total_Accrued_PTO,
Effective_start_date,
Effective_end_date,
Accrual_end_date

Changing the Ceiling


In the sample top level formula, the ceiling is set at line 7. You can
change the ceiling within the formula, or set it to zero to remove the
ceiling:
E = SET_NUMBER(’CEILING’, 0)

You can also set the ceiling outside the formula, using the Accrual
Bands window or a user table.

Oracle FastFormula Reference 2 – 101


Changing the Date Used for Continuous Service
The continuous service date is used in the formula to determine when a
new hire begins to accrue time. If your plan has accrual bands based on
length of service, this date also determines the amount the employee is
eligible to accrue.
In the sample, length of service is calculated from hire date (using the
database item ACP_SERVICE_START_DATE) or the continuous service
date input value, if it was entered when the employee was enrolled in
the plan (database item ACP_CONTINUOUS_SERVICE_DATE).
Alternatively, you can define and use another database item. For
example, replace lines 32 to 36 of the top level formula with:
E = set_date(’CONTINUOUS_SERVICE_DATE’, <NEW_DATABASE_ITEM>)

Continuous_Service_Date = get_date(’CONTINUOUS_SERVICE_DATE’)

Adding Rules for Suspended Assignments


Some accrual plans may not allow employees to accrue PTO while on
certain types of leave. such as maternity leave or study leave. In this
case, your formula needs to check the status of the assignment.
For example, suppose that assignments with the status “Suspended”
cannot accrue time. You can use the ASG_STATUS database item to get
the value of the assignment status. Replace line 8 with:
IF ASG_STATUS = ’Suspended’ THEN
(
E = SET_NUMBER(’ACCRUAL_RATE’, 0)
)
ELSE
(
E = SET_NUMBER(’ACCRUAL_RATE’, 2)
)

Adding Rules for Part Time Employees


You can use the ASG_EMPLOYMENT_CATEGORY database item to
check whether the assignment is part time or full time.
Suppose part timers accrue at only half the rate of full timers, and have
a lower ceiling, then replace lines 7 and 8 with:
IF ASG_EMPLOYMENT_CATEGORY = ’FULL TIME’ then
(
E = SET_NUMBER(’CEILING’, 20)
E = SET_NUMBER(’ACCRUAL_RATE’, 2)
)

2 – 102 Using Oracle FastFormula


ELSE
(
E = SET_NUMBER(’CEILING’, 10)
E = SET_NUMBER(’ACCRUAL_RATE’, 1)
)

If part time employees accrue at different rates depending on their


hours as a percentage of full time, you could set up HR budgets to
record the value of each assignment. Then you need to define a
database item for the budget value.

Adding a Long Service Leave Entitlement


If you want to see how much long service leave has been awarded to an
employee in the Accruals window, you need to set up a separate
accrual plan. Otherwise, you can include the entitlement in the
standard accrual plan. The following approach adds the long service
accrual in a single accrual period, ignoring the usual accrual ceiling.
Suppose employees are entitled to a one time bonus of 10 extra days
after 15 years of service. First, in the top level formula, add the
following after line 57 to set up a variable that can be accessed in the
looping formula:
e = set_number(’LONG_SERVICE_ACCRUAL’, 0)

Then, in the looping formula, calculate years service to ascertain


whether the employee is entitled to long service leave. Add the
following after line 13:
years_service = floor(months_between(period_ed,
continuous_service_date)/12)

Next, set up a variable that can be used later to detect whether long
service accrual has already been added. After line 29, add:
long_service_accrual = get_number(’LONG_SERVICE_ACCRUAL’)

IF (years_service > 15) and long_service_accrual = 0 THEN


(
long_service_accrual = 10
e = set_number(’LONG_SERVICE_ACCRUAL’, long_service_accrual)
)
ELSE
(
long_service_accrual = 0
)

Finally, add any long service accrual to the total accrual, ignoring the
ceiling. Replace line 30 with:
E = set_number(’TOTAL_ACCRUED_PTO’,Total_Accrued_PTO +

Oracle FastFormula Reference 2 – 103


Period_Accrued_PTO + long_service_accrual)

Using Accrual Bands Based on Length of Service


The seeded looping formulas demonstrate how to use accrual bands
based on length of service criteria (entered in the Accrual Bands
window). To change the sample formulas to use accrual bands:

In the top level formula:


• Remove lines 7 and 8
• Add the following after line 57:
E = set_number(’ANNUAL_RATE’,0)
E = set_number(’UPPER_LIMIT’,0)
E = set_number(’CEILING’,0)

In the looping formula


• Remove lines 9, 10, 11, and 13
• Add the following after line 12:
Annual_Rate = get_number(’ANNUAL_RATE’)
Upper_Limit = get_number(’UPPER_LIMIT’)
Ceiling = get_number(’CEILING’)

Years_Service = Floor(Months_Between(Period_ED,
Continuous_Service_Date)/12)

/*––––––––––––––––––––––––––––––––––––––––––––––
If the Upper Limit was defaulted or years service
is greater than or equal to the upper limit of
the current band reset the globals to the
appropriate band.
–––––––––––––––––––––––––––––––––––––––––––––––*/

IF (Upper_Limit = 0 OR Years_Service >= Upper_Limit) THEN


(
If (GET_ACCRUAL_BAND(Years_Service) = 0) THEN
(
Annual_Rate = get_number(’ANNUAL_RATE’)
Upper_Limit = get_number(’UPPER_LIMIT’)
Ceiling = get_number(’CEILING’)
)
ELSE /*function returned an error */
(
Continue_Processing_Flag = ’N’
Return Continue_Processing_Flag
)

2 – 104 Using Oracle FastFormula


)

Accrual_Rate = Annual_Rate / 12

Changing the Length of Service Units


Normally the bands entered in the Accrual Bands window refer to
years. However, you can change the formula to interpret the bands as
another unit, such as six months. In the sample given above to change
the looping formula to use accrual bands, you would simply replace
’12’ with ’6’ in the line:
Years_Service = Floor(Months_Between(Period_ED,
Continuous_Service_Date)/12)

Using Accrual Bands Based on Other Criteria


You can set up a user table to hold the values you require. For example:

Accrual Ceiling Max Carry Over


Grade A 20 25 5
Grade B 24 25 8
You can also base your accrual bands on a combination of criteria (such
as grade and length of service). In this case, you need to set up separate
user tables for each value you want to hold (such as accrual amount,
ceiling and maximum carry over). The table for accrual amount might
look like this:

Grade A Grade B
0 to 5 years ser- 20 25
vice
5 to 50 years 24 28
service
To use data from a user table in a formula, use the
GET_TABLE_VALUE function:
yearly_accrual = get_table_value(<table_name>, <column_name>,
<row_value>, <effective_date>)

The effective date parameter is optional. Example:


yearly_accrual = get_table_value (’MY_TABLE’, ’GRADE A’, 5)

Oracle FastFormula Reference 2 – 105


Sample Proration Formulas (UK Only)
The following sample formulas show how you can create payroll
formulas to be used in different situations requiring proration.
Oracle Corporation may change or upgrade this formula in future
releases of HRMS programs. This formula is strictly for example or
prototype purposes only, and is not intended to provide a ready–made
solution to be used in your environment. You can make a copy of this
formula, subject to the terms of the license agreement for the programs,
but you should not change your copied version for prototyping
purposes. You should always write a new formula of your own to meet
your particular requirements. This formula may contain certain
hard–coded values to simplify the use of formulas for proration.
A typical example of proration would be when a new employee starts
work in the middle of a monthly payroll period and your payroll
department makes a pro–rata payment to reflect the proportion of
monthly pay to which the employee is entitled.
The prototype formula supplied is only designed to work for payroll
calculations involving proration and should not be used for any other
purpose. Any use of the formula is subject to the terms of the Oracle
license agreement for the HRMS programs and documentation.

FastFormula to use if Employee is Paid using Salary Administration


/***************************************************
Formula name : FF_PRORATION_SAL_MANAGEMENT
Formula to calculate salary in proration

DISCLAIMER: Oracle Corporation may change or upgrade this


FastFormula in the future releases. This FastFormula is strictly
for example or prototype purposes only. This FastFormula is not
intended to provide a ready–made solution to the users. This
formula may contain certain hard–coded values added to simplify
the concept of usage of FastFormulas in proration. Users should
make a copy of this formula and not change this formula. Users
need to write their own new formula(s) to meet requirements.
****************************************************
default for ASG_SALARY_BASIS_GRADE_ANNUALIZATION_FACTOR is 0
default for prorate_start is ’01–JAN–1990’ (date)
default for prorate_end is ’01–JAN–1900’ (date)
default for PAY_PROC_PERIOD_START_DATE IS ’01–JAN–1950’ (date)
default for PAY_PROC_PERIOD_END_DATE IS ’01–JAN–1950’ (date)
default for NI_NEW_TAX_YEAR IS ’01–JAN–1950’ (date)

default for annual_salary is 0.0


inputs are annual_salary (number),

2 – 106 Using Oracle FastFormula


prorate_start (date),
prorate_end (date)

/**
Prorate_start and prorate_end dates are passed from the payroll
engine. These dates basically represent the dates on which the
changes occur in the salary amount during the pay period.
annual_salary is an input value created in the element to which
this formula will be tied. Here the assumption is that the user
enters the annual salary amount through salary management.
**/

l_amount=annual_salary
l_string = ’’

if(ASG_SALARY_BASIS_GRADE_ANNUALIZATION_FACTOR was not defaulted)


then
(
/**
This calculation makes sure that l_amount has the annual salary.
**/
l_amount =
amount*ASG_SALARY_BASIS_GRADE_ANNUALIZATION_FACTOR
)

/**
l_tax_year_start_date derives the value from the DBI
NI_NEW_TAX_YEAR.
The following calculation sets the start date of the tax year to
01–APR–YYYY and end date of the tax year to 31–MAR–(YYYY+1)
**/

l_tax_year_start_date = NI_NEW_TAX_YEAR
l_tax_year_start_date = TRUNC(l_tax_year_start_date,’month’)

l_tax_year =
TO_NUMBER(TO_CHAR(l_tax_year_start_date,’YYYY’)) + 1
l_tax_year_end_date =
TO_DATE(’31/03/’||TO_CHAR(1_tax_year),’DD/MM/YYYY’)

/**
The following calculation is for the case when no proration occurs
during the pay period and element entry start date and element
entry end date is not equal to the pay period start and end dates
respectively.

**/
IF(prorate_start was defaulted) then
(

Oracle FastFormula Reference 2 – 107


IF(PAY_PROC_PERIOD_END_DATE<>ENTRY_END_DATE) THEN
(
IF(PAY_PROC_PERIOD_START_DATE<>ENTRY_START_DATE) THEN
(

/**
Since prorate_start date is defaulted, it means no proration
occured, therefore we simply return the annual salary amount
divided by 12.
**/
l_amount = ROUND(amount/12,2)
result1 = l_amount
return result1
)
)
)

l_post_calc = ’N’

/**
l_post_calc is a flag used to do the calculation differently
depending on the values of this flag.
**/
/**
The following if condition takes care of the case when
Either
The element entry starts on the same day as pay period start date
OR
Prorate start date IS EQUAL TO element entry start date AND
Prorate start date IS NOT EQUAL TO one day prior to pay period
start date.

For example, in a monthly payroll running for the month of June


2000.

Either
Element entry start date is )01–JUN–2000 (employee starts on the
first day of the payroll period)

OR
Prorate start date is 14–JUN–2000 (employee starts in the middle
of the month or gets a salary change in the middle of the month)
Prorate start date IS NOT 31–MAY–2000
**/
if((prorate_start = ENRTY_START_DATE and
prorate_start <> ADD_DAYS(PAY_PROC_PERIOD_START_DATE,–1
)) or
ENTRY_START_DATE = PAY_PROC_PERIOD_START_DATE) then
(

2 – 108 Using Oracle FastFormula


/**
This code is executed when it is a new entry. Thus the post calc
must be performed.
**/
l_post_calc = ’Y’
)
else
(
if(prorate_end<>ENTRY_END_DATE) then
(
if(prorate_end = PAY_PROC_PERIOD_END_DATE) then
)
/**
This code is executed when it is a normal last proration entry.
Thus the post calc must be performed.
**/
l_post_calc = ’Y’
)
)
)

/**
The following code sets the right proration start and end dates*/
**/
if(prorate_start was defaulted) then
(
/**
Prorate start is defaulted when no proration occurs
**/

if(ENTRY_START_DATE=PAY_PROC_PERIOD_START_DATE) then
(
/**
Element entry start date is the same as the payroll period start
date
**/
prorate_start=ENTRY_START_DATE
if(ENTRY_END_DATE=PAY_PROC_PERIOD_END_DATE) then
(
prorate_end=ENTRY_END_DATE
)
else
(
prorate_end=PAY_PROC_PERIOD_END_DATE
)
r)
else if(ENTRY_END_DATE=PAY_PROC_PERIOD_END_DATE) then
(
prorate_end=ENTRY_END_DATE

Oracle FastFormula Reference 2 – 109


prorate_start=PAY_PROC_PERIOD_START_DATE
)
)

/*Do we have to do daily calc*/


if((prorate_start>PAY_PROC_PERIOD_START_DATE
and prorate_end<PAY_PROC_PEROD_END_DATE)
or
(prorate_start=PAY_PROC_PERIOD_START_DATE
and prorate_end<PAY_PROC_PERIOD_END_DATE
and prorate_start=ENTRY_START_DATE)) then
(
l_post_calc=’D’
)

/*Now perform the calculations*/


if(l_post_calc=’N’) then
(
/*Perform in the pre mode, i.e.start of year to current date*/

l_days=days_between(prorate_end,
l_tax_year_start_date) + 1
l_amount1=l_amount * 1_days/365
l_months=TRUNC(months_between(PAY_PROC_PERIOD_START_DATE,
l_tax_year_start_date
))
l_amount2=1_amount * l_months/12
result1=1_amount1–l_amount2
)
else
)
if(l_postcalc+’Y’) then
)
/*perform in post mode, i.e.current date to end of year*/

l_days=days_between(l_tax_year_end_date,
prorate_start) + 1
l_amount1=l_amount*l_days/365
l_months=TRUNC(months_between(l_tax_year_end_date,
PAY_PROC_PERIOD_END_DATE
l_amount2=l_amount*l_months/12
result1=l_amount1–l_amount2
)
else
(
/**
This code is executed when l_post_calc=D. Perform in daily mode.
**/

2 – 110 Using Oracle FastFormula


l_days=days_between(prorate_end,prorate–start) + 1
l_amount1=0
l_months=0
l_amount2=0
result1=l_amount*l_days/365
)
)

/**
The following code is just to convert all the non–character
variables into the character variables, so that the values of the
variables could be displayed in the messages available either in
SOE form or messages.
**/
prorate_start_res=to_char(prorate_start,’DD–MON–YYYY’)
prorate_end_res=to_char(prorate_end,’DD–MON–YYYY’)
l_days_res=TO_CHAR(l_days)
l_amount1_res=TO_CHAR(l_amount1)
l_months_res=TO_CHAR(l_months)
l_amount2_res=TO_CHAR(l_amount2)

return result1,
l_post_calc,
l_days_res,
l_amount1_res,
l_months_res,
l_amount2_res,
prorate_start_res,
prorate_end_res

FastFormula to use if Employee is Paid using a Spinal Point/Pay Scale


/***********************************************************
Formula Name = UK_PRORATION_SPINAL_POINT
Formula Type = Oracle Payroll

Description: This formula is executed from within the payroll run


by processing the element UK Salary Spinal Point. It calculates
the rate of pay and returns this value. It uses the version of the
function RATES_HISTORY which requires a date input to be passed.
This formula is just a prototype.

DISCLAIMER: Oracle Corportation may change or upgrade this fast


formul in the future releases. This FastFormula is strictly for
example or prototype purposes. This FastFormula is not intended to
provide a ready–made solution to the users. This formula may
contain certain hard–coded values added to simplify the concept of
usage of FastFormulas in proration. Users should make a copy of

Oracle FastFormula Reference 2 – 111


this formula and not change this formula. Users need to write
their own new formula(s) to meet requirements.
************************************************************/
DEFAULT FOR date_worked IS ’01–JAN–1950’(date)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS ’01–JAN–1950’(date)
DEFAULT FOR PAY_PROC_PERIOD_START_DATE IS ’01–JAN–1950’(date)
DEFAULT FOR prorate_start IS ’01–JAN–1950’(date)
DEFAULT FOR prorate_end IS ’01–JAN–1950’(date)

inputs are prorate_start(date),


prorate_end(date)

/**
Prorate_start and prorate_end dates are passed from the payroll
engine. These dates basically represent the dates on which the
changes occur in the pay scale/grade rate during the pay period.
**/
amount=0
message=’’
IF(prorate_start WAS DEFAULTED)then
(
/**
prorate_start date is defaulted when no proration occurs
**/
l_date_worked=PAY_PROC_PERIOD_END_DATE
prorate_start=PAY_PROC_PERIOD_START_DATE
prorate_end=PAY_PROC_PERIOD_END_DATE
)
else
)
l_date_worked=prorate_end
)
message1=’Date defaulted to’||TO_CHAR(date_worked,’DD–MON–YYYY’)

/**
The following function returns the value of the pay scale on the
l_date_worked which is last date of hte payroll period if no
proration occurs, otherwise it is the proration end date.
**/

if rates_history(l_date_worked,
’UK Spinal Point,
’E’,
’P’,
amount,
message)= –1 then
(
return message, message1
)

2 – 112 Using Oracle FastFormula


else
(
l_days = days_between(prorate_end,prorate_start)+ 1

/**
l_days stores the number of days between prorate start and prorate
end dates
**/

message1 = ’The value


is’||TO_CHAR(ROUND(amount,2))||for=’||TO_CHAR(l_days||’days from
’||TO_CHAR(prorate_start,’DD–MON–YYYY’)||’to’||TO_CHAR(prorate_end
,’DD–MON–YYYY’)

/**
The message is just for informational purposes.
**/
l_amount=amount*(12*1_days/365)

/**
The above calculation is hard–coded to simplify the calculation.
Please write your own calculation logic. The assumption was that
the value in the pay scale is monthly. Therefore to get annual
amount it is multiplied by 12. Then it is divided by 365 days to
get the amount for a single day. Once it is multiplied by l_days,
we get the amount for the days we want.
**/
/**
It is another assumption that a year contains 365 days. Please
change this assumption to take account of the leap year. This
formula will not work properly in a leap year.
**/
return l_amount, message1
)

FastFormula to Use if Employee is Paid Using a Grade Rate


/****************************************************************
Formula Name = UK_PRORATION_GRADE_RATE
Formula Type = Oracle Payroll
Description: This formula is executed from within the payroll run
by processing the element UK Salary Grade Rate. It calculates the
rate of pay and returns this value. It uses the version of the
function RATES_HISTORY which requires a date input to be passed.
This formula is just a prototype.

DISCLAIMER: Oracle Corporation may change or upgrade this


FastFormula in the future releases. This FastFormula is strictly
for example or prototype purposes only. This FastFormula is not

Oracle FastFormula Reference 2 – 113


intended to provide a ready–made solution to the users. This
formula may contain certain hard–coded values added to simplify
the concept of usage of FastFormulas in proration. Users should
make a copy of this formula and not change this formula. Users
need to write their own new formula(s) to meet requirements.

****************************************************************/
DEFAULT FOR date_worked IS ’01–JAN–1950’(date)
DEFAULT FOR PAY_PROC_PERIOD–END_DATE IS ’01–JAN–1950’(date)
DEFAULT FOR PAY_PROC_PERIOD–START–DATE IS ’01–JAN–1950’(date)
DEFAULT FOR prorate_start IS ’01–JAN–1950’(date)
DEFAULT FOR prorate_end IS ’01–JAN–1950’(date)

inputs are prorate_start(date),


prorate_end(date)

/**
Prorate_start and prorate_end dates are passed from the payroll
engine. These dates basically represent the dates on which the
changes occur in the pay scale/grade rate during the pay period.
**/

amount = 0
message = ’’

IF(prorate_start WAS DEFAULTED)then


(
/**
prorate_start date is defaulted when no proration occurs
**/
l_date_worked=PAY_PROC_PERIOD_END_DATE
prorate_start=PAY_PROC_PERIOD_START_DATE
prorate_end=PAY_PROC_PERIOD_END_DATE
)
else
(
l_date_worked=prorate_end
)
message1=’Date defaulted to’||TO_CHAR(date_worked,’DD–MON–YYYY’)

/**
The following function returns the value of the pay scale on the
l_date_worked which is last date of the payroll period if no
proration occurs, therwise it is the proration end date.
**/

if rates_history(l_date_worked,
’UK Grade Rate’,
’E’,

2 – 114 Using Oracle FastFormula


’H’,
amount,
message) = –1 then
(
return message, message1
)
else
(
l_days = days_between(prorate_end,prorate_start) + 1
/**
l_days stores the number f days between prorate start and prorate
end dates
**/
message1 = ’The value
is’||TO_CHAR(ROUND(amount,2))||for=’||TO_CHAR(1_days||’days from
’||TO_CHAR(prorate_start,’DD–MON–YYYY’)||’to’||TO_CHAR(prorate_end
,’DD–MON–YYYY’)
/**
The message is just for informational purposes.
**/

l_amount=amount * ((l_days*1600)/365)
/**
The above calculation is hard–coded to simplify the calcuation.
Please write your own calculatioin logic. The assumption was that
the value in the grade rate is hourly. Therefore to get the annual
amount it is multiplied by 16000 hours (assuming that there are
1600 hours in a year). Then it is divided by 365 days to get the
amount for a single day. Once it is multiplied by l_days, we get
the amount for the days we want.
**/
/**
It is another assumption that a year contains 365 days. Please
change this asusmption to take account of leap year. This formula
will not work properly in a leap year.
**/
return l–amount,message1
)

FastFormula to use for a Deduction


/*****************************************************************
Formula name: UK_PRORATION_DEDUCTIONS
Purpose: Formula prototype to calculate prorated deductions.

DISCLAIMER: Oracle Corporation may change or upgrade this


FastFormula in future releases. This FastFormula is strictly for
example or prototype purposes only. This FastFormula is ot
intended to provide a ready–made solution for the user. This

Oracle FastFormula Reference 2 – 115


formula may contain certain hard–coded values added to simplify
the concept of usage of FastFormulas in proration. Users should
make a copy of this formula and not change this formula. Users
need to write their own new formula(s) to meet requirements.
*****************************************************************/
default for prorate_start is ’01–JAN–1900’(date)
default for prorate_end is ’01–JAN–1900’(date)

default for amount is 0.0


inputs are
prorate_start(date),
prorate_end(date),
annual_deduction(number)
/**
Prorate–start and prorate_end dates are passed from the payroll
engine. These dates basically represent the dates on which the
changes occur in the deduction amount during the pay perod.
annual_deduction is an input value created in the element to which
this formula will be tied. Here the assumption is that the user
enters the annual deduction amount in the input value.
**/

l_amount=annual_deduction
message=’Proration Start Date’||TO_CHAR(prorate_start,
’DD–MON–YYYY’)
IF(prorate_start was defaulted)then
(
/**
prorate_start date is defaulted when no proration occurs.
Therefore we should just return the annual deduction amount
divided by 12.
**/
l_amount=l_amount/12
return l_amount
)
else
(
l_days=days_between(prorate_end, prorate_start) + 1
/**
l_days stores the number of days between prorate start and prorate
end dates
**/
l_days_in_fiscal_year=365

/**
It is another assumption that a year contains 365 days. Please
change this assumption to take care of leap year. This formula
will not work properly in a leap year.
**/

2 – 116 Using Oracle FastFormula


l_amount=(l_amount*l_days)/l_days_in_fiscal_year
/**
In the above calculation, since l_amount contains the annual
deduction amount, it is divided by 365 days of the year to get the
deduction amount per day. This amount is then multiplied by the
number of days in question to get the proper deduction amount
**/

return l_amount, message


)

Oracle FastFormula Reference 2 – 117


Sample Rates History Formulas (UK Only)
The following sample formulas show how you can create payroll
formulas to be used in different situations requiring historic rates.
Oracle Corporation may change this formula in future releases. This
formula is strictly for example or prototype uses only, and is not
intended to provide a ready–made solution. You can make a copy of
this formula but you should not change your copied version. Always
write a formula of your own to meet your own requirements. This
formula may contain certain hard–coded values to simplify the use of
formulas for proration.

FastFormula to Calculate the Salary when Attached to a Grade Rate


/***************************************************
Formula name : Grade_Rate_Formula
Description : Formula to calculate the salary when attached to a
Grade Rate
****************************************************

inputs are date_worked(date)

amount=0
message=’’

if rates_history (date_worked,
’Salary Element GR’,
’E’,
’P’,
amount,
message)=–1 then
(
return message
)
else
(
return amount
)
.

FastFormula to Calculate the Salary when Attached to a Spinal Point


/***************************************************
Formula name : Spinal_Point_Formula
Description : Formula to calculate the salary when attached to a
Spinal Point
****************************************************

2 – 118 Using Oracle FastFormula


inputs are date_worked(date)

amount=0
message=’’

if rates_history (date_worked,
’Salary Element SP’,
’E’,
’P’,
amount,
message)=–1 then
(
return message
)
else
(
return amount
)
.

FastFormula to Calculate the Salary when Attached to a Global Value


/***************************************************
Formula name : Global_Value_Formula
Description : Formula to calculate the salary when attached to a
Global Value
****************************************************

inputs are date_worked(date)

amount=0
message=’’

if rates_history (date_worked,
’Salary Element GV’,
’E’,
’P’,
amount,
message)=–1 then
(
return message
)
else
(
return amount
)
.

Oracle FastFormula Reference 2 – 119


FastFormula to Calculate the Salary when there is an Input Value
/***************************************************
Formula name : Input_Value_Formula
Description : Formula to calculate the salary when there is an
input value
****************************************************

inputs are date_worked(date)

amount=0
message=’’

if rates_history (date_worked,
’Salary Element IV’,
’E’,
’P’,
amount,
message)=–1 then
(
return message
)
else
(
return amount
)
.

FastFormula to Calculate the Overtime when there is a Rate Type


/***************************************************
Formula name : Overtime_Formula
Description : Formula to calculate the overtime when there is an
rate type
****************************************************

inputs are date_worked(date)

amount=0
message=’’

if rates_history (date_worked,
’Overtime Element’,
’R’,
’P’,
amount,
message)=–1 then
(
return message

2 – 120 Using Oracle FastFormula


)
else
(
return amount
)
.

Oracle FastFormula Reference 2 – 121


2 – 122 Using Oracle FastFormula
Glossary

360 Degree Appraisal Part of the SSHR Accrual Period The unit of time, within an
Appraisal function and also known as a accrual term, in which PTO is accrued. In
Group Appraisal. This is an employee many plans, the same amount of time is
appraisal undertaken by managers with accrued in each accrual period, such as two
participation by reviewers. days per month. In other plans, the amount
360 Degree Self Appraisal Part of the SSHR accrued varies from period to period, or the
Appraisal function and also known as a entitlement for the full accrual term is given
Group Appraisal. This is a 360 Degree as an up front amount at the beginning of
appraisal initiated by an employee. The the accrual term.
employee (initiator) can add managers and Accrual Term The period, such as one year,
reviewers to the appraisal. for which accruals are calculated. In most
accrual plans, unused PTO accruals must
be carried over or lost at the end of the
A accrual term. Other plans have a rolling
accrual term which is of a certain duration
Absence Types Categories of absence, such as
but has no fixed start and end dates.
medical leave or vacation leave, that you
define for use in absence windows. Activity Rate The monetary amount or
percentage associated with an activity, such
Accrual The recognized amount of leave
as $12.35 per pay period as an employee
credited to an employee which is
payroll contribution for medical coverage.
accumulated for a particular period.
Activity rates can apply to participation,
Accrual Band A range of values that eligibility, coverages, contributions, and
determines how much paid time off an distributions.
employee accrues. The values may be years
Actual Premium The per–participant
of service, grades, hours worked, or any
premium an insurance carrier charges the
other factor.
plan sponsor for a given benefit.
Accrual Plan See: PTO Accrual Plan

Glossary – 1
Administrative Enrollment A type of Assignment Set A grouping of employees
scheduled enrollment caused by a change and/or applicants that you define for
in plan terms or conditions and resulting in running QuickPaint reports and processing
a re–enrollment. payrolls. See also: QuickPaint Report
Applicant A candidate for employment in a Assignment Status For employees, used to
Business Group. track their permanent or temporary
Appraisee A person being appraised by an departures from your enterprise, and to
appraiser.. control the remuneration they receive. For
applicants, used to track the progress of
Appraiser A person, usually a manager, who
their applications.
appraises an employee.
Appraisal An appraisal is a process where an
employee’s work performance is rated and
future objectives set. See also: Assessment.
B
BACS Banks Automated Clearing System.
Appraising Manager The person who initiates
This is the UK system for making direct
and performs an Employee–Manager or 360
deposit payments to employees.
Degree Appraisal. An appraising manager
can create appraisal objectives. Balances Positive or negative accumulations
of values over periods of time normally
Apply for a Job An SSHR function that
generated by payroll runs. A balance can
enables an employee to, apply, search and
sum pay values, time periods or numbers.
prepare applications for an internally
See also: Predefined Components
advertised vacancy.
Balance Adjustment A correction you make
Arrestment Scottish court order made out for
to a balance. You can adjust user balances
unpaid debts or maintenance payments.
and assignment level predefined balances
See also: Court Order
only.
Assessment An information gathering
Balance Dimension The period for which a
exercise, from one or many sources, to
balance sums its balance feeds, or the set of
evaluate a person’s ability to do a job. See
assignments/transactions for which it sums
also: Appraisal.
them. There are five time dimensions: Run,
Assignment An employee’s assignment Period, Quarter, Year and User. You can
identifies his or her role and payroll within choose any reset point for user balances.
a Business Group. The assignment is made
Balance Feeds These are the input values of
up of a number of assignment components.
matching units of measure of any elements
Of these, organization is mandatory, and
defined to feed the balance.
payroll is a required component for
payment purposes.
Assignment Number A number that uniquely
identifies an employee’s assignment. An
employee with multiple assignments has
multiple assignment numbers.

Glossary – 2 Using Oracle FastFormula


Bargaining Unit A bargaining unit is a legally Business Group The highest level
organized group of people which have the organization in the Oracle HRMS system.
right to negotiate on all aspects of terms A Business Group may correspond to the
and conditions with employers or employer whole of your enterprise or to a major
federations. A bargaining unit is generally a grouping such as a subsidiary or operating
trade union or a branch of a trade union. division. Each Business Group must
Base Currency The currency in which Oracle correspond to a separate implementation of
Payroll performs all payroll calculations for Oracle HRMS.
your Business Group. If you pay Business Number (BN) In Canada, this is the
employees in different currencies to this, employer’s account number with Revenue
Oracle Payroll calculates the amounts based Canada. Consisting of 15 digits, the first 9
on exchange rates defined in the system. identify the employer, the next 2 identify
Behavioral Indicators Characteristics that the type of tax account involved (payroll vs.
identify how a competence is exhibited in corporate tax), and the last 4 identify the
the work context. See also: Proficiency Level particular account for that tax.
Benefit Any part of an employee’s
remuneration package that is not pay.
Vacation time, employer–paid medical C
insurance and stock options are all Cafeteria Benefits Plan See: Flexible Benefits
examples of benefits. See also: Elements Program
Beneficiary A person or organization Calendars In Oracle Human Resources you
designated to receive the benefits from a define calendars that determine the start
benefit plan upon the death of the insured. and end dates for budgetary years, quarters
Block The largest subordinate unit of a and periods. For each calendar you select a
window, containing information for a basic period type. In Oracle SSP/SMP you
specific business function or entity. Every define calendars to determine the start date
window consists of at least one block. and time for SSP qualifying patterns.
Blocks contain fields and, optionally, Calendar Exceptions In Oracle SSP/SMP you
regions. They are delineated by a bevelled define calendar exceptions for an SSP
edge. You must save your entries in one qualifying pattern, to override the pattern
block before navigating to the next. See on given days. Each calendar exception is
also: Region, Field another pattern which overrides the usual
Budget Value In Oracle Human Resources pattern.
you can enter staffing budget values and Canada/Quebec Pension Plan (CPP/QPP)
actual values for each assignment to Contributions Contributions paid by
measure variances between actual and employers and employees to each of these
planned staffing levels in an organization or plans provide income benefits upon
hierarchy. retirement.

Glossary – 3
Candidate Offers An SSHR function used by a Collective Agreement A collective agreement is
line manager to offer a job to a candidate. a form of contract between an employer or
This function is supplied with its own employer representative, for example, an
responsibility. employer federation, and a bargaining unit
Career Path This shows a possible progression for example, a union or a union branch.
from one job or position from any number Collective Agreement Grade Combination of
of other jobs or positions within the information that allows you to determine
Business Group. A career path must be how an employee is ranked or graded in a
based on either job progression or position collective agreement.
progression; you cannot mix the two. Communications Benefits plan information
Carry Over The amount of unused paid time that is presented in some form to
off entitlement an employee brings forward participants. Examples include a
from one accrual term to the next. It may be pre–enrollment package, an enrollment
subject to an expiry date i.e. a date by confirmation statement, or a notice of
which it must be used or lost. See also: default enrollment.
Residual Compensation The pay you give to
Cash Analysis A specification of the different employees, including wages or salary, and
currency denominations required for bonuses. See also: Elements
paying your employees in cash. Union Compensation Object For Standard and
contracts may require you to follow certain Advanced Benefits, compensation objects
cash analysis rules. define, categorize, and help to manage the
Certification Documentation required to benefit plans that are offered to eligible
enroll or change elections in a benefits plan participants. Compensation objects include
as the result of a life event, to waive programs, plan types, plans, options, and
participation in a plan, to designate combinations of these entities.
dependents for coverage, or to receive Competence Any measurable behavior
reimbursement for goods or services under required by an organization, job or position
an FSA. that a person may demonstrate in the work
Ceiling The maximum amount of unused context. A competence can be a piece of
paid time off an employee can have in an knowledge, a skill, an attitude or an
accrual plan. When an employee reaches attribute.
this maximum, he or she must use some Competence Evaluation A method used to
accrued time before any more time will measure an employees ability to do a
accrue. defined job.
Child/Family Support payments In Canada, Competence Profile Where you record
these are payments withheld from an applicant and employee accomplishments,
employee’s compensation to satisfy a child for example, proficiency in a competence.
or family support order from a Provincial
Competence Requirements Competencies
Court. The employer is responsible for
required by an organization, job or position.
withholding and remitting the payments to
See also: Competence, Core Competencies
the court named in the order.

Glossary – 4 Using Oracle FastFormula


Competence Type A group of related Costing Recording the costs of an assignment
competencies. for accounting or reporting purposes.
Configurable Forms Forms that your system Using Oracle Payroll, you can calculate and
administrator can modify for ease of use or transfer costing information to your general
security purposes by means of Custom ledger and into systems for project
Form restrictions. The Form Customization management or labor distribution.
window lists the forms and their methods Court Order A ruling from a court that
of configuration. requires an employer to make deductions
Consolidation Set A grouping of payroll runs from an employee’s salary for maintenance
within the same time period for which you payments or debts, and to pay the sums
can schedule reporting, costing, and deducted to a court or local authority. See
post–run processing. also: Arrestment
Contact A person who has a relationship to an
employee that you want to record.
Contacts can be dependents, relatives, D
partners or persons to contact in an Database Item An item of information in
emergency. Oracle HRMS that has special
Contract A contract of employment is an programming attached, enabling Oracle
agreement between an employer and FastFormula to locate and retrieve it for use
employee or potential employee that in formulas.
defines the fundamental legal relationship Date To and Date From These fields are used
between an employing organization and a in windows not subject to DateTrack. The
person who offers his or her services for period you enter in these fields remains
hire. The employment contract defines the fixed until you change the values in either
terms and conditions to which both parties field. See also: DateTrack, Effective Date
agree and those that are covered by local DateTrack When you change your effective
laws. date (either to past or future), DateTrack
Contribution An employer’s or employee’s enables you to enter information that takes
monetary or other contribution to a benefits effect on your new effective date, and to
plan. review information as of the new date. See
Core Competencies Also known as Leadership also: Effective Date
Competencies or Management Competencies. Dependent In a benefit plan, a person with a
The competencies required by every person proven relationship to the primary
to enable the enterprise to meet its goals. participant whom the participant
See also: Competence designates to receive coverage based on the
Costable Type A feature that determines the terms of the plan.
processing an element receives for Deployment Factors See: Work Choices
accounting and costing purposes. There are
four costable types in Oracle HRMS:
costed, distributed costing, fixed costing,
and not costed.

Glossary – 5
Derived Factor A factor (such as age, percent Elements Components in the calculation of
of fulltime employment, length of service, employee pay. Each element represents a
compensation level, or the number of hours compensation or benefit type, such as
worked per period) that is used in salary, wages, stock purchase plans, and
calculations to determine Participation pension contributions.
Eligibility or Activity Rates for one or more Element Classifications These control the
benefits. order in which elements are processed and
Descriptive Flexfield A field that your the balances they feed. Primary element
organization can configure to capture classifications and some secondary
additional information required by your classifications are predefined by Oracle
business but not otherwise tracked by Payroll. Other secondary classifications can
Oracle Applications. See also: Key Flexfield be created by users.
Developer Descriptive Flexfield A flexfield Element Entry The record controlling an
defined by your localization team to meet employee’s receipt of an element, including
the specific legislative and reporting needs the period of time for which the employee
of your country. See also: Extra Information receives the element and its value. See also:
Types Recurring Elements, Nonrecurring Elements
Direct Deposit The electronic transfer of an Element Link The association of an element to
employee’s net pay directly into the one or more components of an employee
account(s) designated by the employee. assignment. The link establishes employee
Distribution Monetary payments made from, eligibility for that element. Employees
or hours off from work as allowed by, a whose assignment components match the
compensation or benefits plan. components of the link are eligible for the
element. See also: Standard Link
Element Set A group of elements that you
E define to process in a payroll run, or to
control access to compensation information
Effective Date The date for which you are
from a configured form, or for distributing
entering and viewing information. You set
costs.
your effective date in the Alter Effective
Date window. See also: DateTrack Eligibility The process by which a potential
benefits participant satisfies the rules
EIT See: Extra Information Type
governing whether a person can ever enroll
Electability The process which determines in a program, plan, or option in a plan. A
whether a potential benefits participant, participant who is eligible for benefits must
who has satisfied the eligibility rules also satisfy electability requirements.
governing a program, plan, or option in a
plan, is able to elect benefits. Participants
who are eligible for benefits do not always
have electable benefit choices based on the
rules established in a benefit plan design.

Glossary – 6 Using Oracle FastFormula


Employee Histories An SSHR function for an Entitlement In Australia, this is all unused
employee to view their, Training History, leave from the previous year that remains
Job Application History, Employment to the credit of the employee.
History, Absence History, or Salary History. ESS Employee Self Service. A predefined
A manager can also use this function to SSHR responsibility.
view information on their direct reports.
Event An activity such as a training day,
Employment Category A component of the review, or meeting, for employees or
employee assignment. Four categories are applicants.
defined: Full Time – Regular, Full Time –
Expected Week of Confinement (EWC) In
Temporary, Part Time – Regular, and Part
the UK, this is the week in which an
Time – Temporary.
employee’s baby is due. The Sunday of the
Employment Insurance (EI) Benefit plan run expected week of confinement is used in
by the federal government to which the the calculations for Statutory Maternity Pay
majority of Canadian employers and (SMP).
employees must contribute.
Extra Information Type (EIT) A type of
Employment Insurance Rate In Canada, this is developer descriptive flexfield that enables
the rate at which the employer contributes you to create an unlimited number of
to the EI fund. The rate is expressed as a information types for six key areas in
percentage of the employee’s contribution. Oracle HRMS. Localization teams may also
If the employer maintains an approved predefine some EITs to meet the specific
wage loss replacement program, they can legislative requirements of your country.
reduce their share of EI premiums by See also: Developer Descriptive Flexfield
obtaining a reduced contribution rate.
Employers would remit payroll deductions
under a different employer account number F
for employees covered by the plan.
Field A view or entry area in a window where
Employment Equity Occupational Groups
you enter, view, update, or delete
(EEOG) In Canada, the Employment Equity
information. See also: Block, Region
Occupational Groups (EEOG) consist of 14
classifications of work used in the Flex Credit A unit of ”purchasing power” in a
Employment Equity Report. The EEOGs flexible benefits program. An employee
were derived from the National uses flex credits, typically expressed in
Occupational Classification system. monetary terms, to ”purchase” benefits
plans and/or levels of coverage within
Enroll in a Class An SSHR function which
these plans.
enables an employee to search and enroll in
an internally published class. An employee
can also use this function to maintain their
competencies.
Enrollment Action Type Any action required
to complete enrollment or de–enrollment in
a benefit.

Glossary – 7
Flexible Benefits Program A benefits Grade Scale A sequence of steps valid for a
program that offers employees choices grade, where each step corresponds to one
among benefits plans and/or levels of point on a pay scale. You can place each
coverage. Typically, employees are given a employee on a point of their grade scale
certain amount of flex credits or moneys and automatically increment all placements
with which to ”purchase” these benefits each year, or as required. See also: Pay Scale
plans and/or coverage levels. Grade Step An increment on a grade scale.
Flexible Spending Account (FSA) Under US Each grade step corresponds to one point
Internal Revenue Code Section 125, on a pay scale. See also: Grade Scale
employees can set aside money on a pretax Grandfathered A term used in Benefits
basis to pay for eligible unreimbursed Administration. A person’s benefits are
health and dependent care expenses. said to be grandfathered when a plan
Annual monetary limits and use–it–or–lose changes but they retain the benefits
it provisions exist. Accounts are subject to accrued.
annual maximums and forfeiture rules.
Group A component that you define, using
Form A predefined grouping of functions, the People Group key flexfield, to assign
called from a menu and displayed, if employees to special groups such as
necessary, on several windows. Forms pension plans or unions. You can use
have blocks, regions and fields as their groups to determine employees’ eligibility
components. See also: Block, Region, Field for certain elements, and to regulate access
to payrolls.
Group Certificate In Australia, this is a
G statement from a legal employer showing
Global Value A value you define for any employment income of an employee for the
formula to use. Global values can be dates, financial year..
numbers or text.
Goods or Service Type A list of goods or
services a benefit plan sponsor has H
approved for reimbursement. Hierarchy An organization or position
Grade A component of an employee’s structure showing reporting lines or other
assignment that defines their level and can relationships. You can use hierarchies for
be used to control the value of their salary reporting and for controlling access to
and other compensation elements. Oracle HRMS information.
Grade Comparatio A comparison of the
amount of compensation an employee
receives with the mid–point of the valid I
values defined for his or her grade.
Grade Rate A value or range of values
defined as valid for a given grade. Used
for validating employee compensation
entries.

Glossary – 8 Using Oracle FastFormula


Imputed Income Certain forms of indirect Leaver’s Statement In the UK, this Records
compensation that US Internal Revenue details of Statutory Sick Pay (SSP) paid
Service Section 79 defines as fringe benefits during a previous employment (issued as
and taxes the recipient accordingly. form SSP1L) which is used to calculate a
Examples include employer payment of new employee’s entitlement to SSP. If a
group term life insurance premiums over a new employee falls sick, and the last date
certain monetary amount, personal use of a that SSP was paid for under the previous
company car, and other non–cash awards. employment is less than eight calendar
Initiator In SSHR a person who starts a 360 weeks before the first day of the PIW for
Degree appraisal (Employee or Self) on an the current sickness, the maximum liability
individual. An initiator and the appraisee for SSP is reduced by the number of weeks
are the only people who can see all of SSP shown on the statement.
appraisal information. Legal Employer A business in Australia that
Input Values Values you define to hold employs people and has registered with the
information about elements. In Oracle Australian Tax Office as a Group Employer.
Payroll, input values are processed by Life Event A significant change in a person’s
formulas to calculate the element’s run life that results in a change in eligibility or
result. You can define up to fifteen input ineligibility for a benefit.
values for an element. Life Event Collision A situation in which the
Instructions An SSHR user assistance impacts from multiple life events on
component displayed on a web page to participation eligibility, enrollability, level of
describe page functionality. coverage or activity rates conflict with each
other.
Life Event Enrollment A benefits plan
K enrollment that is prompted by a life event
Key Flexfield A flexible data field made up of occurring at any time during the plan year.
segments. Each segment has a name you Linking Interval In the UK, this is the number
define and a set of valid values you specify. of days that separate two periods of
Used as the key to uniquely identify an incapacity for work. If a period of
entity, such as jobs, positions, grades, cost incapacity for work (PIW) is separated from
codes, and employee groups. See also: a previous PIW by less than the linking
Descriptive Flexfield interval, they are treated as one PIW
according to the legislation for entitlement
to Statutory Sick Pay (SSP). An employee
L can only receive SSP for the maximum
Leave Loading In Australia, an additional number of weeks defined in the legislation
percentage amount of the annual leave paid for one PIW.
that is paid to the employee.

Glossary – 9
Linked PIWs In the UK, these are linked Maternity Pay Period In the UK, this is the
periods of incapacity for work that are period for which Statutory Maternity Pay
treated as one to calculate an employee’s (SMP) is paid. It may start at any time from
entitlement to Statutory Sick Pay (SSP). A the start of the 11th week before the
period of incapacity for work (PIW) links to expected week of confinement and can
an earlier PIW if it is separated by less than continue for up to 18 weeks. The start date
the linking interval. A linked PIW can be is usually agreed with the employee, but
up to three years long. can start at any time up to the birth. An
LMSS Line Manager Self Service. A employee is not eligible to SMP for any
predefined SSHR responsibility. week in which she works or for any other
reason for ineligibility, defined by the
Long Service Leave Leave with pay granted
legislation for SMP.
to employees of a particular employer after
a prescribed period of service or Menus You set up your own navigation
employment with that employer. menus, to suit the needs of different users.
Lookup Types Categories of information, Medicare Levy An amount payable by most
such as nationality, address type and tax taxpayers in Australia to cover some of the
type, that have a limited list of valid values. cost of the public health system.
You can define your own Lookup Types,
and you can add values to some predefined
Lookup Types. N
Lower Earnings Limit (LEL) In the UK, this is NACHA National Automated Clearing House
the minimum average weekly amount an Association. This is the US system for
employee must earn to pay National making direct deposit payments to
Insurance contributions. Employees who employees.
do not earn enough to pay National National Identifier This is the alphanumeric
Insurance cannot receive Statutory Sick Pay code that is used to uniquely identify a
(SSP) or Statutory Maternity Pay (SMP). person within their country. It is often used
for taxation purposes. For example, in the
US it is the Social Security Number, in Italy
M it is the Fiscal Code, and in New Zealand it
Manager–Employee Appraisal Part of the is the IRD Number.
SSHR Appraisal function. A manager
appraisal of an employee. However, an
appraising manager does not have to be a
manager.

Glossary – 10 Using Oracle FastFormula


National Occupational Classification (NOC) Oracle FastFormula An Oracle tool that
code In Canada, the National Occupational allows you to write Oracle HRMS formulas
Classification (NOC) System was without using a programming language.
developed to best reflect the type of work Organization A required component of
performed by employees. Occupations are employee assignments. You can define as
grouped in terms of particular tasks, duties many organizations as you want within
and responsibilities. The use of this your Business Group. Organizations can be
standardized system ensures consistency of internal, such as departments, or external,
data from year to year within the same such as recruitment agencies. You can
company as well as between companies. structure your organizations into
These codes are used in the Employment organizational hierarchies for reporting
Equity Report. purposes and for system access control.
Net Accrual Calculation The rule that defines OSSWA Oracle Self Service Web Applications.
which element entries add to or subtract
OTM Oracle Training Management.
from a plan’s accrual amount to give net
entitlement.
Net Entitlement The amount of unused paid P
time off an employee has available in an
accrual plan at any given point in time. Pattern A pattern comprises a sequence of
time units that are repeated at a specified
Nonrecurring Elements Elements that process
frequency. Oracle SSP/SMP uses SSP
for one payroll period only unless you
qualifying patterns to determine employees
make a new entry for an employee. See
entitlement to Statutory Sick Pay (SSP).
also: Recurring Elements
Pattern Time Units A sequence of time units
North American Industrial Classification
specifies a repeating pattern. Each time
(NAIC) code The North American
unit specifies a time period of hours, days
Industrial Classification system (NAICs)
or weeks.
was developed jointly by the US, Canada
and Mexico to provide comparability in Pay Scale A set of progression points that can
statistics regarding business activity across be related to one or more rates of pay.
North America. The NAIC replaces the US Employee’s are placed on a particular point
Standard Industrial Classification (SIC) on the scale according to their grade and,
system, and is used in the Employment usually, work experience. See also: Grade
Equity Report. Scale
Not in Program Plan A benefit plan that you Payment Type There are three standard
define outside of a program. payment types for paying employees:
check, cash and direct deposit. You can
define your own payment methods
corresponding to these types.
O
Open Enrollment A type of scheduled
enrollment in which participants can enroll
in or alter elections in one or more benefits
plans.

Glossary – 11
Payroll A group of employees that Oracle Personal Tax Credits Return (TD1) A Revenue
Payroll processes together with the same Canada form which each employee must
processing frequency, for example, weekly, complete. Used by the employee to reduce
monthly or bimonthly. Within a Business his or her taxable income at source by
Group, you can set up as many payrolls as claiming eligible credits and also provides
you need. payroll with such important information as
People List An SSHR line manager utility used current address, birth date, and SIN. These
to locate an employee. credits determine the amount to withhold
from the employee’s wages for
Performance (within Assessment) An
federal/provincial taxes.
expectation of ”normal” performance of a
competence over a given period. For Plan Design The functional area that allows
example, a person may exceed performance you to set up your benefits programs and
expectation in the communication plans. This process involves defining the
competence. See also: Proficiency (within rules which govern eligibility, available
Assessment), Competence, Assessment options, pricing, plan years, third party
administrators, tax impacts, plan assets,
Period of Incapacity for Work (PIW) In the
distribution options, required reporting,
UK, this is a period of sickness that lasts
and communications.
four or more days in a row, and is the
minimum amount of sickness for which Plan Sponsor The legal entity or business
Statutory Sick Pay can be paid. If a PIW is responsible for funding and administering a
separated by less then the linking interval, a benefits plan. Generally synonymous with
linked PIW is formed and the two PIWs are employer.
treated as one. Position A specific role within the Business
Period Type A time division in a budgetary Group derived from an organization and a
calendar, such as week, month, or quarter. job. For example, you may have a position
of Shipping Clerk associated with the
Person Search An SSHR function which
organization Shipping and the job Clerk.
enables a manager to search for a person.
There are two types of search, Simple and Predefined Components Some elements and
Advanced. balances, all primary element classifications
and some secondary classifications are
Person Type There are eight system person
defined by Oracle Payroll to meet
types in Oracle HRMS. Seven of these are
legislative requirements, and are supplied
combinations of employees, ex–employees,
to users with the product. You cannot
applicants, and ex–applicants. The eighth
delete these predefined components.
category is ’External’. You can create your
own user person types based on the eight Professional Information An SSHR function
system types. which allows an employee to maintain their
own professional details or a line manager
Personal Public Service Number (PPS) The
to maintain their direct reports professional
Irish equivalent to National Insurance
details.
number in the UK, or the Social Security
number in the US.

Glossary – 12 Using Oracle FastFormula


Proficiency (within Assessment) The Qualification Type An identified
perceived level of expertise of a person in a qualification method of achieving
competence, in the opinion of the assessor, proficiency in a competence, such as an
over a given period. For example, a person award, educational qualification, a license
may demonstrate the communication or a test. See also: Competence
competence at Expert level. See also: Qualifying Days In the UK, these are days on
Performance (within Assessment), Competence, which Statutory Sick Pay (SSP) can be paid,
Assessment and the only days that count as waiting
Proficiency Level A system for expressing and days. Qualifying days are normally work
measuring how a competence is exhibited days, but other days may be agreed.
in the work context. See also: Behavioral Qualifying Pattern See: SSP Qualifying Pattern
Indicators.
Qualifying Week In the UK, this is the week
Progression Point A pay scale is calibrated in during pregnancy that is used as the basis
progression points, which form a sequence for the qualifying rules for Statutory
for the progression of employees up the pay Maternity Pay (SMP). The date of the
scale. See also: Pay Scale qualifying week is fifteen weeks before the
Provincial/Territorial Employment Standards expected week of confinement and an
Acts In Canada, these are laws covering employee must have been continuously
minimum wages, hours of work, overtime, employed for at least 26 weeks continuing
child labour, maternity, vacation, into the qualifying week to be entitled to
public/general holidays, parental and SMP.
adoption leave, etc., for employees Quebec Business Number In Canada, this is
regulated by provincial/territorial the employer’s account number with the
legislation. Ministere du Revenu du Quebec, also
Provincial Health Number In Canada, this is known as the Quebec Identification
the account number of the provincially number. It consists of 15 digits, the first 9
administered health care plan that the identify the employer, the next 2 identify
employer would use to make remittances. the type of tax account involved (payroll vs.
There would be a unique number for each corporate tax), and the last 4 identify the
of the provincially controlled plans i.e. particular account for that tax.
EHT, Quebec HSF, etc. Questionnaire An SSHR function which
PTO Accrual Plan A benefit in which records the results of an appraisal.
employees enroll to entitle them to accrue QuickPaint Report A method of reporting on
and take paid time off. The purpose of employee and applicant assignment
absences allowed under the plan, who can information. You can select items of
enroll, how much time accrues, when the information, paint them on a report layout,
time must be used, and other rules are add explanatory text, and save the report
defined for the plan. definition to run whenever you want. See
also: Assignment Set

Q
QPP (See Canada/Quebec Pension Plan) R

Glossary – 13
Rates A set of values for employee grades or Registered Pension Plan (RPP) This is a
progression points. For example, you can pension plan that has been registered with
define salary rates and overtime rates. Revenue Canada. It is a plan where funds
Rating Scale Used to describe an enterprise’s are set aside by an employer, an employee,
competencies in a general way. You do not or both to provide a pension to employees
hold the proficiency level at the competence when they retire. Employee contributions
level. See also: Proficiency Level are generally exempt from tax.
Record of Employment (ROE) A Human Registered Retirement Savings Plan (RRSP)
Resources Development Canada form that This is an individual retirement savings
must be completed by an employer plan that has been registered with Revenue
whenever an interruption of earnings Canada. Usually, contributions to the
occurs for any employee. This form is RRSP, and any income earned within the
necessary to claim Employment Insurance RRSP, is exempt from tax.
benefits. Report Parameters Inputs you make when
Recruitment Activity An event or program to submitting a report to control the sorting,
attract applications for employment. formatting, selection, and summarizing of
Newspaper advertisements, career fairs information in the report.
and recruitment evenings are all examples Report Set A group of reports and concurrent
of recruitment activities. You can group processes that you specify to run together.
several recruitment activities together Requisition The statement of a requirement
within an overall activity. for a vacancy or group of vacancies.
Recurring Elements Elements that process Request Groups A list of reports and
regularly at a predefined frequency. processes that can be submitted by holders
Recurring element entries exist from the of a particular responsibility. See also:
time you create them until you delete them, Responsibility
or the employee ceases to be eligible for the
Residual The amount of unused paid time off
element. Recurring elements can have
entitlement an employee loses at the end of
standard links. See also: Nonrecurring
an accrual term. Typically employees can
Elements, Standard Link
carry over unused time, up to a maximum,
Region A collection of logically related fields but they lose any residual time that exceeds
in a window, set apart from other fields by this limit. See also: Carry Over
a rectangular box or a horizontal line across
the window. See also: Block, Field

Glossary – 14 Using Oracle FastFormula


Responsibility A level of authority in an Search by Date An SSHR sub–function used
application. Each responsibility lets you to search for a Person by Hire date,
access a specific set of Oracle Applications Application date, Job posting date or search
forms, menus, reports, and data to fulfill by a Training event date.
your business role. Several users can share Salary Basis The period of time for which an
a responsibility, and a single user can have employee’s salary is quoted, such as hourly
multiple responsibilities. See also: Security or annually. Defines a group of employees
Profile, User Profile Options, Request Groups, assigned to the same salary basis and
Security Groups receiving the same salary element.
Retry Method of correcting a payroll run or Scheduled Enrollment A benefits plan
other process before any post–run enrollment that takes place during a
processing takes place. The original run predefined enrollment period, such as an
results are deleted and the process is run open enrollment. Scheduled enrollments
again. can be administrative, open, or
Revenue Canada Department of the unrestricted.
Government of Canada which, amongst Security Group Security groups enable HRMS
other responsibilities, administers, users to partition data by Business Group.
adjudicates, and receives remittances for all Only used for Security Groups Enabled
taxation in Canada including income tax, security. See also: Responsibility, Security
Employment Insurance premiums, Canada Profile, User Profile Options
Pension Plan contributions, and the Goods
Security Groups Enabled Formerly known as
and Services Tax (legislation is currently
Cross Business Group Responsibility
proposed to revise the name to the Canada
security. This security model uses security
Customs and Revenue Agency). In the
groups and enables you to link one
province of Quebec the equivalent is the
responsibility to many Business Groups.
Ministere du Revenu du Quebec.
Security Profile Security profiles control
Reviewer (SSHR) A person invited by an
access to organizations, positions and
appraising manager to add review
employee and applicant records within the
comments to an appraisal.
Business Group. System administrators use
Reversal Method of correcting payroll runs or them in defining users’ responsibilities. See
QuickPay runs after post–run processing also: Responsibility
has taken place. The system replaces
Self Appraisal Part of the SSHR Appraisal
positive run result values with negative
function. This is an appraisal undertaken by
ones, and negative run result values with
an employee to rate their own performance
positive ones. Both old and new values
and competencies.
remain on the database.
SMP See: Statutory Maternity Pay
Rollback Method of removing a payroll run
or other process before any post–run Social Insurance Number (SIN) A unique
processing takes place. All assignments number provided by Human Resources
and run results are deleted. Development Canada (HRDC) to each
person commencing employment in
Canada. The number consists of 9 digits in
the following format (###–###–###).
S

Glossary – 15
Source Deductions Return (TP 1015.3) A Statement of Commissions and Expenses for
Ministere du Revenu du Quebec form Source Deduction Purposes (TP
which each employee must complete. This 1015.R.13.1) A Ministere du Revenu du
form is used by the employee to reduce his Quebec form which allows an employee
or her taxable income at source by claiming who is paid partly or entirely by
eligible credits and also provides payroll commissions to pay a constant percentage
with such important information as current of income tax based on his or her estimated
address, birth date, and SIN. These credits commissions for the year, less allowable
determine the amount of provincial tax to business expenses.
withhold from the employee’s wages. Statement of Remuneration and Expenses
Special Information Types Categories of (TD1X) In Canada, the Statement of
personal information, such as skills, that Remuneration and Expenses allows an
you define in the Personal Analysis key employee who is paid partly or entirely by
flexfield. commission to pay a constant percentage of
SSHR Oracle Self–Service Human Resources. income tax, based on his or her estimated
An HR management system using an income for the year, less business-related
intranet and web browser to deliver expenses.
functionality to employees and their Statutory Maternity Pay In the UK, you pay
managers. Statutory Maternity Pay (SMP) to female
SSP See: Statutory Sick Pay employees who take time off work to have
a baby, providing they meet the statutory
SSP Qualifying Pattern In the UK, an SSP
requirements set out in the legislation for
qualifying pattern is a series of qualifying
SMP.
days that may be repeated weekly, monthly
or some other frequency. Each week in a Standard HRMS Security The standard
pattern must include at least one qualifying security model. Using this security model
day. Qualifying days are the only days for you must log on as a different user to see a
which Statutory Sick Pay (SSP) can be paid, different Business Group.
and you define SSP qualifying patterns for Statutory Sick Pay In the UK, you pay
all the employees in your organization so Statutory Sick Pay (SSP) to employees who
that their entitlement to SSP can be are off work for four or more days because
calculated. they are sick, providing they meet the
Standard Link Recurring elements with statutory requirements set out in the
standard links have their element entries legislation for SSP.
automatically created for all employees Succession Planning An SSHR function which
whose assignment components match the enables a manager to prepare a succession
link. See also: Element Link, Recurring plan.
Elements

Glossary – 16 Using Oracle FastFormula


Suitability Matching An SSHR function which User Balances Users can create, update and
enables a manager to compare and rank a delete their own balances, including
persons competencies. dimensions and balance feeds. See also:
Superannuation Guarantee An Australian Balances
system whereby employers are required to User Profile Options Features that allow
contribute a percentage of an eligible system administrators and users to tailor
employee’s earnings to a superannuation Oracle HRMS to their exact requirements.
fund to provide for their retirement. See also: Responsibility, Security Profile

T V
Tabbed Regions Parts of a window that Viewer (SSHR) A person with view only
appear in a stack so that only one is visible access to an appraisal. An appraising
at any time. You click on the tab of the manager or an employee in a 360 Degree
required region to bring it to the top of the Self appraisal can appoint view only access
stack. to an appraisal.
Task Flows A sequence of windows linked by
buttons to take you through the steps
required to complete a task, such as hiring a W
new recruit. System administrators can WCB Account Number In Canada, this is the
create task flows to meet the needs of account number of the provincially
groups of users. administered Worker’s Compensation
Terminating Employees You terminate an Board that the employer would use to make
employee when he or she leaves your remittances. There would be a unique
organization. Information about the number for each of the provincially
employee remains on the system but all controlled boards i.e. Workplace Safety &
current assignments are ended. Insurance Board of Ontario, CSST, etc.
Termination Rule Specifies when entries of an Waiting Days In the UK, statutory Sick Pay is
element should close down for an employee not payable for the first three qualifying
who leaves your enterprise. You can define days in period of incapacity for work
that entries end on the employee’s actual (PIW), which are called waiting days. They
termination date or remain open until a are not necessarily the same as the first
final processing date. three days of sickness, as waiting days can
Tips An SSHR user assistance component that be carried forward from a previous PIW if
provides information about a field. the linking interval between the two PIWs
is less than 56 days.

U
User Assistance Components SSHR online
help comprising tips and instructions.

Glossary – 17
Work Choices Also known as Work Workflow An Oracle application which uses
Preferences, Deployment Factors, or Work charts to manage approval processes and in
Factors. These can affect a person’s capacity addition is used in SSHR to configure
to be deployed within an enterprise, such display values of sections within a web
willingness to travel or relocate. You can page and instructions.
hold work choices at both job and position Work Structures The fundamental definitions
level, or at person level. of organizations, jobs, positions, grades,
Worker’s Compensation Board In Canada, payrolls and other employee groups within
this is a provincially governed legislative your enterprise that provide the framework
body which provides benefits to employees for defining the work assignments of your
upon injury, disability, or death while employees.
performing the duties of the employer.
Worker’s Compensation Board premiums
are paid entirely by the employer.

Glossary – 18 Using Oracle FastFormula


Index
A Default statements, 1 – 16
format of, 2 – 34
Absence types, database items for, 2 – 65 Define global values, 1 – 22
Alias statements, 1 – 16 Descriptive flexfields, enabling for QuickPaint,
format of, 2 – 34 2 – 64
Arithmetric operators, in formulas, 2 – 12 Dynamic database items
Assignment set formulas, 1 – 6, 1 – 36 for descriptive flexfield segments, 2 – 64 to
Assignment statements, 1 – 10 2 – 66
format of, 2 – 36 for key flexfield segments, 2 – 65
for new absence types, 2 – 65
for new elements, 2 – 61 to 2 – 64
for new grade rates, 2 – 63
B for new pay scale rates, 2 – 63
Benefits, formula types used for, 2 – 69 to 2 –
87
E
Element entries, validation, 1 – 6
C Element skip rules, 1 – 33
Compiling formulas, 1 – 20 Elements, database items for, 2 – 61 to 2 – 64
Compiling multi–version formulas, 1 – 37 Example
Conditions, format of, 2 – 37 accrual formula, 2 – 93
Constants, 2 – 5 checking a user table entry, 1 – 40
date, 2 – 6 checking an element entry, 1 – 39
numeric, 2 – 5 editing a QuickPaint formula, 1 – 38
text, 2 – 5 Expressions, in formulas, 2 – 11

D F
Database items, 2 – 8 Formula types, for total compensation, 2 – 69
from element input values, 2 – 4 to 2 – 87
in formulas, 1 – 9 Formulas
list of dynamic items, 2 – 61 arithmetric operators in, 2 – 12
list of static items, 2 – 44

Index – 1
assignment set formulas, 1 – 36 Inputs statement, 1 – 9
comments in, 1 – 15 to 1 – 17 Inputs statements, format of, 2 – 35
compiling multi–version formulas, 1 – 37
conditions in, 1 – 11 to 1 – 14
context, 1 – 9
errors in, 2 – 41 to 2 – 42 K
for assignment sets, 1 – 6 Key flexfields, enabling for QuickPaint, 2 – 65
for benefits administration, 2 – 68
for element skip rules, 1 – 33
for payroll calculations, 1 – 5 to 1 – 7
for PTO accrual plans, 1 – 26
L
for QuickPaint, 1 – 6 Local variables, 1 – 10, 2 – 7
for skip rules, 1 – 33
for validating element entries and user
tables, 1 – 6, 1 – 35 O
functions in, 2 – 13 to 2 – 18
inputs, 1 – 9 to 1 – 14, 2 – 3 to 2 – 4 Oracle FastFormula
making formulas efficient, 1 – 17 to 1 – 19 overview, 1 – 4
structure, 2 – 2 predefined formulas, 1 – 3
types of statement, 2 – 34 summary of uses, 1 – 2
using comments, 2 – 33
variables in, 2 – 7 to 2 – 10
writing and editing, 1 – 20 P
Functions
in formulas, 2 – 13 Pay scale rates, database items for, 2 – 63
registering, 1 – 23 Payroll formulas, 1 – 5 to 1 – 7
user defined, 2 – 88 writing for elements, 1 – 25
Processes
Bulk Compile Formulas, 2 – 40
G Create Descriptive Flexfield DB Items, 2 – 64
Create Key Flexfield DB Items, 2 – 65
Global values, 1 – 10, 2 – 7 PTO accrual plans
defining, 1 – 22 changing plan rules, 2 – 93
Grade rates, database items for, 2 – 63 formulas for, 1 – 26
sample formula, 2 – 93

H
HR:Execute Legislative Check Formula within Q
Run, 2 – 67 QuickPaint formula, copying and adding
features to, 1 – 34
QuickPaint reports, writing formulas for, 1 – 6
I
If statements, format of, 2 – 36
Input values R
in payroll formuals, 2 – 3 Registering, functions, 1 – 23
validation, 1 – 6

Index – 2 Using Oracle FastFormula


Return statements, in formulas, 2 – 39 V
Rule types, for total compensation, 2 – 69 to 2
– 87 Validation, writing formulas for, 1 – 6, 1 – 35
Variables, in formulas, 2 – 7

S
Skip rules, writing formulas for, 1 – 33
W
Statements, in formulas, 2 – 34 to 2 – 39 WAS DEFAULTED condition, 1 – 12
Windows
Database Items, 1 – 20
T Define Function, 2 – 88
Formula, 1 – 20
Total compensation, formula types used for, 2 Globals, 1 – 22
– 69 to 2 – 87

U
User tables, validating entries, 1 – 6

Index – 3
Index – 4 Using Oracle FastFormula

You might also like