Word - FIS Incorporated

advertisement
Peoplesoft Notes
1. Peoplesoft tables of interest ................................................................................................. 2
2. PDF reports. ......................................................................................................................... 2
3. FTP job to copy file to NT server in Dev environment ......................................................... 3
4. PS Queries ........................................................................................................................... 3
5. Translate table ...................................................................................................................... 3
6. Installing PeopleTools .......................................................................................................... 4
7. Scheduling/reporting ............................................................................................................ 4
8. General Table Naming ......................................................................................................... 4
9. Adding Objects ..................................................................................................................... 4
10. Cloning pages and adding to menu ................................................................................... 5
11. Effective Dating SQL .......................................................................................................... 5
12. Paycycle id’s ....................................................................................................................... 6
13. Peoplesoft Application Development ................................................................................. 6
14. Peopletools Tables ........................................................................................................... 16
15. Peoplesoft Architecture .................................................................................................... 16
16. Peoplesoft Design Methodology ...................................................................................... 17
17. PeopleCode ...................................................................................................................... 17
18. Security............................................................................................................................. 23
19. Process Scheduler ........................................................................................................... 23
21. Create Paysheet/Run Paycalc process ............................................................................ 24
22. Pay Unsheet process ....................................................................................................... 24
23. Pages/components behind the web page ........................................................................ 24
D:\106755818.doc
Page: 1 of 25
Peoplesoft Notes
1. Peoplesoft tables of interest
PS_PAY_OTH_EARNS does not have emplid
as part of the key. The way to find
corresponding records in this table is:
Select *
From PS80PRD.PS_PAY_OTH_EARNS A,
PS80PRD.PS_PAY_EARNINGS B
Where b.emplid = ‘100099999’
And b.pay_end_dt = ‘12/31/2005’
And a.pay_end_dt = b.pay_end_dt
And a.company = b.company
And a.paygroup = b.paygroup
And a.page_num = b.page_num
And a.line_num = b.line_num
Paysheet run id’s are in:
Pay calc run id’s are in:
Process scheduler status
PS_PAYSHEET_RUNCTL
PS_PAY_CALC_RUNCTL
PSSERVERSTAT
To see values for server status
select
*
from
ps89cnv.PSXLATITEM
where FIElDNAME = 'SERVERSTATUS'
Pay rates
PS_SAL_PLAN_TBL
(SETID, SAL_ADMIN_PLAN, EFFDT)
PS_SAL_GRADE_TBL
(+ GRADE)
PS_SAL_STEP_TBL
(+ STEP)
PS_SAL_RATECD_TBL
(+COMP_EFFSEQ,
COMP_RATECD)
PS_JOBCODE_TBL
(SETID, JOBCODE, EFFDT – has
SAL_ADMIN_PLAN to tie back to above
tables)
2. PDF reports.
Some SQR’s are set up to generate PDF reports. They can only run on the server, not on the
mainframe.
Some reports are set to only print to a specific printer. When testing check where the report may
end up.
D:\106755818.doc
Page: 2 of 25
Peoplesoft Notes
3. FTP job to copy file to NT server in Dev environment
Promotion of program via Endevor automatically copies program to QA NT directory.
TESTPSFT.PS80DEV.NEESJCL(FTPTOFS) - 01.99
Columns 00001 00072
===>
Scroll ===> CSR
***************************** Top of Data ******************************
//$FOERTSS JOB '13,99,IO5160,1734,0345,G1003','
',
// CLASS=T,MSGCLASS=Q,NOTIFY=$FOERTS
//*
//********************************************************************
//**
SEND THE FILES TO FILESERVER VIA FTP
***
//**
DO NOT MODIFY THIS JCL OTHER THAN JOBCARD AND PUT CMD(S) ***
//********************************************************************
//*
//*
//FTP010
EXEC PGM=FTP,PARM='(EXIT'
//SYSPRINT DD SYSOUT=*
//* IP ADDRESS FOR WBROPS02 HAS HOME DIRECTORY PSFT80
//INPUT
DD *
PS80QA
<< note connect to QA
FTP80DEV
HAPPY123
LOCSITE FILETYPE=SEQ
CD PS80DEV
<< but sending to dev directory
CD SQR
PUT 'TESTPSFT.PS80DEV.SQRSRC(PHW410)' PHW410.SQR
CLOSE
QUIT
/*
4. PS Queries
The following tables are involved in queries
PSQRYDEFN
PSQRYSELECT
PSQRYRECORD
PSQRYFIELD
PSQRYCRITERIA
PSQRYEXPR
PSQRYBIND
All tables are keyed by oprid and qryname. To delete a query your could run
DELETE FROM PSQRYDEFN WHERE OPRID = 'X' AND QRYNAME = 'Y'
DELETE FROM PSQRYSELECT WHERE OPRID = 'X' AND QRYNAME = 'Y'
DELETE FROM PSQRYRECORD WHERE OPRID = 'X' AND QRYNAME = 'Y'
DELETE FROM PSQRYFIELD WHERE OPRID = 'X' AND QRYNAME = 'Y'
DELETE FROM PSQRYCRITERIA WHERE OPRID = 'X' AND QRYNAME = 'Y'
DELETE FROM PSQRYEXPR WHERE OPRID = 'X' AND QRYNAME = 'Y'
DELETE FROM PSQRYBIND WHERE OPRID = 'X' AND QRYNAME = 'Y'
5. Translate table
D:\106755818.doc
Page: 3 of 25
Peoplesoft Notes
You may be able to get a translation of a code by looking in the XLATTABLE. For example, to
find codes for PS_JOB.EMPL_TYPE run the following
Select * from ps80prd.xlattable
Where fieldname= ‘EMPL_TYPE’
6. Installing PeopleTools
Connect to server //nyhcbappd2v
Go to PS80DEV\wscfg directory
Click on one of the PS80DEV_from_x_drive.bat files. (x is j,k or l)
7. Scheduling/reporting
Peoplesoft jobs in prod are set to be single threaded. Only one PP job runs at a time. This
ensures, among other things, that the PSSQR100 and PSSQR614 procs using
PSFTPRD.PPXJ0100.TEMP.PRTFILE/.BKUP report files do not get over overwritten by another
job before the current one completes.
In test however, the PSSQR100 and PSSQR614 procs are different and expect a delete/define
member the same name as the SQR in ‘TESTPSFT.PS80DEV/QA.UTIL.CNTRLIB’. The member
is used by IDCAMS to delete/define the report files – that use the SQR name in report files to
avoid testing conflicts.
8. General Table Naming
Tables starting with PS_ are Peoplesoft tables.
Tables starting with PS (no _) are PeopleTools tables
PSRECDEFN – record definition
PSRECFIELD – field definition
Views
Summary page views …_VW
Search record views …_SRCH
Prompt table views …_VW
Reporting views
… No common suffix
9. Adding Objects
Adding object to
project
Field definitions
Click Insert/Current Object into Project
In Peoplesoft Application Designer
File/Open, select Field from Definition Dropdown
Type name (or part of name) in Name field, click Open
Select field name displayed in list, and click Open, or doubleclick on
D:\106755818.doc
Page: 4 of 25
Peoplesoft Notes
name to display field properties.
Select Edit, Find Definition references to see where field userid
To create a field
File/New, select Field from list – follow prompts as needed
Click File/Save to save definition
10. Cloning pages and adding to menu
Page
NP_RUNCNTL_PHW430
Components
NP_RUN_PHW430
Menu
Security
Process Scheduler
Manager
Opened page NP_RUNCNTL_PHW020 and did save as
NP_RUNCNTL_PHW430.
Update page (text literals) as needed
Opened component NP_RUN_PHW020, save as NP_RUN_PHW430
Updated Item Label (displays as tab label on screen)
Right click on component line to display component properties
Changed values in General, Use, and Internet tab fields as needed.
Opened Administer Workforce (GBL) to add menu items
Update menu item properties
Go/PeopleTools/Maintain Security
In new window
Use/Permission Lists/Pages/”Update/Display”
Display permission list for ALLPANLS
Clicked on Edit Component next to Administer_Workforce(GBL)
Found menu item under CSTM Reports found PHW430 and clicked
on Edit Pages
Set page permissions same as PWH020
Clicked on Go/Peopletools/Process Scheduler Manager
Scheduler App opened
Use/Process Definitions/Process Definition Options/”Add”
Process Type – SQL Report
Process Name – PHW430
Process Definition Tab – Type in description and long description
Process Definition Options tab – Run (Both), Component –
NP_RUN_PHW430, Process Group – HRALL
Other tabs left as defaults.
11. Effective Dating SQL
…
FROM PS_JOB C
WHERE C.EMPLID = &A.EMPLID
AND C.EFFDT = (SELECT MAX(PJ.EFFDT)
FROM PS_JOB PJ
D:\106755818.doc
Page: 5 of 25
Peoplesoft Notes
WHERE PJ.EMPLID = C.EMPLID
AND PJ.EMPL_RCD = C.EMPL_RCD
AND PJ.EFFDT < &B.EFFDT)
AND C.EFFSEQ = (SELECT MAX(PJ.EFFSEQ)
FROM PS_JOB PJ
WHERE PJ.EMPLID = C.EMPLID
AND PJ.EMPL_RCD = C.EMPL_RCD
AND PJ.EFFDT = C.EFFDT)
12. Paycycle id’s
Montly payrolls are identified with a 2 digit year and a 1 letter month, eg 06D is
2006/April.
Weekly payrolls are identified with a 1 digit year and a 2 digit week, eg. 602 is for week
01/01/06 to 01/07/06 – with check date 01/12/06 (2nd paycheck of the year)
13. Peoplesoft Application Development
Starting with Peoplesoft 8, Peoplesoft Pure Internet Architecture has all activities accessible via
the web browser
Designing and
Plan the data structures
application
1. Define fields – names, attributes, default values, edit values,
prompt table
2. Define records – names, keys, search, master/child
relationships
3. Design pages, define records to be used on page, menu
access
4. Set test plan
5. Create component definitions
6. Register components
Key function in App
Alt 0 (zero) – toggles project workspace show/hide
Designer
Alt 1 - toggles output window show/hide
Data validation
Prompt table edits
strategies
Effective dated tables
Translate table edits
Yes/no edits
Tableset sharing prompts
Project options
Tools/Options
Reload project at startup
Code/setup Validation
Inserting objects into project
Undo/redo buffer depth
Font size
Image storage formats
Creating new fields
D:\106755818.doc
For any new fields gather the following
Field/Label Name eg Last_name
Type eg. Char, Num, Date, ..
Length eg 6 (for Char) 2.1 (for Num) 10 (Date)
Label (long/short)
Page: 6 of 25
Peoplesoft Notes
Format Upper, Mixed, N/A
Translates Y/ New
Y/Add field via File/New/Field (from list)
Go to File/Object Properties with field selected to and text and owner Id
if needed. If the field is a character field there will be an International
Format and Translate Values tab
Creating translate
values
Go to File/Object Properties with field selected (field must be char)
Select Translate Values tab
Click on Add to add translate values
Translate values should end up in the owner.XLATTABLE table
Record Definitions
File/Open/Record , type in record (or partial key) hit Enter to
display/select
With record displayed
View/Fields Display
View/Use Display
View/Edits Display
View/Peoplecode Display – display by field all places Peoplecode can
be attached, FieldDefault, Field Change, Field Edit,….
* Remember in App Designer the records are referenced w/o the PS_
Click on record field to show Use and Edit tabs where you can set
Key, Duplicate Key, Alternate Key, Prompt table for field value, data
entry via checkbox, dropdown list, etc
Use above
Create table DDL by
Build/Current Object
Select build options
Check build script file
Click in settings to check
Click build to generate script
See build tab at bottom of App Designer for message
If you have record definition displayed, clicking on the print icon
will print the definition, plus any Peoplecode, xlat values, etc.
Page Definitions
File/Open/Page , type in record (or partial key) hit Enter to
display/select
Placing a field (with translate values) on page, double click on it, check
show prompt button to (automagically) active field lookup
When a page is displayed on the web, pressing cntl/J will display a
page detailing info on the page such as the page, the page component,
menu, app server, etc.
D:\106755818.doc
Page: 7 of 25
Peoplesoft Notes
Page fields
To create radio buttons that set value of one field
1. Create as many radio buttons as possible values to be set
2. Set assigned value to each button (value to assign if selected)
3. Insert a group box and position it to surround the buttons
4. Set record,field, and label properties of group box
Scroll Areas
1. Select insert, scroll area
2. Drag scroll area onto page and surround fields to be scrolled
3. Set properties of scroll area , occurs level and occurs count
4. Set title properties via page element type – Message catalog,
message set and message number
The message catalog table should be used to avoid hard coding
Field order
1. Select Order tab on page
2. Set order as needed
Adding grid on page
To create a grid
1. Add a grid control to the page
2. Drag/drop fields into the grid
3. Set grid properties
4. Resize grid as needed
Multiple page levels
Create level 0
1. Create new page
2. Drag/drop level 0 fields to page
Create level 1
1. Select Insert Grid
2. Drag/drop grid
3. Update grid properties
a. Main record – level 0 record
b. Page Field name – level 0 record
4. Drag/drop selected level 1 record into the grid
5. Resize record fields/grid as needed
6. Add related fields (such as description for code)
a. Click on field
b. Add record/field to related record/field
c. See other field properties as needed
7. Check field page order by clicking on Order tab
Components
(Use message database for any messages)
A page must be attached to a component.
A component can be attached to a menu
Create the component by
File/New, select component from New Definition dialog
Expand pages folder in project workspace
Drag the page from the folder to the component
Enter info as needed in component properties
Search record
Actions – add, update/display, etc.
Toolbar actions – save, cancel, spell check, view worklist, …
D:\106755818.doc
Page: 8 of 25
Peoplesoft Notes
Registering
components
Use Registration Wizard to
1. Place component on menu definition
2. Create a content reference in portal registry
3. Place component in permission list
To start registration wizard
1. Open the component in Application Designer
2. Select Tools, Register Component
3. Set ‘Add component to menu’, ‘Add component to portal
registry’, ‘Add this component to a permission list’, click Next
4. Respond to prompts
Security
Roles –
1. Select PeopleTools, Maintain Security, Use , User Profiles,
Enter userid or search to select
2. Assign roles, permission lists, etc.
Permission Lists 1. Select PeopleTools, Maintain Security, Use , Permission Lists
To allow user to select menu item from menu
1. Select PeopleTools, Maintain Security, Use , Permission Lists
(Search -Pick permission list needed)
2. Sselect Pages Tab, select menu that page is on and click edit
components
3. Click on Edit Pages for that component, check appropriate
options
Portal Registry
Select Peopletools, Portal
Node Definitions – for default node
Portal Definitions – for default portal
PeopleTools, Portal Structure and Content
Click Edit link for folder (use select new parent to move folder)
Click Add Folder to …. Add a folder!
Examing breadcrumbs, folders and content references
1. Peopletools, Structure and Content
Searching Site
Execute Verity search by
1. Enter search criteria in search field
Update search registry index
1. Peopletools, Portal, Build Registry Search Index
2. 2. Add new run control id (if needed)
(Runs PS application engine process called PORTAL_INDEX)
3. Run/OK
D:\106755818.doc
Page: 9 of 25
Peoplesoft Notes
4. Process Monitor/Refresh until success appears in Run Status
Data Audits
Export/Import
Create an audit record
1. Open the record definition to be audited
2. Do File/Save As AUDIT_.... (record name)
3. Insert audit fields into AUDIT_ record
Insert AUDIT_OPRID, AUDIT_STAMP, AUDIT_ACTN as first 3
fields on AUDIT_ record
4. Delete unneeded fields on AUDIT_ record
5. Clear key, search, list, default value fields on AUDIT_ record
6. Set ‘Auto Update’ on AUDIT_STAMP
7. Do File/Save
8. Build table
9. Open original record to be audited
10. Select File, Definition Properties, Use tab
11. Enter AUDIT_... into record name field, set ADD, Selective,
Delete, and/or Change
Set Field level audit
1. Display record definition
2. On Use table, check audit options, Field Add, Change, Delete
in Audit group box
Exporting
1. Open the project.
2. Select the Upgrade tab
3. Select Tools/Copy Project/ To File
4. Make sure all definition types are selected
5. Set the export directory
6. Click copy button
Two files created - xxx.ini and xxx.xml
Importing
1. Select Tools/Copy Project/From File
2. Browse to folder containing xxx.ini and xxx.xml export files
3. Click Open
4. Make sure all definition types are selected
5. Click Copy
6. Select Tools/Validate Project
7. Click No in Delete Objects Dialog box
Creating Peoplesoft
views
SQL View option - If you want to write the SQL view definition
1. Create new field definition
2. Insert fields Save record definition
3. Set the record field attributes
4. Write the SQL statement (Order of the fields must match the
order of corresponding fields in the view select statement
5. Build the view
Query View – Create the view using Peoplesoft to prompt you through
building the query This process has 3 parts:
D:\106755818.doc
Page: 10 of 25
Peoplesoft Notes
1. Record definition
2. Query definition
3. Documentation
To create a Query View
1. Create the record definition
2. Click record type tab
3. Select Query View option and ‘Click to launch Query’
4. Save record definition
5. Create query for view
6. Test query
7. Copy SQL and paste into Record Properties
8. Save record definition
9. Remove unnecessary field attributes
10. Save record definition
11. Build View
In the end there is no difference in the result between building the view
on your own (SQL View option) vs having Peoplesoft (Query View)
prompt you through it.
There is a potential problem with SQL View in that if the field order
changes but view sql doesn’t you end up with a view field mismatch to
the underlying view sql.
Summary Pages
1. Summary pages summarize or display data in view only mode
(no update)
2. Usually do not contain related fields (use view if needed)
3. Exceptions to related fields are:
a. joins to effective-dated tables
b. Including short/long descriptions from translate table
The key structure in views are used differently that tables. In views the
component processor uses the ‘key’ to search and sort.
First key in a summary view should be the search key. Information
depends on the search key at level 0.
Search records
Te level 1 view must have at least to key fields – the level 0 key and 1
more
Three questions for search records
1. Which table is source of high-level keys at level 0 on the page?
2. Which rows of data should be seen by user?
3. Which fields should user on the search page
Every component must have a search record
When user clicks a content reference, the corresponding component
search records and actions are used to build search page
The search record of a component is used to request data from
database server, and since only selected fields returned, data retrieval
is minimized.
The search page is dynamically created page built by the system – not
user defined.
D:\106755818.doc
Page: 11 of 25
Peoplesoft Notes
Search keys appear as fields on the search page as they appear in the
records.
Alternate search keys are not key fields but they appear as fields on the
search page to help find existing records (really the primary key existing
records)
Alternate search keys are not key fields but they appear as fields on the
search page to help you find an existing key.
List box items are fields in search results list – they do not have to be
the key or alt key fields
The main purpose of the search page is to find key value(s) that the
system can insert into an SQL phrase for use as the primary key in the
SQL where phrase. (The level 0 record is found and returned)
When in add mode the primary seach key is used to construct the initial
Add page where the user enters the new (primary) key. The subsequent
page displayed allows the user to enter the non-key fields values.
Search views (views ending with _SRCH) are created to provide
additional search criteria, and create row-level security. So on
component dialog window the search record can be the _SRCH view
but the ‘Add search record’ would be the base record.
If _SRCH record is defined but an ‘Add search record’ is not a user
could bypass the security
a. When user selects add a new value, the component process
first tries to select the value from the search record
b. If record not found, the page processor takes over to load
page
c. If record in base table, the record is retrieved and displayed
(uh-oh)
Prompt table edits
Tableset sharing
D:\106755818.doc
A magnifying glass icon next to a field indicates prompting available.
A prompt is just a list of valid values that can be selected for the field
The prompt values generally come from a ‘master’ table
The same mechanism that builds search pages are used to build look
up pages.
Again use views for row level security, rearranging columns, join tables,
etc.
Prompts return lowest level key from prompt table, with exception of eff
date and eff seq.
Prompts attempt to match higher level keys in buffer
Views are useful to control the list of values returned by:
a. filtering the list of value values by where clause
b. controlling the field returned from a prompt action
c. controlling the matching that occurs in background
d. controlling the search/alternate search keys, and list
box items used by the system to build prompt dialog
box
Functional aspects:
 Goal is to share sets of values in a prompt table without having
to write views.
 For example, one company with 3 divisions (or business units).
Page: 12 of 25
Peoplesoft Notes

Each company has it’s own set of item codes. And each
company maintains it’s own set of transaction data (orders
using it’s own set of item codes)
A business unit could be a set of departments, sales regions,
legal entities, financial entities
Tableset sharing uses 2 types of tables: a) control tables, b) transaction
tables
Transaction tables:
 Contain the business unit field and store transaction data
(orders, invoices, etc.)
 Are updated regularly and contain the required
BUSINESS_UNIT (usually key but sometimes just required)
field
Control tables:
 Are keyed by SetID and are using in prompting for lists of valid
values.
 Generally static and change only via maintenance
 Data in control tables may be lists of customers, products, etc.
A tableset is a group of rows in a control table grouped by the same
high-level SETID(column) value
Prompt values returned from the control table contain lowest level key
(except of effdt and effseq) for the specific SETID value specified.
SETID values are maintained in SETID_TBL
There are 2 types of setID’s: a) Physical and b) Logical
Physical setIDs:
Have same value as the business unit
Are automatically created by the system when a business unit is
created
Logical setIDs:
Are created manually and is a label for a set of data
Are a way of sharing rows of data across multiple business units
The TableSet Control utility is used to establish links between business
units in the transaction tables and setIDs in the control tables
Implementing tableset sharing involves 5 steps
 Add BUSINESS_UNIT to a transaction table or STEID to
control table
 Define the Set Control Field in the control table
 Create or alter the table
 Add Peoplecode to the business unit table
 Alter the page
Adding Business Unit, specify on the record definition
 Key
 Search Key
 List box item
D:\106755818.doc
Page: 13 of 25
Peoplesoft Notes



Required
Prompt against a PS_BUS_UNIT_TBL (may be multiple)
Default value
Adding a SETID to a control table
Same as above except prompt table is PS_SETID_TBL
Parent-Child
relationships
Referential Integrity is enforced in PS via
 Prompt table edits – error if invalid value entered not on prompt
table
 Peoplecode – use SQL and Peoplecode objects
 Record definition structure
 Occurs levels on a page
 Parent-child record definitions
 Not done in database
Creating Parent-Child record definitions
Clone (copy) the parent key structure and save as the child name
Add addition key and data fields to child record definition
Type in the parent record name into the Record Releations/Parent
Record field on the child record properties screen. (useful for PS Query)
Page definitions
 Level 0 never contains a scroll area or grid (parent level)
 Levels 1,2,… can contain scroll areas (the child records). A
scroll area only writes to a single record definition. Display of
data must come from sames single record definition, unless
they are related fields.
 The occurs-level of a given scroll area or gird is used to
determine the hierarchical relationship among various record
definitions on a page
 A component can contain many pages, the first which may
have the parent definition and the 2nd the child. But each page
must shave the same level 0 search key.
Buffer allocation
Buffer allocation
 Is the process of retrieving application data from the database
server and storing it temporarily on the app server
 All the application data for the component is read from the
database into the memory buffer before a page is displayed
 When user saves the component only the altered data is
updated and committed to the database.
Subrecords and
subpages
Subrecords
 A subrecord contains common fields that can be inserted into
other records by referencing just the subrecord name, rather
than adding fields one at a time.
 Fields from the subrecord become actual columns on the
physical table
 Subrecord definitions should end with _SBR
 Set the record type to ‘Subrecord’
 Set all Use and Edit attributes for subrecord fields as needed.
D:\106755818.doc
Page: 14 of 25
Peoplesoft Notes


The attributes are called over to the main record
A record with a subrecord in it will have ‘Expand’ and ‘Collapse’
subrecords buttons in app designer (view only)
Modifications after use on records causes all records to be
modified also
Subpages
 Provide a commonly formatted group of fields for use on
multiple page definitions
 Subpages should end in _SBP
 Create same a regular page
 Set page type to subpage and page size to Auto-size
 Add field controls
 Set record and use attributes such as display control and
related fields.
 Modifications after use on page causes all pages to be modified
also
Deferred processing
Deferred processing reduces the connections to the app server
Events that can initiate a server connection/request and if deferrable
Event
Deferrable
Enter data in fields with Peoplecode
Yes
Enter data in fields with prompts
Yes
Enter data in fields with related displays
Yes
Inserting a row from a grid or scroll area
No
Deleting row from grid or scroll area
No
Using grid or scroll area controls for forward/back No
Selecting new page tab
No
Selecting new grid tab
No
Expanding/collapsing sections
No
Clicking any button or icon or link on page
No
Saving the page
No
Deferred processing is default mode
Expert entry allows a change from interactive to deferred mode at
runtime but expert entry must be enabled on:
 Component property (check expert entry on Internet tab)
 Users profile (Peopletools/Security/User Pofiles/User
Profiles/General)
 When both checked the user will see a Expert Entry check box
at the bottom of the page
 If deferred processing enabled at page level, deferred
processing can be set at field level
Peoplecode
D:\106755818.doc
Peoplecode is
 Proprietary language
 Event Driven
 Executed on app server
 Consists of functions, assignments and conditions
 Used to maintain referential integrity
 Can add functionality to the user interface
Page: 15 of 25
Peoplesoft Notes
Peoplecode can be attached to
 Records
 Pages
 Components
 Menu items
 Component interfaces
 Messages
 Application Engine programs
 Mobile agents
Attach Peoplcode at appropriate level
 At record field level if it is to run every time a user accesses that
record
 At componet level if code to run only when records accessed
via that component
 At page level if code to only on that page
Peoplecode can not be attached to a standalone field
PeopleTools runs PeopleCode programs only when certain events
occur
Event driven process is handled by the Component Processor and the
events always occur in a certain order as determined by the component
processor flow.
The component processor is the heart of the online app server logic. It
manages the data buffers and the sequence of events
One event may cause multiple Peoplecode programs (each associated
to record/component/page) to execute
See section on Peoplecode below
14. Peopletools Tables
Peopletools tables start with ‘PS’ and no underscore
PSDBFIELD
Field definitions on a page and columns in application data tables
PSRCDEFB
Values used to build application data tables, indexes, views and some
field attribuites in user interface
PSPNLDEFN
Values converting into HTML as pages viewed in browser
PSPNKGRPDEFN
Definitions of components, aggreagates pages into groups and define
the table to search when adding new values
PSPRSMDEFN
Portal registry which builds user navigation
PSXLATITEM
Translate table
15. Peoplesoft Architecture
D:\106755818.doc
Page: 16 of 25
Peoplesoft Notes
Browse to Web Server (web services, java services) to Application Server (Tuxedo/Jolt –
connects to Java services on web server, Peoplesoft Services) to Database server (via
Peoplesoft Services/SQL)
16. Peoplesoft Design Methodology
1. Define business rules
a. Find balance
b. Be specific
c. Don’t predefine a solution
d. Attain consensus
e. Get agreement on all rules (else doomed)
2. Examine data models and define relationships
a. Look in Customer Connection for data models
b. Define changes and additions
3. Create mockups of applications
a. Catch issues before development begins
b. Clarify goals
c. Manage expections (what IS or IS NOT included)
4. Specify definition attributes
a. Use definition specification chart (field name, type, length, label, translate
values,..)
b. Create technical specifications from functional requirements
5. Perform impact analysis
a. Cross-reference (Crystal or SQR)reports
b. Definition Reference utility
c. Record Cross-Reference utility (PeopleTools/Utilities/Audit/Record Cross
Reference)
d. Compare and Report utility (Tools/Compare and Report)
e. Find In utility (Edit/Find In)
f. Impact of modifying existing Peoplesoft application
6. Go back to 2 as needed
17. PeopleCode
List of events that are available for each definition
Record field
FieldChange
FieldDefault
FieldEdit
FieldFormula
PrePopup
RowDelete
RowInit
RowSelect
SaveEdit
SavePostChange
SavePreChange
SearchInit
D:\106755818.doc
Component
Record field
FieldChange
FieldDefault
FieldEdit
PrePopup
Component
Record
Row Delete
RowInit
RowInsert
RowSelect
SaveEdit
SavePostChg
SavePreChg
SearchSave
Component
Page
Menu
PostBuild
Pre Build
SavePostChg
SavePreChg
Workflow
Activate
ItemSelected
Page: 17 of 25
Peoplesoft Notes
SearchSave
Workflow
Expanding record and field definitions in the project workspace will show associated Peoplecode
programs appearing as children (with lightning bolt) of the fields they are associated with. The
programs are named according to the event.
If/Then/Else
If condition then
Statements ;
Else
Statements ;
End-if;
Field elements
^ - same field to which program is attached (will be replaced by current
record and field names)
Fieldname – a field in same record definition as the program (the record
name will be prepended to the field name)
Recordname.fieldname – a field in a different record definition from the
program
Fields can be dragged from records in project workspace into the
Peoplecode editor
The field must be in the buffer for the code to work properly
Mathematical
operations
Boolean operators
Formatting
Warning/Error
Messages
= , != or <>, >, <, >=, <=
Applied in order
NOT
AND
OR
Peoplecode editor will check syntax and reformat the code when saved
or by clicking Validate icon
Peoplecode is case sensitive only in quoted strings.
Warning(“ Danger Will Robinson”);
Error(“Houston – we have a problem”);
Parentheses are not required around he warning or error msg
Checking for value
Concatenation
Comments
D:\106755818.doc
If Error, the user can not continue working until error has been
corrected.
2 functions
All(fieldname) - returns true when fieldname contains a value
None(fieldname) – returns true when fieldname does not contain a
value
If All(tab1.street, tab1.state, tab2.name) then
…;
Else
…
End-if;
Operator - |
Warning(“Invalid date :” | tab1.start_date);
3 methods for comments
Page: 18 of 25
Peoplesoft Notes



Message Catalog
Start with /* and end with */
Use Rem at start and end with ;
Use tags <* to *> (can comment entire program including
embedded comments
It is good practice to include a unique string in comments to identify
custom code. Use the ‘Find In’ dialog to search for the text string
Access Message Catalog via PeopleTools/Utilities/Administration/
Message Catalog







Message sets contain functionally related messages
Message sets 20,000 to 32,767 are available for use. All others
are reserved for Peoplesoft
Each msg has long and short description
Each msg uniquely identified by message set and message
number
The message number is automatically assigned (next seq.
number) by Peoplecode
The message text can be 100 chars long and is top line of text
that displays in error msg.
The explanation is displayed below the message text
Messages are retrieved by
MsgGet(<MessageSet>, <MessageNum>,”DefaultMsgText”,
[<bindvar1, bindvar2]);
If None(PS_EMPLOYEES.EMPLID) then
Error sgGet(32222,10,”Message Not Found”);
End-if;
“DefaultMsgText is displayed is message not found in catalog
You must indicate Error or Warning in the MsgGet syntax to determine
how the msg is treated
Warning MsgGet(20001,2,”Message not found. …”);
Field values can be inserted into the message catalog text by identifying
the replacement vars with %1, %2, etc. and passing in bind variables.
(replace/bind variables can not be used in explanation text)
FieldEdit
FieldEdits are invoked when all 3 conditions are meet
 A field value is changed by user
 The focus is changed
 The new value satisfies standard system edits
FieldEdits
 Validate contents of a field
 If error msg generated, the field will turn red
 Program can be record field or component record field
PeopleCode but program must be associated with the field
 Only validates a single field for a row of data
It is recommended that most validation should be placed in
D:\106755818.doc
Page: 19 of 25
Peoplesoft Notes
SaveEdit unless there are critical dependencies between an
interactive field and display-only field
SaveEdit
SaveEdit
 Runs when a user saves a component
 Used to validate multiple fields at a one time
 Executed when user presses Save and data passed standard
system edits but before updates to the database
 Applies to all rows in a component so a warning or error
displayed may not be on current page user is viewing
(concatenate field values into warning or error msg)
 Does not change the color of field to red if error
RowInit
RowInit
 Used to initialize fields, calculate values and change display
characteristics
 Executes before the page is displayed
 Program can be either record field or component record
Peoplecode. Not field specific
 Operates on all new buffer rows
 Not used for warnings/errors
FieldChange
FieldChange
 Performs processing that needs to happen when field value
changes
 Program can be either record field or component record
Peoplecode. Must be associated with field that is changed
 Recommended that you do not code an error or warning in
FieldChange code
 Use to control field displays and perform (re)calculations
 Runs after FieldEdit
 Triggered by field value and focus change
Display functions
Commonly used with RowInit and FieldChange
(un)Gray (recordname.fieldname)
(Un)Hide(recordname.fieldname)




Only one field can be defined in the function at a time
Ungray does not override PeopleTools attributes that are
assigned to the field. If field is defined as display only ungray
has no effect
If conflict between PeopleTools and PeopleCode, PeopleTools
tends to override PeopleCode.
Object oriented code can override display only attributes in
PeopleTools
SetDefault(recordname.fieldname) – clear contents of field to default
Objects
Syntax
&Object.Property = value;
D:\106755818.doc
Page: 20 of 25
Peoplesoft Notes
&variable = &Object.Property;
&FIELD.label = $FIELD.GetShortLabel(“LABELX”);
To work with objects
 Declare the object
 Instantiate the object
 Assign values as needed to object
 Data must be in buffer for code to work properly
Local Field &Emplid; /* declare local */
&Emplid = GetField(recordname.empl_id); /*instantiate */
Common field object methods
 Value property
 Enabled property
 Visible property
 Style property
 SetDefault() method
Local Field &Emplid;
&Emplid = GetField(PS_JOB.EMPLID);
If &Emplid.Value = ‘1234’ then
…;
End=if;
&Emplid.Enabled = True;
&Emplid.Visible = True;
&Emplid.Style = “PSHYPERLINK:
&Emplid.SetDefault(); /* set field to ‘empty’, 0, blank, null */
Images
Viewing images
 Open App Designer
 File, Open, Image
 Enter search parms
 Select image definition
 Open
Image definitions held is PSCONTDEFN
A page definition must have a container(push button or static image
control) to hold an image
An image definition can be defined within a scroll area or grid
Image fields have 3 main attributes
 Size
 Format
 Labels
Image fields
 Must be last column in record and type Img (similar to Long)
 Record should contain PSIMAGEVER field (2nd to last field improves performance – Java servlet on web server checks
field to see if image already cached , not required field, make
invisible on online page)
D:\106755818.doc
Page: 21 of 25
Peoplesoft Notes
Images are uploaded from local or network directory using Peoplecode
and push buttons
Image Functions:
&rc = InsertImage(recordname.fieldname); - Associate image file with
record field
PS saves the image by saving the component. A search page is
invoked to allow use to upload the image to be used
DeleteImage(recordname.fieldname) - delete the image
Push button fields are on derived/work record. A FieldChange
PeopleCode program on the derived/work record is defined to:
 Upload/insert the photo into the image record field
 Delete the image defined for the image record field
To define push button
 Select Insert, PushButton/Hyperlink and place control on page
 Double click button and define properties
 Push Button – Selected
 Destination – PeopleCode Command
 Record Name – Derived/Work Record name
 Field Name – Derived/Work Record field name
 Add FieldChange Peoplecode (insertimage, deleteimage)
PeopleSoft Internet Architecture supports JPG and BMP image formats,
but image definitions supported are BMP, DIB, JPG, GIF, WBMP
Style Sheets
A style sheet:
 Contains 1 or more formatting styles that can be applied to
page controls
 Composed of 1 or more classes (either default – PS supplied,
or custom – not PS delivered) that determine the formatting of
a page control
 Can contain a substyle sheet (analogous to a subpage or
subrecord)
 Accessed via File, Open, Definition, Style Sheet
 Is a global definition, alterations to it cause system wide display
changes (same for substyle sheets)
Default styles are identified by ‘*** Used Default Style ***’ in field
properties
A class is a template defining properties such as font name, style,
format, color, etc. The properties are applied to pages or page controls.
Style sheet PTSTYLEDEF contains all the default classes.
To set a different style sheet(class) for a control, select a different value
from the Style drop down list
D:\106755818.doc
Page: 22 of 25
Peoplesoft Notes
Moving source code to
new environment
If STATS is NOT being used
In PeopleTools, go to Tools/Upgrade
Select Compare and Report option for ….. Compare and report!
Select Copy to …… Copy!
18. Security
Table – PSOPRDEFN
Two columns of interest
ACCTLOCK
values 0 – unlock, 1 – lock
OPERPSWD encrypted password. If updating via QMF make sure profile set to mixed
case - ttlX21MVCv0FP+vuj6eCTvGO09Q=
(welcome)
update ps80dev.psoprdefn set acctlock=0 where oprid='FOERTS'
19. Process Scheduler
To start/pause mainframe process scheduler in test
TESTPSFT.PS89xxx.JCLLIB(STARPRCS) - xxx being DEV, QA, INT etc.
(STOPPRCS) - pause
The production jobs are
NEES.COMMON.PROD.JCLLIB(PUDJ0130) – to pause
(PUDJ0140) – to resume
Eg.
UPDATE PS80PRD.PSSERVERSTAT
SET SERVERSTATUS = '3'
,
SERVERACTION = '3'
,
LASTUPDDTTM = CURRENT TIMESTAMP
WHERE SERVERNAME IN ('PSOS390','PSNT')
AND SERVERSTATUS = '2';
The following tables are used by process scheduler.
PS_SERVERDEFN
PS_PRCSPURGELIST
PRSPRCSRQST
D:\106755818.doc
List of servers
(Used in purge process) List of runstatus (see descriptions in
PSXLATITEM where FIELDNAME = ‘RUNSTATUS’) and the
DAYSBEFOREPURGE
List of process instances (PRCSINSTANCE), servers the process is
running/ran on (SERVERNAMERQST) and the current run status
(RUNSTATUS)
Page: 23 of 25
Peoplesoft Notes
PSPRCSQUE
PSPRCSPARMS
PSPRCSQSTTEXT
PSPRCRQSTDEST
PSPRCSRQSTXFER
Queued processes(?)
Process parms
Process text
Process destination
21. Create Paysheet/Run Paycalc process
A run id will need to be created.
1. Click on Payroll for North America/Payroll Processing USA/Create and Load
Paysheets/Create Paysheets.
2. Click search to get list of run control id’s. In this case you will need to pick the run control
that matchs to the batch job parm card (eg PPW1000F - PAYCREATE) that the program
will look for.
3. After selecting the run control id, enter the Pay Run Id (eg. 606) and save it.
4. Click on Payroll for North America/Payroll Processing USA/Produce Payroll/Calculate
Pay.
5. Click search to get list of run control id’s. In this case you will need to pick the run control
that matchs to the batch job parm card (eg PPW1000G - PAYCALC) that the program will
look for.
6. After selecting the run control id, enter the Pay Run Id (eg. 606) and save it.
7. Make sure all other parms in the job have the correct pay run id and/or end/check date
8. Submit batch job
22. Pay Unsheet process
Click on Payroll for North America/Payroll Processing USA/Update Paysheets/Pay Unsheet
1.
2.
3.
4.
Select or create new run id
Enter Pay run id for on cycle run, or company, paygroup, etc. for off-cycle calendar
Click run
Click on Process Monitor to check status. If run status continues to show queued you
may need to restart process scheduler, see above for mainframe, or contact PS
middleware support group for restart of NT server
Note that the run id’s in process scheduler table were probably deleted.
23. Pages/components behind the web page
To see what page/component is being executed to display the web page, press cntl/J
D:\106755818.doc
Page: 24 of 25
Peoplesoft Notes
24. PeopleTools/Process Scheduler/Processes
To see how a process is defined go to PeopleTools/Process Scheduler/Processes
If you know the name (eg.PHO010), select ‘Search by Process Name’ in the dropdown box and
enter the name
Don’t know if this is standard but Crystal report PH0110 is named NPPHO110
D:\106755818.doc
Page: 25 of 25
Download