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