Friday, November 28, 2008

v8.9 - Time and Labor – Absence Management Integration Technical Details

This document discusses the technical details of the integration of Absence Management with Time and Labor without North American Payroll.
/*3rd October, 2012 - Updated the title to note that this post represents the integration in v8.9. The integration between Time and Labor and Absence Management has been completely revamped in v9.0.*/

Map a TRC to an Absence Management Take Code as shown in the diagram below:

Table that holds the mapping details of a TRC and an AM Take code – TL_ERNCD_TBL.

All the Absence data that will be sent to Time and Labor is stored in the record – GP_ABS_EVT_WRK.
This table is populated through peoplecode (GP_ABS_EVENT.EMPL_RCD.FieldFormula) when a manager approves absences. Note that only data in the above table is taken up by the integration program. So, ensure that all the data that is expected to be sent to Time and Labor is present in this table before running the integration program.
Note that this table is purged after the successful run of the integration program – so it is recommended to take a back up of this table before running the integration process. This table will contain all Added, Deleted and Changed absence data.
Note that this table will be populated only if the employee is active in Time and Labor and has a pay system flag of ‘GP’ in PS_JOB.

Run the ‘Retrieve Absences’ process from Time and Labor, as shown below:

This process triggers the TLAGGUPDATE AE. The main purpose of this AE is to populate the TL_ST_ELPTIME work table from the data present in GP_ABS_EVT_WRK table. This AE takes all absences present in the GP_ABS_EVT_WRK table, checks for the Event Action (whether Add, Change or Delete) and populate the TL_ST_ELPTIME table. The AE also converts the reported days of Absences into corresponding number of hours for use by Time and Labor. This is done by checking the absence days with the schedule for that particular day for the employee.
The TLAGGUPDATE AE calls the TL_AGG_SECTN AE where the insertion into TL_ST_ELPTIME table takes place.
GP_ABS_SUM_WRK and GP_ABS_DTL_WRK are two other important work tables used by the TLAGGUPDATE AE. Note that all the tables mentioned above are truncated after the process runs and the presence of data in the above tables after the run of a program is an indication that insertion into TL_RPTD_TIME has not happened.

The TLAGGUPDATE AE finally calls the TL_ST_LIB AE which transfers data from TL_ST_ELPTIME to TL_RPTD_TIME. The latter AE is triggered using the CreateProcessRequest command and thus it will run as a separate process from the TLAGGUPDATE process.

The time from Absence can be identified by looking for rows with an RT_SOURCE value of AM in TL_RPTD_TIME table.

The below screenshot depicts how the Absence Data appears on the TimeSheet:

Side Notes:
> Check for data in the GP_ABS_EVT_WRK table to estimate the rows that will be sent to Time and Labor.
> Ensure that each employee is assigned to a proper schedule and that the schedules are properly set up.
> Data is loaded into TL_ST_ELPTIME table from where it is loaded into TL_RPTD_TIME by the TL_ST_LIB AE.
> If the process has not run properly GP_ABS_WRK, GP_ABS_SUM_WRK, GP_ABS_DTL_WRK and the TL_ST_ELPTIME tables will have data.
> Check for the loaded rows in TL_RPTD_TIME by looking for a RT_SOURCE = ‘AM’.

Saturday, November 1, 2008

Time and Labor - Absence Management Integration in HRMS 8.9

Its been real long since I've been able to post here! Thanks to the internet security at work!! Thought of writing down my experiences with integrating T&L with Absence Management in 8.9. This is one real exciting area in Time and Labor with more and more customers going in for Absence Management and T&L rollouts in the same implementation. From a business perspective, one cannot really see T&L and AM as different entities, though both have their own unique functions, they (and more so T&L) need to be tightly integrated and share data for meaningful business processing. Let's look at some scenarios where we need the integration:

> Payroll needs both reported time as well as absence data. Depending on the Pay System, T&L and AM data has to be collated for this purpose.

> Users would like to see/report time as well as absence on the same screen (this is one of the major enhancements to T&L in 9.0 with the feature to report/view absence data on the Timesheet. I think its a wonderful feature and a long awaited one).

> A number of T&L rules are dependent on Absence data (for example, don't apply certain rules if the employee was absent on a particular day).

Now, let's explore the integration of these two modules (the discussion is specific to 8.9, I know its a bit anachronistic, but I hope it will be useful to people still on this version!). The integration path varies depending upon the payroll system used. There are two separate processes - one for use if the Pay System is GP and the other if the pay system in NA Payroll (note that there is no delivered integration method if the Pay System is Payroll Interface). What both these processes do is to take absence data and put it into the reported time table. Then what is the difference between these two processes?
The NA Payroll process can be run only after an Absence Run has been finalised and takes data from the GP Positive Input table (GP_PI_GEN_DATA). This ensures that we have the rightly calculated data coming over to T&L. But, for a lot of users this is a major disadvantage of the process, for you cannot view absence data on Time and Labor before an Absence Calendar is finalised!
But, the case is different with the GP integration process. This takes data from a work table (GP_ABS_EVT_WRK) which is populated after a manager approves/deletes/changes absence requests. This means, that Absence data is available to T&L even before the Absence Run is started. But, this comes with a major disadvantage. The absence data that comes to T&L may not be the correct finalised absence data. In one sense its alright if GP is used as the payroll product. Things get murky if one is using a third party payroll system. In this case, the absence data in the payable time table of T&L might be incorrect as the data has come over before the Absence Run has taken place.
This is a major drawback of the current integration and every 8.9 implementation that looks to integrate AM and T&L need to keep this in mind.
I would be interested to know the ways people have worked around integrating T&L and AM with a third party payroll.

Post Note: How to identify the data that has come from Absence Management in T&L?
Query TL_RPTD_TIME for a RT_SOURCE = 'AM'.