Saturday, September 24, 2016

PeopleSoft Time and Labor Setup Architecture

Lets first have a look at this image:


Time and Labor Setup, Time and Labor Architecture
The image shows how all the elements in Time and Labor setup are related.

Holiday Schedule

They contain the calendar for public holidays which can be defined for a country, region within the country or at business unit level etc... It’s a very vital element because when the time is reported for a period through the timesheet page, system must know if there is any public holiday in that period.

Work Schedule

This represents the working pattern of employees for example an employee’s work patter could be any of these:

  1. Monday to Friday 8 hours each day with Saturday and Sunday weekly offs
  2. Monday to Wednesday 8 hours each day, Thursday to Friday 10 hours each with Saturday and Sunday weekly offs
  3. Tuesday to Saturday 4 hours each day with Sunday and Monday weekly offs

Having work pattern details in Time and Labour is very important because according to this only employees will report their time.  Work Schedules are grouped together to form Schedule Groups.

Time Period

It’s the date range for which employees will report their time for example Daily, Weekly, Monthly, Bi-Weekly etc...

Time Reporting Code(TRC)

These are used to just track employee’s time for administrative or compensation needs. 
For example:
We can define a TRC as REGLR for reporting regular weekly time
We can define a TRC as PAIDLV for reporting paid leave
We can define a TRC as OVRTME for reporting over time.

For instance, if an employee who is supposed to work 40 hours a week, works for 35 hours in which 3 hours of overtime on Friday is included and takes 1 leave then this is how the time will be reported against corresponding TRCs:

Mon  Tue  Wed  Thu  Fri   Sat  Sun   TRC
 8     8      8      8                         REGLR
                              8               PAIDLV
                           3                  OVRTME


Similar TRCs are grouped together to form TRC Program.

Compensatory Time Plan

These are used to administer compensatory time for employees. The system maintains
each instance of a time reporter's earned compensatory time and the quantity and date earned.
Example:
Employee works on two holidays falling in a time period and on Saturday so when they report time for that period, this is how they would do (Here COMPH and COMPW are the TRCs defined for Comp Time):

Mon  Tue  Wed  Thu  Fri   Sat  Sun   TRC
 8       8     8                                 REGLR
                       8     8                 COMPH
                                   8           COMPW

Since, employee isn’t supposed to work on holidays or weekly offs but even then they worked in this period, the hours worked in these days get added as Compensation Earnings. So now employees can avail these earned hours just as paid leaves.

Workgroup

Similar to Paygroup in Payroll module.  All the employees in a workgroup share identical compensation requirement. All the previous elements are mapped to the workgroup.
All the workgroup members share:

  • Same reporting type: exception or positive
  • Same holiday schedule
  • Same TRC program
  • Same compensation rules
  • Same needs for time approval
  • Same association to a comp. Off plan
  • Same day breaker
  • Similar rounding rules

Taskgroup

A taskgroup is a group of employees who have similar work or task – reporting requirements
Taskgroups identify the default time reporting template, task template, and task profiles that are valid for members of the taskgroup.
Some organizations refer to taskgroups as labor classes or labor class rate groups.
Task: attributes of reported time such as department, product or project – that defines how or where time was spent
Task template you specify which task entities you want members of a taskgroup to report their time to (i.E. Company , department , project)
Task profile “fill in the blanks “ for a task template. If used, a time reporter task related fields will be completed automatically with the values in the task profile

Time Collection Devices(TCD)

Used to collect and report the time that is recorded through a third party time clock tool. TCD interface provides packaged integration points to:
  • Collect clock and elapsed time from any TCD
  • Send necessary setup data to these devices for reporting
System supports scheduling, reporting, managing and applying rules to TCD time. You can create a separate group for TCD time reporters

Wednesday, September 7, 2016

How the Time is Processed in PeopleSoft Time and Labor

There are different stages in the time processing right from the stage when the time is reported till the stage when the time is ready to be picked up by payroll. Lets discuss those stages in the same sequence the time goes through when its processed.

Stage 1 - Time Reporting

This is the stage where employees report their time based on the work schedule assigned to them. There are broadly two ways to report the time:

Online

The time is directly entered into Time and Labor system through online pages and it can be done by one of the following ways:


Timesheet page for employees (ESS  – Time Reporting – Report Time – Timesheet)
Used by employees to report their time for a particular period.

Mass Time page for employees (ESS  – Time Reporting – Report Time – Mass Time)
Used by employees to report their time for a date range and can include multiple periods.

Timesheet page for managers (MSS – Time Management – Report Time – Timesheet)
Used by managers to report time for their direct reports for a particular period.

Mass Time page for managers (MSS – Time Management – Report Time – Mass Time)
Used by managers to report time for their direct reports for a date range and can include multiple periods.

Rapid Time page for Time Admins (Time and Labor – Report Time – Rapid Time)
Used by administrators to quickly report time for group of employees. No up-front validations are done when the time is submitted here and rules are applied during the time admin process run.

Using Time Collection Devices (TCDs)

In many organizations, employees have to punch in/out to record the working hours based on which they are paid. The difference between Punch In time and Punch Out time is then sent to PeopleSoft Time and Labor through interface file which is then captured in PeopleSoft by TCDs (Time Collection Devices)

Stage 2 - Reported Time

Time reported through either of the methods is called reported time and is brought in the table TL_RPTD_TIME where it awaits for approval if the approval is setup to be required which is optional though. There are three possibilities if approval is required:

Manager approves the time

Once approved, the time is now considered as final reported time. 

Manager pushed it back

The time is sent back to employee for correction and to submit back again. 

Manager denies the time

If it’s denied then employee can’t take any further actions on this time but manager can still make corrections individually and submit back again for approval which has to be approved by N+2 and then the Time Admin process TL_TIMEADMIN will pick it up again. After that it will be converted into Payable time which again has to be approved by N+2.

After approval, its fully considered the reported time and stays in the table TL_RPRTD_TIME with Reported Time status as ‘Approved’ and its ready for being processed by Time Admin process.



Stage 3 - Processing the Reported Time(Time Administration)


In this stage we run the approved reported time lying in the table TL_RPTD_TIME table using the time admin process TL_TIMEADMIN (Navigation: Time and Labour –  Process Time – Request Time Administration).
On a very high level, following tasks are performed in this stage:

1) Time admin process TL_TIMEADMIN collects eligible employees based on the Group ID supplied in run control page.

2) It picks the reported time for all those employees, process the time based on the rules defined and generate exceptions for issues. The exceptions have to be addressed and the process should be run again.
3) Finally, this process generates payable time which is brought in to the table TL_PAYABLE_TIME.
4) All the exceptions generated in this step are stored in the table TL_EXCEPTION.


Stage 4 - Payable Time


The payable time generated in the previous step and lying on the table TL_PAYABLE_TIME awaits for approval if the approval is setup to be required which is optional though. There are three possibilities if approval is required:

Manager approves the time

Once approved, the time is now considered as final payable time and is ready to be sent to payroll.

Manager pushed it back

The time is sent back to employee or originator for correction and submit back again in which case the time will have to go through all the stages again.

Manager denies the time

If it’s denied then employee can’t take any further actions on this time but manager can still make corrections individually and submit back again for approval. Even in this case, when the time is submitted again, it will be treated as reported time which has to be approved by N+2 and then the Time Admin process TL_TIMEADMIN will pick it up again. After that it will be converted into Payable time again which again has to be approved by N+2. 



Monday, August 1, 2016

How to enable Signon Tracing option in PeopleSoft

Imagine a situation where you are banging your head trying to debug the PeopleCode to find out the root cause of an error/warning message appeared while doing transaction on a component. When the component is too big like JOB_DATA then its like looking for a needle in a haystack.

Fortunately, PeopleSoft has some sort solution for every problem and this particular case is not an exception. Do this to tackle it:
  1. Enable the Sign on trace options
  2. Sign in and do the same transaction 
  3. Retrieve the trace file generated in the app server
  4. Look for the place where the error/warning message has been produced
Done..!

The sign on tracing can be enabled by just appending trace=y to the URL as shown below:



As soon as the parameter is appended press Enter and the tracing options will be available. 




It is however very important to note that we must not check all the options under each category because:
  • It will cause the portal to become very slow
  • The generated trace file will be excessively huge 
Therefore, If for example you want to debug an error occurred on the page then simply select the options as shown in the above image and go on. You can also change the selection based on the type of debug you want to perform.

Once you are done doing the transaction, its time to locate the trace file that have been generated. The trace file can be found under:

PS_HOME/appserv/INSTANCE_NAME/LOGS

Where PS_HOME and INSTANCE_NAME can be replaced with the appropriate values for the instance you are working on. For example if PS_HOME is pt854 and INSTANCE_NAME is HRDEMO the path on a UNIX server will look like:

xx/xx/pt854/appserv/HRDEMO/LOGS

And the trace file name will be something like: OPRID_xxxxxxxx.tracesql where xxxxxxxxx will be a number.

New Set ID not visible in Control Data Setup pages in PeopleSoft

When we create a new Set ID from PeopleTools - Utilities - Administration - Table Set ID they don't just be available in the control data setup components like Department, Location, Jobcode etc. unless we map it with a Business Unit.

Didn't get it ?

Let's understand with a simple exercise.

  1. Create a new Set ID as SET01 ( PeopleTools - Utilities - Administration - Table Set ID)
  2. Go to Department Setup page ( Setup HCM - Foundation Tables - Organization - Department)
  3. Click on 'Add New Value' 
  4. Click on Set ID prompt and try to search the newly created Set ID SET01
  5. Set ID cannot be found here.

Now do this:

  1. Create a new Set ID as SET01 ( PeopleTools - Utilities - Administration - Table Set ID)
  2. Go go Business Unit setup page (Setup HCM - Foundation Tables - Organization - Business Unit)
  3. Open an existing BU or create a new one
  4. Assign the newly created Set ID SET01 in the Set ID field under the section 'Default Record Group Set IDs'
  5. Go to Department setup page (Setup HCM - Foundation Tables - Organization - Department)
  6. Click on 'Add New Value' 
  7. Click on Set ID prompt and try to search the newly created Set ID SET01
  8. Set ID is visible this time

That's because we have mapped it to a Business Unit and it became a valid one.

Tuesday, July 26, 2016

Definition Security Error "You are not authorized to access the definition XXXXXXX"

Ever wondered how come you aren't allowed to run/modify a definition (Query, AE program, App Package) through PIA or application designer ?

Let me share you an incident. ew days ago after the launch of a new security setup in PeoleSoft I was trying to run a common query for a User Profile under tab 'User ID Queries' in the component User Profile (Navigation: Peopletools - Security - User Profiles - User Profiles) and to my surprise I got following error:F

You are not authorized to access the definition XXXXXXX

Where XXXXXXX can be replaced by the definition name depending upon which definition you are trying to access and it was PT_SEC_USER_ROLES in my case. My instinct said there was something wrong with my PS query access so I quickly checked the same but didn't find anything unusual i.e I still had the access to the Query Records and nothing suspicious in Query Properties too.

After hours of digging I found the root cause and it turned out that the Query was protected through Definition Security (Navigation: PeopleTools - Security - Definition Security - Definition Groups).

In PeopleSoft we can add another level of security through definition security which overrides the other security configurations on the definitions. For Example: even if we have granted security on a CI to a user through Role/PL but in Definition Group setup we haven't allowed user to have access to this CI through PL then in the end User will not have access to that CI.

When you open the Definition Groups component from the navigation given above and click on Search, all the defined definition groups are displayed. A new definition group can also be created from the given link.


When you click on one of the definitions (PEOPLETOOLS) all the individual definition types such as AE, Records, CI, Components etc... added in this group will be displayed.


Furthermore, when Component Interface definition type is clicked, all the CIs added in this category will be displayed. We can even add a new CI in this category and as soon as the new CI is added, it will come under the security net. Similarly, whatever definition we add not just in this category but in other categories as well they will come under the security net.

If we need to grant access to someone on all the definitions added under the definition group PEOPLETOOLS, we need to just add one of the PLs assigned to the person through role in this definition group as shown below:



 As you can see, the access is given through PL at the Definition Group level and not at the individual definitions level so once the PL is added in the Definition Group it will have access all the definitions added in it. Once the PL is added here, it will start reflecting in the PL definition page under the tab Definition Security.








Saturday, April 30, 2016

PeopleSoft to PeopleSoft Integration through Integration Broker

Before you begin reading this article, you must know - Fundamentals of PeopleSoft Integration Broker

In this we will see what are the steps to integrate one PeopleSoft Application with another one and will do it for the same scenario we talked about in the article Fundamentals of PeopleSoft Integration Broker. In this example, the PeopleSoft FIN system is the source system and the PeopleSoft HCM system is the destination system.
On a very broad level, this is what we are going to configure:
• The integration gateway.
• The PeopleSoft Finance system.
• The PeopleSoft HR system.

Configuring the Integration Gateway

The only required property that you must set for the local gateway is the Oracle Jolt connect
strings that enable the gateway to find the PeopleSoft HR system. Set this property in the
integrationGateway.properties file.

So, open the integrationGateway.properties file on Web Server and update the Jolt Connect String. You can open this file from below highlighted link on Gateway Component in PeopleSoft Finance System.




Configuring the PeopleSoft Finance System


Perform the following tasks on the PeopleSoft Finance system:

Local Gateway


Define the local integration gateway in the PeopleSoft Finance system by using the
Gateways component.
Any integration gateway that you've installed and configured to find the PeopleSoft HR system can
serve this role. Specify the gateway's PeopleSoft listening connector as the gateway's URL.



Note that the Local Gateway setup will be same in both Finance and HR system.

Message 

Define the message from the navigation PeopleTools - Integration Broker - Integration Setup - Message. This should reflect the rowset structure of Bank Account component in HR system because this structure will be used to transmit data to HR.

Handler

Define the handler using Application Designer. Since in our case the Finance System is a sender and there is only one way communication so only a dummy Application Package and Class is required with no Processing Logic written in it.

Routing

Routing is where we define the following:

  • One way communication or two way (In our case its One Way)
  • Synchronous or Asynchronous (In our case its Asynchronous)
  • The sender and receiver nodes (In our case PS Finance is Sender and PS HR is Receiver)
Navigation: PeopleTools -Integration Broker - Integration SetUp - Routing

Service Operation

It ties previous three elements - Message, Handler and Routing together and forms a mechanism for integration. Define the service operation and add those three elements in it.

Navigation: PeopleTools -Integration Broker - Integration SetUp - Service Operation

Node

Define two nodes, one for HR system and another for Finance system. The Finance Node in this case would be local and HR Node would be remote.

  • Also mention followings in node definition:
  • Connectors (Gateway and Target Connector)
  • Portal URLs (PIA URL)
  • Routing (Add the routing definition defined above)
The node definition can be same across PS to PS integration because it represents the whole system.
Navigation - PeopleTools -Integration Broker - Integration SetUp - Node


Configuring the PeopleSoft HR System


Perform the following tasks on the PeopleSoft HR system:


Local Gateway


As already mentioned, the Local Gateway in both systems will have same configurations.


Message 

Define the message from the navigation PeopleTools - Integration Broker - Integration Setup - Message. This should reflect the rowset structure of Bank Account component in Finance system because this structure will be used to read data sent from Finance system.

Handler

The handler in HR system would contain the actual processing logic since it has to read data sent from Finance and load into tables.
Its basically an application package containing a class definition which has the processing logic written in PeopleCode to read the data (Bank Account Changes).

Routing

Routing is where we define the following:
  • One way communication or two way (In our case its One Way)
  • Synchronous or Asynchronous (In our case its Asynchronous)
  • The sender and receiver nodes (In our case PS Finance is Sender and PS HR is Receiver)
Navigation: PeopleTools -Integration Broker - Integration SetUp - Routing

Service Operation

It ties previous three elements - Message, Handler and Routing together and forms a mechanism for integration. Define the service operation and add those three elements in it.

Navigation: PeopleTools -Integration Broker - Integration SetUp - Service Operation

Node

Define two nodes, one for HR system and another for Finance system. The HR Node in this case would be local and Finance Node would be remote.

  • Also mention followings in node definition:
  • Connectors (Gatway and Target Connector)
  • Portal URLs (PIA URL)
  • Routing (Add the routing definition defined above)

The node definition can be same across PS to PS integration because it represents the whole system.
Navigation - PeopleTools -Integration Broker - Integration SetUp - Node




Monday, April 4, 2016

Fundamentals Of PeopleSoft Integration Broker

I have been trying to push myself hard for a long time to publish this article but honestly, I have been way too lazy to do that. Well, now is the time.

A very important highlight of this article is we are going to talk about only absolutely relevant elements so that it becomes easier for you guys to get good understanding on Integration Broker because often times I find people being lost in the PeopleBooks trying to figure out what exactly they should refer to. 

Lets start with Architecture which shows the elements of Integration:

PeopleSoft Integration Broker Architecture



This architecture clearly depicts the integration between PeopleSoft Finance and PeopleSoft HR system represented by Node A and Node B respectively where the changes made in former would be transmitted to latter through Integration Broker.

Lets assume that the integration is setup for the Bank Account changes done on Finance System which should ultimately be transmitted to HR System to keep both in sync. Now our rest of the discussion would be based on this scenario.

The very first thing we must talk about is the various elements involved in this Integration Setup.

Elements of Integration


Integration Engine

The integration engine as you can see in the architecture above, is something that ties all the elements like Service Operation, Message, Routing etc... together which ultimately creates a mechanism for integrating two systems.
The integration engine runs on the PeopleSoft application server. Rather than communicating directly with other applications, the integration engine sends and receives messages through one or more separately installed integration gateways.

The integration engine:
  • Uses a modular architecture, so it can treat gateways as black boxes and communicate with them using standard connectors.
  • Handles messages containing data in a variety of formats. Formats include the PeopleSoft rowset-based message format, and nonrowset-based message structures including, XML document object model messages, Simple Object Access Protocol (SOAP) messages, and non-XML files.
  • Sends and receives messages asynchronously (like email) or synchronously (suspending activity to wait for a response).
  • Applies message transmission type and routing based on specifications that you define in a PeopleSoft Pure Internet Architecture component.


Gateway

The integration gateway is a platform that manages the receipt and delivery of messages passed among systems through PeopleSoft Integration Broker. It supports the leading TCP/IP application protocols used in the marketplace today and provides extensible interfaces to develop new connectors for communication with legacy, enterprise resource planning, and internet-based systems.

Additional features include:
  • Listening connectors and target connectors that transport messages between integration participants and the integration engine.
  • Basic logging information concerning message receipt, delivery, and errors.
  • Connection persistence with continuous open feeds to external systems through connectors, with full failover capabilities.
  • Transport protocol and message format management so that when messages reach the integration engine, they have a PeopleSoft-compatible message format.

Connectors

Listening Connectors

Listening connectors receive requests from integration participants, send them to the gateway manager, and deliver responses back to the integration participants.

Target Connectors

Target connectors generate requests, send them to integration participants, wait for responses from participants, and deliver the responses back to the gateway manager.

Message

Message definitions provide the physical description of the data that is being sent, including fields, field types, and field lengths. You create message definitions in the PeopleSoft Internet Architecture. In other words Messages are shapes that describe the contents of a service operation transaction.

In our scenario the message definition would contain the information about the table structure used in the component 'Bank Account' i.e the records used in the component and their hierarchy. This information will be used by Integration Engine to transmit the data when there is a change in employee's bank accounts. 

Message Type
When to Use
Details
Rowset-based messages
All PeopleSoft-to-PeopleSoft integrations
For hierarchical data that is based on PeopleSoft records, you create a message definition by assembling records, organizing them into a hierarchy, and selecting fields from those records to include in the message. 
Nonrowset-based messages
Integrations with third-party systems
These messages can have virtually any structure and content. You create a message definition, but you do not insert any records. The message definition serves as a placeholder for the actual message. 


Handler

It contains the processing logic for finally writing the data into tables/components of the receiving node. It is combination of Application Package, Class, Method created in the application designer.
In our scenario the handler defined on HR Node would contain the business logic written in PeopleCode to write the Bank Account changes received from Finance Node, to the corresponding tables/components. 

Routing

A routing definition specifies the direction of the integration (inbound or outbound), routing alias names, transformations, and more. 

In our scenario, the routing on HR Node would be Inbound and on Finance Node it would be Outbound.

Service Operations

This element forms for overall processing logic by combing following elements:

  • Message
  • Handler
  • Routing

Node

Nodes represent any organization, application or system that will play a part in integration.
In our scenario there are two nodes:

  1. One that represents PeopleSoft FIN System
  2. Another that represents PeopleSoft HR System

Because an application can send messages to itself, a default local node definition that represents the application is delivered as part of the integration engine.

Each PeopleSoft installation must have one, and only one, default local node.
Each PeopleSoft Integration Broker database involved in an integration must contain a default local node definition for itself, and a remote node definition for each of the other nodes involved.
Local and remote nodes are concepts relative to the database in which the nodes are defined. If you’re signed on to Database A which has Node A defined, then Node A is local. If you’re signed on to Database B, Node A is defined as remote.
In our scenario if we are in the Node A - PeopleSoft FIN System then:
·        Node A (default local)
·        Node B (remote)
The following definitions must exist in the Node B - PeopleSoft HR Systen for it to integrate with Node A:
·        NODE A (remote)
·        NODE B (default local)
In practice, only portals use nodes designated simply as Local. The only local node definition used by PeopleSoft Integration Broker is the one designated Default Local, which represents the database onto which you are signed.