Sunday, November 1, 2009

Peoplesoft 9.1 - Time and Labor: Changes to TRC Setup

The setup component in Time and Labor that has changed significantly in 9.1 (more in terms of layout and additional features and less of fundamental data structure changes to the TL_TRC_TBL) is the TRC Setup page. Considering that the TRC is the fundamental building block of the module, it is imperative for us to understand the details of the change. The salient enhancements to the TRC Setup is as below:

  • A completely new page called 'Approvals and Comments' has added to the component. This is in conjunction with the introduction of the Approval Workflow Engine (AWE) framework in Time and Labor. The introduction of AWE is a major change and changes the way approvals are handled in Time and Labor. Earlier, the field called 'Approval Option' (where one could choose 'Reported Time', 'Payable Time' or 'None') controlled the way in which the TRC had to be approved. But this field has been taken off the page in 9.1 and a completely new page has been provided to fill in the AWE details for each TRC. This setup is similar to the familiar 'Country Take' setup in Absence Management, where we attach an Approval Process Id to each Absence Take that is exposed in Self Service.
  • The fields that were present in the page called 'TRC2' in prior versions have been moved over to the first page of the definition. These fields include Effect on Comp/Leave, Hours Represent, Interface options etc.
  • The tabs have been renamed to Definition and Approval and Comments from TRC1 and TRC2.
The new pages are shown below:


------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------
The major change as seen above is the introduction of the approval framewok settings. The adoption of AWE in Time and Labor has far fetched consequences, especially when one considers security and integration with Absence Management (it will now be imperative to synch up T&L security, Approval framework and Absence Approval framework). I am studying the technical architecture of the approval framework in T&L and will post about it in detail soon.

Peoplesoft 9.1 - Time and Labor: Changes to TRC Category Setup

TRC Category was introduced by Oracle in version 8.9 and I had written about it in a previous post. Oracle has given a face lift to this definition in 9.1 adding two new fields in the TRC Category definition - Reported Time Approval Display and Payable Time Approval Display. The new page is shown below:



A maximum of three categories can be chosen to be displayed in the reported time and payable time approval pages. We can classify this change more as a cosmetic one impacting the layout of the time approval pages and the structure of the TRC Category changes - all in all, goes one small step in improving the usability of the application.

Peoplesoft 9.1 - Time and Labor: Viewing Unprocessed Time

Oracle has strategically combined Time and Labor, Absence Management, NA Payroll and Payroll Interface into a category called 'Time and Pay' modules (interesting that Global Payroll has been maintained outside this classification!). One of the thrust areas of 9.0 as well as 9.1 has been about improving the integration and audit around these modules. Oracle took a visionary step in integrating absence self service into Time and Labor in 9.0, which I reckon is singularly the most important and useful feature upgrade from a T&L perspective after the changes to the schedule definition architecture in 8.9. For a shop that runs Absence Management, Time and Labor and Payroll for North America, the biggest challenge is to reconcile the interconnected data between the three modules - I've seen major glitches in the integration between Absence Management and Time and Labor in 8.9, which invariably leads to data inconsistency between the three modules and worse, has a negative impact in terms on Payroll compliance. While I expect much of the loose ends to be tied with the enhanced integration of Absence Management and T&L in 9.0 and above, it was really heartening to note that Oracle has provided two new pages to review unprocessed reported and payable time in 9.1. I am sure my folks in the payroll team would love that - to see which all rows did not get over to Payroll from Payable time and to see the rows in reported time not processed by Time Admin (it's not great drooling into PS Query reports all the time!).

The new pages can be found under the following navigation:
Time and Labor --> View Time --> View Unprocessed Time.

The page to view unprocessed payable time is given below:

On the flip side - I am slightly let down by the fact that Oracle did not come out with more delivered reports in 9.1 - we are still stuck with the same old Time Card, Scheduled Hours, Payable Status and TCD Usage reports. Any area related to Payroll requires extensive reporting and auditing and it would be great for Oracle to come out with something like a Payroll dashboard that would integrate data between AM, T&L and NA Payroll. The job to audit the data consistency between these three modules is not straight forward and easy, while it is critical for business to get the numbers spot on - wouldn't it be wonderful to have an off the shelf suite to audit the entire payroll data and certify that what is being paid out is the correct amount? I would love to see that!


Peoplesoft 9.1 - Time and Labor Rule Utilities

When I wrote my wish list for Time and Labor in April, one of the features I really wanted to see was a utility in T&L to migrate rules across environments, as currently it was a cumbersome process of writing manual export and import DMS scripts and manually recompiling all the rules in the target environment. I am really happy to note that Oracle has included that utility in the 9.1 release (surprising though that they never highlighted that feature in any of the pre-release announcements or transfer of information sessions). So what is new in 9.1 related to rule migration?

Oracle has introduced three new pages for exporting, importing and recompiling rules. This is pretty similar to the Rule Packager utility in Global Payroll and can be found under the familiar navigation of:
Setup HRMS --> System Administration --> Utilities --> Build Time and Labor rules.

The utility uses an Application Engine program to create DMS scripts in the location mentioned on the page. The utility used for exporting rules is shown below:


The page used for recompiling rules is shown below:


My thumps up to Oracle for providing these very needed utilities in 9.1 - this is something the developer community was longing for a long time. In hindsight, projects that are not yet on 9.1, should be looking at building a custom process mimicking the ones mentioned above to automate the process of T&L rule migration, may be I will write on this in detail sometime later.


Sunday, October 18, 2009

The deceiving case of the 'Exceptional Scenario'

Two weeks back I had to drop my dad in the railway station for a night train. This particular railway station was one where very few trains had a stop and thus it's location was not familiar to many people.The first time I had to go to that place, I looked up Google Maps and it presented me with three alternate routes. Two routes were through small and confusing roads and were shorter than the third route where I had to take the national highway and then turn to local street roads which were much clearer than the first two options. I picked the third option, irrespective of it being longer, because there was an element of 'risk' involved in trying out small and confusing roads especially when you have a train to catch! The story goes on that I had to go to the station thrice (before this incident of dropping my dad) and all the time I took the national highway route, the route was perfect and hassle free except for a small stretch of road, about 200 meters which connected the main road to the station. That final stretch was through a slum like area, the road was just wide enough for a car and bike to go and I was confused whether it was a public road at all as the residents seemed to treat the road as an extension of their houses. The place had a unique co-existence of , Hindu, Christian and Islamic places of worship next to each other and every time I drove through that lane, the people used to have some celebration or the other (I appreciated the element of religious harmony, but not the prospect of having to drive through that narrow piece of road with people dancing around!). One day while I dropped my parents and was going back, I was forced to take another route (one of the first two options given by Google Maps) and found that even though I had to go through dingy roads, it was much shorter than the highway route as prescribed by Google Maps, but I could not exactly correlate the roads and the turns I had to take to reach the station as it was night time.
Now let's pan back to me dropping my dad! The train was at 9:30 PM and the drive takes around 45 minutes. We started from my home at 8:15 PM and I was juggling the two routes I could take - through the highway or through the shorter new route which I found the last time I came back after dropping my folks. The highway route was longer and I had to go through that last 200 meter stretch where I had the 'risk' of the entire road being blocked because of some celebration or the other. But nothing of that sort had happened anytime when I went there before - where the entire road was blocked and I could not reach the station, yes there was an outside possibility that it could happen, but that 'scenario' had never happened and was very 'rare'. The alternate route on the other hand was indeed shorter, but much more 'uncertain' and 'complex' than the highway route - there was a pretty high probability that I could take a wrong turn and lose my way and eventually my dad could end up missing the train, but that road did not present me with any possibility of being blocked - which mean that if I was able to find the correct way and take the correct turns, I had an almost 100% probability of reaching the station.
Which option should have I taken and why?
Well, this is not a suspense thriller (though it came close to it, my dad did not have to turn superman and chase the train to board it!!), so no spoilers in here - I took the 'tried and tested' highway route, had a smooth ride on the highway and reached the last 200 meter stretch in almost 30 minutes, I turned into the small road, drove for around 50 meters and tragedy struck! The entire road ahead was blocked by an idol of Virgin Mary and people were dancing and singing around it!! The station was just 150 meters ahead and I could not let my dad walk in the night through that area, there was only one option left - take a U turn and find a new way!! Finding a new way at the eleventh hour was a risk I did not want to take, so I had to do the most deplorable act of asking my dad to take a rickshaw and go to the station. The story had a not-so-tragic ending with my dad reaching the station before the train arrived and I kissed him goodbye (I followed the rick to reach the station! Shame on me!!).
That incident made me reflect on some of the design decisions and risk evaluations that we make in our projects. This is a very typical scenario - two alternate solutions are proposed for a problem. Solution 'A' is pretty straightforward using proven technology and easy to implement, the developers vouch that it will work for nine out of ten cases and the one case where it will fail being a very rare one. Solution 'B' on the other hand is a more complex and difficult one (but not impossible), using technology and methods which are not commonly used, but it will work for all scenarios. I have seen that majority of the time, Solution 'A' will be chosen and signed off by even the business team, vouching that they would handle that one exceptional scenario manually. The usual justifactions for this decision is the time saved by going for 'A' and the opinion that the incremental advantage accrued by fixing 1% of the exceptional cases cannot be justified by the increased effort and cost involved in developing solution 'B'.
I am convinced that the risk of the 'rare case' or 'exceptional condition' can be under-evaluated during the design phase and could strangle the entire operations if it does happen sometime (statistically it will!!). Even if it does not disrupt the operations, it could turn out to be an administrative menace over the long run for business users. This is something I have learnt during my support experience in TESCO, that seemingly trivial issues ignored during the development phase becomes a headache once the system goes live and once the organisation grows and the number of transactions increase. At this stage, extra effort will have to be spent in finding a solution to the problem, which in turn increases the cost of ownership of the product (the IT Support/ Maintenance team on the other hand would be happy, because it represents an opportunity to 'improve the system' and they can flaunt the 'savings' accrued by the fix in their quarterly metrics! It really doesn't speak volumes when you fix a defect downstream, though it is a great help for the business plugging holes in the system, it is highly undesirable and should be ideally captured during the development phase).
The argument that the cost involved in solving 1% of the issues is not justified stands true only when cost is calculated over the development phase. But if one considers 'Total Cost of Ownership (TCO)', which would be the cost of developing as well as supporting the system over it's entire life time, it can very easily be understood that the extra cost and effort incurred during the development phase to develop a fool-proof solution will lead to lesser maintenance issues and thus lesser TCO. (Considering the fact that typical development phases extend somewhere between 8 months to 2 years, while support phases will run into years and decades).
So in conclusion, I would like to state that when presented with alternate solutions, the choice should always go to the fool-proof one, even if it will take more effort and cost - because the money saved in the development phase by going for a quicker fix that works 99% of the time, will be lost during the support phase handling 1% of the exceptions over the course of the system.
P.S.: This issue and many others bring to the fore, the need for 'System Thinking'. I think that it is one of the most powerful management thoughts ever, but unfortunately is more linked to the way you look at a problem and is not a 'tool set' that can be easily implemented, which should explain why this great idea finds very little practical application. The fact is that IT projects are driven in such a manner that development and support are done by completely different teams and in many cases by different organisations - this takes away the accountability of developers and the organisation that carries out the development on the issues that prop up during the support phase and most developers have only done development and have never been in support, which cripples their ability to foresee possible issues and their impact. The way I see it, it is the customer that loses out it in the end - the IT teams, let it be development or support comes out clean in the whole act - once the product has been implemented the development team moves on to other engagements, while the support team gets more work fixing the issues left over unattended during development - it is the customer that gets caught in between. The world is not perfect nor ideal and from an ethical point of view, these are all not deliberate decisions that people make (in most cases) ('they signed off the design, so don't blame me!!', 'we had brought up that risk during the design phase, but even the business agreed to it', 'it is important that we meet the deadline, so considering the fact that the solution meets 99% of the cases, we should go with it' etc) - but can't we take small steps and decisions to improve the probability of perfection, not of the world, but atleast of the IT systems that we design?

Friday, October 2, 2009

Can you implement T&L without Absence Management?

I found this very interesting question in ITToolBox yesterday and thought would 'type in' (I would have scribbled or jotted few years back!!) my opinion on this. Let me restate the exact question as it appeared in the forum:

"We are trying to do an analysis of using Absence Manager without Time and Labor. We already have a customized module that feeds online timecards to payroll in peoplesoft. First, is this possible? If so, what functionality would we be missing out on? Everything I have read talks about them together. Is AM just the workflow piece?"

Though the user did not mention their actual requirement, the obvious answer is yes - traditionally over the years T&L has been implemented as a different module from Absence Management. May be the understanding of what these two modules do might help the user take an informed choice.
Absence Management is a module that is specifically designed to manage leaves - that's all it does. It is a very elegant and powerful module that can handle all types of leave accruals, carry forwards, prorations, workflows for approvals etc. It is interesting to note that before AM gained the popularity that it enjoys today, organisations have used Benefits, Monitor Absence in Workforce Admin and even T&L to manage leaves. Absence Management is an independent module and can be implemented standalone with core HRMS.
Time and Labor on the other hand is a much more diverse module that can handle time reporting of employee, track compensatory time offs, enable task based time reporting, calculate overtime and shift premiums etc. If there are no complex rules, T&L can also double up as the module handling leaves of your organisation.

The interdependence of the two modules has to be a thing of version 9.0. With version 9.0, T&L and AM have been coupled very tightly, where entire absence self service has almost been integrated in the timesheet. This could be the reason why it looks as if they cannot be implemented separately.
But the fact remains that both of them are independent modules and the choice of which module to use should completely depend on the depth and nature of your organisation's requirement.

Saturday, September 12, 2009

Support.Oracle.Com is here

How I welcome the new site for product support from Oracle! https://support.oracle.com is a very very welcome change from the clumsy erstwhile metalink website. For users who were comfortable with the Peoplesoft's customer connection site, navigating and raising a Service Request in Oracle's Metalink site was a night mare, it was terribly slow and required tons of clicks to get somewhere, add to add, finding the required information and product was incredibly difficult on Metalink.
But the new site for product support is an excellent one by my initial experience. Oracle has really gone in for flashy Web 2.0 features and Ajax and DHTML are heavily sprinkled all over the site. User friendly pagelets, saner page layouts, DHTML driven menu bars and an extremely improved process to raise Service Requests gives a rich experience to the users. I am particularly impressed with the redesigned SR creation process. A new window which summarises the information and points out the fields that a user has missed to fill are extremely handy. The image below shows the new Ajax enabled Oracle support site with a refreshing layout and design, note the small bar on the left side of the page alerting the users of the status of the IR. All in all, a neat job from Oracle!

Peoplesoft 9.1 - Release Value Proposition for Time and Labor

Oracle's coming out with some welcome enhancements to Time and Labor in the 9.1 release. The release value proposition (RVP) document which highlights the major feature additions to the various modules talk about the following enhancements to T&L:

  • Integration with Oracle Workforce Scheduler: I had mentioned this in a previous post and it will be a major product enhancement and offering from Oracle. I am raring to see how this integration works in 9.1 and I am sure a number of customers would love to have this feature in their enterprise application suites for workforce management.
  • Adoption of Approval Workflow Engine for T&L approvals: A number of HRMS modules like Absence Management has been using AWE from version 8.9, while the T&L application development team stuck to the traditional row security and time and labor groups driven approval. It is good to bring T&L to the fold of modules using AWE as organisations will be able to maintain the approval rules under a single framework. It will be interesting to see though how customers who are using custom T&L Dynamic group driven approval routings will migrate to AWE - I see some retrofit work there.
  • Adoption of Delegation Framework in T&L: Oracle started offering the delegation framework in version 9.0 and it is a welcome move that even T&L has moved over to that fold.
I also read about a very interesting and welcome enhancement is a bi-party integration with Microsoft Outlook 2007 (they have not mentioned whether they will be supporting older versions of MS Outlook) - I had mulled about this possibility while piloting the one way integration with MS Outlook from Peoplesoft. It is exciting to note that in 9.1, the Outlook Calendar and events can be read from Peoplesoft - it's high time that enterprise products integrate with desktop applications and this is a move in the right direction.

Sunday, August 9, 2009

Mass Loading Time into Timesheet

Last week there was a question on ittoolbox on how we can mass upload time into Time and Labor. I had mentioned in an earlier post that one of the features I would love to have in T&L would be one to upload reported time through a spreadsheet, because it is quite a common requirement to have a feature to mass upload time (especially during conversion projects). Here are the options one can mull over if ever it's required to mass load time into time and labor:

1. If you want to quickly enter time from PIA for a group of employees, then use the 'Report Rapid Time' utility. This can be found under the navigation - Time and Labor --> Report Time --> Rapid Time. Ensure that you run the 'Submit All Rapid Time' process after the above step. The only disadvantage with the above process is that you still need to key in the time as it's done online/
2. If on the other hand you want to automate the process completely by using an AE, you could explore the following options:
(a) Write a CI on the Report Rapid Time component and load time directly into the rapid time table and then run the Submit Rapid Time process.
(b) Use a File Layout and insert data into the TL_ST_ELPTIME table if you are loading Elapsed Time or TL_ST_PCHTIME if you are loading Punch time and then run the TL_ST_LIB Application Engine. The TL_ST_LIB AE will insert the data into the reported time table.
(c) Or if you want to directly insert into the RPTD_TIME table, then use the CI 'TL_RPTD_TIME_CI'

Wednesday, August 5, 2009

Deciphering the skeleton of Peoplesoft HRMS modules

The more I get to work on various modules, the more I find similarities between their basic architecture. For example, sample the architectural similarity between Payroll for North America, Time and Labor and Absence Management.

NA Payroll T&L Absence Management
Paygroups Workgroups GP Paygroups
Earning Program TRC Program Element Group
Earnings/Deductions TRCs Absence Takes
Calendars NA Calendars
Pay Run ID NA Calendar Run ID
Company NA Pay Entity
NA T&L Rules Formulas

It has also been my experience that almost all modules in Peoplesoft HRMS is designed to link the smallest functional unit of that module to the employee. For example, the smallest unit in T&L in TRC and everything that we do in Time and Labor is designed to link the correct TRC and quantity to an employee. The same would be the case for Absence Management and NA Payroll where the smallest unit would be an Absence Take and Earnings/Deductions respectively. Once you have this fundamental understanding, everything else will automatically fall in place.
Another powerful analogy is to an inverted pyramid where the smallest unit of the module will be at the tip at the bottom and the employee on the flat base at the top. The architecture of most modules I know builds up like an inverted pyramid from the smallest unit to aggregate in size and finally attach itself to an employee.

A simple example from Time and Labor would be the case of how a TRC is linked to an employee. At the bottom of the pyramid there is the TRC, above that is the TRC Program, above that there is the workgroup and finally at the base there is the employee. You can seamlessly extend this analogy to other modules as well.

A quick list of Absence Management Tables

I was thinking of writing a short yet extremely useful post and the first thing that came to my mind is Application Tables....For a table driven product like peoplesoft, getting to know the main records and their function is a huge plus.
So here is a very quick list of important tables in Absence Management.

1. PS_GP_PIN - Table that stores the pin details of all elements in GP/AM. Use to retrieve the Pin Name or Pin Code corresponding to a pin number.

2. PS_GP_ABS_EVENT - Major transaction table in Absence Management. All absences reported get stored in this table. The data in this table the raw reported absence. This table is analogous to the TL_RPTD_TIME table in Time and Labor.

3. PS_GP_RSLT_ABS - Table containing the calculated result of reported absence takes. The source for this table is GP_ABS_EVENT. This table is analogous to the TL_PAYABLE_TIME table. This table will contain one row for each day of the absence event. For example, an employee might report sick leave from the 1st to 5th of a month. GP_ABS_EVENT will have a single entry for the above event with a start date and end date. But, GP_RSLT_ABS will have five rows with each row containing the number of hours or days of absence.

4. PS_GP_RSLT_ACUM - Table containing the results of the accumulators in GP/AM. Accumulators can be used to track absence balances, cumulative takes, cumulative paid hours etc. This table is populated only after the absence calculation COBOL is run.

5. PS_GP_CAL_RUN - Table containing details regarding the Calendar Group ID. The Calendar Group ID is the major run control parameter used for running the absence processes and is a collection of various calendars.

6. PS_GP_PI_GEN_DATA - Any absence event that need to be sent to payroll will require a positive input (in terms of an Earning Code) to be defined. The positive input can be attached to a take in the Absence Take setup page. This table contains the corresponding positive input for the processed absences.

7. PS_GP_ABS_SS_STA - This table is coupled with the GP_ABS_EVENT table and is a workflow table. This table can be used to know the workflow status of an absence event. A separate entry is created for each workflow actions like Submit, Approval etc. This table can be very useful to track details regarding the approval/workflow status of an absence event.

Sunday, August 2, 2009

A short T&L quiz for the starters!

We recently started off an initiative that would fall under the category of 'Knowledge Management' (well using these terms are such a fad, but it helps to brand the initiative. Put simply it's just a quiz!!) to publish short quizzes/trivias on Peoplesoft every Thursday. I think it does it's small bit in building knowledge within the team - as it's short and simple, generates interest amongst the people, it's attached to a small rewards and recognition scheme and most importantly makes people go back to the basics of the things they work with every day.

So here is a small Time and Labor quiz that I prepared, it would rate 'easy' of the difficulty scale and we had a couple of people getting all the answers right. Why don't you give it a shot?

Question

Answer

Field that identifies whether time has come from TCD or Absence Management


What happens in Time and Labor when an employee goes on Maternity Leave?


Where can you configure the fields that appear on a timesheet?


Name the view that gives schedule details for each day


Name the table that contains the mapping of schedules and employees


Can you save a workgroup without specifying a TRC Program and Rule Program?


Field that can be used to identify whether payable time has been approved or not


After successful completion of time admin, the earliest change date of an employee is reset to which date? (Assuming there are no exceptions)


Which table contains the earliest change date field?