Tag: Post Needs to Move

These posts still need to move from Wordpress.com

PeopleTools Reference: Meta-SQL %Table

%Table

Replaces with the actual table name of the given record.

Generally, this just means adding a “PS_” to the front of the record name. But, PeopleTools actually checks the alternate table name from the Record Type tab to see if a value is there first.

Two Uses:

  • Access a table with a reference or record object rather than embedding a table name in the SQL; PeopleTools will not index the table/record in a string literal.
  • Reference the Temporary table in an App Engine; %Table is the only way to reference the table because the table name is assign dynamically at run time.

Examples:

SELECT * FROM %Table(JOB) WHERE EMPLID = :1

SqlExec(“SELECT NAME FROM %Table(:1) WHERE EMPLID = :2”, Record.NAMES, &emplid, &name);

&sql = CreateSql(“SELECT * FROM %Table(:1) WHERE EMPLID = :2”, &MyRecord, &emplid);

INSERT INTO %Table(MYTEMP_TAO)
SELECT * FROM PS_MYDATATABLE

PeopleTools Reference: Meta-SQL DateIn/DateOut

DateIn

Description

Converts a date into the form the database uses.
Used for:

  • Where clauses
  • Insert/Update

Remember DateIn passes a date into the database.

DateOut

Description

Converts a date into the form that PeopleTools uses.
Used for:

  • Select clause

Examples

SELECT %DateOut(MAX(EFFDT))
FROM PS_JOB
WHERE EMPLID = :1
AND EMPL_RCD = :2
AND EFFDT

INSERT INTO PS_MY_RNCTL(OPRID, RUN_CONTROL_ID, AS_OF_DATE)
VALUES(:1, :2, %DateIn(:3))

UPDATE PS_MY_TABLE
SET MY_DATE = %DateIn(:1)
WHERE MY_DATE

PeopleTools Tip — Cloning a Component Interface

Have you ever tried to recreate a component interface and allow PeopleSoft to default the properties and collections? The hard part is that you have to make sure that it uses the same names as your old one or you will have to change your code.

The following SQL helped me figure how to change my code to refer to the correct fields (ex. effdt or effdt0). I was cloning the delivered CI_JOB_DATA component interface with a brand new customized component interface.


SELECT A.BCNAME, A.BCTYPE || ‘:’ || A.BCSCROLL || ‘:’ || A.BCSCROLLNUM || ‘->’ || A.BCSCROLLNAME LOC, A.BCITEMPARENT, A.BCITEMNAME,
A.RECNAME, A.FIELDNAME,
B.BCNAME, B.BCTYPE || ‘:’ || B.BCSCROLL || ‘:’ || B.BCSCROLLNUM || ‘->’ || B.BCSCROLLNAME LOC, B.BCITEMPARENT, B.BCITEMNAME
FROM PSBCITEM A, PSBCITEM B, PSBCITEM AP, PSBCITEM BP
WHERE A.BCNAME = ‘<Old component interface name>
AND A.BCNAME = AP.BCNAME(+)
AND B.BCNAME = ‘<New component interface name>
AND B.BCNAME = BP.BCNAME(+)
AND A.BCITEMPARENT = AP.BCITEMNAME(+)
AND B.BCITEMPARENT = BP.BCITEMNAME(+)
AND A.RECNAME = B.RECNAME
AND A.FIELDNAME = B.FIELDNAME
AND (BP.RECNAME = AP.RECNAME OR (BP.RECNAME IS NULL AND AP.RECNAME IS NULL))
AND A.BCITEMPARENT = ‘<Parent collection name>
AND A.BCITEMNAME = ‘<Item name>

Examples:
<Old component interface name> — CI_JOB_DATA
<Parent collection name> — COLL_JOB_EARNS_DIST
<Item name> — KEYPROP_ERNCD

PeopleTools Tip: Searching for Records

You can find records that contain a specific field with the find definition references tool in App Designer, but what if you want to know what record contains field1 and field2?

You can go to the database to file that answer:

SELECT A.RECNAME
FROM PSRECFIELDALL A, PSRECFIELDALL B
WHERE A.RECNAME = B.RECNAME
AND A.FIELDNAME = ‘FIELD1’
AND B.FIELDNAME = ‘FIELD2’

PeopleTools Reference: Meta-Data — Object Type

The PeopleTools project-related tables contain a field called OBJECTTYPE. The field is a number field, which means that it cannot have translate values. This list shows what the numbers mean.

You can build the list yourself by running a compare report in Application Designer. The report files contain both the number and the description of the object type. But, this list should save you the time.

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

PeopleTools Tip: Bypassing App Designer Login App…

PeopleTools Tip: Bypassing App Designer Login

Application Designer has command line options that allow you to specify the login information. This would allow you to create a shortcut on the desktop or in the Start Menu that automatically logs into an instance of PeopleSoft.

Just copy your shortcut to App Designer, and change the command line to look something like this:

<PS Home>\pside.exe -CT <Database Type> -CS <Server/Database Name> -CD <Database Name> -CO <Username> -CP <Password>

Options:
PS Home — you shouldn’t have to change this if you copy a shortcut that already works
Database Type — ORACLE for an Oracle database
Server/Database Name — The name of the database or instance of PeopleSoft
Database Name — Same as the Server/Database Name
Username — The username you want to login with
Password — The password for that username

Security Warning —
You may want to limit this to Demo instances where no sensitive data exists. You are leaving your password available in plain text and bypassing security. If someone gains access to your computer they have your password and the ability to log into the PeopleSoft system with your security.

PeopleTools Tip — App Engine Restart If you get …

PeopleTools Tip — App Engine Restart

If you get an error message like this, you either need to restart the specific instance that abended, or remove the restart row from the table.

PeopleTools 8.46 – Application Engine Server

Copyright (c) 1988-2006 PeopleSoft, Inc.

All Rights Reserved

PSAESRV started service request at 14.19.05 2006-09-19

All Processing Suspended: Restart OPRID=PS, RUNID=AppEngName, PI=499 (108,503)

PSAESRV completed service request at 14.19.05 2006-09-19

Disable Restart:
You can disable the restart on the properties of the application engine, but that will not help when the Application Engine has already abended. Remember, the disable restart prevents the app engine from writing to the restart table when the program abends; it does not prevent it from checking the table to see if another instance is waiting to restart.

In other words, once an application has abended, disable restart will not allow you to rerun the program without restarting.

AERUNCONTROL Record:
The restart status is stored in the record AERUNCONTROL. If you receive the message requiring you to restart instead of rerun, then there is a row in this table for the program you are running and the run control that you are using.

Fields:
PROCESS_INSTANCE — instance that abended
OPRID — your user name
RUN_CNTL_ID — run control used when it abended
AE_APPLID — Application Engine program name

Fixing the Error:
To fix the error, you either have to delete the row from the table or restart the original process instance that abended.

SELECT * FROM PS_AERUNCONTROL WHERE AE_APPLID = ‘<App Engine Name>

Update:
Ray pointed out that PeopleSoft has provided an online way to fix the problem. You can do it from the page: PeopleTools > Application Engine > Manage Abends

Deleting the Row:

If you are the only one with an abended program, you can just truncate the whole table:

TRUNCATE TABLE PS_AERUNCONTROL

Or, if you want to just affect your program, you can do something more like this:

DELETE FROM PS_AERUNCONTROL WHERE OPIRD = ‘<username>‘ AND RUN_CNTL_ID = ‘<run control>