Thursday, August 14, 2014

'Override Position Data' and 'Use Position Data' Option in Job Data Page

'Override Position Data' and 'Use Position Data' Option in Job Data Page

Almost everyday we see this option on the Job data page but not everyone of us know the functionality associated with this button especially if one is entry level PeopleSoft Analyst.

Well, to begin with, I would say this option is applicable only when our company is using full or partial position data management system and it has a significant impact on Employee's Job information when it's in 'Use Position Data' mode.

Please also see 

This button toggles between two labels 'Override Position Data' and 'Use Position Data' and both have specific significance. This button works as a switch, if the switch is on i.e the label turned to 'Override Position Data' then the changes done in the position through Position Data Page (Navigation: main > Organization Development > Position management > Maintain Positions/Budgets > Add/Update Position Info) will be fed into Job Data page for all the incumbents of that position.
But if the switch is off i.e the label turned to 'Use Position Data' then the changes done in the position through Position Data Page will not have any impact into Job Data page for any of the incumbents of that position in which case the incumbent's data in the Job Data page has to be updated manually to maintain the data integrity.
The button becomes available only on the new rows of data or when the page is in correct history mode.

The first time when the details are opened in Job Data page for an employee, the label of button is displayed as 'Override Position Data' and all the other fields such as Department,  Business Unit, Location etc... are unavailable for entry which indicates that the page is in 'Use Position Data' mode (Switch is on) and the changes made in Position data will be fed into Job Data page. When the button is clicked, the label is changed to 'Use Position Data' and all the fields such as Department,  Business Unit, Location etc... are available for entry which indicates that the page is in 'Override Position Data' mode (Switch is off) and the changes made in Position Data page will not be fed into Job Data page until the button is clicked again.

But why do we have such a button in the first place ?

There are scenarios when all the incumbents of a position might have different salary grades than the standard grade that is associated with the position. Hence the Grade field need to be overridden at employee level  So, when the position is assigned to a worker, most of the fields including Salary Grade in Job Data page are defaulted but the HR can still click on Override Position Data button and can override the Grade field to select the new grade.

Understand how the changes done in Position Data page Impact Employee's Job Data


So far it all looks theory and might be bouncing off your head hence I have to explain it in such a way that even someone who just started their career in PeopleSoft could understand this entire theory. we will take an employee for example and do a transaction to understand how the changes done in Position Data are fed into Job Data.Lets assume that your company is using fully position data management, Now follow below steps:

Step 1:  Pick an employee and their position

Pick any active employee and open their job details from Job Data page (Navigation: Main > WFA > Job Information > Job Data). Copy the position number assigned to this employee. Be default, the button's label will be 'Override Position Data' which means the switch is on.

Step 2: Make some changes in the Position Data

Open the position details from Position Data page (Navigation: Main > Organizational Development > Position Management >Add/Update Position Info) of the above copied position. Add a new row in this page, change the salary grade then click on save.

Step 3: Check if position data changes have been fed into Job Data

Open the employee's job data again from Job Data page and see if a new row with the same effective date as of Position Data has been added here with a particular Action and Action Reason.

Above exercise has been done while the switch was on i.e button's label was kept as 'Override Position Data' but, what if this switch was off while doing the above exercise ? 

The Answer would be, If the switch was off i.e button's label was kept as 'Use Position Data then after making changes in Position Data (Step 1 & 2) when you open the Job Data page to see if the changes have been fed into Job Data (Step 3), You would have found that the changes have not been fed into job data. 


Please also see

Want to learn PeopleSoft Core HR module thoroughly? I have several videos with total duration of 12 hours.


Following is the link to the YouTube videos Core HR
Click here to see course contents

Click here to know how it works

However, if you want to save money by purchasing whole module instead of in parts then visit this page to get more details PeopleSoft Functional and technical online training

Tuesday, August 12, 2014

How the Various Date Fields on Employement Data Page are Updated

In recent past, I was asked to prepare a report which should have list of all the new joiners since 1st Jan 2014 and I positively nodded to do the same as it appeared quite easy. I instinctively started writing max effective dated query on JOB record with use of Action 'HIR' as additional criteria hoping to get the desired result.

But it wasn't as easy as I thought it would be since there were few scenarios for which the query wasn't working. Then suddenly three fields 'Last Start Date', 'First Start Date' and 'Original Start Date' on the Employment Data page drew my attention. I did  little analysis as to which one of these three will serve my need . We will talk about each of these these three fields in detail and explain how they perfectly sorted out my problem.

Please also see

'Last Start Date' Field in PeopleSoft

This field gets updated with the value of EFFDT field on Job Data page when the Action 'HIR' is used i.e when a person is hired and also in the subsequent instances whenever Action 'REH' is used i.e whenever the person is rehired in the organization and also, this field cannot be overridden. Well, it became clear that this particular field suits my need perfectly as it tracks the latest start date i.e hire as well as rehire date in case the person has been rehired. Hence, I quickly replaced my SQL with this one:

SELECT J.EMPLID FROM PS_JOB J
 WHERE J.LAST_HIRE_DT >= '<Enter the Date>'
   AND J.ACTION IN ('HIR', 'REH')
   AND EXISTS (SELECT 'X' FROM PS_JOB J1
                WHERE J1.EMPLID = J.EMPLID
                  AND J1.HR_STATUS = 'A'
                  AND J1.EFFDT = (SELECT MAX(J2.EFFDT) FROM PS_JOB J2
                                   WHERE J2.EMPLID = J1.EMPLID
                                     AND J2.EMPL_RCD = J1.EMPL_RCD
                                     AND J2.EFFDT <= SYSDATE
                                 )

                  AND J1.EFFSEQ = (SELECT MAX(J3.EFFSEQ) FROM PS_JOB J3
                                    WHERE J3.EMPLID = J1.EMPLID
                                      AND J3.EMPL_RCD = J1.EMPL_RCD
                                      AND J3.EFFDT = J1.EFFDT
                                  )
               )


   The above query will return all the new joiners since a particular date.


'First Start Date' Field in PeopleSoft

This Field is updated only when Action 'HIR' is used in Job Data page i.e when the person is first hired in the organization. It gets defaulted with the value of EFFDT field on the Job Data page and remains unchanged in subsequent transactions including rehires. It cannot be overridden.


'Original Start Date' Field in PeopleSoft

This particular field gets defaulted with the value of EFFDT on the Job Data page but can be overridden. As far as I understand, the purpose of having this field is to track the hire date which HR Admins want to keep different from the hire date stored in the field 'First Start Date'

Please also see
Understanding PeopleSoft Checklists 

There are other fields too in the list that are updated in similar fashion at different levels and we will try to understand the purpose of having them in PeopleSoft with a live scenario. Note that all these fields are updated at two different levels Organizational Instance and Organization Assignment.
 


Get more details on these two entities at the link - PeopleSoft 9.1 Person Model
Bobby Singh joined company XYZ on February 2, 2002. At the end of 2006, company ABC bought company XYZ; it completed the takeover on January 1, 2007. When the HR administrator at company ABC first enters Bobby in the system, he creates a job data record with the action of HIR and an effective date of January 1, 2007, reflecting Bobby's hire date with the new company.Though the field ‘Original Start Date’ gets defaulted to ‘01/01/2007’, HR admin overrides it to the EFFDT when Bobby actually joined the organization XYZ which later on bought by ABC, i.e. 02/02/2002.
The field 'Org Instance Service Date' is used to calculate the Service period for an employee and gets defaulted with the value of the field EFFDT on Job data but it can be override on the Employment Data page in case HR admin wants to keep the Service date different.


After one year, Bobby gets terminated effective from January 2 2008 and the action affects two fields (Highlighted in red) as shown below:
 

In the following year Bobby again gets rehired in the organization effective from January 5 2009 which affects below fields (Highlighted in red): 


After two years Bobby gets an additional assignment in the same organization effective from May 10 2011. The action affects below fields (Highlighted in red) 


Did you observe something here as to how all these fields are getting updated at two different levels?

Whenever we use any of the following Actions 'HIR', 'REH', ADD and 'TER', the fields at both levels are updated since these actions have direct impact on the Organizational Instance.

Whenever we use any of the following Actions 'ADL', 'ASG' and 'ASC', the fields at Organizational Assignment level are updated since these actions have their impact on the Organizational Assignment only.

Please also see


Want to learn PeopleSoft Core HR module thoroughly? I have several videos with total duration of 12 hours.


Following is the link to the YouTube videos Core HR
Click here to see course contents

Click here to know how it works

However, if you want to save money by purchasing whole module instead of in parts then visit this page to get more details PeopleSoft Functional and technical online training

Thursday, August 7, 2014

Simplified Way to Provide a Page Access in PeopleSoft

Ever thought how these PeopleSoft security personnel provide page access to someone? Or have you as an entry level PeopleSoft Analyst, ever wanted to gain access to a page through changes in security setup on your own without reaching out to any PeopleSoft security personnel?

If so then just chill out as doing all this is not really a big deal and doesn’t take much to understand as to how the security settings are analyzed and changes in the setup is done in order to provide a page access to someone.


Let’s say you have a customized page ‘Transfer Employee IND’ and it’s at the navigation Main > MSS > Job and Personal Information > Transfer Employee IND and there is a user Sanjay Verma who you want to provide access to this page.

Step 1: Find which permission list has access to this page

        a)     Go to the navigation Main > People Tools > Portal > Structure and Content
        b)    Click on the link ‘Manager Self Service’
        c)     Again click on the link ‘Job and Personal Information’
        d)    Find the page ‘Transfer Employee IND’ and click on the link ‘Edit’ available on the right
        e)     Now click on the ‘Security’ tab which can be seen in the top.
        f)     Here you will see all the permission lists that have access to this page.
        g)    Copy any one of them.

Now you have the Permission list which has access to this page.

Step 2: Find the Role assigned to this permission list

       a)     Open the definition of the Permission List you copied earlier (Navigation: Main > People Tools > Security > Permissions and Roles > Permission Lists)
       b)    Click on the last tab ‘Permission List Queries’
       c)     Click on the link ‘Permission List’s Roles’, it will give the Roles assigned to this permission list
       d)    Copy the appropriate one

Step 3: Add the Role to the user ‘Sanjay Verma’

       a)     Open Sanjay’s profile (Navigation: Main > People Tools > Security > User Profiles > User Profile)
       b)    Click on the tab ‘Roles’
       c)     Add the Role which you found in previous step, into the list.
       d)    Click on Save.


In case, no Roles have been assigned to this permission list you need to either add the permission list to any of the existing Roles given to Sanjay Verma or create a new Role and add the permission list to this role. Then the newly created Role can be given to the user.
Be careful here, if you are making changes in an existing Role which might have been assigned to others then they will also get access to the page. This shouldn’t be an issue in non-production environment but in production please do a thorough analysis before making the changes in any role.



Unable to See Future Dated Employee Record in Job Data Component

About two weeks ago I received an email sent by someone from HR stating that they are no longer able to see data rows in the job data page for an employee who they recently hired. 

As usual my first instinct was, It has something to do with row level security where someone must have had done some changes in the security setup. 

I began investigating the issue by first trying to open the employee details in Job Data page and guess what, even I wasn't able to see anything. Then I turned my attention to the core row level security setup and there was no sign of any changes made. I also checked the data rows in the JOB table from back end and nothing did seem suspicious.

I was stunned, how the  data rows have suddenly disappeared even though nothing has been changed in the security setup.

Please also see
'Override Position Data' and 'Use Position Data' Option in Job Data Page
Hiring a Person in PeopleSoft
How to find the List of Users Assigned to a Role
How the Various Date Fields on Employment Data Page are Updated
PeopleSoft 9.1 Person Model
How to Resolve a Row Level Security Issue in PeopleSoft
Part Time/Full Time, Regular/Temporary and Contingent Workers in PeopleSoft
SQL Query to find all the Direct Reports for a Manager 
Understanding Component Interface in PeopleSoft 
How the FTE is Calculated in PeopleSoft
PeopleSoft HRMS Online Training


I again turned my attention to the data row hoping to get some clues and luckily I found something this time. There were two transactions done on top of hire row and interestingly all of them including hire row were future dated.

EMPLID             EFFDT                                         ACTION 
00001                25-SEP-2014 (Future Dated)          RFL
00001                25-AUG-2014 (Future Dated)         LOA
00001                20-AUG-2014 (Future Dated)         HIR

Those of you who are not aware of the potential root cause must be wondering as to why these future dated transactions in Job Data page are being considered so unusual because these are very common business scenario where users can do such transactions.

Of course its very common to have future dated transactions in Job Data component but what is uncommon is that whether we have done appropriate Security Installation Settings (Navigation: Main > Setup HRMS > Security > Core Row Level Security > Security Installation Settings) exclusively for future dated Job Data transactions so that data rows are accessible in the Job Data Page.


Understanding Future Dated Security in PeopleSoft


The Security Installation Settings page enables you to select Actions that, when used on the Work Location page (JOB_DATA1), trigger the SavePostChange PeopleCode to create a future-dated row in SJT_PERSON.

Lets elaborate on it little more.
Open the page Security Installation Settings (Navigation is already given above)


The Actions listed here will cause update in SJT_PERSON table if used in the Job Data page during transactions.
Lets take Action 'HIR' as an example, when a person is hired in PeopleSoft with future effective date and since this action exists in the page above (Security Installation Settings) hence, the SavePostChange PeopleCode will trigger an insert in SJT_PERSON table for this hire row so that the record of this employee is accessible in Job Data page.
But, If the Action 'HIR' wasn't added in the page above then the employee wouldn't have been accessible in the Job Data page as there is no update in SJT_PERSON for the hire row this time.

What will happen if another future effective dated row added on top of hire row with an action which doesn't exist in the page above ?

Well, nothing will happen until the process 'Refresh Tran. SJT Tables' (Navigation:Main > Setup HRMS > Security > Refresh Tran. SJT Tables) is run i.e the employee's record will still be visible in Job Data page until we run the refresh job. But, as soon as we run the process mentioned above, the rows from SJT_PERSON will be deleted for the hire row hence employee's record will no longer be visible in Job Data page. 

Hope the things are clear until now So, we will get back to the issue I mentioned in the beginning and try to understand why the newly hired person is no longer visible in Job Data page.

I checked what are all actions already added in the Security Installation Settings page and found that the actions 'LOA' and 'RFL' were not added in the list but the action 'HIR' was.
Hence, when the employee was hired with action 'HIR', rows were added in the SJT_PERSON table and the employee was accessible but when another transaction was done with the action 'LOA' the nightly SJT refresh process deleted the rows from SJT_PERSON table which were added during hire making the employee's records invisible in Job Data page.

So, what solution did we use to resolve the issue ?
Nothing big, we just added other two actions 'LOA' and 'RFL' in the Security Installation Settings page and ran the nightly process to refresh Transaction SJT tables (Navigation:Main > Setup HRMS > Security > Refresh Tran. SJT Tables)


Please also see
Simplified Way to Provide a Page Access in PeopleSoft
PeopleSoft Set Control Field
Adding and Maintaining Person Of Interest in PeopleSoft
FTE For Multiple Jobs in PoeopleSoft
Hiring a Person in PeopleSoft
Part Time/Full Time, Regular/Temporary and Contingent Workers in PeopleSoft
Understanding Component Interface in PeopleSoft
SQL Query to find all the Direct Reports for a Manager 
How to find the List of Users Assigned to a Role
How the FTE is Calculated in PeopleSoft
PeopleSoft 9.1 Person Model
How to Resolve a Row Level Security Issue in PeopleSoft
Part Time/Full Time, Regular/Temporary and Contingent Workers in PeopleSoft 
'Override Position Data' and 'Use Position Data' Option in Job Data Page 
How the Various Date Fields on Employment Data Page are Updated 

Monday, August 4, 2014

SQL Query to Find Direct Reports for a Manager in PeopleSoft


In my everyday work I often require to get direct reports for a supervisor. I do even see my colleagues looking for such a query because as far as I know there is no delivered page or record view in PeopleSoft which could give us such info.

Finally I decided to write one of my own. Trust me, the SQL I am sharing has been tested well and its working perfectly. Note that the query will not consider terminated direct reports.

Just enter EMPLID of the supervisor in the highlighted area and run, you will get list of all the direct reports for this supervisor.


SELECT J.EMPLID FROM PS_JOB J
 WHERE J.HR_STATUS = 'A'
   AND J.EFFDT = (SELECT MAX(J1.EFFDT) FROM PS_JOB J1
                   WHERE J1.EMPLID = J.EMPLID
                     AND J1.EMPL_RCD = J.EMPL_RCD
                     AND J1.EFFDT <= SYSDATE
                 )
   AND J.EFFSEQ = (SELECT MAX(J2.EFFSEQ) FROM PS_JOB J2
                    WHERE J2.EMPLID = J.EMPLID
                      AND J2.EMPL_RCD = J.EMPL_RCD
                      AND J2.EFFDT = J.EFFDT
                  )
   AND J.REPORTS_TO  = (SELECT JB.POSITION_NBR FROM PS_JOB JB
                         WHERE JB.EMPLID = '<Enter Manager ID>'
                           AND JB.HR_STATUS = 'A'
                           AND JB.EFFDT = (SELECT MAX(JB1.EFFDT) FROM PS_JOB JB1
                                             WHERE JB1.EMPLID = JB.EMPLID
                                               AND JB1.EMPL_RCD = JB.EMPL_RCD
                                               AND JB1.EFFDT <=  JB.SYSDATE
                                           )
                           AND JB.EFFSEQ = (SELECT MAX(JB2.EFFSEQ) FROM PS_JOB JB2
                                             WHERE JB2.EMPLID = JB.EMPLID
                                               AND JB2.EMPL_RCD = JB.EMPL_RCD
                                               AND JB2.EFFDT =  JB.EFFDT
                                           )
                       )


Please also see
Simplified Way to Provide a Page Access in PeopleSoft
PeopleSoft Set Control Field
Adding and Maintaining Person Of Interest in PeopleSoft
Unable to See Future dated transactions in Job Data page in PeopleSoft
Hiring a Person in PeopleSoft
Part Time/Full Time, Regular/Temporary and Contingent Workers in PeopleSoft
Understanding Component Interface in PeopleSoft
FTE For Multiple Jobs in PoeopleSoft 
How to find the List of Users Assigned to a Role
How the FTE is Calculated in PeopleSoft
Understanding Future dated security in PeopleSoft
How to Resolve a Row Level Security Issue in PeopleSoft
Part Time/Full Time, Regular/Temporary and Contingent Workers in PeopleSoft 
'Override Position Data' and 'Use Position Data' Option in Job Data Page 
How the Various Date Fields on Employment Data Page are Updated 
PeopleSoft HRMS Online Training


Want to learn PeopleSoft technical module thoroughly? I have several videos with total duration of over 50 hours.


Following is the link to the YouTube videos Technical
Click here to see course contents

Click here to know how it works

However, if you want to save money by purchasing whole module instead of in parts then visit this page to get more details PeopleSoft Functional and technical online training