Showing posts with label Peoplesoft. Show all posts
Showing posts with label Peoplesoft. Show all posts

Sunday, October 17, 2010

Roadmap for PeopleSoft HCM product line

Here are two insightful slides from the Open world presentation on PeopleSoft HCM product line. It clearly underlines the commitment from Oracle to support PeopleSoft and come with newer releases more often. The adoption of 9.1 has been phenomenal as seen from the first graph and the decision by Oracle to deliver quicker feature changes bodes really well for the customer.

Figure 1: Adoption rate comparison between 9.1 and 9.0




Figure 2: Investment strategy on PeopleSoft product line - 9.2, 9.3 etc.

Friday, April 24, 2009

What is the purpose of a TRC Category in Time and Labor?

Peoplesoft introduced a new definition in Time and Labor 8.9 called Time Reporting Category. A new field was introduced in the TRC Setup page, where a TRC could be mapped to a category. A TRC Category can be used to group functionally similar TRCs together. For example, if your organisation uses three different over time TRCs like OT1, OT2 and OT3 for different rates of overtime - you could create a TRC Category called Over Time and link the above three TRCs to this.
But where exactly is this new definition used?

The primary purpose of this new definition is to populate the newly introduced grid called 'Reported Hours Summary' in the Timesheet page. This grid gives the summary based on the TRC Category reported in the timesheet. This is specifically useful as a single snapshot view of the summary of various categories of time reported in a period. For example, suppose there are three TRC Categories like Regular, Overtime and Absence. In a week an employee has reported 4 hours of Regular time on three days, 2 hours of OT1 TRC on one day, 2 hours of OT2 TRC on one day, 8 hours of Sick Leave on one day and 3 hours of Bereavement Leave on one day. When this is summarised based on the TRC Categories - the viewer very clearly gets the picture that the employee reported a total of 12 hours of Regular Time, 4 hours of Over Time and 11 hours of Absence in the week.

Another potential use of the TRC Category definition is in reports to group TRCs together. Reports based on the TRCs reported, like overtime reports are very common in any implementation. In this case, it will be useful to create a single TRC Category called Over Time and link all the Over Time TRCs to that category and later use the category in the report rather than hard coding the TRC names.

You will also notice that this new definition has a mention in the Time and Labor installation page also, where we can control whether it should appear in the timesheet page. Even though its a very small functionality enhancement, I will advice any implementation that has more than 10 TRCs, to consider the use of well segmented, logical TRC Categories.

Wednesday, April 22, 2009

Direct Reports UI and Peoplecode Transfer Function

The Transfer function is used in Peoplecode to move the users to a desired page within the same component or another component. A syntax for the function is as shown below(source Peoplebooks 8.48 - Peoplecode Language Reference) :

Transfer(true, MENUNAME.ADMINISTER_PERSONNEL, BARNAME.USE, ITEMNAME. PERSONAL_DATA, PAGE.PERSONAL_DATA_1, "U");

As shown above, the Menuname, Barname, Itemname and Page name of the target page has to be passed in this function. Rather than hard coding these values in the code, it will be a good practice if the above parameters are derived from a PIA page. Take a look at the page where we set up the Direct Reports Utility (Setup HRMS --> Common Definitions --> Direct Reports for Managers --> Direct Reports Setup).


The delivered Direct Reports Utility is designed to show the same employee selection page to the manager in various components and then is designed to redirect the manager to the appropriate page using the Transfer function. This functionality can be adopted for any custom requirement also. The parameters for the transfer function can be configured on this page and later retrieved Peoplecode by passing the component and market details (Use %Component and %Market as best practis). The only disadvantage I see is that if there are multiple transfer functions being used in the same custom component, then this is not a feasible solution. The elegance of the solution lies in the fact that nothing will have to be hardcoded in the transfer function code and is a completely maintainable and scalable solution.

Sunday, April 19, 2009

Which city has the maximum Peoplesoft projects?

I installed Google Analytics on this blog last month - it is really fascinating to see the amount of data the tool provides free of cost. The metrics provided include - number of visits per day, source of visitors, key words used to search for the site, language, browser, time spent by a user on the site, navigation pattern etc. Out of all the metrics, one that really interests me is one called 'map overlay' - this gives the geographical location of the visitors. Now, I've been thinking whether I could look at the data on the map overlay metrics to arrive at the places around the globe where maximum Peoplesoft activity (read projects) happens. Here is how the metrics look as of today -
The number of visits are directly proportional to the darkness of the green on the map. So undoubtedly the USA is the place to be as far as Peoplesoft is concerned - within the US, California sent in maximum visitors followed by New York. India, Canada and the UK follow suite. There was considerable activity from South American countries like Brazil, Chile and Columbia as well as from Asian countries like Vietnam, Philippines and Singapore. These countries represent a viable alternative to traditional outsourcing centres like India and the South American activity is especially significant in this regard. The geographical proximity to the US and the growing Hispanic population in US should make South American countries an attractive 'near-shoring' alternative. It will be really interesting if other Peoplesoft bloggers and especially the ivy league PS bloggers like Grey Sparling and Jim Marion could share the visitor profiles on their site as it would give a more realistic view of Peoplesoft activity from across the globe. But in the mean time, keep those clicks coming!

Time and Labor 9.1 - Integration with Oracle Workforce Scheduler

One of the biggest challenges that we face in designing a time and attendance system for a retail business is the ability to accurately forecast and capture the work schedule of employees. One aspect of the problem is arriving at the work schedule itself - how does a retail store manager decide upon the schedule of the employees? A number of factors go into this - the size of the store, the sales demand forecast for a period, the availability of the workforce, employees on planned absences, legal work rules etc. Given the multitude of parameters involved, drawing up the work schedules is a complex, difficult and practically inaccurate task for the store managers. The second aspect is about keeping the time and attendance system (Peoplesoft in our case) updated with the actual work schedule details. It has been our common experience that though manager verbally communicate the work schedule details to the store employees, a manual updation of the same in the system does not take place. The third dimension of the problem is the importance of having the correct schedule data in Peoplesoft. Modules like Absence Management and Time and Labor (and ultimately Payroll as these two modules feed data to the Payroll module/system) heavily relies on having the correct scheduling data for proper processing and calculations.
This is where a Workforce Scheduling system comes into play. A Workforce Scheduler is a system that will generate the schedules for your organisation based on various rules like sales forecast, demand, labour availability, time studies for tasks etc. From an enterprise perspective - there will be a bi-directional integration between a Workforce Scheduling System and the Time and Attendance system. The Time and Attendance (or HRMS) System will send the employee and absence details to the Scheduling System and the Scheduling System in turn will send the work schedule details back to the Time and Attendance System. We have been piloting the use of such a Workforce Scheduler in TESCO and work on it's integration with Peoplesoft Time and Labor is on.
With this background, it came as a pleasant surprise for me to read that Oracle is planning on delivering an integration between Peoplesoft Time and Labor and Oracle Workforce Scheduler in it's 9.1 release.

For a retail organisation, where work schedule of employees is dynamic and dependant on a number of external factors like sales demand - having a workforce scheduling system is of strategic importance. Having a system that will accurately generate schedules and keep the schedule data in sync with the Time and Attendance System will result in huge time and cost savings. In this context, this is a brilliant service offering from Oracle and will further bolster it's Peoplesoft strategy and customer base.

Thursday, March 26, 2009

Automating Release Management - the XMLP way

Most organisations have a process where a document containing all the objects of a Peoplesoft project that is to be migrated to another environment is prepared. This document will be the reference point for the DBAs or the release management team who will be responsible to migrate Peoplesoft projects across environments. For a developer, the task of preparing the document is an over head especially if it's a project with a large number of objects - it's close to being a painful exercise of going through all the objects in the project and reflecting that in the document. Amongst the innovative tools developed here at TESCO we had a .NET based Automatic Release Notes generator. The user just had to input the name of the project and the tool would produce a file (again we had the choice to select the output type required - .doc or .xls) containing the details of all the objects in the project including the comments attached to each individual object definition wherever possible. But this tool had few limitations - (a) The output format was not in the template dictated by our standards (b) The tool was not available locally, we had to login to a remote desktop to access that and (c) The source code was in .NET and that was not appealing to a bunch of Peoplpesoft developers!
So the team could not use the tool and had to resort to a manual preparation of the release notes. It was then that we came up with the idea of writing an XML Publisher report to do the same. XML Publisher is a perfect tool to produce letters and documents because we directly develop the template in MS Word and that was just perfect in our case. For the initial version, we decided to just print the details of the objects in the project and not the comments for each object. Printing the comments would mean that we had to query the metadata table of each of the objects and that would be nearly impossible with a simple PS Query.
The datasource of the XMLP report was a simple PS Query that pulled data from the PSPROJECTITEM table. We added some prompts to the PS Query so that the user could input details to be printed in the release notes like the change number, name of author, change description etc. It's a very simple template which I am sure your organisation can develop with minimal effort. This tool has surely automated a non-value add area in our development process and helped our developers spent more time of development rather than documentation!
A small presentation on the report and how to use that is given below:

Thursday, March 19, 2009

Leaving it to XSL to do the dirty work!

The biggest misconception I had about XML Publisher was it's ability to do any logical processing - for me it was merely a presentation layer when I initially saw the product and far inferior to anything SQRs could do. How wrong I was! And this post is about the power of using XSL to do the programming logic within the template of XML Publisher to design faster and better reports.

When we initially started designing XML Publisher reports we stuffed in most of the calculations and logic in the data source itself - majority being PS Queries. This meant we had pretty bulky and costly queries with a number of PS Query expressions. This was not helping the cause at all with the reports taking an unacceptably long time to run. But as we got to understand the tool, we started doing more and more of the calculations and logical processing within the template using xsl - the groupings, summations, summaries etc. This has lead to dramatic improvements in performance and we believe that's the right way to approach XMLP reporting.
For example in one of our reports we had to print the total scheduled hours for all employees in a department along with some other information. The xml schema consisted of individual employee's data along with the deptid. A normal for-each-group:row;DEPTID tag was used to print individual departments, but to retrieve the total scheduled hours for a department an expression was used in the PS Query. This lead to significant performance drop, the query itself was taking over 30 minutes to execute. By eliminating the expression and summing up the scheduled hours for the department in the template itself the report was running in less than 5 minutes. A further grouping was done inside the DEPTID grouping to sum the scheduled hours of each employee (note that there were multiple rows for a single employee in the data set, but grouping by emplid would result in a single distinct row) and the set_variable function was used to add the scheduled hours to a variable.

In short keep the data structure of your data source as flat as possible and leave all the dirty processing work to the XMLP template! (And keep learning more of XSL to leverage the capabilities fully).