Display the below custom message when user try to entering more than 8 hours per day
1) Compile the below function(APPS.XXAA_MORETHAN_8_HRS_FUNC) in apps schema.
-->======================================================================
CREATE OR REPLACE FUNCTION APPS.XXAA_MORETHAN_8_HRS_FUNC(P_RESOURCE_ID NUMBER)
RETURN NUMBER
/*
*****************************************************************
Author
: Raju Chinthapatla
Description : It
returns the 1 value when person enters more than 8 hrs per day
*****************************************************************
*/
IS
l_return_rule_status number := 0;
l_timecard_info hxc_self_service_time_deposit.timecard_info;
l_tbb_array HXC_BLOCK_TABLE_TYPE;
BEGIN
l_timecard_info := hxc_self_service_time_deposit.get_building_blocks;
l_tbb_array := hxc_deposit_wrapper_utilities.blocks_to_array(p_blocks => l_timecard_info);
IF l_tbb_array.FIRST IS NOT NULL THEN
FOR i IN l_tbb_array.FIRST .. l_tbb_array.LAST
LOOP
IF l_tbb_array(i).MEASURE > 8 and l_tbb_array(i).SCOPE = 'DETAIL'
THEN
l_return_rule_status := 1;
return
l_return_rule_status;
END IF;
END LOOP;
END IF;
RETURN l_return_rule_status;
END XXAA_MORETHAN_8_HRS_FUNC;
-->======================================================================2) Create a custom message to display when the users enter more than 8 hours a day
Nav : Application Developer -->Application -->Messages
Name : XXAA_MORETHAN_8_HRS_MSG
Language : US
Application : Time and Labor Engine
Current Message text : Please Do Not Enter More Than 24 Hours Per a Day
3) Create a Formula Function
Nav : Global Super HRMS Manager -->Other Definitions -->Formula Functions
Name : XXAA_MORETHAN_8_HRS_FUNCTION
Data Type : Number
Class : External function
Alias Name : XXAA_MORETHAN_8_HRS_FUNC
Definition : XXAA_MORETHAN_8_HRS_FUNC
Click on Parameters button
Parameter Name : P_RESOURCE_ID
Type : Number
Class : Input Only
4) Create a Write Formulas
Nav : Global Super HRMS Manager -->Total Compensation -->Basic -->Write Formulas
Name : XXAA_MORETHAN_8_HRS
Type : OTL Time Entry Rules
Description : Do Not Enter More Than 8 Hours Per a Day
Save and re query the formula and click on Edit button
Enter the below code
/*
*****************************************************************
Formula Name :
XXAA_MORETHAN_8_HRS
Author
: Raju Chinthapatla
Description : To Stop
Users from Entering More Than 8 Hours in a Day
Contexts
: None
*****************************************************************
*/
/*
Initialise Variables which can be null
*****************************************************************
*/
default for db_pre_period_start is ' '
default for db_pre_period_end is ' '
default for db_post_period_start is ' '
default for db_post_period_end is ' '
default for db_ref_period_start is ' '
default for db_ref_period_end is ' '
default for timecard_hrs is 0
/*
******************************************************************
READ IN INPUT VARIABLES
******************************************************************
*/
INPUTS ARE
resource_id (number)
, submission_date (text)
, db_pre_period_start (text)
, db_pre_period_end (text)
, db_post_period_start (text)
, db_post_period_end (text)
, db_ref_period_start (text)
, db_ref_period_end (text)
, timecard_hrs (number)
IF ( XXAA_MORETHAN_8_HRS_FUNC(resource_id) = 1 )
THEN
(rule_status = 'E'
message1 = 'XXAA_MORETHAN_8_HRS_MSG'
return rule_status,message1)
ELSE
(rule_status
= 'S'
return rule_status)
/*
***************************************************************** */
Clink on Verify button and Save
5) Create a Time Entry Rule with custom formula
Nav : OTL Super Administrator -->Time Entry Rules -->Define Time Entry Rules
Name : Do Not Enter More Than 8 Hours Per a Day - Rule
Description : Do Not Enter More Than 8 Hours Per a Day
Usage : Submission / Resubmission
Formula : Do Not Enter More Than 8 Hours Per a Day
From : 20-DEC-2014(Note : From date should be after the formula date)
6) Create a Time Entry Rule Group with the TER you just created in it
Nav : OTL Super Administrator -->Time Entry Rules -->Define Time Entry Rule Group
Name : Do Not Enter More Than 8 Hours Per A Day
TER Name : Do Not Enter More Than 8 Hours Per A Day
From : 19-DEC-2014
Outcome : Error
7) Assign the Time Entry Rule Group to the employee(s) via the Time Entry Rule Group preference
Nav : OTL Super Administrator -->Preferences
-->Preferences
Right Click on any preference and click on New
Name in Tree : XXAA Exceeds Time Entry Hours Node
Right Click on XXAA Exceeds Time Entry Hours Node preference and click on New
Name in Tree : Do Not Enter More Than 8 Hours - Preference
Preference : Time Store Time Entry Rules
Preference Value -->Time Entry Rule : Do Not Enter More Than 8 Hours
Click on Eligibility Criteria Tab
Name of rule : Do Not Enter More Than 24 Hours - Eligibility Criteria
Name of Branch : XXAA Exceeds Time Entry Hours Node
Link by : All People
Precedence : 90(Max Number)
From : 01-JAN-2000
Click on People tab and Check the preference is assigned or not
Testing
Create a Time Card with more than 8 hours per day
Nav : Timecard - US --> Time -->Create Timecard
Scenario : Enter the time card with more than 8 hours per day and click on Continue
It will show the custom message
3 comments:
nice it is helpful.. We cant use PAGCTX standard extension package or validation?
Dear Team,
Instead of This there is an other way to achieve this scenario.
-- Define the Time categories (You need to select the required people / projects/ Expenditure Type ..ETC)
-- Define the Time entry rule by using the maximum & Min Hours formula (Here there are fields to validate Min and max Hours)
-- Define TER Groups
-- Attach to Preferences
-- Test Scenario now
Thanks,
SHANKAR
How can I prevent zero timeentry in oracle cloud OTL?
Post a Comment