330 likes | 592 Views
Absence Through Self Service. Graham Hotchkiss Senior Oracle Developer. A developers perspective. C onfiguration E xtension M odification L ocalization I ntegration “Standard” Developer. Business Processes Usability Suggest Change My remit. Talk Objectives. Introduce Oracle absence
E N D
Absence Through Self Service Graham Hotchkiss Senior Oracle Developer
A developers perspective Configuration Extension Modification Localization Integration “Standard” Developer Business Processes Usability Suggest Change My remit
Talk Objectives • Introduce Oracle absence • SNH business process • Mat / Pat / Adopt • Annual Leave • Sickness • SNH CEMLIs • Setup • Some nice additional functionality CEMLI indicated here
Our E-Business Suite • R12.1.3 • 850 Employees • Phasing out multiple assignments 03 04 05 06 07 08 09 10 11 12 Finance iExp HR Self Service iProc R12 Payroll HR Core
Absence through Self Service Staff Manager Record
Absence Maintenance Self Service * No approval required ** If not in past Core HR Change everything CEMLI - Framework personalisation and AME rule
Our Absence Types * Multiple types being rationalised to absence reasons as part of payroll implementation
Current • Payroll run by 3rd Party • All absences can be applied for in Self Service • SNH versions of maternity / adoption / paternity • Planned and confirmed absence available • 37.5* days AL • Max 10 days carry over • 4 days PH
Next Month (eek!) • Integrated Oracle payroll • All absences can be applied for in Self Service • SNH versions of maternity / adoption / paternity • Planned and confirmed absence available • 37.5* days AL • Max 10 days carry over • 4 days PH
Maternity / Paternity / Adoption Current Planned Self Service Oracle Alert Off-line Staff Core HR Manager HR 1 - Delete self service absence 2 - Create Mat / Pat / Adopt record 3 - Create “correct” absence 3rd Party CEMLI
Absence Duration • Auto filled when applying for absence • Calculated by formula (BG_ABSENCE_DURATION) • Date tracked • Seeded formula could not handle a 7.4 hour standard day (rounding errors) • Part-time always wrong • Formula result can be overwritten If profile option HR: Absence Duration Auto Overwrite = “No” • Self service (confirmed absence only) • Core HR UK HRMS Manager > Total Compensation > Basic > Write Formulas
Custom Absence Duration • Modify BG_ABSENCE_DURATION • Seeded backup (TEMPLATE_ABSENCE_DURATION) • Create own logic • Reference own data • SNH has own Work/Time recording database where work patterns are set – pointed to this for part-time hours e.g. SNH_ABS_HOURS_FROM_WR(date_start, date_end) CEMLI UK HRMS Manager > Total Compensation > Basic > Write Formulas
Custom Formula Functions SQL> XXSNH_CUSTOM_FUNCTION.SNH_ABS_HOURS_FROM_WR ( 5728, '16-JAN-2012', '20-JAN-2012' ) CEMLI UK HRMS Manager > Other Definitions > Formula Functions
SNH Annual Leave • Holiday year boundary = 01-Jan • 37.5 days • Pro rata • Up front • Every employee • Units • FT staff = days • PT and compressed hours = hours • Entitlement assigned automatically using element links on assignment category • Max 10 days carry over (pro rata) • One-off extra 5 days at 25 and 35 year service • Handled manually
Accrual Plans CEMLI UK HRMS Manager > Total Compensation > Basic > Accrual plans
Balances Visible in self service Carryover UK HRMS Manager > FastPath > Accruals
Accrual Plan – Delivered Behaviour • Primary assignment only • No plan equivalent conversion When person moves between FT and PT hours • Open-ended assignments mean temporary staff were over-calculated Because SNH uses “up front” entitlement • Holidays over year boundary assigned to holiday year in which the holiday starts • Approx 85% success rate
SNH Custom Multiplier • Steps: • Personal accrual dates • Personal basic accrual • Absence adjustments • Other adjustments Business Rules • Calculation (in hours) • ( Factor * Basic accrual ) - Absence adjustments + Other adjustments • Factor = Hols per year / ( days per year * days per week ) • Converted to days if needed CEMLI UK HRMS Manager > Total Compensation > Basic > Write Formulas
SNH Custom Multiplier Steps 1 – Personal accrual dates • Start date / Termination date • Contract end date (Assign DFF) 2 – Basic accrual • Loops through all active assignment rows within personal accrual dates • Calculate “assignment row length” as days between effective / personal accrual start / end • Add ( normal hours * assignment row length ) Uses seed Oracle functions wherever possible
SNH Custom Multiplier Steps 3 – Absence corrections • Loop through all absences within personal accrual dates • Add if on alternative plan (FT/PT versions) • Add portion in holiday year if spans 01-Jan-THIS • Subtract portion outside holiday year if spans 01-Jan-NEXT 4 – Other corrections • Loop through all active assignments that aren’t the current primary within personal accrual dates • Add all adjustment / carryover element input values Uses seed Oracle functions wherever possible
Custom Multiplier in Action Scenario – Primary assignment switched during holiday year Visible in self service 10 Carryover UK HRMS Manager > FastPath > Accruals
Oracle’s Carryover Process Net Entitlement PTO Carry Over (Concurrent Program) Carry Over Element (Add) Residual Element (Info only) Carry Over Formula
Custom Carryover • Steps: • Determine effective date First day of holiday year (Elements entered as of this date) • Total hours Combined normal hours across assigns at the calculation date Business Rules • Returns • Max carry = ( Total hours / hours per week ) * Carry ceiling • Effective date • Expiry CEMLI UK HRMS Manager > Total Compensation > Basic > Write Formulas
Annual Leave Year End Process PTO Carry Over Nov Dec Jan Feb Mar Apr Jun Adjustment Element (Add) AL > 10 Days Business Case Workaholic Dedicated Always implementing Oracle modules Confirm / Take leave
Absence Life Cycle + Planned Payroll Accrual Reporting Concurrent Program 1 Appointment 2 Welcome back alert Sent 7 am, day of end + Work Recording Confirmed Confirm or delete alert Sent 3 weeks after end Confirms absence 1 month after end CEMLI CEMLI
Calendar Appointments iCal Format • Outlook • GroupWise • Etc… (see Wikipedia) • Some tricky bits • From (suppress “user unknown” errors) • “mailerdeamon@snh.gov.uk” • Summer time • Suppress in Dev/Test databases CEMLI
Triggering an Appointment • Oracle Alert • Event alert, after insert, action = SQL statement • Works perfectly in testing / intermittently in production! • Workflow customisation • R11 – Leave of Absence • R12 - Self Service Generic Approval Process • Process Display Name = Leave of Absence • User Hook • hr_person_absence_bk1.create_person_absence_a • Triggered after initial absence row inserted into database Send the appointment Get the data before the transaction is removed CEMLI CEMLI
Annual Leave Feedback • Users happy with • Duration calculation • Reduced double entry (calendar / Work Recording) • “Welcome back, please confirm…” alert • Entitlement calculation • HR happy with • Hands-off approach • Carry over automation • Approx 1% of HR time
Sick Absence Life Cycle + Confirmed Open-ended 2 SSP SSP 1 Appointment for 1 month + Open-ended Alert 8/16/24 days after start Update Enter end-date Open-ended Alert 32 days after start CEMLI
Inserting Sick Absences Can’t +---------------------------------------------------------------------------+ Start of log messages from FND_FILE +---------------------------------------------------------------------------+ Procedure XX_SNH_INSERT_SICK_ABSENCE.ROLL_OUT Purpose : Removes sick absences for person record after a date Inputs : p_person_id = 5712 p_effective_date = 2009/03/01 00:00:00 Author : Graham Hotchkiss (SNH) Request : 2438635 Sick absence: 18-MAR-09 - 20-MAR-09 Copied to SNH_APPS.XX_SNH_ABSENCE_IMPORT Deleted COMPLETE: 1 absences removed +---------------------------------------------------------------------------+ End of log messages from FND_FILE +---------------------------------------------------------------------------+ Step 1 – Roll out blocking absences Step 2 – Re-apply in Self Service / Workflow Admin CEMLI
Inserting Sick Absences +---------------------------------------------------------------------------+ Start of log messages from FND_FILE +---------------------------------------------------------------------------+ Procedure XX_SNH_INSERT_SICK_ABSENCE.ROLL_IN Purpose : Replaces sick absences for person previously removed by SNH - Roll out sick absence Inputs : p_export_request_id = 2438635 Author : Graham Hotchkiss (SNH) Request : 2438646 Sick absence: 18-MAR-09 - 20-MAR-09 Copied from SNH_APPS.XX_SNH_ABSENCE_IMPORT New id: 135050 COMPLETE: 1 absences replaced +---------------------------------------------------------------------------+ End of log messages from FND_FILE +---------------------------------------------------------------------------+ Step 3 – Roll-in blocking absences CEMLI
Absence Calendar Discoverer CEMLI
Summary • Absence intrinsically self service • Oracle behaviour supports fundamentals very well • Calculations (always) need customisation • Absence calendar missing • More functionality around the absence life cycle would be nice