Oracle HRMS Modules Guide
Oracle HRMS Modules Guide
In this modern age, Every organization wants to maintain its people records through systems. It
helps them to identify and analyze the cost of employees which ultimately helps them to
streamline their business decisions. With the introduction of ERPs (Enterprise Resource
Planning), organizations emphasized to go for ERP Systems (instead of standalone system)
which could give them an over all picture of business using the integration of different modules
of system.Understanding this need, different software companies developed ERP Packages and
launched in the market. Few of Known ERPs in world are SAP, Oracle, Microsoft, Orion etc.
Every ERP has different pros and cons. So organization should match their need while deciding
for any ERP to be used.
Oracle HRMS Overview
Oracle launched its product of E Businessmen Suite covering all major areas of an enterprise like
Financial, Supply Chain, Human Resource etc. Among its various modules there is a group of
modules known as HCM (Human Capital System) also known as Oracle HRMS (human
resource system). It is an integrated solution comprising of few sub modules providing excellent
control over Hire to Retire process, Processing Payroll, Managing employee time and
attendance, employee Learning and performance aspects etc. Each Sub Modules is different type
of application providing specific functionality for Oracle HRMS.
Tables are shared in all modules of Oracle HRMS. This way it removes data redundancy and
minimizes the chances of error and creates a consistent record for each employee. Within this
framework, you can configure your organization specific structure and implement policies as per
your business needs.
Oracle HRMS supports global workforce. You can manage information in a variety of national
languages in multiple address styles, legislation-specific date formats, and national identifiers
(such as social security numbers), which can be validated according to the rules in each country.
List of Oracle HRMS Modules Following is short description of each sub module of Oracle
HRMS.
reviews, transfers, and time and expense approval; and deliver workforce intelligence
to managers, HR professionals, and executives.
Oracle SSHR is designed for the needs of the casual or untrained user, with simple, intuitive
navigation and configurable user assistance integrated with the user interface.
Oracle SSHR is a separately licensed product. The self-service functions you can access depend
on your licensing arrangements for other HRMS products. For example, you can use the selfservice functions in Oracle Advanced Benefits only if you have licensed OAB.
Oracle Performance Management (OPM)
Purpose of this module is to capture all information related to employees evaluation to analyze
their performance in the company. Output of this system becomes the basis of increment/
promotion/ demotion for an employee.
Oracle iRecruitment (iRec) This modules covers the functionality related to hiring of
employees starting from registering candidates, taking interviews, sending offer, and offer
acceptance to enable a candidate to become an employee.This is also web based module.
Oracle Time & Labor (OTL) This module provides the option to record employees attendance,
their overtime records. From this module we can get information like for any specific project/
department who worked for how many hours.
Oracle Learning Management (OLM) This module covers the learning and training needs of
employees. We can define Learning Paths, courses, classes, sessions, instructors. Using this
module, employee personal development is tracked.
Oracle Advanced Benefits (OAB) OAB is a part of Oracle HRMS, the module which is used to
handle benefits offered by the enterprise. Initially Oracle started with Oracle Standard benefits
but as demand for complex benefits raised, Oracle introduced Oracle Advanced Benefits module.
Example of Benefits are non monetary earnings provided by employers to employees like
Insurance, loan, company paid car, company maintained house etc.
Oracle Documentation
Oracle e Business Suite Documentation is available on oracle Portal.
We can call it web library. It contains detailed documentation for Oracle E-Business Suite
business applications. Use this library to review and download the latest Oracle E-Business Suite
documentation. Most documents are available in Adobe PDF and html formats. Books can be
downloaded and saved to keep for reference study material.
There are two types of Books available on oracle web library. These are Implementation Guides
and User Guides.
Targeted audience of Implementation Guides are professionals who are in the role of
implementers and are working in consulting firms to implement Oracle e Business Suite. These
books mostly contain much detailed technical and functional information. These cover the
technical aspects of setup related aspects.
User Guides have been written to educate the end users and make them comfortable with Oracle
e business suite products. They books contains the navigations and business functionalities are
addresses in these books.
For Oracle Human Resources (HCM) Release 12, all documentation is available on following
R 12,
R12.1,
R12.2
From above links you can download the books for all modules (Oracle Core HR, Oracle Payroll,
Oracle Self Service Human Resources (SSHR), Oracle Performance Management (OPM), Oracle
iRecruitment (iRec), Oracle Time & Labor (OTL), Oracle Learning Management (OLM), Oracle
Advanced Benefits (OAB)).
Student Guides / Activity Guides
Oracle has provided these guides to RETs (Registered Education Training) Institutes. Once you
get a formal training from any RET, They will provide these books to every registered students.
These guides are very much illustrative and step by step guides for performing different
operations in e Business Suite.
These books are really recommended for new learners if they could get it through some means.
People
People is an entity in Oracle HRMS, which is responsible for storing the data of active as well as
X-employees, contingent workers and all types of contacts like relatives and dependents.
For Standard information ( like addresses, interview related information, religion, nationality,
education related information and leaves data), there are oracle forms and html pages to store
information in oracle database.
Oracle provides a mechanism which facilitates you to store any non-standard information related
to your employees. This non-standard information may be related to your organization or your
country specific requirement. Like National Id, Visa, Passport, Medical Policy or Insurance
records etc. There are two structures named Special Information and Extra Information to store
such information.
You can also record employment information, such as hours of work and work choices. Oracle
HRMS holds one integrated set of employee-related information. Payroll users access the parts
of this information they require, while enterprise business rules determine who is responsible for
entering and maintaining it.
Work Structures
Work structures represent the different ways in which your workforce can work within your
enterprise. They provide the framework for defining the work assignments of your workforce.
They enable you to manage the information about your enterprise that is independent of your
workforce. You can also think of work structures as representing the organizational units of your
enterprise. The Business Group is the largest unit and represents your enterprise as a whole.
The work structures include your internal organizations (such as departments or divisions),
payrolls, jobs or positions, grading structures, and any special workforce groupings that you use
in your enterprise.
There is one integrated set of work structures for human resource and payroll users.
Compensation and Benefits
In Oracle HRMS you can define your own types of compensation and benefits, and the business
rules you want to apply to them. As you change policies, move people within your enterprise,
and adjust their individual remuneration packages, the system maintains their compensation and
benefit history.
For example, suppose you want to define a special type of payment and make this available only
to employees who work at a particular location. In Oracle HRMS you use a compensation
element to represent the payment. You define the business rule as a link between the element and
the specific location. Then when you assign employees to the location, they automatically
become eligible for the payment.
Assignments
In Oracle HRMS, the assignment describes employeesand contingent workers places within
the enterprise: the organization for which they work, their role, grade, location, and so on. As you
change the assignment information for an employee or contingent worker, you automatically
build up their work history.
Your compensation eligibility rules link compensation and benefits to work structures, such as
jobs or grades. The assignment places employees and contingent workers within the work
structures of the enterprise. In this way, an employees assignment determines their eligibility for
compensation and benefits.
You can use assignments to identify major groups of people within the enterprise
for management, for reporting and costing, and for compensation and benefit planning
and administration.
Problem Statement:
While working in oracle, you might want to know the detail through Diagnostic->Examine
option, but when you try to open the examine form, you end up with following
message. Function not available to this responsibility: Change responsibilities or contact your
system
Cause:
This error comes because, you dont have right because to avail this feature. There is one profile
option that is restricting you to do so.
On the Profile Form, Enter the Util%Diagn% and click Find button
Following profile option will be showed, By default its value is No. You can set its value to Yes
according to your requirement. For example i have enabled it at Site Level, By doing so
Diagnostic->Examine option will be enabled at site level.
save the record. Now go to your actual form and retry to open the Examine option as shown
below
b).Final Close:
if you want the entries to stay open beyond the employees leaving date so that you can continue
to pay the employee.
c).The Last Standard Process date
defaults to the last day of the pay period in which the employee is terminated, but you can set it
to a later period when you terminate an employee.
Data Types for Constants and Variables in Oracle HRMS Fast Formula
By Syed Farhan Ashraf | December 1, 2014
0 Comment
Constants
There are three types of constants that can be used in fast formula
numeric
text
date
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:
83
6.55
-7.3
0.23
.26
15000
Text Constants
Text constants are enclosed 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 ().
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)
Variables
The data type of a variable determines the type of information the variable holds. Following
three data types can be used as variables.
numeric
text
date
You do not have to specify what type you want a variable to be. Oracle Fast Formula works out
the type from how you use the variable. For example, if you set a variable to `F. Ashraf, 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. If you do not specify the variable type
in the statement, Oracle FastFormula assumes it is numeric.
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 applications database.
The variable class determines how a formula uses it.
Local Variables
These variables exist within a single formula only. value of a local variable can be changed
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.
Global Values
Global values are datetracked. Global values are defined and altered through Globals window.
These values are visible from within any formula. Use global values to store information that
does not change often, but you refer to frequently, such as company name, or a location
allowance that applies to many employees.
You can never change a global value using a formula.
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 associated code that the system uses to
find the data. All database items are read-only variables. An attempt to write to a database item
causes a compiler error. Database item values cannot be changed within a formula. Database
items exist in the application database and have a label, hidden from users, which the system
uses to find the data. Database items are specific to the context in which you use them.
There are two types of database items:
Static
Dynamic
Static Database Items
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.
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)
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.
Tip: To avoid a failure, assign values to your local variables when they first appear in your
formula.
Functions Used in Oracle HRMS Fast Formula
By Syed Farhan Ashraf | December 2, 2014
0 Comment
Functions Used in Oracle HRMS
In previous article of Fast Formula, we understood the concept, its usage and different types of
Fast Formulas in Oracle HRMS. In this article i am going to explain the functions that we can
use in Fast formula to make the desired logic. Following are different types of functions that can
be used in the formula
Text Functions
Date Functions
Data Conversion Functions
Number Functions
Functions to Get values from Tables
External Formula Function
Text Functions
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 Back to Top
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.Back to Top
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.Back to Top
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.Back to Top
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.Back to Top
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.Back to Top
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.Back to Top
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.Back to Top
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.Back to Top
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.Back to Top
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 LPADreturns 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 )Back to Top
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
Examples:
/* A is set to def */
A = LTRIM (abcdef,abc)
/* A is set to abcdef */
A = LTRIM (abcdef,bc)Back to Top
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
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
RPADreturns 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 )Back to Top
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
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.
Tip: 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.Back to
Top
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. 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.Back to Top
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.Back to Top
UPPER
UPPER(expr)
The UPPER function converts a text string to upper case. Back to Top
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 values sign inverts, and the value returns as a positive number.
Example:
ABS (-17) returns 17Back to Top
CALCULATE_HOURS_WORKED
CALCULATE_HOURS_WORKED(n, date1, date2, standard_frequency)
The CALCULATE_HOURS_WORKED function returns the total number of hours worked in a
given date range. The function works by calculating the total number of hours worked for an
employee between date1 and date2, taking into account that the employee works n hours in
the standard working period standard_frequency. This parameter gives the unit of measurement
for the standard working period. It can be one of:
W (weekly)
M (monthly)
Y (yearly)
Example:
CALCULATE_HOURS_WORKED (40, 01-FEB-2003, 28-FEB-2003, W) returns 160
This indicates that the employee has worked 160 hours in the month of February 2003, based on
a 40-hour week and taking into account the number of working days in that month.Back to Top
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.
Example:
FLOOR(35.455) returns 35Back to Top
GREATEST
GREATEST(n, n [, n] . . .)
GREATEST_OF(n, n [, n] . . .)
The GREATEST function compares all the operands and returns the largest value.Back to Top
LEAST
LEAST(n, n [, n] . . .)
LEAST_OF(n, n [, n] . . .)
The LEAST function compares all the operands and returns the smallest value.Back to Top
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.Back to Top
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:
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.Back to Top
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-1992Back
to Top
Date Functions
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 1991Back to Top
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.Back to
Top
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.Back to Top
GREATEST
GREATEST(date1, date2[, date3] . . .)
The GREATEST function compares all the operands and returns the latest date.Back to Top
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.Back to Top
LEAST
LEAST(date1, date2 [, date3] . . .)
The LEAST function compares all the operands and returns the earliest date.Back to Top
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.
Example:
DAYS_BETWEEN(1995/06/27 00:00:00 (date), 1995/07/03 00:00:00 (date)) returns -5Back
to Top
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.Back to Top
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 Standard Time or Daylight Time
MST or MDT Mountain Standard or Daylight Time
NST Newfoundland Standard Time
PST or PDT Pacific Standard or Daylight Time
YST or YDT Yukon Standard or Daylight TimeBack to Top
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 sessions date language. The
return value has the same hours, minutes, and seconds component as the argument d.
Back to Top
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.Back to Top
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
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.Back to Top
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 DDMON-YYYY if no format is provided.Back to Top
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.Back to Top
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
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)Back to Top
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. You cannot use this function in formulas for user table
validation or QuickPaint reports.
Example:
GET_TABLE_VALUE(WAGE RATES, Wage Rate, Rate_Code)Back to Top
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)Back to Top
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 assignments 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.Back to Top
External Formula Function
External Functions refers to logic written in database package and calling in fast formula by
defining it through Define Function in Oracle HRMS. I shall write a seperate article on it.
Oracle HRMS Fast Formula Overview
By Syed Farhan Ashraf | November 22, 2014
0 Comment
Summary of Contents
Oracle Fast Formula Overview
Uses of Oracle Fast Formula
In Payroll
In People Management
Alias statement
Default statement
Input statement
Assignment statement
if statement
Return statement
applying validations
to perform calculations
to specify rules.
Components of Formulas
Formulas are made up of a number of different components. These can include assignment
statements, different types of input including database items, functions,
nested expressions, and conditions.
When writing formulas, there are a number of techniques you should use to ensure your formulas
are easy to use and understand. There are also rules for using each type of component that you
need to follow.
Back to top
Supplied Formulas
Formulas are predefined for all the tax calculations required for Oracle Payroll. You should not
edit these formulas. When tax rules change, you will automatically receive updates.
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.
Depending on the legislation, the system may automatically generate some payroll formulas to
define earnings and deductions elements, 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.
Back to top
Alias statement
Default statement
Inputs statement
Assignment statement
If statement
Return statement
Back to top
Example
DEFAULT FOR Bonus_Amount IS 500.00
IF Bonus_Amount WAS DEFAULTED THEN
MESG = Warning: hourly rate defaulted
This example sets a default of 500.00 for the database item Bonus_Amount. If Bonus_Amount
is empty (NULL) in the database, the formula uses the default value of 500.00 and issues
a warning message.
Important: You must use the Default statement for database items that can be empty. The
Database Items window includes a check box labeled 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.
Back to top
Inputs Statement
The purpose of Inputs statement is to pass input values from an element into a formula. 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.
TheInputs 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
Syntax
INPUTS ARE varname1(data type)[, varname2 (data type)]
Example
INPUTS ARE bonus (number),start_date (date)
Due to performance reasons, It is always recommended to use Inputs statement to retrieve the
input values of the element associated with the formula.
Back to top
Assignment Statement
Purpose of Assignment statement is to assign a value into a variable.
Syntax
varname = expression
Example
BonusAmount = 500
Back to top
Return Statement
Purpose of return statement is to return values in local variables to the application. Oracle Fast
Formula can pass back any number of variables. The variable does not need to contain a value.
Syntax
Return Variable1,Variable2,Variable3
Example
RETURN Variable1,Variable2,Variable3
Note: Oracle Fast Formula stops executing the formula when it reaches the Return
statement. Any statements after the Return statement are ignored.
Back to top
Working Example of a Fast Formula
Following is working example of Oracle Payroll Type written for Element Named Air Ticket
Claim. This element has one input value named Amount. Just to keep this Fast formula simple,
I have returned the input value as the fast formula result.
/*
*
* Formula Name: LSG_AIRTICKET_CLAIM
* Formula Type: Oracle Payroll
* Created: 01-Dec-2009
* Author: HRMS
*
* Description: Airticket Claim
*
*/
/*================= ALIAS Begins ================*/
Job KFF,
Grade KFF,
Position KFF,
Comptence KFF
complete. Generally when we use API we give data FOR : Object Version Number, Effective
Date, P_Validate
HR_EMOYEE_api example: hr_employee_api.create_employee
hr_organization_api Example: hr_organization_api.create_organization
hr_assignment_api
Q7) What are processing types of element?
Elements are nothing but the components of the salary.
For Example: Basic Salary, House Allowance, Transport Earning, Bonus, Loan Recovery etc.
There are 2 types of Processing
1. Recurring: if an entry of this element applies in every period until the entry is ended
2. Non Recurring: if an entry applies in one pay period only.
Q8) What are termination roles of an element?
Termination Rules of an Element:
a).Actual Termination: For a nonrecurring element, select Actual Termination
if you want the entries to close down at the end of the pay period in which
the employee leaves.
b).Final Close: if you want the entries to stay open beyond the employee's
leaving date so that you can continue to pay the employee.
c).The Last Standard Process date defaults to the last day of the pay period
in which the employee is terminated, but you can set it to a later period when
you terminate an employee.
Q17) How can you make Employee Number generation Automated based on business rule
etc?
Use Fast Formula.
Q18) What is the difference between per_people_f and per_all_people_f?
PER_PEOPLE_F is a secured view on top of PER_ALL_PEOPLE_F. The secure view uses an
API hr_security.show_person. This API internally checks for an entry in table
PER_PERSON_LIST for the logged in persons security profile. A concurrent program named
Security List Maintainence program will insert records in PER_PERSON_LIST.
Q19) If you do personalization at both FUNCTION level and Responsibility level, which
personalization has higher precedence?
Responsibility level. Responsibility level will override FUNCTION level personalizations.
Q20) Say you have done a lot of Personalizations to Self Service Screens. But all these
Personalizations were done in DEVELOPMENT environment. How will you migrate these
personalizations to PRODUCTION environment?
Before 11.5.7Use AKLOAD
This is a java program given by Oracle. This is the only way you can script it.
In DEV you will do AKLOAD DOWNLOAD ( & other parameters)
In PRD you will do AKLOAD UPLOAD ( & other parameters)
On or after 11.5.10 Use responsibility Functional Administrator, then click
on Personalization Tab, and then click on Import/Export.
Next select the documents to be exported.
Go to the UNIX box and tar the personalizations into a .tar file.
On the Production environment unzip this tar file in location as entered in profile FND:
Personalization Document Root Path.
Setting up of this profile is mandatory or else Oracle Framework wouldnt know where to search
for the files to be imported.
Q21) How to restrict iRecruitment external visitors to access only responsibilities on the
external server?
Set the Server Trust Level for the server to External, Set the Trust Level of the iRecruitment
external responsibilities to External too.
Q22) Is SSHR a dependency for iRecruitment?
iRecruitment has no dependence on SSHR
Q23) Does iRecruitment support Candidate Qualifying Questionnaires where the
candidate must answer vacancy-specific questions correctly prior to submitting an
application?
iRecruitment currently does not support this function, For now this can be achieved by having a
set of simple questions using flexfield to get those responses and a user hook to validate them as
part of the apply process.
Q24) Do we track vacancy history?
iRecruitment does not track changes to the vacancy. If changes to a field are to be traced use the
Audit capability in APPs.
Important Base tables for ORACLE HRMS r12
Some of the very important base tables in HRMS are as follows:
1. per_all_people_f
This table will provide us the very basic information about the employee. The very
data from the first screen we see when we open the People -> Enter and Maintain
form goes into this table.
2. per_all_assignments_f
This table will store all the information which is been entered in the employee assignment form.
3. per_addresses
This table will store all the information which is been entered in the employee address form.
4. per_pay_proposals
This table will store all the information which is been entered in the employee salary form.
5. per_person_types_tl
This table is used to find the type of the employee. This table is linked with the per_all_people_f
with the person_type_id to find out the type of person.
6. per_jobs_tl
This table will contain the various types of JOBS in oracle. This table is been linked with the
per_all_assignments_f table to retrieve the correct job name from the employee.
7. per_grades_tl
This table will contain the various types of GRADES in oracle. This table is been linked with the
per_all_assignments_f table to retrieve the correct grade name from the employee.
8. hr_locations_all
This table will contain the various LOCATIONS in oracle. This table is been linked with the
per_all_assignments_f table to retrieve the correct location name from the employee.
9. pay_all_payrolls_f
This table will contain the various types of PAYROLLS in oracle. This table is been linked with
the per_all_assignments_f table to retrieve the correct payroll name from the employee.
10. per_pay_bases
This table will contain the various types of PAY BASES in oracle. This table is been linked with
the per_all_assignments_f table to retrieve the correct pay basis name from the employee.
11. per_assignment_status_types_tl
This table will contain the various types of assignment types in oracle. The assignment types
generally would be Active Assignment etc.. This table is been linked with the
per_all_assignments_f table to retrieve the correct job name from the employee.
12. per_person_type_usages_f
This table will store the correct person type of the particluar employee. We should never depend
on the person type present in the per_all_people_f table. Instead we need to link the person_id
with this table and get the correct person type.
To understand Payroll Costing concept, I would first discuss the Costing Allocation Key Flex
field, during the business group definition it is being created and map with Cost Allocation KFF
with following segments normally
Company
Cost Centre
Natural Account
During the configuration of Cost Allocation KFF the most important concept is to set the Flex
Field Qualifiers at each segment level, we have the five levels available for each segment i.e.
Payroll
Balancing
Organization
Element Link
Assignment
Element Entry
For the Company segment following setting can be applied
Payroll Checked
Balancing Checked
This setting will explain that the Company Account will be input at Payroll level (debit
information) and balancing information will goes into credit information and on every segment
level it is mandatory to define Balancing.
For the Cost Centre segment, I can set the following setting
Payroll Checked
Organization checked
Balancing checked
This setting will explain that the Cost Centre Account information will be input at Payroll and
Organization level (debit information) and balancing information will goes into credit
information and on every segment level it is mandatory to define Balancing.
For the Natural Account segment, I can choose the following setting
Element Link Checked
Assignment Checked
Element Entry Checked
Balancing Checked
This setting will explain that the Natural Account information will be input at following levels
Element Link
Assignment
Element Entry
Balancing
Element Link, Assignment, Element Entry level information will directly hit the debit account
and balancing information will goes into credit Account and on every segment level it is
mandatory to define Balancing.
After this step we map Cost Allocation KFF Segments with GL Flex field Segments
In Oracle payroll, Costing information can be input at five levels
Payroll
Organization
Element Link
Assignment
Element Entry
Now based on the above configuration, the following codes will be define at Payroll level
Company 01
Cost Centre 000
For example if Business Group has four Departments i.e. Finance, HR, IT, Operations then on
every organization the following information will be define at the Organization level
Finance Cost Centre 001
HR Cost Centre 002
IT Cost Centre 003
Operations Cost Centre 004
Note: Here the Cost Centre information will override with information available on Payroll
Level
Payroll Level 000
Finance Org Level 001
So the system will pick the value of 001 instead of 000.
Finally following information need to define at every Element Link level, for example if
Business Group has only three elements links then Natural Account need to define at every link
Basic Salary 2345
Housing Allowance 2346
Transport Allowance 2347
For Assignment and Element Entry levels, the Natural Accounts codes will not be defined at
these levels , but if need to override the link level information then the Natural Account can be
enter at assignment or Entry Level. Following the is Override information, if we defined all
segment on every level then
The following Entry will be hit to GL
Debit 04.003.2222
Credit 01.000.6766
Because Element Entry Level will override all the above mention levels but this is only for
example, if we see this table in our scenario then the value will be shown like this
In this case the following Entry will hit to GL accounts
Debit 01.001.2222
Credit 01.000.6766
Now based on the above configuration the Cost Breakdown report will be shown like this
Cost Summary Breakdown Report Cost Centre wide
Cost Centre Code Cost Centre Amount
001 Finance xxxx
002 HR xxxx
003 IT xxxx
004 Operation xxxx
Total xxxx.xx
Cost Breakdown Report Element wide.
Hi
The following code will help us out t delete an applicant/employee form the system.But if u are
deleting the employee then make sure that
he/she must not attached to active payroll
CREATE OR REPLACE PROCEDURE xx_delete_person (p_person_id NUMBER)
IS
l_person_org_manager_warning VARCHAR2 (200);
l_message VARCHAR2 (4000);
BEGIN
fnd_file.put_line (fnd_file.output,
<Purge Person->
);
fnd_file.put_line (fnd_file.output,
On Date: || TO_CHAR (SYSDATE, DD/MON/YY)
);
fnd_file.put_line (fnd_file.output, Person Id: || p_person_id);
hr_person_api.delete_person
Shortcut Key
Ctrl + K
Enter Query
F11
Execute Query
Ctrl + F11
Count Query
F12
Clear Block
F7
Clear Field
F5
Clear Form
F8
Clear Record
F6
Edit
Ctrl + E
Update Record
Ctrl + U
Insert Record
Ctrl + Down
Delete Record
Ctrl + Up
Commit
Ctrl + S
Duplicate Field
Shift + F5
Duplicate Record
Shift + F6
List of values
Ctrl + L
F2
Next Field
Tab
Next Record
Down Arrow
Key
Next Primary
Key Shift +
F7
Shift + F8
Previous Field
Shift + Tab
Previous Record
Up Arrow Key
Previous Block
Shift+PageUp
Scroll Down
PageDown
Scroll Up
PageUp
Up
Up Arrow Key
Down
Down Arrow
Key
Ctrl + P
Exit
F4
Help
Ctrl + H
Block Menu
Ctrl + B
Display Error
Shift + Ctrl +
E
It is stored in tables
It is stored in tables which contain who columns with which we have the ability to track
who created/modified it
It is stored in files
It is complicated in it
Back to top
4. How does forms personalization work?
Oracle forms have triggers that we trap to write our business logic. Oracle has a standard practice
of calling a generic piece of code from each trigger(at form level). In this generic piece of code
Oracle checks in personalization tables to see if anything extra needs to be done for the events
being executed. For details of example, see the article for forms personalizations.
Back to top
It is a program
Interface is to transfer data from one place to another on schedules basis. For example, Branches
can submit their data to head office on daily basis. Such task is done through interfaces.
Volume of data depended on business activities and hence not known in advance
Back to top
8. How to submit concurrent program through pl/sql?
Function FND_REQUEST.SUBMIT_REQUEST
( application in varchar2 default null,
program in varchar2 default null,
description in varchar2 default null,
start-time in varchar2 default null,
sub_request in bookan default False,
argument1,
arguemnt2,
argument 100) return number;
* If this is submitted from oracle forms, all the arguments ( 1 to 100 ) must be specified
Back to top
9. Why do we use data source as procedure in Oracle forms? What is the use of taking
procedure as Data Source?
To increase the control and security.
To specify a Query at runtime, Eg: in case of manager logs in he can see more info wherein if its
employee he will be able to see less data
If you want to specify any complicated business rule to be executed before getting data, you can
achieve through the server side procedure which will be much faster.
10. Can a Calculated item be stored in a database?
No, It is not possible.
4. What are different report triggers and what is their firing sequence ?
5. What are global variables ? How they can be used ?
6. What are custom events in apps and how to you enable/disable it?
7. What is the difference between having personalization at function level rather than form level?
8. How to attach reports in Oracle Applications ?
9. What are the steps for creating a custom Form in Apps
10. What is the difference between Key flex field and Descriptive flex field?
Back to top
2. What are different triggers that can be used in personalization?
WHEN-NEW-FORM-INSTANCE
WHEN-NEW-BLOCK-INSTANCE
WHEN-NEW-RECORD-INSTANCE
WHEN-NEW-ITEM-INSTANCE
WHEN-VALIDATE-RECORD
MENUS SPECIAL EVENTS
Back to top
3. How do you move personalization from one instance/database to other?
Forms Personlizations can be moved easily through FNDLOAD from one instance to other.
Back to top
4. What are different report triggers and what is their firing sequence ?
There are five report trigger :
1. Before Report
2. After Report
3. Before Parameter Form
4. After Parameter Form
5. BetweenPages
The Firing sequence for report triggers is Before Parameter Form After Parameter Form
Before Report Between Pages After Report.
Back to top
5. What are global variables ? How they can be used ?
Global variables are variables with more scope which is at the application level. They can be
used in Form personalizations, PL/SQL procedures , reports e.t.c
Back to top
6. What are custom events in apps and how to you enable/disable it?
Custom Events are used to track and see which trigger is fired at what point in oracle forms. This
can be enabled by going to Help -> Diagnostics -> Custom Code -> Show custom events
Back to top
7. What is the difference between having personalization at function level rather than form
level?
A Form can have multiple functions. Having the personalization at function level limits the scope
of the personalization. For example in Inventory for both Master Item form and Organization
Item form uses same form named INVIDITM where as both have different functions linked to
them.
Back to top
8. How to attach reports in Oracle Applications ?
The following 6 steps are needed:
1. Design your report in D2K
2. Generate the executable file of the report as .rdf.
3. Move the executable as well as source file to the appropriate products folder.
4. Register the report as concurrent executable.
end if;
5. In Form Module Property, Set the First Navigational Block to any of your Data Block
6. In Pre- Form Trigger, set the Window Name
app_window.set_window_position(ALERT_CONC_REG, FIRST_WINDOW);
7. Move your Data Block/Canvas/Window as first block in the data block/Canvas/ Windows
section respectively
8. Set the canvas name for from window properties pallet
9. Save the Form and put it the AU_TOP folder
Compile the form and make sure that form is placed in the specific application TOP folder. Read
Full Article on Custom Form
Back to top
10. What is the difference between Key flex field and Descriptive flex field?
Key Flex field
4. Context-sensitive flexfield is a
feature
of DFF. (descriptive flexfield)
inserted its number is set to 1. If any updates performed on the row then the Object version
number is incremented. Every API has the p_object_version_number control parameters.
For create APIs this parameter is defined as an OUT parameter the API assigns the Object
version number to be 1 for row inserts.
For update APIs the parameter is defined as IN OUT, for update API the object version number is
mandatory. You get the version number from the table record which is going to be updated and
pass it to API, then API increments this Object version number.
Back to top
6. What is the difference between org_id and organization_id?
org_id refers to unique identifier for the Operating Units and organization_id refers to the unique
identifier for Inventory Organizations.
Back to top
7. What are user exits in reports and name a few?
User exits provided a way to pass control from Reports Builder to a Oracle Apps environment.
Using this we can get profile values in oracle reports which are set at application level for user
running the report. Further through user exits, we can get Application Object Library data
through standard user exit functions.
Another explanation of User Exits is
As the name indicates user exits are the programs written in any of the language like Java C++
Pro C to perform certain action. User exit when called from Report triggers moves the control
from report to this outside program there it performs the action programmed and returns back to
report environment.The program which makes USER to EXIT from ongoing environment to
perform certain action is USER EXIT.
Names of User Exit are
1. FND SRWINIT
2. FND SRWEXIT
3. FND FORMAT_CURRENCY
4. FND FLEXIDVAL
5. FND FLEXSQL FND SRWINIT
6. FND SRWEXIT
7. FND FORMAT_CURRENCY
8. FND FLEXIDVAL
9. FND FLEXSQL
Back to top
8. How do you submit a concurrent program from PL/SQL Procedure?
FND_REQUEST.SUBMIT_REQUEST()
Back to top
9. What is RAISE_APPLICATION_ERROR used for?
The RAISE_APPLICATION_ERROR is a procedure defined by Oracle that allows to raise an
exception and associate an error number and message with the procedure.
Back to top
10. What are the different cursors available in PL/SQL ?
Explicit Cursors, Implicit Cursors, Ref Cursors
2 Simple Steps to make a Responsibility Read Only in Oracle Apps.
By Syed Farhan Ashraf | October 31, 2014
0 Comment
How to make a Responsibility Read Only in Oracle Apps?
Solution Concept:
By setting the profile option HR:Query Only Mode at responsibility level, you can make a
responsibility read only.
Step by Step solution:
Login with System Administrator responsibility and navigate to Profile-> System menu as shown
below in the picture
Problem Statement:
We need to give access for Enter & Maintain page to all employees by linking this function into
their self service responsibility but we want to restrict that an employee can see only his data i.e
when employee opens this form in Oracle HRMS, it opens with a default search page with
employee ID pre-populated in default search page and it should be in read only mode so that
employee can search only his data.
Solution Concept: Get Profile Value and set through Personalize default
search page
This can be achieved through forms personalization. We shall take the employee number from
profile value and on the basis of it , we can populate the employee ID field on initial search page.
Step by Step Solution:
Open the Enter and Maintain Form and go to personalize option as shown below
Following form will be opened. Create a new rule as shown rule no 97 in picture, Select the
Processing mode as Both and leave the triggering event as WHEN-NEW_FORM_INSTANCE
Disable Name
Object Type: Item
Target Object: EMP_QF.NUMBER
Property Name: ENABLED (APPLICATIONS COVER)
Value: FALSE
Apply and Save. Now Close and open the form. When you open the form, you get the employee
number and name auto populated and in read only mode. So employee can search only his data.
This requirement was developed for self service responsibility.
Click on Yes
Category: Apps Interview Questions Apps Technical Interview Questions Oracle Apps
Uncategorized Tags: Global Cache Steps for Creating a Custom Form in Oracle Apps
By Syed Farhan Ashraf | August 7, 2012
0 Comments
Steps for Creating a Custom Form in Oracle Apps
Open the Function Form from Application Developer Responsibility from following Navigation
Path
Application->Function. Once form is opened then enter the data in tabs. Find below the
necessary fields to be input in the tabs.
This paragraph contains the overview of solution in oracle. Solution to both requirements
mentioned above is same. In order to enable logging when you want to maintain it if rollback
happens, the only way is to use autonomous transaction. In this article I am going to create a
mechanism which we can use to create autonomous transaction based procedure that we shall be
using at all places where we want to enable logging either for debug purpose or for creating an
audit log mechanism.
For this solution, we shall create a table, a sequence and a procedure. We shall insert a row in our
log table whenever we need to make log of an event. This insert will be done through a
procedure that will be having compiler hint of autonomous transaction. In this way our insert
statement will become independent of main transaction and we shall be having in store in our log
table even if any rollback happens after wards.
Solution Code
Create a Table: This table will contain the Log Data
CREATE TABLE XX_TABLE_LOG(
LOG_ID NUMBER
Create a Sequence: This sequence we shall use to generate the auto number
CREATE SEQUENCE XX_TABLE_LOG_S NOCYCLE NOCACHE
Create Procedure:
This is the procedure that we shall be calling on places where we want to enable logging.
CREATE OR REPLACE PROCEDURE XX_TABLE_LOG_P (
P_MODULE_NAME VARCHAR2
,P_LOG_CHAR VARCHAR2
,P_LOG_CLOB CLOB DEFAULT NULL)
IS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
INSERT INTO ALB_TABLE_LOG
(LOG_ID,LOG_DATE,MODULE_NAME,LOG_CHAR,LOG_CLOB)
VALUES
(XX_TABLE_LOG_S.NEXTVAL,SYSDATE,P_MODULE_NAME,P_LOG_CHAR,P_LOG_CLOB);
COMMIT;
END;
P_LOG_CLOB -> This will hold the CLOB data, giving value of this parameter is
optional, as I have made it default NULL while defining it in procedure signature
Example to use it
DECLARE
Put your Custom Logic
BEGIN
Put your Custom Logic
XX_TABLE_LOG_P(Module Name: Anonymous Block,In Begin Block);
EXCEPTION WHEN OTHERS THEN
XX_TABLE_LOG_P(Module Name: Anonymous Block,When Others
Exception);
ROLLBACK;
END;
Note: Although there is roll back used in exception section. But it will have no
impact on row created in log table. As this row is inserted through autonomous
transaction based procedure.