Wednesday, August 26, 2015

PeopleSoft Row Security - An Complete Overview

Problem Statement: Implementing Row Level Security
Scope: Overview of the PeopleSoft Row level security.

Data Permission Security/Row-Level Security refers to controlling access to the rows of data in your system. In PeopleSoft HCM we can control following type of data:
1. Employees.
2. Contingent Workers.
3. POI Without Jobs.
4. POI With Jobs.
5. Departments.


How It Works ?

PeopleSoft data security is enforced by security views, but to understand this we have to check how data is retrieved when a component is accessed.
 
Soucre: http://docs.oracle.com/cd/E51994_01/hcm92pbr4/eng/hcm/hhaf/concept_UnderstandingDataPermissionSecurityforHCM-e32975.html
 Process Flow:
1. When a component is accessed we can see the search page having fields which are search keys or the alternate search keys of the record which is a search record for that component.
2. Value provided in the search keys along with the user profile(Oprid, Permission List) gets added to the system generated SQL select statement to fetch the data from the database based on those combination.
3. When you look at the above example, Component search page includes search keys like emplid and name.
4. If a user provides name = smith then, only the rows where department = 123 are fetched because user is restricted to department 123, he cannot access any other employee apart from 123.


Security Set VS Security Access Types
Security Set: It defines what data needs to be secured.
e.g. PPLJOB is the delivered security set to secure People with Jobs. PeopleSoft provides many other security sets like PPLJOB, PPLPOI, DEPT etc. 
 
Security Access Types: It defines how to access the secured data.
e.g. For Security set PPLJOB, security access type 002 is delivered to access the data based on security keys like business unit and location.
 
Detailed explanation of Security Sets and Security Access Types are discussed in the following posts.
 
 
 
 
 
 

Thursday, April 16, 2015

Component Buffer

Peoplecode to traverse component buffer data.

Problem Statement: Peoplecode to access component buffer data.
Scope: Target user are peoplesoft technical consultants.

In the given example 3 level of rowsets are used, in your case it could be another rowset or derived/work record too
          Level0= JOB (Record present at level0 is JOB)
          Level1=COMPENSATION (record at level1)
          LEVEl2=LOCATION (Record at level 2)

Note: At max we can have upto Level 3
Source : http://docs.oracle.com/cd/E13292_01/pt849pbr0/eng/psbooks/tpcd/chapter.htm?File=tpcd/htm/tpcd05.htm


Level 0 Rowset
You first obtain the level zero rowset, which is the JOB rowset. You do not need to know the name of the level zero rowset to access it:

&LEVEL0 = GetLevel0();

Rows of Level 0
The next object to get is a row. As the following code is working with data that is loaded from a page, only one row is at level zero. However, if you have rowsets that are populated with data that is not based on component buffers (for example, an application message), you may have more than one row at level zero.

&LEVEL0_ROW = &LEVEL0(1);

Child Rowsets
To obtain the level two rowset, traverse through the level one rowset first. 

Therefore, the next object to get is the level one rowset, as shown in the following example:

&LEVEL1 = &LEVEL0_ROW.GetRowset(SCROLL.COMPENSATION);

Obtaining Subsequent Rows (usually we go to level3 but if you have more then you can go further)

If you are traversing a page, obtain the appropriate row after you get a rowset. To process all the rows of the rowset, set this functionality up in a 
loop, as shown in the following example:

Obtaining Level2 Rowsets, Rows and Field Value(Complete Code)
We want to process all the rows at level two


&LEVEL0 = GetLevel0();
&LEVEL0_ROW = &LEVEL0(1);

&LEVEL1 = &LEVEL0_ROW.GetRowset(SCROLL.COMPENSATION);
For &I = 1 to &LEVEL1.ActiveRowCount
   &LEVEL1_ROW = &LEVEL1(&I);
   &LEVEL2 = &LEVEL1_ROW.GetRowset(SCROLL.LOCATION);
   For &J = 1 to &LEVEL2.ActiveRowCount
      &LEVEL2_ROW = &LEVEL2(&J);
      &RECORD = &LEVEL2_ROW.COMPENSATION;
      &FIELD = &RECORD.Descr;
      /* Do processing */
   End-For;
End-For;



Monday, April 13, 2015

PeopleSoft Internet Architecture (PIA)

Course Agenda


Scope:After completions of this course user will be familiar with the Peoplesoft internet architecture.  
Prerequisites : Basic communication network knowledge.

Peoplesoft internet architecture comprises of the following elements:

1. Web Browser.
2, Web Server.
3. Application Server.
4. Batch Server.
5. Database Server.