About Configuring Hours Per Absence Day

Configure the ODI variable HR_ABS_WORKING_HOURS_PER_DAY used for hours per days calculation.

Optional or Mandatory

By default, Oracle BI Applications uses a SQL expression for the variable HR_ABS_WORKING_HOURS_PER_DAY which is based on the fast formula named TEMPLATE_BIS_DAYS_TO_HOURS called by the source HR function hri_bpl_utilization.convert_days_to_hours(). If the template formula is used then this configuration is optional.

However if the fast formula is customized at source, the SQL expression used in the HR_ABS_WORKING_HOURS_PER_DAY variable must be reviewed and changed mandatorily.

Applies to

This applies to all extracts done for Absences Module from E-Business Suite 11.1.10 and R12.x.x.

Task description in detail

Check the logic used in the fast formula TEMPLATE_BIS_DAYS_TO_HOURS. If this fast formula is not customized, the default value for this variable will work, otherwise the variable value needs to be changed to a suitable sql expression.

From the fast formula text, determine the values of (a) Default hours per day,(b)Working days per week and (c) Working days per month and assign these values to the ODI variables HR_ABS_DFLT_HOURS_PER_DAY, HR_ABS_WORKING_DAYS_PER_WEEK and HR_ABS_WORKING_DAYS_PER_MONTH, respectively.

Review the rest of the fast formula text and determine the formula used for calculating Working hours per day.

Based on the above information form the sql expression that exactly fits the fast formula logic. Refer to the default sql expression provided for a clear idea.

This variable HR_ABS_WORKING_HOURS_PER_DAY is used in the Interface SDE_ORA_AbsenceEventDimension.W_ABSENCE_EVENT_DS_SQ_PER_ABSENCE_ATTENDANCES_TMP for the column : UTL_HOURS_IN_DAY.

The default sql expression used in HR_ABS_WORKING_HOURS_PER_DAY is:

round(case when tab.asg_freq is not null and tab.asg_hours is not null then
(case when tab.asg_freq = 'W' then tab.asg_hours/tab.working_days_per_week when tab.asg_freq ='M' then
tab.asg_hours/working_days_per_month when tab.asg_freq = 'D'
then asg_hours else 0  end) else(case when tab.full_freq is not null and  tab.full_hours is not null 
then(case when tab.full_freq ='W' then tab.full_hours/tab.working_days_per_week
when tab.full_freq='M' then tab.full_hours/working_days_per_month when tab.full_freq ='D' then full_hours else 0 end ) 
else dflt_hours_per_day end) end,2)

Dependency

None.