Main Menu
- 2020 (1)
- 2018 (1)
- 2017 (2)
- 2016 (2)
- 2015 (5)
-
2014
(18)
- December (1)
- November (3)
- October (1)
- June (1)
- April (2)
- February (2)
-
January
(8)
- Running Fast Formula From Backend - Oracle HRMS
- Setups to integrate with work schedule and holiday...
- Call Report from SSHR (Self Service Pages) FNDCPS...
- Runtime Duration Calculation on SIT (HRMS Keyflexf...
- Defining Context-Sensitive Segment for Descriptive...
- Special Information Types (SIT) in Oracle Applicat...
- How to Create EIT in HRMS
- Finding the Personalization and Customizations OAF...
- 2013 (5)
About Me
- Muhammad Faizan Karim
- Dubai, United Arab Emirates
- My name is Muhammad Faizan Karim and my aim is to spread the knowledge to everyone who want to learn oracle HRMS. I will try to write the video blogs for beginners so they can understand e-business suits from HRMS perspective, and if you have any difficulty in oracle applications HRMS , please feel free to contact with me at this email : faizan.kareem.ocp@gmail.com
Powered by Blogger.
Tuesday, January 28, 2014
Prerequisites:
Step1 : Create the Element and Element links
Step2: write the fast formula
Step3: Attach the fast formula in Formula Results
Package used to call the fast formula from the backed : ff_exec
Simple Code Snippet below:
l_formula_id NUMBER;
l_element_inputs ff_exec.inputs_t;
l_element_outputs ff_exec.outputs_t;
l_in_count NUMBER;
l_out_count NUMBER;
l_pay_value NUMBER;
BEGIN
BEGIN
SELECT formula_id
INTO l_formula_id
FROM ff_formulas_f
WHERE formula_name = 'XX_PAYROLL_FORMULA'
AND p_effective_date BETWEEN effective_start_date
AND effective_end_date;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('NO formula exists');
END;
IF l_formula_id IS NOT NULL
THEN
-- Insert FND_SESSIONS row ( Optional )
INSERT INTO fnd_sessions
( session_id,
effective_date
)
VALUES
( USERENV ('sessionid'),
p_effective_date
);
--
-- Initialize the formula.
--
ff_exec.init_formula (l_formula_id,
p_effective_date,
l_element_inputs,
l_element_outputs
);
--
-- Loop through the Input Values
--
FOR l_in_count IN l_element_inputs.FIRST .. l_element_inputs.LAST
LOOP
--
-- Pass The each Input value name and its Value : Eg: START_DATE and p_start_date
--
IF (l_element_inputs (l_in_count).NAME = 'START_DATE')
THEN
l_element_inputs (l_in_count).VALUE :=
fnd_date.date_to_canonical (p_start_date);
END IF;
END LOOP;
--
--Run The formula
--
ff_exec.run_formula (l_element_inputs, l_element_outputs);
--
-- Get the Out Put Values
--
FOR l_out_count IN l_element_outputs.FIRST .. l_element_outputs.LAST
LOOP
--
-- Get all the Out Put Values Here L_PAY_VALUE is the out put value
--
IF (l_element_outputs (l_out_count).NAME = 'L_PAY_VALUE')
THEN
l_pay_value := l_element_outputs (l_out_count).VALUE;
END IF;
END LOOP;
RETURN (l_pay_value);
END;
Wednesday, January 22, 2014
Absence Management through Calendar OR Fast Formula:
There is a system profile called HR: Schedule Based Absence Calculation which controls whether the schedule information takes priority over the BG_ABSENCE_DURATION FF. Set the profile value to YES and it will use the schedule information. Set it to NO and it will use the FF.
A) 1 - Open and understand the structure of the seeded fast formula
TEMPLATE_ABSENCE_DURATION
2 - Create a new fast formula with name BG_ABSENCE_DURATION of same type as
TEMPLATE_ABSENCE_DURATION for custom absence calculations considering the work
schedules. Use the function GET_WORKING_DAYS instead of DAYS_BETWEEN.
That should exclude the week-ends from the absence duration calculation.
B) HR Dev has provided a Work Scheduling Component, which is available starting HR.PF.K, please review note
330021.1
The functionality is delivered in patch that you need to apply on top of HR.PF.K, or it is already included in HR.PF.K.1
Users will need to setup in HRMS Manager > Work Structures > Work Schedules
Users must ensure ensure the profile option HR: Schedule Based Absence Calculation is set to
‘Yes’.
===========================================================================
Setup Step 1 :
Setup Step 2 :
There is a system profile called HR: Schedule Based Absence Calculation which controls whether the schedule information takes priority over the BG_ABSENCE_DURATION FF. Set the profile value to YES and it will use the schedule information. Set it to NO and it will use the FF.
A) 1 - Open and understand the structure of the seeded fast formula
TEMPLATE_ABSENCE_DURATION
2 - Create a new fast formula with name BG_ABSENCE_DURATION of same type as
TEMPLATE_ABSENCE_DURATION for custom absence calculations considering the work
schedules. Use the function GET_WORKING_DAYS instead of DAYS_BETWEEN.
That should exclude the week-ends from the absence duration calculation.
B) HR Dev has provided a Work Scheduling Component, which is available starting HR.PF.K, please review note
330021.1
The functionality is delivered in patch that you need to apply on top of HR.PF.K, or it is already included in HR.PF.K.1
Users will need to setup in HRMS Manager > Work Structures > Work Schedules
Users must ensure ensure the profile option HR: Schedule Based Absence Calculation is set to
‘Yes’.
===========================================================================
Setup Step 1 :
Setup Step 2 :
Tuesday, January 21, 2014
A Similar Solution,
Doc ID: 429990.1 How to Submit a Concurrent Request Using a Self-Service Page
One More Way, To Submit Active Users using a button,
&programRegion=Hide
&scheduleRegion=Hide
¬ifyRegion=Hide
&printRegion=Hide
Furthur it can be elaborated using,
744832.1 Oracle Application Framework Developer’s Guide Release 12.1.1
OA.jsp?akRegionCode=FNDCPPROGRAMPAGE&akRegionApplicationId=0&programApplName=FND&programName=FNDSCURS&scheduleRegion=Hide¬ifyRegion=Hide&printRegion=Hide&programRegion=Hide
Doc ID: 429990.1 How to Submit a Concurrent Request Using a Self-Service Page
------Add function FNDCPSRSSSWA ( Schedule Requests ) to menu.
A Similar Solution, Directly Calling the report from 11i Self Service Menu
Doc ID: 334847.1 How to add a report to a 11i Self Service Menu
------Create a custom function using FNDCPPROGRAMPAGEOne More Way, To Submit Active Users using a button,
We can add a button(Create a New Item) to a any page using personalization and call FNDCPPROGRAMPAGE,
Destination URI: OA.jsp?akRegionCode=FNDCPPROGRAMPAGE&akRegionApplicationId=0&programApplName=FND&programName=FNDSCURS
Prompt: Active Users Report
Target Frame: _blank
If you want to hide schedule, print, notify pages, then add below to url
¶meterRegion=Hide&programRegion=Hide
&scheduleRegion=Hide
¬ifyRegion=Hide
&printRegion=Hide
Furthur it can be elaborated using,
744832.1 Oracle Application Framework Developer’s Guide Release 12.1.1
Page 283, Adding Request Monitoring to Your Product
---OA.jsp?akRegionCode=FNDCPPROGRAMPAGE&akRegionApplicationId=0&programApplName=FND&programName=FNDSCURS&scheduleRegion=Hide¬ifyRegion=Hide&printRegion=Hide&programRegion=Hide
Monday, January 20, 2014
Runtime Duration
Calculation on SIT (HRMS Keyflexfield)
Recently we have a requirement to calculate two dates field
and save months between in third segment.
For example :
(segment1 * segment2 ) = Segment3
To achieve this we have to create 3 segments.
Segment1 for Start Date
Segment 2 for End
Date
And segment3 is
for total calculated value.
To calculation the duration of months you have to create a
value set with “NO Validation Type” and
segment default type will be “SQL”
The SQL statement
will be base on start date value set and end date value set.
select NVL(XX_GENERAL_FUNCTIONS.GET_MONTHS_BETWEEN((:$FLEX$.SIT_DATE_VALUESET1)
, (:$FLEX$.SIT_DATE_VALUESET2 ) ),'0') from dual
Define Context-Sensitive Segment for Descriptive Flexfield(DFF)
How to create Context-Sensitive DFF?
Here, I will be discussing in detail on how to create Context-Sensitive Segments for Descriptive Flex-field.
Navigate to System Administrator Responsibility --> Applications --> Flexfield --> Descriptive --> Segments
Query the DFF “Additional Information for Agents” (Or any DFF in any Module in my case its "Additional Information for Agents")
|
In the Prompt Field enter as “Component Received”. See that the Check boxes “Required” and “Enabled” are checked.
Now, keep the cursor in the second line of the Context Field Values and Type Code as NO and provide a description
Same way enter as YES in the next line and Keep the cursor on the YES line and Click the Segments Button.
Segments Summary Window Opens. Enter Name as Inspection Status and Assign Column Attribute.
Click on Value Set Button, Value Set window opens. Type the Value Set Name, Security Type, Maximum Size and Validation Type. Save and Close the Record. Now, Click on Open Button in the Segments Summary window. Segments window opens. Type the Description and Check the Security Enables check box. Save and close the window. Assign the Value Set “Component Received” we have created already. Save and Close. Check the Freeze the Flexfield check box and compile the changes. Now, Navigate to System Administrator Responsibility --> Application --> Validation --> Values. Find Value Set window opens. Enter the Value Set Name we have already created and click find. Enter the Values as Accepted, Rejected and Under Inspection line by line and Save. Now, go to the Service Request screen and check the DFF. If we select the Component Received as NO, no further fields will be visible. If we select the Component Received as YES, it will ask for the Inspection Status.
So, this is how we will be creating context-sensitive segments for a Descriptive Flex-field.
|
Sunday, January 19, 2014
In this post I will explain how to create SIT in Oracle HRMS Person screen.SIT is basically a KFF.This we can use to capture additional person information.The KFF which we are using here is Personal Analysis Keyflexfield.We can create and assign N number of SITs to a person.Once you enable the SIT it is available across the Application.
Following steps needs to be done to create a SIT.
1) Define a structure for the Personal Analysis Keyflexfield. For this you have to navigate to
Application Developer > Flexfield > Key > Segments
Query for Personal Analysis Flexfield.
Application Developer > Flexfield > Key > Segments
Query for Personal Analysis Flexfield.
2) Define the segments.
Click on Segments.Create the Segments based on your requirement.
In the Segments window check Allow Dynamic Inserts check box. Once you complete the segment definition checkFreeze Flexfield Definition and save your work.
3) Enable the SIT.
For this navigate to
US Super HRMS Manager > Other Definitions > Special Information Types
Create a record for above created structure.Check the check box matrix where ever you want to show the SIT.In this example I am enabling it for Person.
US Super HRMS Manager > Other Definitions > Special Information Types
Create a record for above created structure.Check the check box matrix where ever you want to show the SIT.In this example I am enabling it for Person.
Save your work.
4) Go to any HRMS responsibility.Open Enter and Maintain form.Click on Special Information.Query for above created structure.Enter the information into the segments.
The entry will get created in PER_PERSON_ANALYSES and PER_ANALYSIS_CRITERIA table.
EIT Creation in HRMS
Uses:
EIT is a DFF in HRMS.
EIT is used to store data, where same data is changed quite often.
EIT is a DFF in HRMS.
EIT is used to store data, where same data is changed quite often.
EIT can be opened at Multiple levels, so very helpful in storing as detailed data as possible.
How to create an EIT??
Navigation: System Administrator --> Application --> Flexfield --> Descriptive --> Segments
Search flexfield title by name Extra Person Information, as shown below.
Search flexfield title by name Extra Person Information, as shown below.
Unfreeze the key flexfield and add a new record under the Context Field Values section as shown below.
Press the Segments button
Create the number of segments as desired and attach validation sets to each field accordingly as shown below.
Create the number of segments as desired and attach validation sets to each field accordingly as shown below.
Save & Close. Don't forget to Freeze Flexfield Definition.
Now switch to Global HRMS Manager Responsibility.
Now switch to Global HRMS Manager Responsibility.
Now we need to run the concurrent Program named "Register Extra Information Types (EITs)"
After the request is completed successfully, navigate to
Navigation: Global HRMS Manager --> Security --> Information Types Security
Navigation: Global HRMS Manager --> Security --> Information Types Security
Search for your relevant responsibility, add the EIT under the selected responsibility as shown below.
Let’s check that either SIT has been successfully registered or not.
Navigation: Global HRMS Manager --> People --> Enter & Maintain --> Others --> Extra Information
Query:
SELECT PEI_INFORMATION1 PASSPORT_NUMBER,
TO_DATE (SUBSTR (PEI_INFORMATION2, 1, INSTR (PEI_INFORMATION2, ' ') - 1),
'YYYY/MM/DD'
) PASSPORT_EXPIRY_DATE
FROM PER_PEOPLE_EXTRA_INFO
WHERE INFORMATION_TYPE = 'XX_EXAMPLE_EIT'
Query:
Created with Artisteer
Here is list of most commonly used JDR_UTILS APIs used in OA Framework;
Use this API to list of all OA Framework the documents in a path/module. This script is very handy, as it provides a list of all the desired documents/extensions/personalizations in one go.
DECLARE
BEGIN
jdr_utils.listdocuments(‘/oracle/apps/per’, TRUE);
END;
BEGIN
jdr_utils.listdocuments(‘/oracle/apps/per’, TRUE);
END;
The script above will produce a list of all the MDS Documents in HRMS plus all the BC4J extensions done to HRMS module will be listed here too.
JDR_UTILS.LISTCUSTOMIZATIONS
List of all the Personalizations/Extensions/Contents for a specific object. For example, as below, I wish to know the various levels at which a specific object has been personalized or extended.
BEGIN
jdr_utils.listcustomizations
(p_document => ‘/oracle/apps/icx/por/wf/webui/ReqLinesNotificationsRN’);
END;
jdr_utils.listcustomizations
(p_document => ‘/oracle/apps/icx/por/wf/webui/ReqLinesNotificationsRN’);
END;
JDR_UTILS.PRINTDOCUMENT
List of all the Personalizations/Extensions for a specific object. For example, as below, I wish to see the name of the new AM Java Class that substitutes the standard VisitorAM.
DECLARE
BEGIN
jdr_utils.printdocument
(p_document => ‘/oracle/apps/icx/por/wf/webui/customizations/site/0/ReqLinesNotificationsRN’);
END;
BEGIN
jdr_utils.printdocument
(p_document => ‘/oracle/apps/icx/por/wf/webui/customizations/site/0/ReqLinesNotificationsRN’);
END;
The Output would be :
xml version=’1.0′ encoding=’UTF-8′?>
xmlns=”http://xmlns.oracle.com/jrad” version=”9.0.5.4.89_560″ xml:lang=”en-US” customizes=”/oracle/apps/icx/por/wf/webui/ReqLinesNotificationsRN” xmlns:oa=”http://xmlns.oracle.com/oa”>
serverUnvalidated=”false” sortState=”no” tipType=”none” totalValue=”false” userCustomizable=”false” vAlign=”middle” viewAttr=”Attribute11″ viewName=”xxrambReqLinesNotificationsVO” warnAboutChanges=”true”
xmlns:oa=”http://xmlns.oracle.com/oa”/>
messageStyledText id=”Attribute9_a1″ adminCustomizable=”true” cellNoWrapFormat=”false” dataType=”VARCHAR2″ initSortSeq=”none” prompt=”Budget Department” queryable=”false” rendered=”true” required=”no” scope=”.” selectiveSearchCriteria=”false”
serverUnvalidated=”false” sortState=”no” tipType=”none” totalValue=”false” userCustomizable=”false” vAlign=”middle” viewAttr=”Attribute9″ viewName=”xxrambReqLinesNotificationsVO” warnAboutChanges=”true”
xmlns:oa=”http://xmlns.oracle.com/oa”/>
xmlns=”http://xmlns.oracle.com/jrad” version=”9.0.5.4.89_560″ xml:lang=”en-US” customizes=”/oracle/apps/icx/por/wf/webui/ReqLinesNotificationsRN” xmlns:oa=”http://xmlns.oracle.com/oa”>
xmlns:oa=”http://xmlns.oracle.com/oa”/>
messageStyledText id=”Attribute9_a1″ adminCustomizable=”true” cellNoWrapFormat=”false” dataType=”VARCHAR2″ initSortSeq=”none” prompt=”Budget Department” queryable=”false” rendered=”true” required=”no” scope=”.” selectiveSearchCriteria=”false”
serverUnvalidated=”false” sortState=”no” tipType=”none” totalValue=”false” userCustomizable=”false” vAlign=”middle” viewAttr=”Attribute9″ viewName=”xxrambReqLinesNotificationsVO” warnAboutChanges=”true”
xmlns:oa=”http://xmlns.oracle.com/oa”/>
DELETE A DOCUMENT
DECLARE
BEGIN
jdr_utils.deletedocument(p_document => ‘/oracle/apps/icx/por/wf/webui/customizations/site/0/ReqLinesNotificationsRN’);
END;
BEGIN
jdr_utils.deletedocument(p_document => ‘/oracle/apps/icx/por/wf/webui/customizations/site/0/ReqLinesNotificationsRN’);
END;
Created with Artisteer
Subscribe to:
Posts
(Atom)
Blog Archive
-
▼
2014
(18)
-
▼
January
(8)
- Running Fast Formula From Backend - Oracle HRMS
- Setups to integrate with work schedule and holiday...
- Call Report from SSHR (Self Service Pages) FNDCPS...
- Runtime Duration Calculation on SIT (HRMS Keyflexf...
- Defining Context-Sensitive Segment for Descriptive...
- Special Information Types (SIT) in Oracle Applicat...
- How to Create EIT in HRMS
- Finding the Personalization and Customizations OAF...
-
▼
January
(8)