Tag: Post Needs to Move

These posts still need to move from Wordpress.com

Object Type View

To my knowledge, the PeopleSoft catalog has no way of providing descriptions for its object type and object ID fields. So, I have created these two custom views. They are handy for joining to tables like PSPROJECTITEM.

View of Object Types

Fields

  • OBJECTTYPE
  • DESCR

SQL:

SELECT 00, ‘Records’ FROM PS_INSTALLATION UNION
SELECT 01, ‘Indexes’ FROM PS_INSTALLATION UNION
SELECT 02, ‘Fields’ FROM PS_INSTALLATION UNION
SELECT 03, ‘Field Formats’ FROM PS_INSTALLATION UNION
SELECT 04, ‘Translate Values’ FROM PS_INSTALLATION UNION
SELECT 05, ‘Pages’ FROM PS_INSTALLATION UNION
SELECT 06, ‘Menus’ FROM PS_INSTALLATION UNION
SELECT 07, ‘Components’ FROM PS_INSTALLATION UNION
SELECT 08, ‘Record People Code’ FROM PS_INSTALLATION UNION
SELECT 09, ‘Menu People Code’ FROM PS_INSTALLATION UNION
SELECT 10, ‘Queries’ FROM PS_INSTALLATION UNION
SELECT 11, ‘Tree Structures’ FROM PS_INSTALLATION UNION
SELECT 14, ‘Colors’ FROM PS_INSTALLATION UNION
SELECT 15, ‘Styles’ FROM PS_INSTALLATION UNION
SELECT 17, ‘Business Processes’ FROM PS_INSTALLATION UNION
SELECT 18, ‘Activities’ FROM PS_INSTALLATION UNION
SELECT 19, ‘Role’ FROM PS_INSTALLATION UNION
SELECT 20, ‘Process Definitions’ FROM PS_INSTALLATION UNION
SELECT 21, ‘Server Definitions’ FROM PS_INSTALLATION UNION
SELECT 22, ‘Process Type Definitions’ FROM PS_INSTALLATION UNION
SELECT 23, ‘Job Definitions’ FROM PS_INSTALLATION UNION
SELECT 24, ‘Recurrence Definitions’ FROM PS_INSTALLATION UNION
SELECT 25, ‘Message Catalog Message’ FROM PS_INSTALLATION UNION
SELECT 29, ‘Business Interlink’ FROM PS_INSTALLATION UNION
SELECT 30, ‘SQL’ FROM PS_INSTALLATION UNION
SELECT 31, ‘File Layout Definitions’ FROM PS_INSTALLATION UNION
SELECT 32, ‘Component Interfaces’ FROM PS_INSTALLATION UNION
SELECT 33, ‘Application Engine Programs’ FROM PS_INSTALLATION UNION
SELECT 34, ‘Application Engine Sections’ FROM PS_INSTALLATION UNION
SELECT 35, ‘Message Nodes’ FROM PS_INSTALLATION UNION
SELECT 36, ‘Message Channels’ FROM PS_INSTALLATION UNION
SELECT 37, ‘Messages’ FROM PS_INSTALLATION UNION
SELECT 38, ‘Approval Rule Sets’ FROM PS_INSTALLATION UNION
SELECT 39, ‘Message People Code’ FROM PS_INSTALLATION UNION
SELECT 40, ‘Subscription People Code’ FROM PS_INSTALLATION UNION
SELECT 42, ‘Comp Interface People Code’ FROM PS_INSTALLATION UNION
SELECT 43, ‘Application Engine People Co’ FROM PS_INSTALLATION UNION
SELECT 44, ‘Page People Code’ FROM PS_INSTALLATION UNION
SELECT 45, ‘Page Field People Code’ FROM PS_INSTALLATION UNION
SELECT 46, ‘Component People Code’ FROM PS_INSTALLATION UNION
SELECT 47, ‘Component Record People Code’ FROM PS_INSTALLATION UNION
SELECT 48, ‘Component Rec Fld People Code’ FROM PS_INSTALLATION UNION
SELECT 49, ‘Images’ FROM PS_INSTALLATION UNION
SELECT 50, ‘Style Sheets’ FROM PS_INSTALLATION UNION
SELECT 51, ‘HTML’ FROM PS_INSTALLATION UNION
SELECT 53, ‘Permission Lists’ FROM PS_INSTALLATION UNION
SELECT 54, ‘Portal Registry Definitions’ FROM PS_INSTALLATION UNION
SELECT 55, ‘Portal Registry Structures’ FROM PS_INSTALLATION UNION
SELECT 56, ‘URL Definitions’ FROM PS_INSTALLATION UNION
SELECT 57, ‘Application Packages’ FROM PS_INSTALLATION UNION
SELECT 58, ‘Application Package People C’ FROM PS_INSTALLATION UNION
SELECT 59, ‘Portal Registry User Homepag’ FROM PS_INSTALLATION UNION
SELECT 60, ‘Analytic Types’ FROM PS_INSTALLATION UNION
SELECT 61, ‘Archive Templates’ FROM PS_INSTALLATION UNION
SELECT 62, ‘XS LT’ FROM PS_INSTALLATION UNION
SELECT 63, ‘Portal Registry User Favorit’ FROM PS_INSTALLATION UNION
SELECT 64, ‘Mobile Pages’ FROM PS_INSTALLATION UNION
SELECT 65, ‘Relationships’ FROM PS_INSTALLATION UNION
SELECT 66, ‘CI Property People Code’ FROM PS_INSTALLATION UNION
SELECT 67, ‘Optimization Models’ FROM PS_INSTALLATION UNION
SELECT 68, ‘File References’ FROM PS_INSTALLATION UNION
SELECT 69, ‘File Type Codes’ FROM PS_INSTALLATION UNION
SELECT 70, ‘Archive Object Definitions’ FROM PS_INSTALLATION UNION
SELECT 71, ‘Archive Templates( Type2)’ FROM PS_INSTALLATION UNION
SELECT 72, ‘Diagnostic Plug- Ins’ FROM PS_INSTALLATION UNION
SELECT 73, ‘Analytic Models’ FROM PS_INSTALLATION UNION
SELECT 75, ‘Java Portlet User Preference’ FROM PS_INSTALLATION UNION
SELECT 76, ‘WSRP Remote Producers’ FROM PS_INSTALLATION UNION
SELECT 77, ‘WSRP Remote Portlets’ FROM PS_INSTALLATION UNION
SELECT 78, ‘WSRP Cloned Portlet Handles’ FROM PS_INSTALLATION

View of Object IDs

This view may not be complete, but it attempts to map the OBJECTID1, 2, 3, … field to the OBJECTTYPE field.

Fields:

  • OBJECTTYPE
  • DESCR
  • OBJECTID

SQL:

SELECT 0,’Records’,1 FROM PS_INSTALLATION UNION
SELECT 2,’Fields’,6 FROM PS_INSTALLATION UNION
SELECT 3,’Field Formats’,23 FROM PS_INSTALLATION UNION
SELECT 5,’Pages’,9 FROM PS_INSTALLATION UNION
SELECT 6,’Menus’,3 FROM PS_INSTALLATION UNION
SELECT 11,’Tree Structures’,37 FROM PS_INSTALLATION UNION
SELECT 15,’Styles’,35 FROM PS_INSTALLATION UNION
SELECT 17,’Business Processes’,7 FROM PS_INSTALLATION UNION
SELECT 18,’Activities’,18 FROM PS_INSTALLATION UNION
SELECT 19,’Role’,32 FROM PS_INSTALLATION UNION
SELECT 21,’Server Definitions’,33 FROM PS_INSTALLATION UNION
SELECT 23,’Job Definitions’,27 FROM PS_INSTALLATION UNION
SELECT 24,’Recurrence Definitions’,31 FROM PS_INSTALLATION UNION
SELECT 29,’Business Interlink’,64 FROM PS_INSTALLATION UNION
SELECT 31,’File Layout Definitions’,71 FROM PS_INSTALLATION UNION
SELECT 32,’Component Interfaces’,74 FROM PS_INSTALLATION UNION
SELECT 33,’Application Engine Programs’,66 FROM PS_INSTALLATION UNION
SELECT 35,’Message Nodes’,62 FROM PS_INSTALLATION UNION
SELECT 36,’Message Channels’,61 FROM PS_INSTALLATION UNION
SELECT 37,’Messages’,60 FROM PS_INSTALLATION UNION
SELECT 50,’Style Sheets’,94 FROM PS_INSTALLATION UNION
SELECT 53,’Permission Lists’,89 FROM PS_INSTALLATION UNION
SELECT 54,’Portal Registry Definitions’,98 FROM PS_INSTALLATION UNION
SELECT 56,’URL Definitions’,103 FROM PS_INSTALLATION UNION
SELECT 60,’Analytic Types’,109 FROM PS_INSTALLATION UNION
SELECT 64,’Mobile Pages’,111 FROM PS_INSTALLATION UNION
SELECT 69,’File Type Codes’,122 FROM PS_INSTALLATION UNION
SELECT 73,’Analytic Models’,12 FROM PS_INSTALLATION

Registration Reference

In teaching my classes, the component registration has always caused the most trouble. First, the new PeopleSoft programmers have trouble remembering the steps. Second, something always seems to go wrong, and the students don’t know where to start looking. Hopefully, this reference should help.

Three Parts
1. Menu — add the component to the menu
2. Portal — add a link to the online menu system
3. Security — add the component/menu to a permission list


Manual vs. Registration Wizard

PeopleSoft added the “Registration Wizard” to Application Designer to create a quick easy to register a new component. The key concept is that it exists for new registrations and does not help when fixing problems or changing the registration.

You can use the wizard for all three parts, just one part, or any combination in between. The first page of the wizard will ask you which steps you want to perform, and you just check the parts you want.

Things you can do with the wizard:

  • add a component to an existing menu
  • add a component to the portal menu if it is not already on the portal
  • add a component to a permission list

Things you cannot do with the wizard (can be done manually):

  • change or set the label on a menu item
  • move a component from one menu to another
  • create a new menu and add a component
  • change the folder or edit portal content references
  • add a component to a new folder in the portal that does not exist
  • add the component to the portal a second time

Bottom Line: the wizard is for new registrations, not fixing or changing

Registration Wizard Pages
Page 1: Select which parts you want to perfom
Page 2: Select the menu — either the menu to add it to or the menu it is already on
Page 3: Enter the Portal information — for creating the content reference; optional
Page 4: Pick the permission list — adding the component to the permission list; optional
Page 5: Review/add definitions to the project

Part 1 — Menu
Manually, this is done in Application Designer.

  • Add to an existing menu: Ctrl + O, pick menu for the type, and enter the menu name
  • Add to a new menu: Ctrl + N, pick menu for the type

In either case, you drag the component from the project to the menu. Hold the component over the bar item and wait for it to expand, then, drop the component on the box with the dotted line. Or, you can double click on the box with the dotted line, and fill out the information manually.

In the wizard, you much select the menu that you want to add the component to and the bar on that menu where the component should go. The menu must already exist to use the wizard — the wizard will not create a menu and you cannot create an empty menu first (the menu must have at least one component on it).

Also, remember if you use the wizard, but you choose not to add the component to the menu with the wizard, it will still ask you for the menu name. Both the portal registry and the permission list require a menu-component combo. The wizard will only use the menu name on the portal and the permission list rather than add the component to the menu.

Part 2 — Portal Registry
Manually, you must place the component in the registry online.
Navigation: PeopleTools > Portal > Structure and Content
First, navigate to the folder where you want to add the content reference. Then, click “Add Content Reference” at the bottom of the page.

If you are editing a content reference, you must click on the “Edit” link next to the content reference to change any information.

Warning — pay special attention to the spelling of the menu name and the component name. The page will not tell you if you spell it wrong. It just won’t work.

Using the wizard, first you must know the name of the folder where you want to add the component. If you don’t know the name, you must use the manual method to find the folder, and click the “Edit” link to get the name.

The other information in the wizard is the same as the manual method.

Part 3 — Permission Lists

Manually, you must also do this step online.
Navigation: PeopleTools > Security > Permission Lists & Roles > Permission Lists
First, search for the permission list that you want to add to the component to. Then, go to the pages tab (although it shows a list of menus, you will eventually pick the pages the user has access to). Either find the menu in the list, or add the menu to the list. Then, click the “Edit Components” link for that menu. Next, find the component, and click the Pages link. Finally, select the pages and the actions to grant security.

Additional Pieces
Note: none of these can be added with the registration wizard

  • User Profile (user name that the user logs in with):
    PeopleTools > Security > User Profiles > User Profile
  • Role (links the User profile to the permission list):
    PeopleTools > Security > Permissions & Roles > Roles

In the wizard, you simply pick the permission list and choose the actions to give security. The wizard gives access to all pages in the component.

PeopleTools Bug

If you are coding an Application Package, and you get this error message:

PeopleTools Affirm Triggered
PSAFFIRM(!pItemFound) failed at e:\pt846-908-r1-retail\peopletools\src\inc\stringhash.h, line 157. See trace file. Press Cancel for debugger.

Here is the solution:

Basically, you have a property with the same name as one of your instance variables. For example:

class ExampleClass
method ExampleClass();
property String ExampleDescription get set;
private
instance String &ExampleDescription;
end-class;

To fix the problem you can change it to:

class ExampleClass
method ExampleClass();
property String ExampleDescription get set;
private
instance String &strExampleDescription;
end-class;

PeopleTools Reference: Common Meta-SQL

If you were to learn just a select few Meta-SQL, these are the ones that I would recommend:
%SelectAll
%SelectAllByKey & %SelectAllByKeyEffdt
%Table
%DateIn & %DateOut
%Insert
%Update
%Delete

There are many others. Please refer to the PeopleTools PeopleBook for more information.

Update 5/7 — Fixed the links to point to the most resent version of PeopleTools

PeopleTools Reference: Meta-SQL %Delete

generates a delete statement using the values from a record object

This command will pull the record name, the key fields, and the values for those key fields to generate the delete statement. This will result in the statement deleting one row from the database since the statement includes all of the keys for the record.

Example

Local Record &recJob;
&recJob.EMPLID.value = &emplid;
&recJob.EMPL_RCD.value = &empl_rcd;
&recJob.EFFDT.value = &effdt;
&recJob.EFFSEQ.value = 0;
SqlExec(“%Delete(:1)”, &recJob);

PeopleTools Reference: Meta-SQL %Insert

generates an Insert statement to insert the data from a record object into the database.

Remember that a record object (not a record definition) stores both the record structure (table name and field name) and the field values. Therefore, the system has everything it needs to write an insert statement: insert( … field list … ) values ( … options …).

Examples

Local Record &myRecord;
&myRecord.KEY1.value = “Key Value”;
&myRecord.FIELD1.value = “Field Value”;
SQLExec(“%Insert(:1)”, &myRecord);

PeopleTools Reference: Meta-SQL %SelectByKey

generates a select statement based on the given record definition.

Remember that a record object (not a record definition) stores both the record structure (table name and field name) and the field values. Therefore, the system has everything it needs to write a select statement: select … list of fields … from … table name … where … key field name … = … value for that field … and so on.

Related: %SelectByKeyEffdt

does the same thing except it adds the effective dating criteria to limit it to the most recent rows.

Examples

Local Record &recJob;
&recJob = CreateRecord(RECORD.JOB);
&recJob.EMPLID.value = &emplid;
&recJob.EMPL_RCD.value = &empl_rcd;
&recJob.EFFDT.value = &effdt;
&recJob.EFFSEQ.value = &effseq;
SqlExec(“%SelectByKey(:1)”, &recJob, &recJob);
WinMessage(“Job Code: ” | &recJob.JOBCODE.value);

Local Record &recNames, &recOutput;
&recNames = CreateRecord(RECORD.NAMES);
&recOutput = CreateRecord(RECORD.NAMES);
&recNames.EMPLID.value = &emplid;
&recNames.NAME_TYPE.value = “PRI”;
SqlExec(“%SelectByKeyEffdt(:1)”, &recNames, %Date, &recOutput);

PeopleTools Reference: Meta-SQL %SelectAll

Generates a select statement that selects all the fields from a chosen record.

Typically, when you use the %SelectAll, you would use a record object to store the results. That way you don’t have to know how many fields your result will return.

Examples

%SelectAll(JOB)

Local Record &myRecord;
&myRecord = CreateRecord(RECORD.MY_RECORD);
SQLExec(“%SelectAll(:1) WHERE MY_KEY = :2”, &myRecord, “My Key”, &myRecord);

Local Record &myInstallation;
&myRecord = CreateRecord(RECORD.INSTALLATION);
SQLExec(“%SelectAll(:1)”, &RECORD.INSTALLATION, &myInstallation);