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

nice it is helpful.. We cant use PAGCTX standard extension package or validation?
ReplyDeleteDear Team,
ReplyDeleteInstead 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?
ReplyDelete