Thursday, August 7, 2014

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 

5 comments:

  1. Thanks For The Awesome post I am facing the similar issue now. but we have HIR already added even though it does not take future dated rows in SJT_PERSON table. What can be other cases

    ReplyDelete
  2. verify employee department id in security tree. if not add dept id to department security tree and run the 3 SJT app eng job to view employee information (PS_SJT_CLASS_ALL)

    you can also verify by using below query.

    select * from PS_SJT_CLASS_ALL where SCRTY_KEY2 =''

    Thanks,
    Kotapati

    ReplyDelete
  3. This is one of the most helpful posts I have ever seen in my life as today I had EXACTLY the same thing happen in my system! Saved me a few hours of head-scratching for certain! thanks Santosh!

    ReplyDelete
  4. Thank you very much. This was actually very helpful.

    ReplyDelete
  5. This was a great post! saved me hours of work today.

    ReplyDelete