Saturday, April 11, 2015

Change Control (Definition Locks & Project History) : PeopleTool System tables

There are only two tables which store the data about locked objects in App Designer.


PSCHGCTLHIST
History of PeopleTools objects locked with OPRID, project name, incident, and description.

PSCHGCTLLOCK
Current PeopleTools objects locked with OPRID, project name, incident, and description

You can also view All the locked object from App Designer by following the navigation shown in below Image.

For Complete List of PeopleSoft Tables check out main post having all the links related to PeopleTools System tables.

Tuesday, April 7, 2015

PeopleTools Tables : System catalog tables list in oracle peoplesoft

Here is the list of PeopleTools table which can be use to fetch the related information about any object present in App Designer.I'll break down this list with categories like App Engine,Records,Fields,pages,etc.

Click on corresponding link to checkout the System tables for the particular object.

Application Engine Meta Data: Tables holding Application Engine Meta Data for the Application Engine, Section, Steps and SQL.

Change Control (Definition Locks & Project History) : Tables holding PeopleTools project change history and current locks on Tools objects.

Component Interface Meta Data: Tables holding Component Interface Meta Data.

PSBCDEFN : Stores component interface names

Component Meta Data: Tables holding Component Meta Data.

PSPNLGRPDEFN: Stores component related information only.
PSPNLGROUP: This table will give you information regarding a specific component along with the names of pages attached to it.

Record & Field Meta Data: Tables holding PeopleTools Record & Field information.

PSRECDEFN: Stores informations about tables. One row for each table. Field count and record type are two fields that are stored on this table.
CASE RECTYPE
        WHEN 0 THEN 'Table'
        WHEN 1 THEN 'View'
        WHEN 2 THEN 'Derived'
        WHEN 3 THEN 'Sub Record'
        WHEN 5 THEN 'Dynamic View'
        WHEN 6 THEN 'Query View'
        WHEN 7 THEN 'Temporary Table'
        ELSE TO_CHAR(RECTYPE)
END CASE


PSRECFIELD: Stores records with all their fields (sub-records are not expanded)

PSRECFIELDALL: Stores records with all their fields (sub-records are expanded)

PSINDEXDEFN: Contains 1 row per index defined for a table.

PSKEYDEFN: Containes 1 row per key field defined for an index.

PSDBFIELD: You got it, stores information about fields.
CASE FIELDTYPE
                WHEN 0 THEN 'Character'
                WHEN 1 THEN 'Long Character'
                WHEN 2 THEN 'Number'
                WHEN 3 THEN 'Signed Number'
                WHEN 4 THEN 'Date'
                WHEN 5 THEN 'Time'
                WHEN 6 THEN 'DateTime'
                WHEN 8 THEN 'Image'
                WHEN 9 THEN 'Image Reference'
                ELSE TO_CHAR(FIELDTYPE)
        END CASE
PSDBFLDLABL: Stores field label information.

Field Values for Tools Tables: Find field values for the following 
  • RECORD.FIELDNAME 
  • PSPROJECTITEM.OBJECTTYPE 
  • PSPROJECTITEM.UPGRADEACTION 
  • PSPROJECTITEM.SOURCESTATUS 
  • PSRECDEFN.RECTYPE 
  • PSDBFIELD.FIELDTYPE 
  • PSPNLFIELD.FIELDTYPE 
  • PSSQLDEFN.SQLTYPE
File Layout Definitions: Tables holding File Layout Segment and Field definitions.

PSFLDFIELDDEFN :   Filelayout stored
PSFILEREDEFN :   File reference stored

HTML & Image Meta Data: Tables holding HTML and Image Meta Data.

Menu Meta Data: Tables holding Menu Meta Data.

PSMENUDEFN: Store Menu related information. No related component info on this table.
PSMENUITEM: List the menu with all components attached to it.

Message Catalog: Tables holding Message Catalog Entries.

PSMSGSETDEFN: Stores information about PeopleSoft message catalog message sets (descriptions, version).

PSMSGSETLANG: Message sets language table.

PSMSGCATDEFN: Stores information about PeopleSoft message catalogs such as message set number, message number and the actual message text.

PSMSGCATLANG: Message catalogs language table.

Page Meta Data:Tables holding Page Meta Data.

PSPNLDEFN: Stores pages definitions.
CASE PNLTYPE
        WHEN 0 THEN 'Page'
        WHEN 1 THEN 'Sub page'
        WHEN 2 THEN 'Secondary page'
        ELSE TO_CHAR(PNLTYPE)
    END CASE
PSPNLFIELD: Stores all items used by each page definition.
CASE FIELDTYPE
        WHEN 0 THEN 'Static Text'
        WHEN 1 THEN 'Frame'
        WHEN 2 THEN 'Group Box'
        WHEN 3 THEN 'Statis Image'
        WHEN 4 THEN 'Edit Box'
        WHEN 5 THEN 'Dropdown List'
        WHEN 6 THEN 'Long Edit Box'
        WHEN 7 THEN 'Check Box'
        WHEN 8 THEN 'Radio Button'
        WHEN 9 THEN 'Image'
        WHEN 10 THEN 'Scroll Bar'
        WHEN 11 THEN 'Subpage'
        WHEN 12 THEN 'Peoplecode Command - (Button/Hyperlink Destination)'
        WHEN 13 THEN 'Scroll Action - (Button/Hyperlink Destination)'
        WHEN 14 THEN 'Toolbar Action - (Button/Hyperlink Destination)'
        WHEN 15 THEN 'External Link - (Button/Hyperlink Destination)'
        WHEN 16 THEN 'Internal Link - (Button/Hyperlink Destination)'
        WHEN 17 THEN 'Process - (Button/Hyperlink Destination)'
        WHEN 18 THEN 'Secondary Page'
        WHEN 19 THEN 'Grid'
        WHEN 20 THEN 'Tree'
        WHEN 21 THEN 'Secondary Page - (Button/Hyperlink Destination)'
        WHEN 23 THEN 'Horizontal Rule'
        WHEN 24 THEN 'Tab Separator'
        WHEN 25 THEN 'Html Area'
        WHEN 26 THEN 'Prompt Action - (Button/Hyperlink Destination)'
        WHEN 27 THEN 'Scroll Area'
        WHEN 29 THEN 'Page Anchor'
        WHEN 30 THEN 'Chart'
        WHEN 31 THEN 'Push Button/Link'
        WHEN 32 THEN 'Analytic Grid'
        ELSE TO_CHAR(FIELDTYPE)
    END CASE

PeopleCode Meta Data: Tables holding PeopleCode Meta Data.

PSPCMNAME: PeopleCode Reference table.

PSPCMPROG: Store actual PeopleCode programs (actual code behind PeopleCode events).

Portal (Structure and Content): Tables holding portal content references and permission lists authorized.

PSPRSMDEFN is a Portal Structure Definition table. A good example is to use this table to find portal path for a specific component.

1) Run the below SQL to get the content reference name for your component
SELECT PORTAL_NAME,
 PORTAL_OBJNAME AS CONTENT_REFERENCE,
 PORTAL_LABEL,
 PORTAL_URI_SEG1 AS MENU,
 PORTAL_URI_SEG2 AS COMPONENT,
 PORTAL_URI_SEG3 AS MARKET
FROM psprsmdefn
 WHERE PORTAL_NAME = 'EMPLOYEE'
   AND PORTAL_URI_SEG2 = :1;

-- Replace :1 with the component name you are looking for.
2) From the query above - copy the value in the CONTENT_REFERENCE field and replace the ":1" variable and you will have the path to your component.
WITH portal_registry AS
  (SELECT RTRIM(REVERSE(sys_connect_by_path(REVERSE(portal_label),    ' >> ')),    ' >> ') path,
     LEVEL lvl
   FROM psprsmdefn
   WHERE portal_name = 'EMPLOYEE' START WITH PORTAL_OBJNAME = :1 CONNECT BY PRIOR portal_prntobjname =portal_objname)
SELECT path
FROM portal_registry
WHERE lvl =
  (SELECT MAX(lvl)
   FROM portal_registry);
So, the 1st query is to get the content reference for a component name that you know and then using this  query to find the path!


PSPRSMPERM: Shows the permission lists that are assigned to a portal registry structure (content reference). The permission list name is under field PORTAL_PERMNAME.

Process Scheduler Information:Tables holding the process and job definitions along with information necessary to run a process.

PS_PRCSDEFNPNL: Stores the process definition name, process type(sqr report, application engine...), and the component name associated with the process definition.

PS_PRCSDEFN: Process definitions table. The record stores processes that can run within the Process Scheduler. Security information such as components and process groups are also stored on this table.

Project Meta Data: Table holding PeopleTools project information (all objects in the project).

PSPROJECTDEFN : This table stores information about projects created in Application Designer.
Try it out:
SELECT * FROM PSPROJECTDEFN
WHERE PROJECTNAME = 'Your_Project_name';
PSPROJECTITEM : This table stores objects inserted into your Application Designer project.
Try it out:
SELECT * FROM PSPROJECTITEM
WHERE PROJECTNAME = 'Your_Project_name';

Query Tables: Tables holding individual query Meta Data.

PSQRYDEFN: Stores query related info.

PSQRYFIELD: Stores all fields used in a query (both the fields in the Select and Where clause).

PSQRYCRITERIA: Stores criteria query fields. You can get the name of the fields by joining the PSQRYFIELD table.

PSQRYEXPR: Stores query expressions.

PSQRYBIND: Stores query bind variables.

PSQRYRECORD: Stores all records used in all aspects of query creation

PSQRYSELECT: Stores all SELECT requirements by select type. Example would be sub select, join, ect.

PSQRYLINK: Stores the relationships to child queries.

PSQRYEXECLOG: Query run time log table that stores (only 8.4x and higher)

PSQRYSTATS: Query run time statistics table such as count of query execution, and date time of last execution (only in 8.4x and higher).


User Profile & Security Information: Tables holding Security Information,User Profile information including Primary Permission lists, Roles, email addresses, etc.

PSPRSMPERM: Portal Structure Permissions.

PSAUTHITEM: Page Permissions. This table stores the information about the page level access for a permission list.

PSAUTHPRCS Process Group Permissions. A many to many relationship table between Permission Lists and Process Groups. Setup can be found at PeopleTools > Security > Permissions & Roles > Process.

PSROLECLASS: Role Classes table. A many to many relationship table between Roles and Permission Lists.

PSROLEDEFN: This table stores information about Peoplesoft Role definitions. Users get permissions to PeopleSoft objects through Roles, which are assigned Permission Lists.

PSROLEUSER: This table stores information about the Users in Peoplesoft and the roles assigned to them.

PSCLASSDEFN: Permissions List definitions table. Permission list name can be found under Field Name CLASSID.

PSOPRDEFN: Users/Operator definition table. This table stores information about PeopleSoft users. This is the core table for User Profile Manager.

PSOPRCLS: Users/Operator and Perm list mapping Table. This table stores information about PeopleSoft users and the permission lists attached to those users.
A User gets these permission lists indirectly through the roles which are attached to the user

SQL Definitions: Tables holding SQL Object definitions.

PSSQLDEFN: Stores SQL object definitions.

PSSQLDESCR: Stores SQL objects descriptions, and description long.

PSSQLTEXTDEFN: Stores actual SQL text. You can filter by SQLTYPE field to get SQL objects of interest such as Views SQLs and Application Engine SQLs.
-- When SQL type is:
0 = Stand alone SQL objects
1 = Application engine SQL
2 = Views SQLs

Tree Manager:Tables holding Tree Manager Meta Data .

PSTREEDEFN : This table Contains the treename and related information.

Workflow:Tables holding Workflow Meta Data for Business Processes, Activities, Events, and workflow items needing to be worked.


XLAT - Translate Values: Tables holding Translate Values for individual fields.
PSXLATDEFN : This table  Holds the translate field name and version number for caching
PSXLATITEM  : This table Holds the translate field name and their values

Application Engine Meta Data : PeopeTools System Table for AE

As mentioned in my earlier post PeopleTools System Tables.Here is the list of tables for Application Engine Meta data.
PSAEAPPLDEFN
AE header record; 1 row per app engine
PSAEAPPLSTATE
AE state records (shows which one is the default)
PSAEAPPLTEMPTBL
AE temp tables assigned
PSAESECTDEFN
AE sections: public or private
PSAESECTDTLDEFN
AE section: descriptions, market, DB Type, EFFDT, EFF_STATUS, and auto commit
PSAESTEPDEFN
AE steps within section: description, market, DB Type, EFFDT, EFF_STATUS
PSAESTMTDEFN
AE actions within AE step: Step type (SQL, Do Select, etc.) with SQLID. 
PSAESTEPMSGDEFN
AE message (parameters in each step)
AEREQUESTPARM
AE request parameters table behind the AE run control page.

If you know tables other than the one which are listed above,kindly let us know we will add it to the list.

PeopleSoft Database : How it works.

Peoplesoft Database
Image Credits : Oracle.com
The image in left can describes three distinct and integrated database layers for PeopleSoft system.

System Tables:
System tables also called as system catalog tables, are related to a table of contents for a book or to file allocation tables on a hard drive. The structure and table names depends upon which RDBMS ( i.e Oracle,Microsoft,DB2 etc) you use. 
System catalog tables:
  • Keep track of all of the objects that reside in the database instance.
  • Are created by and owned by the RDBMS.
  • Are often described as system metadata.

PeopleTools metadata:
PeopleTools tables provide the infrastructure for PeopleSoft applications by storing and managing PeopleSoft application metadata. This metadata consists of information that defines the application, such as records, fields, pages, PeopleCode, and security. 
PeopleTools tables:
  • Define the structure of all object definitions that make up an application.
  • Use the same table structure for all applications.
  • Contain data that is added and updated only when the application is installed, or when using development tools such as PeopleSoft Application Designer or Data Mover.

PeopleSoft application data tables:
Application data tables store data entered through a PeopleSoft application. The specific tables and their structures vary by application. 
Application data tables:
  • Contain transactional data entered by users.
  • Are empty prior to data entry (except the demo databases).
In my next post i'll share the list of  PeopleTools Tables (Where the MetaData is Stored)

Tuesday, March 10, 2015

Why we generate compare reports in PeopleSoft : Working with compare reports

PeopleSoft Compare Reports provide a medium to compare PeopleSoft objects between two databases. compare reports can be fetched between at a Project level or at database level.it is very handy tool during an upgrade for retrofitting and keep drop analysis.

In this post we will are going to show you different statuses that are shown on a PeopleSoft Compare Reports when one project of a database is compared against another database.

What does different Statuses mean in a PeopleSoft Compare Reports

PeopleSoft shows the following statuses on Compare Reports. Each status has it own meaning and significance during an upgrade. Let’s look at each one of them.

Note : In an upgrade project generally SOURCE is a higher version (e.g. HCM 9.2 PT 8.54) then of TARGET (e.g. HCM 9.1 PT 8.52) and objects are copied from source to target.

Same

The compared definitions are defined the same in both databases that are compared. Such definitions need not be migrated to the other database.

Absent

This status is shown when the definition is present in one of the databases but not in the other. If the target database does not have the definition, it may have to be migrated.this status generally comes when customer has created its own bolt-on objects.

Unknown

This is the default status for all non-comparison definitions. PeopleSoft doesn’t compare the definitions that show this status. They may have to be compared manually or using a non-PeopleSoft utility.

Changed

This status states that there is a change in the definitions that are being compared, across the databases. This also states that the change was carried out by PeopleSoft (Oprid PPLSOFT)

*Changed

This status states that there is a change in the definitions that are being compared, across the databases. But unlike the previous status, in this case, the change was carried out NOT by PeopleSoft.

Unchanged

Unlike the meaning of this status, there were changes found in this case as well. But the date time stamp on such definitions is prior to the release date time stamp on the compared databases. It also states that the change was carried out by PeopleSoft.

*Unchanged

This status is similar in meaning to the above status except that the changes to the objects in this case was carried out NOT by PeopleSoft.

For taking a compare report go to menu
1. Select Tools, Compare and Report, To Database
2. Sign on to the target database; Select Options





















If you have any queries and suggestion regarding the compare reports drop a comment or mail us at csdoon@gmail.com.
We deliver innovative strategies and technology solutions for global life sciences it companies across the entire product lifecycle. For nascent cloud environments, KalioTek’s cloud experts will work with your team to understand detailed requirements then conduct a cloud security audit. executive protection training Los Angeles israelitactical

Saturday, November 22, 2014

Collapse or Expand Group box on page using peoplecode


For Collapsing/Expanding group box on page using peoplecode you just need to reference the field associated with your group box to set the DataAreaCollapsed property to True or False.

To know the field associated with your group box check the property of your group box and in peoplecode you can have this syntax 

/*for collapsing group box*/
RecordName.FieldName.DataAreaCollapsed = True;/*for expanding group Box*/
RecordName.FieldName.DataAreaCollapsed = False;

generally this property is used when you have selected Collapse  in group box property and you want to expand the group box on some validation.This code is also useful when you need to collapse the group box when user fills all the fields values present in group box and clicks on save so your page wont look messy with so many fields.

Example of Collapsible Group Boxes:
Spain is expanded while the group boxes for France, Italy, and USA are collapsed:



This is what I learned today,I'll be sharing my learnings with my blog audience,Kindly let us know  your queries in comments  or you can mail us on csdoon@gmail.com

Saturday, August 30, 2014

How to embed videos in Peoplesoft

To embed videos on PeopleSoft there are two methods.First method is embedding a video from YouTube and second one is showing up a video from the server to user.

In first method you just need to write an iFrame Code for embedding YouTube video URL.create a HTML Based pagelet and use iFrame code to embed video.

Eg.
<iframe width="420" height="315"src="http://www.youtube.com/embed/XGSy3_Czz8k"></iframe>
For second method you have to use IScripts.This method helps when there is restriction on the access of internet,where you cannot use YouTube video link so for that you should have the video downloaded on the server and then using IScript you can view the video on peoplesoft system.

We will create a Weblib record with one "iscript" field and write the code on the fieldformula of that field.
This fieldformula code can be called by any fieldchange event.

Step 1 : Create the weblib record (just save the record with the prefix WEBLIB)
Here I have used Record : WEBLIB_VIDEOCODE  and Field : ISCRIPT1

Function ISCRIPT_VIDEO
%Response.WriteLine("<OBJECT id='playera' height=100% width=100% classid='clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95' codebase='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=,1,52,701' standby='Loading Microsoft Windows Media Player components...'");
%Response.WriteLine("<PARAM NAME='AutoStart' VALUE='True'>");
%Response.WriteLine("<PARAM NAME='Balance' VALUE='False'>");
%Response.WriteLine("<PARAM NAME='DisplaySize' VALUE='True'>");
%Response.WriteLine("<PARAM NAME='Filename' VALUE='True'>");
%Response.WriteLine("<PARAM NAME='Mute' VALUE='False'>");
%Response.WriteLine("<PARAM NAME='SelectionStart' VALUE='False'>");
%Response.WriteLine("<PARAM NAME='SelectionEnd' VALUE='False'>");
%Response.WriteLine("<PARAM NAME='ShowControls' VALUE='True'>");
%Response.WriteLine("<PARAM NAME='ShowAudioControls' VALUE='True'>");
%Response.WriteLine("<PARAM NAME='ShowDisplay' VALUE='False'>");
%Response.WriteLine("<PARAM NAME='ShowPositionControls' VALUE='True'>");
%Response.WriteLine("<PARAM NAME='Volume' VALUE='1'>");
%Response.WriteLine("<PARAM NAME='AudioStream' VALUE='False'>");
%Response.WriteLine("<PARAM NAME='AutoSize' VALUE='True'> ");
%Response.WriteLine("<PARAM NAME='AnimationAtStart' VALUE='False'>");
%Response.WriteLine("<PARAM NAME='AllowScan' VALUE='False'>");
%Response.WriteLine("<PARAM NAME='AllowChangeDisplaySize' VALUE='True'>");
%Response.WriteLine("<PARAM NAME='AutoRewind' VALUE='True'>");
%Response.WriteLine("<PARAM NAME='BaseURL' VALUE=''>");
%Response.WriteLine("<PARAM NAME='BufferingTime' VALUE='5'>");
%Response.WriteLine("<PARAM NAME='CaptioningID' VALUE=''>");
%Response.WriteLine("<PARAM NAME='ClickToPlay' VALUE='True'>");
%Response.WriteLine("<PARAM NAME='CursorType' VALUE='True'>");
%Response.WriteLine("<PARAM NAME='CurrentPosition' VALUE='True'>");
%Response.WriteLine("<PARAM NAME='CurrentMarker' VALUE='True'> ");
%Response.WriteLine("<PARAM NAME='DefaultFrame' VALUE='mainframe'> ");
%Response.WriteLine(" <PARAM NAME='DisplayBackColor' VALUE='True'> ");
%Response.WriteLine(" <PARAM NAME='DisplayForeColor' VALUE='16777215'>");
%Response.WriteLine("<PARAM NAME='DisplayMode' VALUE='1'>");
%Response.WriteLine("<PARAM NAME='Enabled' VALUE='-1'>");
%Response.WriteLine("<PARAM NAME='EnableContextMenu' VALUE='True'>");
%Response.WriteLine("<PARAM NAME='EnablePositionControls' VALUE='True'>");
%Response.WriteLine("<PARAM NAME='EnableFullScreenControls' VALUE='True'>");
%Response.WriteLine("<PARAM NAME='EnableTracker' VALUE='True'>");
%Response.WriteLine("<PARAM NAME='InvokeURLs' VALUE='False'>");
%Response.WriteLine("<PARAM NAME='Language' VALUE='False'>");
%Response.WriteLine("<PARAM NAME='PlayCount' VALUE='1'>");
%Response.WriteLine("<PARAM NAME='PreviewMode' VALUE='False'>");
%Response.WriteLine("<PARAM NAME='ShowStatusBar' VALUE='True'> ");
%Response.WriteLine("<PARAM NAME='TransparentAtStart' VALUE='False'>");
%Response.WriteLine("</OBJECT>");
%Response.WriteLine("<SELECT name=selecta size=1 id=musica onchange=document.all.playera.Filename=document.all.musica.value;>");
%Response.WriteLine("<OPTION selected>::::::::: Choose Your Media Sample Here :::::::::</OPTION> ");
%Response.WriteLine("<OPTION value='C:\myvideo.mp4'>My Video File </OPTION> ");
%Response.WriteLine("<OPTION value='Stream URL or Full File Path Goes Here'>My Audio File</OPTION>");
%Response.WriteLine("<OPTION value='Stream URL or Full File Path Goes Here'>My Live Stream</OPTION> ");
%Response.WriteLine("</select>");
%Response.WriteLine("</body>");
%Response.WriteLine("</html>");

You Just need to change the line highlighted in yellow.replace the path with your videos path (server path should be used so video would be available for everyone using same PeopleSoft system)

Step 2 : Call this line of code on any button field change event and your video will be played in a new window.

Declare Function ISCRIPT_VIDEO PeopleCode WEBLIB_VIDEOCODE.ISCRIPT1 FieldFormula;
&URLString = GenerateScriptContentURL(%Portal, %Node, Record.WEBLIB_VIDEOCODE, Field.ISCRIPT1 , "FieldFormula", "ISCRIPT_VIDEO ");
ViewContentURL(&URLString);
Hope you liked this post.Kindly mention your Query and suggestion in comments.

Post Credits : Pawan Mundhra & Bijay Bhushan Singh