Cal Poly Pomona PeopleSoft Development Standards Last Revised: 11/04/2010 Pomona PeopleSoft Development Standards DRAFT REVISION CONTROL Document Title: Pomona PeopleSoft Development Standards Author: Tim Raymond File Reference: Pomona PeopleSoft Development Standards.doc Date By Action Pages 2/20/2008 Tim Raymond New Document All 11/10/2010 Tim Raymond Removed “Draft” status. Review/Approval History Date By Last Revised: 2/12/2016 Action Pages Pomona PeopleSoft Development Standards DRAFT Table of Contents Page Section 1 Naming Conventions ................................................................................................................ 1 1.1 Module Names ......................................................................................................................... 1 1.2 Report/Process Naming ........................................................................................................... 1 1.3 Section 2 2.1 2.2 2.3 Section 3 3.1 3.2 Section 4 1.2.1 Cloning CSU delivered reports/processes ............................................................... 1 1.2.2 Cloning PeopleSoft delivered reports/processes ..................................................... 2 1.2.3 Pomona reports/processes ....................................................................................... 2 PeopleSoft Object Naming ....................................................................................................... 2 1.3.1 Records .................................................................................................................... 2 1.3.2 Pages ........................................................................................................................ 5 1.3.3 Components ............................................................................................................. 6 1.3.4 Menu Items ............................................................................................................... 7 1.3.5 Portal Registry .......................................................................................................... 7 Documentation Guidelines ....................................................................................................... 8 Documenting New Files or Objects .......................................................................................... 8 2.1.1 SQR/SQCs ............................................................................................................... 8 2.1.2 PeopleSoft Objects ................................................................................................... 9 Documenting Changes to Existing Files or Objects ............................................................... 11 2.2.1 SQR/SQCs ............................................................................................................. 11 2.2.2 PeopleSoft Objects ................................................................................................. 12 Changing and/or Removing Previously Documented Changes ............................................. 13 Development Standards ......................................................................................................... 13 SQR/SQC ............................................................................................................................... 13 3.1.1 Program Text File Width - Guideline ...................................................................... 13 3.1.2 Procedures - Standard ........................................................................................... 13 3.1.3 Defined Variables – Standard................................................................................. 14 3.1.4 Using Input/Output Files ......................................................................................... 14 PeopleSoft Objects................................................................................................................. 14 3.2.1 Standards Common to all PeopleSoft Objects ....................................................... 14 3.2.2 Records .................................................................................................................. 14 3.2.3 Pages ...................................................................................................................... 15 3.2.4 Message Catalog Entries ....................................................................................... 15 Appendix ................................................................................................................................ 17 4.1 Appendix A – New SQR Documentation Example ................................................................ 17 4.2 Appendix B – PeopleSoft Object Documentation Example ................................................... 19 Last Revised: 2/12/2016 Pomona PeopleSoft Development Standards 4.3 DRAFT Appendix C – PeopleCode Documentation Example ............................................................ 20 Last Revised: 2/12/2016 Section 1 Naming Conventions The standard Pomona naming convention begins with POM. Additionally the name should also contain the abbreviated module name when applicable (see below). How the abbreviated module name is included in the name is dependent on the type of item. This document will provide guidelines as to how to name various items/objects that you develop. 1.1 Module Names The following is a list of the module abbreviations for HCM: HR - Human Resources (general HR reports) BD – Budgets (in the HR system) BN – Benefits PY – Payroll RR – Regulatory Reports RS – Recruiting Solutions TL – Time & Labor WA –Workforce Administration SSH – Self-Service Human Resources SA – Student Administration (general SA reports that DO NOT fall into a module) AD – Admissions AA – Academic Advisement EU – Extended University FA – Financial Aid FC – Faculty Affairs SF – Student Financials SR – Student Records CC – Campus Community SSS – Self-Service Student The following is a list of the module abbreviations for Finance: FN – General Finance Application AM – Asset Management AP – Accounts Payable AR – Accounts Receivable BG – Budgets GL – General Ledger PO – Purchasing 1.2 Report/Process Naming 1.2.1 Cloning CSU delivered reports/processes If the report/process is CSU delivered and is being cloned by Pomona, the Pomona version should retain (if not already taken) the same module designation and number (if it is not already used), and replace ‘CSU’ with ‘POM’. For example CSUSR104.sqr becomes POMSR104.sqr. Last Revised: 2/12/2016 Page 1 of 20 1.2.2 Cloning PeopleSoft delivered reports/processes If the report/process is PeopleSoft delivered and is being cloned by Pomona, the Pomona version should attempt to preserve as much of the original name as possible, while pre-pending ‘POM’ to the beginning of the name. When possible the module name should be preserved, however in these cases it is realized that space is an issue. For example CCLTRGEN.sqr becomes POMLTRGN.sqr. 1.2.3 Pomona reports/processes Pomona reports/processes will be named using the following convention: POMXXNNN Where XX is the module abbreviation (SR, FA, AD, CC, etc.) and NNN is the report/process number. Report numbers shall be between 101 and 499, incremented sequentially. Process number shall be a number greater than 499 incremented sequentially. Numbers below 101 are reserved for CSU use. The next sequential number for the given module can be found on the I&IT Applications website at: http://www.csupomona.edu/~iit/applications/process_reports.shtml The tracking spreadsheet should be immediately updated (incremented) after the number is determined. This will avoid the possibility that multiple developers may develop a report/process using the same number. 1.3 PeopleSoft Object Naming 1.3.1 Fields In order to create the most flexibility and reusability of Pomona fields, field names should not contain the module name and should be named using the following naming convention: POM_... The ellipses (…) should be replaced by text that makes sense. Every attempt should be made to make the name as meaningful and descriptive as possible utilizing the remaining characters. 1.3.2 Records Run Control Records Pomona has defined common run control records for each module. In HCM these records are: POM_HR_RNCTL – Human Resources POM_PY_ RNCTL – Payroll POM_RS_RNCTL – Recruiting Solutions POM_TL_RNCTL – Time & Labor POM_SA_RNCTL – Student Administration POM_AD_RNCTL – Admissions POM_CC_RNCTL – Campus Community POM_FC_RNCTL – Faculty Affairs POM_SF_RNCTL – Student Financials POM_SR_RNCTL – Student Records POM_EU_RNCTL – Extended University Last Revised: 2/12/2016 Page 2 of 20 In Finance these records are: POM_FN_RNCTL – General Finance POM_AM_RNCTL – Asset Management POM_AP_RNCTL – Accounts Payable POM_GL_RNCTL – General Ledger POM_PO_RNCTL – Purchasing When developing for any of these modules, the common run control record should be used. If the fields needed by the process do not exist they should be added (non-destructively) to the common run control record. The only occasion when a new run control record should be created is when the run control page will have a scroll level that the common run control record does not support. In that case the record should be named using the following naming convention: POM_XXNNNN_RNCTL Where XX is the module abbreviation and NNN is the report/process number. Set-Up Records If a record is created as a set-up record for a report or process, the record should be named using the following naming convention: POM_XXNNN_SETUP or if the record is effective dated: POM_XXNNN_EFFDT If child tables are utilized they should be named using the standard report/process prefix of: POM_XXNNNN_ Where XX is the module abbreviation and NNN is the report/process number. The remainder of the name is at the developer’s discretion. Every attempt should be made to make the name as meaningful and descriptive as possible utilizing the remaining five characters. Data Records Data records are rarely associated with a report or process and as such have more leeway in their naming. Data records should be named using the following naming prefix: POM_XX_ Where XX is the abbreviated module name. The remainder of the name is at the developer’s discretion. Every attempt should be made to make the name as meaningful and descriptive as possible utilizing the remaining characters. In rare circumstances an additional character many be needed when naming the record. If that is the case, then the trailing underscore shown in the convention above may be dropped. Derived Records (Work Records) Derived records should be named using the following naming conventions: Last Revised: 2/12/2016 Page 3 of 20 POM_..._WRK or POM_DERIVED_… The ellipses (…) should be replaced by a module name if the record is being created specific to a module, or other text that makes sense. Every attempt should be made to make the name as meaningful and descriptive as possible utilizing the remaining characters Temporary Records Temporary records are often associated with a report/process. The type of process (SQR or Application Engine) will determine the naming convention. The records should be named using the following naming convention: Application Engine: POM_XXNNN_TAO Non Application Engine: POM_XXNNN_TMP Where XX is the module name and NNN is the report/process number. If multiple temporary tables are needed for a single report/process, the tables should be named using the following naming convention: Application Engine: POM_XXNNNA_TAO POM_XXNNNB_TAO Non Application Engine: POM_XXNNNA_TMP POM_XXNNNB_TMP Where XX is the module name and NNN is the report/process number. If a temporary table is needed for a purpose other than a report/process, it should be named using the following naming convention: POM_..._TMP The text used to replaces the ellipses (…) is at the developer’s discretion. Every attempt should be made to make the name as meaningful and descriptive as possible utilizing the remaining characters. Application Engine State Records Application Engine state records hold the value of variables while an Application Engine program is running. The records should be named using the following naming convention: POM_XXNNN_AET Where XX is the module name and NNN is the report/process number. Views Views that are created as a search view should be named using the following naming convention: POM_..._SRCH The text used to replaces the ellipses (…) is at the developer’s discretion. Every attempt should be made to make the name as meaningful and descriptive as possible utilizing the remaining characters. Last Revised: 2/12/2016 Page 4 of 20 Views that are created in support of a report/process should be named using the following naming convention: POM_XXNNN_VW Where XX is the module name and NNN is the report/process number. If the view is not created in support of a process/process, it should be named using the following naming convention: POM_XX…_VW Where XX is the module name. The text used to replaces the ellipses (…) is at the developer’s discretion. Every attempt should be made to make the name as meaningful and descriptive as possible utilizing the remaining characters. 1.3.3 Pages Run Control Pages Run control pages should be named using the following naming convention: POM_XXNNNN_RNCTL Where XX is the module abbreviation and NNN is the report/process number. Note this would be identical to the record name if a record were created specifically for the process. Run Control Set-Up Pages If a set-up page is created as part of a process, the page should be named using the following naming convention: POM_XXNNN_SETUP or if the page is effective dated: POM_XXNNN_EFFDT Where XX is the module abbreviation and NNN is the report/process number. If additional pages including secondary and/or subpages are utilized they should be named using the standard report/process prefix of: POM_XXNNNN_ However the remainder of the name is at the developer’s discretion. Every attempt should be made to make the name as meaningful and descriptive as possible utilizing the remaining five characters. Note that this will cause the pages and their associated records have the same name. This is intended. Other Set-Up Pages Set-up pages not associated with a report/process should be named using the following naming prefix: POM_XX_ Where XX is the module abbreviation. The remainder of the name is at the developer’s discretion. Every attempt should be made to make the name as meaningful and descriptive as possible utilizing the remaining nine characters. Last Revised: 2/12/2016 Page 5 of 20 Inquire/Use Pages Inquire/Use pages should be named using the following naming prefix: POM_XX_ Where XX is the module abbreviation. The remainder of the name is at the developer’s discretion. Every attempt should be made to make the name as meaningful and descriptive as possible utilizing the remaining nine characters. Subpages Subpages should be named using the following naming convention: POM_XX…_SBP Where XX is the module abbreviation, however this may be omitted if the subpage has the ability to be used by various modules. The text used to replaces the ellipses (…) is at the developer’s discretion. Every attempt should be made to make the name as meaningful and descriptive as possible utilizing the remaining characters. Secondary Pages Secondary pages should be named using the following naming convention: POM_XX…_SEC Where XX is the module abbreviation. The text used to replaces the ellipses (…) is at the developer’s discretion. Every attempt should be made to make the name as meaningful and descriptive as possible utilizing the remaining characters. 1.3.4 Components Run Control Components Run control components should be named the same as the run control page that it contains. If the component contains multiple pages, it should be named the same as the main run control page: POM_XXNNN_RNCTL Where XX is the module abbreviation and NNN is the report/process number. Run Control Set-Up Components If a set-up component is created as part of a process, the component should be named using the following naming convention: POM_XXNNN_SETUP Where XX is the module abbreviation. This name should match the name of the main page in the component. Other Set-Up Components Components that contain set-up pages not associated with a report/process should be named using the following naming prefix: Last Revised: 2/12/2016 Page 6 of 20 POM_XX_ Where XX is the module abbreviation. This name should match the name of the main page in the component. Inquire/Use Components Components that contain Inquire/Use pages should be named using the following naming prefix: POM_XX_ Where XX is the module abbreviation. This name should match the name of the main page in the component. 1.3.5 Menu Items Pomona Custom Menu The Pomona Custom menu is the menu that is updated regularly. Menu items contain two entries, Name and Label. All names added to this menu should be named using the following naming convention: Name: The name of the component the menu item is for The label may vary depending on the type of component the menu item refers to. In all cases the label should begin with the two letter module abbreviation that the menu item is for. Menu labels should be named using one of the following naming prefixes: Label: XXNNN-… Label: XX-… Where XX is the module abbreviation. If the item being added is a report/process, the module abbreviation should be followed by the 3 digit report/process number and a dash. If the item being added is not a report/process then the module abbreviation and dash is sufficient. The text used to replaces the ellipses (…) is at the developer’s discretion. Every attempt should be made to make the name as meaningful and descriptive as possible utilizing the remaining characters. Delivered Menu On occasion we will seek an exemption and modify a delivered menu. All names and labels added to delivered menus should be named using the following naming convention: Name: The name of the component the menu item is for Label: POM-… The use of the prefix POM is to assist in easily identifying Pomona changes to delivered menus. The text used to replaces the ellipses (…) is at the developer’s discretion. Every attempt should be made to make the name as meaningful and descriptive as possible utilizing the remaining characters. 1.3.6 Portal Registry Portal Registry Entries Portal Registry Entries contain Name, Label, and Long Description fields to be entered. Portal Registry entry names should be named using the following naming convention: Name: COMPONENT_NAME_MARKET Last Revised: 2/12/2016 Page 7 of 20 Where COMPONENT_NAME is the name of the component the Portal Registry is being created for, and _MARKET is the market that the component was saved as. E.G.:POM_AA101_RNCTL_USA. The label and long description of a portal registry entry should be named using one of the following naming prefixes: Label & Long Description: XXNNN-… Label & Long Description: XX-… Where XX is the module abbreviation. If the item being added is a report/process, the module abbreviation should be followed by the 3 digit report/process number and a dash. If the item being added is not a report/process then the module abbreviation and dash is sufficient. The text used to replaces the ellipses (…) is at the developer’s discretion. Every attempt should be made to make the name as meaningful and descriptive as possible utilizing the remaining characters. Section 2 Documentation Guidelines All development should be appropriately documented. How that is accomplished varies depending on the object type being developed. This section will provide guidance on how to appropriately document development at Cal Poly Pomona. 2.1 Documenting New Files or Objects Currently SQRs and PeopleSoft objects reflect a variety of documentation standards as they have changed over time. This section will provide guidance as to what the current standard is, as well as when documentation should be removed from files or objects that are being modified. 2.1.1 SQR/SQCs A sample document displaying the following standards can be found in Appendix A. All SQR/SQCs should have a standard header consisting of multiple sections that contain the following information: Campus, Report Name (File Name), Developer Name, Creation Date, and Program Name Program Description (and for SQCs “Used By”) o The program description should be a concise and relatively non-technical description of the program o Used By should reference SQRs that include the SQC Table Usage o This should contain a full list of all tables utilized by the process. The list should include the full table name, a brief description of the table, and the actions performed on the table by the program. Options may contain one, two, or all of the following actions separated by a / character: SELECT UPDATE INSERT Debugging Levels Last Revised: 2/12/2016 Page 8 of 20 o This section should note the various types of debug statements in use throughout the program and a description of what each type do when enabled in the process definition. Maintenance History and Programming Notes o This section may or may not contain any information when the program is initially written. o For standards to follow when populating this section, please see Section 2.2.1. The standard delimiter between the header documentation sections is an exclamation point followed by hyphens equal to the file width -1 (i.e.: !------…). Using the standard delimiter is important as it used by a script that pulls the first two sections from each SQR/SQC and stores it in a text file. All SQRs should also contain the following four constants: PROCESS_NAME VERSION_NUMBER LAST_UPDATE_DATE CREATE_DATE All SQRs should contain the following line in the Init-Report procedure to produce the standard Cal Poly Pomona log file header: Do Display-Pomona-Report-Header All SQRs should contain the following include statement to allow for the printing of the standard Cal Poly Pomona report header: #include ‘pomloghdr.sqc’ 2.1.2 !Standard Cal Poly Pomona Log Header PeopleSoft Objects Pomona Custom Menus The Pomona custom menus’ object properties should be updated each time an item is added. The update should include: Date, User, Menu, Action Where User is the person performing the update, Menu is the portion of the menu being updated (i.e.: SetUp, Process, etc.), and Action is what was added. Example: ********************************************************************************** DATE USER MENU ACTION ---------------------------------------------------------------------------------11/25/03 Mauricio Calderon Created Menu for SA Custom Reports 11/25/03 Mauricio Calderon Process Added CC500.sqr Other Objects Including but not limited to: Application Engine, Component, Menu, Page, and Record, Delivered PS/CSU Objects (including Menus) The object definition properties of all PeopleSoft objects should contain a description. The comments section should also contain the campus name, the name of the developer who created the object, the date the object was created, and a description of the object or its use. If there is additional information of value (such as the name of the modification or process that the object is associated with) that should be documented in the comments section as well. A sample displaying the following standards can be found below as well as in Appendix B: Last Revised: 2/12/2016 Page 9 of 20 California State Polytechnic University, Pomona Developer: Tim Raymond Date: 04/01/2009 Purpose: This run control component is to run POMCC505 Flatten Acad Org. ------------------------------------------------------------------------------------------------History ------------------------------------------------------------------------------------------------04/02/2009 - Tim Raymond Object Created 04/24/2009 - Tim Raymond Object was modified to add the following four fields: INSTITUTION, ACAD_CAREER, ACAD_PLAN, ACAD_PROG 05/31/2009 - Tim Raymond Object was modified by adding record POM_CC_EFFDT to allow the run control to hold multiple parameters so that it can have multiple runs under the same run control ID. PeopleCode All newly developed PeopleCode should have a standard header consisting of two sections that contain the following information, followed by an example: Campus, Developer Name, Creation Date, and Description Maintenance History and Programming Notes o This section may or may not contain any information when the program is initially written. o For standards to follow when populating this section, please see Section 2.2.2. /*********************************************************************************************** California State Polytechnic University, Pomona Programmer: Tim Raymond Create Date: 01/16/2008 Description: This code was developed to support the Pomona Credentials Mod. Maintenance History ------------------Date Mod.# Initials Last Revised: 2/12/2016 Description Page 10 of 20 -------- -----20080110-POM001 -------TJR ------------------------------------------------------------------Modified code to carry all current values forward on RowInsert. Notes ----Date Note# Initials Description -------- -----------------------------------------------------------------------------***********************************************************************************************/ The Maintenance history section will be added, if necessary, when the PeopleCode is updated. A sample of PeopleCode including the documentation of changes can be found in Appendix C. 2.2 Documenting Changes to Existing Files or Objects 2.2.1 SQR/SQCs Changes to an existing file should be documented in the Modification History section of the file. Each documented modification should be referenced by the date and modification number for that date in the format YYYYMMDD-##. The initials of the developer making the change should follow the modification date-number. Finally a clear description of the change should follow the developer’s initials. Each modification number should pertain to a single change. That change may cause updates to different lines throughout the file all referencing the same modification number. Other changes that are either significantly different than or unrelated to the other changes should receive their own modification number. Adding, Deleting, or Changing Lines of Code Comments relating to each change should be reflected on the line that the change is made, right justified as follows: !20080531-01 If the change involves deleting a line of code, then the comment relating to the change should appear alone on the line that was deleted. Old code should never be commented and left in a file. It should always be deleted. Adding Procedures When a procedure is added it is not necessary to add the modification date-number to each line added. The addition of a procedure will be referenced with the modification date-number right justified on the same line as the “Begin-Procedure …” code block as follows: !============================================================================ Begin-Procedure Lookup-ID !20080531-02 !============================================================================ Defined Variables Every time an SQR is modified both the VERSION_NUMBER and LAST_UPDATE_DATE variables should be updated to remain current. Log Output All SQRs should at a minimum contain the following info in addition to the info the standard log header provides: Last Revised: 2/12/2016 Page 11 of 20 Run Control Parameters Process Instance Number List of all parameters on the run control for the given execution Process Instance number of the given execution Begin Time Date-Time Stamp when the process started End Time Date-Time Stamp when the process ended In addition the following information should be provided in the log/trace file when it makes sense. This is left to the developer’s discretion: Records Processed A count of the records processed May include separate counts for reads, inserts, updates, deletes Step or Procedure What is currently being executed. This should include some identifying info like EMPLID for reference. 2.2.2 PeopleSoft Objects PeopleCode When making changes to PeopleCode, the Modification date-number should appear above the line that is added/changed when the change involves a single line of code. If the addition/change involves more than a single line of code the modification date-number should be appended with “Begin” and “End” to denote the beginning and end of the lines of changed code, as follows: Single line code change: /* 20090402-POM001 */ &PRCSSTATUS = &RQST.Status; Multiple line code change: /* 20090402-POM002 Begin */ If %Component = Component.TSCRPT_RQST Or %Component = Component.AA_RPT Then &REQUEST_REASON_CD = SA_REQUEST_HDR.REQUEST_REASON_CD; SA_REQUEST_HDR.REQUEST_REASON_CD = "X"; SA_REQUEST_HDR.REQUEST_REASON_CD = &REQUEST_REASON_CD; End-If; /* 20090402-POM002 End */ A sample of PeopleCode including the documentation of changes can be found in Appendix C. Other Objects Including but not limited to: Application Engine, Component, Menu, Page, and Record, Delivered PS/CSU Objects (including Menus) Last Revised: 2/12/2016 Page 12 of 20 2.3 Changing and/or Removing Previously Documented Changes When changing or removing a previous change, the previous change number should be captured in the change documentation, and the previous change line comment removed. This ensures that references to a given change never completely disappear from a file, even if the change itself does. Section 3 Development Standards There are some basic development standards to adhere to when developing at Cal Poly Pomona. This section will outline what standards are to be followed. 3.1 SQR/SQC SQRs and SQCs developed at Cal Poly Pomona should conform to some standards and may conform to some development guidelines. This section will discuss standards and guidelines associated with SQR/SQC development. 3.1.1 Program Text File Width - Guideline When coding a new SQR/SQC, there is not a standard file width that must be followed. As a guideline, the file width should be no more than 90 characters if it is desirable to allow for printing the file in portrait mode. Files that are 90 characters wide are printable without line wraps using a fixed width font (i.e. Courier New) at 10 point with ½ inch page margins. As a guideline, the file width should be no more than 100 characters if it is desirable to print in landscape mode. Regardless of the width of the file (90 characters, 100 characters, or a width of your own choosing) the file should have a standard width throughout, and comments denoting changes should be justified against the right margin. Code lines longer than the standard width may be continued onto additional lines using the SQR command continuation symbol – (hyphen). 3.1.2 Procedures - Standard A line containing an exclamation point followed by the file width -1 equal signs (i.e.: !======…) should appear one line above and below the line containing the Begin-Procedure syntax as follows: Last Revised: 2/12/2016 Page 13 of 20 !============================================================================ Begin-Procedure Lookup-ID !============================================================================ 3.1.3 Defined Variables – Standard The Pomona standard log/trace file and report header sqcs contain standard data elements and use standard variable names to display them. In order for these to function properly the following defined variables should appear at the beginning of every Pomona SQR: #define PROCESS_ID 'POMFN501.sqr' #define PROCESS_NAME 'Password Aging Process' #define VERSION_NUMBER '001' #define LAST_UPDATE_DATE '01/16/2008’ #define CREATE_DATE '01/16/2008' 3.1.4 Using Input/Output Files When using any files within an SQR, all references to the file(s) should be clear and meaningful, for instance: show 'Open of output file failed - program exiting' At no time should a reference to the ambiguous file handle be used: show 'Open of file 10 failed - program exiting' 3.2 PeopleSoft Objects 3.2.1 Standards Common to all PeopleSoft Objects 3.2.2 Records Run Control Records Pomona has defined common run control records for each module. In HCM these records are: POM_HR_RNCTL – Human Resources POM_PY_ RNCTL – Payroll POM_RS_RNCTL – Recruiting Solutions POM_TL_RNCTL – Time & Labor POM_SA_RNCTL – Student Administration POM_AD_RNCTL – Admissions POM_CC_RNCTL – Campus Community POM_FC_RNCTL – Faculty Affairs POM_SF_RNCTL – Student Financials POM_SR_RNCTL – Student Records POM_EU_RNCTL – Extended University In Finance these records are: Last Revised: 2/12/2016 Page 14 of 20 POM_FN_RNCTL – General Finance POM_AM_RNCTL – Asset Management POM_AP_RNCTL – Accounts Payable POM_GL_RNCTL – General Ledger POM_PO_RNCTL – Purchasing When developing for any of these modules, the common run control record should be used. If the fields needed by the process do not exist they should be added (non-destructively) to the common run control record. The only occasion when a new run control record should be created is when the run control page will have a scroll level that the common run control record does not support. When creating new run control records please be sure to adhere to the naming standards detailed in Section 1 of this document. Derived Records (Work Records) Derived records are typically generic in nature so that they may be utilized by a wide variety of pages and reports/processes. When a derived record is needed, first a search of existing derived records (both delivered and custom) should be performed to see any existing records can be utilized without changes. If none exists, the existing derived records should be assessed to determine if one could be altered with additional fields to serve the need. A new derived record can be created only if it has been determined that there are no existing derived records that can be utilized. When creating new derived records please adhere to the naming standards detailed in Section 1 of this document. Temporary Records Temporary records should be created as Record Type: Temporary Table. Temporary records are usually associated with a report/process. When creating new temporary records please adhere to the naming standards detailed in Section 1 of this document. 3.2.3 Pages In order to remain consistent with the rest of the user experience in PeoplSoft, pages should be created using the following size in the object properties “Use” tab: 800X600 page without portal In addition please observe the following guidelines when developing a new page: Labels and fields on pages should appear consistent and orderly. Field tab order should follow a logical order of fields on a page from left to right, top to bottom. All fields that display or accept a code of some sort should have immediately nest to them a related display showing a description of the code (i.e.:Term, Career, Test ID, etc.) Fields that contain an allowable set of values should always be prompt fields. When creating new pages please adhere to the naming standards detailed in Section 1 of this document. 3.2.4 Message Catalog Entries Message Catalog Entries Last Revised: 2/12/2016 Page 15 of 20 The Pomona Message Catalog entries exist in the message Set number range of 32,000. In HCM they are split up between modules as follows: 32,000 – 32,009 Campus Community 32,010 – 32,019 Admissions 32,020 – 32,029 Financial Aid 32,030 – 32,039 Student Records 32,040 – 32,049 Student Financials 32,050 – 32,059 Academic Advising 32,060 – 32,099 Human Recourses (they may further divide this range by HR Module) Last Revised: 2/12/2016 Page 16 of 20 Section 4 4.1 Appendix Appendix A – New SQR Documentation Example The following example demonstrates the standard Cal Poly Pomona SQR/SQC documentation standard. The Maintenance History and Notes sections should be created when new SQR/SQCs are created and may or may not be initially populated. !---------------------------------------------------------------------------------------! California State Polytechnic University, Pomona ! Report Name: POMFN501.sqr ! Programmer: Tim Raymond ! Create Date: 01/16/2008 ! Program Name: Password Security !---------------------------------------------------------------------------------------! ! Program Description ! ------------------! This process reads a flat file containing user's last password change date. A date ! comparison is performed and based on the parameters on the run control a user may ! receive an email notification that their account may soon be locked. Accounts with ! passwords that are too old based on the run control parameters may be locked. ! !---------------------------------------------------------------------------------------! ! Table Usage ! ----------! ! Table Referenced Description Usage ! -----------------------------! PS_POM_RUN_FN Procedure Run Control Record SELECT ! PSOPRDEFN PS Operator Definition Record SELECT/UPDATE ! !---------------------------------------------------------------------------------------! ! Debugging Levels ! ---------------! ! Level Description ! --------------! P Display Procedure Names ! S Miscellaneous additional info regarding individuals being processed ! !---------------------------------------------------------------------------------------! ! Maintenance History ! ------------------! ! Date Mod.# Initials Description ! -------- --------------------------------------------------------------------! 20080110-01 TJR Cloned POMCC501.SQR from HCM for Finance. ! ! 20080303-01 TJR Added replace line to allow $days_til_locked to be in the ! notification text. Moved line to before call to ! Process-Notification. ! ! 20080303-02 TJR Added replace line to allow $oprid to be in the ! notification text. ! ! 20080425-01 TJR Cleaned up show statements by removing a blank one and ! adding #debugp to others. ! ! 20080512-01 TJR Performed file clean-up. Changes include standardizing ! case and debug statements, rearranging program flow, ! creating standard #define variables, creating standard ! program header including sqr file name, version number, Last Revised: 2/12/2016 Page 17 of 20 ! create date, and update date. ! ! Notes ! ----! ! Date Note# Initials Description ! -------- --------------------------------------------------------------------! ! !---------------------------------------------------------------------------------------- #include #define #define #define #define #define #define 'setenv.sqc' PROCESS_NAME PROCESS_ID VERSION_NUMBER LAST_UPDATE_DATE CREATE_DATE RECORD_LENGTH !Set environment 'Password Aging Process' 'POMFN501.sqr' '003' '05/12/2008' '01/16/2008' 200 !20080512-01 !20080512-01 !20080512-01 !20080512-01 !20080512-01 !======================================================================================== Begin-Setup !======================================================================================== Declare-Variable date $sysdate date $lastdate End-Declare End-Setup !======================================================================================== Begin-Program !======================================================================================== do do do do do do Init-DateTime Init-Number Get-Current-DateTime Init-Report Select-Parameters Open-Input-File !20080512-01 do Process-Main do Close-Input-File do Reset do Stdapi-Term do Successful-EOJ End-Program !======================================================================================== Begin-Procedure Init-Report !======================================================================================== #include 'pomloghdr.sqc' !Print Pomona standard log/trace header Last Revised: 2/12/2016 Page 18 of 20 4.2 Appendix B – PeopleSoft Object Documentation Example The following should be in the Comments section of the Definition Properties for all newly developed PeopleSoft objects. The Maintenance History section should be created when the object is created and may or may not be initially populated. California State Polytechnic University, Pomona Developer: Tim Raymond Date: 04/01/2009 Purpose: This run control component is to run POMCC505 Flatten Acad Org. ------------------------------------------------------------------------------------------------Maintenance History ------------------------------------------------------------------------------------------------04/02/2009 - Tim Raymond Object Created 04/24/2009 - Tim Raymond Object was modified to add the following four fields: INSTITUTION, ACAD_CAREER, ACAD_PLAN, ACAD_PROG 05/31/2009 - Tim Raymond Object was modified by adding record POM_CC_EFFDT to allow the run control to hold multiple parameters so that it can have multiple runs under the same run control ID. Last Revised: 2/12/2016 Page 19 of 20 4.3 Appendix C – PeopleCode Documentation Example The following header should appear at the top of all newly developed PeopleCode. The Maintenance History and Notes sections should be created when the code is created, and may or may not be initially populated. /*********************************************************************************************** California State Polytechnic University, Pomona Programmer: Tim Raymond Create Date: 01/16/2008 Description: This code was developed to support the Pomona Credentials Mod. Maintenance History ------------------Date Mod.# Initials -------- -----------20090326-POM001 TJR Description ------------------------------------------------------------------Added logic to test/set users language preference appropriately. 20090326-POM002 Added code to populate &wild variable TJR Notes ----Date Note# Initials Description -------- -----------------------------------------------------------------------------***********************************************************************************************/ If %Component = Component.TSCRPT_RQST Or %Component = Component.AA_RPT Then &OPRID = %OperatorId; If None(PRCSRUNCNTL.LANGUAGE_CD) Then /* 20090326-POM001 Begin */ If Not SQLExec("SELECT LANGUAGE_CD FROM PSOPRDEFN WHERE OPRID = :1", &OPRID, &LANG_CD) Then &LANG_CD = PSOPTIONS.LANGUAGE_CD; End-If; /* 20090326-POM001 End */ &LANG_OPTION = "O"; SQLExec("SELECT LANGUAGE_CD FROM PS_PRCSRUNCNTL WHERE OPRID =:", If None(&EXISTS) Then &OPRID, &OPRID, &EXISTS); SQLExec("INSERT INTO PS_PRCSRUNCNTL (OPRID) VALUES (:1)", &OPRID); End-If; End-If; /* 20090326-POM002 */ &wild = 1; SQLExec("SELECT RUNCNTLID FROM PSPRCSRUNCNTL WHERE OPRID =:1", &OPRID, &RUNCNTLID); If None(&RUNCNTLID) Then SQLExec("INSERT INTO PSPRCSRUNCNTL (OPRID) VALUES (:1)", &OPRID); End-If; End-If; Last Revised: 2/12/2016 Page 20 of 20