Summary: this page explains how to onboard a new PeopleSoft application with CAST Console and work the process of analyzing the source code and generating a snapshot.
Note that CAST Console automates a large part of the configuration process for analyzing PeopleSoft technologies, as such, if you have previously been using the legacy CAST Management Studio to run your analyses, you will find that some of the steps required for CAST Management Studio are not mentioned in the instructions below. This is not an omission, it is simply because these steps are now automated and do not require manual intervention.
Prerequisites
Item | Description | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AIP Core | ≥ 8.3.39 | ||||||||||||||||||||
CAST Console | ≥ 1.27.0-funcrel | ||||||||||||||||||||
Extension | ≥ 5.2 (this will be installed automatically by CAST Console). Note however, that a batch file (PeopleSoft-Extract-CLI.bat) is required to perform the repository extraction (see below) and this file is provided in the extension itself. Therefore if you are onboarding a new application, the PeopleSoft extension will not yet be available on the AIP Node: if this is the case, you can download the extension (https://extend.castsoftware.com/#/extension?id=com.castsoftware.peoplesoft&version=latest) and extract (using 7Zip or similar) to find the batch file. | ||||||||||||||||||||
Application creation | Two applications should be created in CAST Console, for the Vanilla and Project repositories. These applications should be named as follows:
Here are some indicative schema sizes for a large PeopleSoft analysis (3.4 GB of source code):
| ||||||||||||||||||||
Vanilla and Project repository extraction | CAST Console only accepts .castextraction files generated by the com.castsoftware.aip.extractor.sqldatabase, in other words, the Vanilla and Project repository extraction must be actioned outside of CAST Console (see below for more information). Note that for the Project repository extraction, this .castextraction file must be named with the exact same prefix as used for the .project file, for example if you name the file PeopleSoftExtract_Project.castextraction, the .project file must be named PeopleSoftExtract_Project.PeoplesoftProject. | ||||||||||||||||||||
.PeoplesoftProject file for Project repository | A .PeoplesoftProject text file must be configured and delivered with the .castextraction file for the Project repository. This file configures rule parameters and other data ((see below for more information). Note that this file must be named with the exact same prefix as used for the Project repository .castextraction file, for example if you name the file PeopleSoftExtract_Project.PeoplesoftProject, the .castextraction file must be named PeopleSoftExtract_Project.castextraction. |
Step 1 - Repository extraction
The Vanilla and Project repositories must be extracted to .castextraction files using the com.castsoftware.aip.extractor.sqldatabase. A tailor made batch file provided in the PeopleSoft extension is available for running the offline extraction with the com.castsoftware.aip.extractor.sqldatabase - this should be used and can be found in the following location in the extension:
com.castsoftware.peoplesoft.<version>\TOOLS\OfflineExtraction\PeopleSoft-Extract-CLI.bat
This batch file will need modification BEFORE you run it - this is so that it can be tailored to the RDBMS on which your PeopleSoft repositories are hosted and which you want to extract - see the sections below.
Configure PeopleSoft-Extract-CLI.bat
Find the following sections in the batch file and modify them to match your environment:
RDBMS access parameters
Find the section rem Database parameters = Access to the database hosting the PeopleSoft repository:
Line | Description |
---|---|
rem for Oracle : oracle rem for DB2 : db2 SET DBTYPE=<PARAM> | You must set this option to match the target RDBMS. For example for Oracle Server:
|
rem either a host or an IP SET SERVER_NAME=<PARAM> SET PORTNUMBER=<PARAM> SET DATABASE_NAME=<PARAM> | Enter the three fields, for example, for Oracle Server:
Hints:
|
rem <CHOOSE> %JDBC_URL_ORACLE_SID% or %JDBC_URL_ORACLE_SERVICE% SET JDBC_URL_ORACLE=%JDBC_URL_ORACLE_SID% | When targeting an Oracle Server, you must choose one parameter or the other. E.g. if you define a Service name in
|
PeopleSoft repository access parameters
Find the section rem PeopleSoft parameters = Access to the PeopleSoft repository:
Line | Description |
---|---|
rem user that contains the tables SET SCHEMA=<PARAM> | Schema/database in which the PeopleSoft tables are stored:
For example:
|
rem Repository type = Vanilla or Project SET PROJECT_NAME=<PARAM> | Choose Vanilla or Project according the to repository you are extracting:
|
SET LANGUAGE=FRA | This option sets the language used in the user interface. Default value = FRA (French). Refer to official documentation for available values: https://docs.oracle.com/cd/F44947_01/pt858pbr3/eng/pt/tapd/concept_LanguageSelections-c37ff5.html |
rem Repository version. Either PeopleTools8.45, PeopleTools8.46, PeopleTools8.47, PeopleTools8.48, rem PeopleTools8.49, PeopleTools8.50, PeopleTools8.51, PeopleTools8.52, PeopleTools8.53. rem use PeopleTools8.53 for newer versions SET REPOSITORY_VERSION=<PARAM> | Choose the PeopleSoft version in your target repositories:
|
Run the batch file
When you run the batch file on each PeopleSoft repository, the resulting output should be one .castextraction file for each repository, for example:
- PeopleSoftExtract_Vanilla.castextraction
- PeopleSoftExtract_Project.castextraction
These files need to be delivered to CAST Console - see below.
Batch file logging
The batch file will generate logs inside the folder defined in the parameter "ROOT_FOLDER", as follows:
- a sub-folder "01_Results" that contains the extraction file (PeopleSoftExtract_Project.castextraction or PeopleSoftExtract_Vanilla.castextraction)
- a sub-folder "log" that contains the extraction log file (ExtractorLog_Project.log or ExtractorLog_Vanilla.log) and the execution file (Project.log or Vanilla.log)
The execution log file gives you the status of the execution:
Situation | Message | What should you do? |
---|---|---|
When the execution is successful. | Extraction was successful ! | Nothing. |
When an error is identified, the return code of the extraction is interpreted and a functional message ERROR_MESSAGE is displayed. | Error while extracting PeopleSoft Project : %ERROR_MESSAGE%
|
|
Potential errors:
Validation error #-1: Schema EFORCE_G5R3R is not a PeopleSoft repository: table PSRECDEFN is missing | If errors similar to "Validation error #-1: Schema EFORCE_G5R3R is not a PeopleSoft repository: table PSRECDEFN is missing" are reported in extractor's log, it means either the schema has no PSRECDEFN table, or USER rights are insufficient (SELECT has not been granted on this table). |
---|---|
Resolution error type in / Invalid identification group value | The extraction log may contain the following messages:
These messages have a limited impact if the ratio of "Number of information messages" / "Number of rows extracted" is kept low (i.e. less the 1 or 2%). Some rule violations may be missed if these messages appear, however, the overall impact is low. |
Step 2 - .PeoplesoftProject file configuration
Note that this file must be named with the exact same prefix as used for the Project repository .castextraction file, for example if you name the file PeopleSoftExtract_Project.PeoplesoftProject, the .castextraction file must be named PeopleSoftExtract_Project.castextraction.
The Project repository requires a .PeoplesoftProject configuration file that defines specific information required during the analysis:
- The name of the Vanilla Analysis schema (highly recommended) or the Vanilla Application name as defined in CAST Console
- Definition of PeopleSoft specific rule contextual parameters
Below is a template .PeoplesoftProject file - items in square brackets need to be manually defined:
<!-- The opening <PeoplesoftProjectConfig> element can define the [analysis_schema_name_in_console] (recommended) or the [application_name_in_console]. Whichever you choose, ensure that you use the correct attribute as shown below: --> <PeoplesoftProjectConfig vanillaName="[analysis_schema_name_in_console]"> ... </PeoplesoftProjectConfig> or <PeoplesoftProjectConfig vanillaApplication="[application_name_in_console]"> ... </PeoplesoftProjectConfig> <!-- In between the opening <PeoplesoftProjectConfig> element you should define the following: --> <PeoplesoftProjectConfig ... > <PeopleSoftApplication name="[peoplesoft_app_name]" vanillaName="[app_name_in_vanilla]"/> <QualityRule id="[rule_id]"> <Parameter name="[parameter_name]" value="[parameter_value]"/> </QualityRule> <QualityRuleGroup name="companyPrefix" active="[true_or_false]"> <QualityRule id="[rule_id]" active="[true_or_false]"> <Parameter name="[parameter_name]" value="[parameter_value]"/> </QualityRule> </QualityRuleGroup> </PeoplesoftProjectConfig>
<PeoplesoftProjectConfig>
This opening tag is required and defines the Vanilla application as created in CAST Console. CAST highly recommends that you input the Analysis schema name where possible as this ensures that Peoplesoft extension does not need to perform a lookup based on the Application name, but you can use the Application name instead if necessary. Both are highlighted in the screenshot below and can be found in the CAST Console Admin Center (see Administration Center - Applications - Application Details).
Using the highlighted items shown in the example screenshot above, you can define either of the following:
<PeoplesoftProjectConfig vanillaName="peoplesoft_project_local"> ... </PeoplesoftProjectConfig> or <PeoplesoftProjectConfig vanillaApplication="PeopleSoft_Project"> ... </PeoplesoftProjectConfig>
<QualityRule> and <Parameter>
This section allows you to define the contextual parameters for specific PeopleSoft rules that will be triggered during the analysis, specifically to adapt them to your own environment. Use the tables below to create the entries you need. Note that if you DO NOT define an entry for a rule in the .project file, then the rule WILL be triggered during the analysis, but will use the default parameter values provided in the Assessment Model.
Multiple values, char: as they are related to naming convention, they must be adapted to the project:
MetricID | Rule name | Parameter name | Default value | Project value |
---|---|---|---|---|
1600380 | PeopleSoft: Naming convention on Search Record | Suffix PeopleSoft Search | _SVW _SRCH | |
1600384 | PeopleSoft: Naming convention on Language Record Table | Suffix PeopleSoft Language Record Table | _LANG _LNG _LN | |
1600386 | PeopleSoft: Naming convention on Language Record View | Suffix PeopleSoft Language Record View | _LVW _LV | |
1600396 | PeopleSoft: Naming convention on AE State Record | Suffix PeopleSoft AE State Record | _AET | |
1600398 | PeopleSoft: Naming convention on AE Temporary Record | Suffix PeopleSoft AE Temp Record | _TAO _TMP | |
1600400 | PeopleSoft: Naming convention suffix on Record View | Suffix PeopleSoft Record View | _VW | |
1600402 | PeopleSoft: Naming convention suffix on Record Derived | Suffix PeopleSoft Record Derived | _WRK _WK | |
1600484 | PeopleSoft : Create all new Record Table in a specific tablespace | PeopleSoft: Tablespace for Record View | TAB_EFDATA_XL | |
1600486 | PeopleSoft: Create all new Record Temp in a specific tablespace | PeopleSoft: Tablespace for Record View | TAB_EFWORK_XL | |
1601700 to 1601766 | PeopleSoft: Naming convention on Record Table to PeopleSoft: Naming convention on URL | PeopleSoft: Prefix for XXX | EF_ |
Multiple values, char: as they are related to naming convention, they must be adapted to the project
MetricID | Rule name | Parameter name | Default value | Project value |
---|---|---|---|---|
1600380 | PeopleSoft: Naming convention on Search Record | Suffix PeopleSoft Search | _SVW _SRCH | |
1600384 | PeopleSoft: Naming convention on Language Record Table | Suffix PeopleSoft Language Record Table | _LANG _LNG _LN | |
1600386 | PeopleSoft: Naming convention on Language Record View | Suffix PeopleSoft Language Record View | _LVW _LV | |
1600396 | PeopleSoft: Naming convention on AE State Record | Suffix PeopleSoft AE State Record | _AET | |
1600398 | PeopleSoft: Naming convention on AE Temporary Record | Suffix PeopleSoft AE Temp Record | _TAO _TMP | |
1600400 | PeopleSoft: Naming convention suffix on Record View | Suffix PeopleSoft Record View | _VW | |
1600402 | PeopleSoft: Naming convention suffix on Record Derived | Suffix PeopleSoft Record Derived | _WRK _WK | |
1600484 | PeopleSoft : Create all new Record Table in a specific tablespace | PeopleSoft: Tablespace for Record View | TAB_EFDATA_XL | |
1600486 | PeopleSoft: Create all new Record Temp in a specific tablespace | PeopleSoft: Tablespace for Record View | TAB_EFWORK_XL | |
1601700 to 1601766 | PeopleSoft: Naming convention on Record Table to PeopleSoft: Naming convention on URL | PeopleSoft: Prefix for XXX | EF_ |
Single value, numerical: As a first approach, you can stick to the default values
MetricID | Rule name | Parameter name | Default value | Project Value |
---|---|---|---|---|
1600168 | PeopleSoft: All new Translate value shoud be at dd/mm/yyyy | PeopleSoft: Effective date | 01/01/1901 | |
1600184 | PeopleSoft: Avoid PeopleCode Event with High Cyclomatic | PeopleSoft: Max CC in Event | 10 | |
1600186 | PeopleSoft: Avoid PeopleCode Functions with High Cyclomatic | PeopleSoft: Max CC in Function | 10 | |
1600188 | PeopleSoft: Avoid PeopleCode Methods with High Cyclomatic | PeopleSoft: Max CC in Method | 10 | |
1600190 | PeopleSoft: Avoid PeopleCode Classes with High Cyclomatic | PeopleSoft: Max CC in Class | 100 | |
1600620 | PeopleSoft: Avoid PeopleCode Events with a low comment/code ratio | PeopleSoft: Min % Comment in Event | 10 | |
1600622 | PeopleSoft: Avoid PeopleCode Functions with a low comment/code ratio | PeopleSoft: Min % Comment in Function | 10 | |
1600624 | PeopleSoft: Avoid PeopleCode Methods with a low comment/code ratio | PeopleSoft: Min % Comment in Method | 10 | |
1600626 | PeopleSoft: Avoid PeopleCode Classes with a low comment/code ratio | PeopleSoft: Min % Comment in Class | 10 | |
1600480 | PeopleSoft: Avoid too many Related displays | PeopleSoft: Max related display | 5 | |
1600488 | PeopleSoft: Avoid tables having indexes with a too large index definition | PeopleSoft: Max index size | 3 | |
1600642 | PeopleSoft: Pages should be designed assuming the user has an 800x600 monitor resolution | PeopleSoft: Page Width | 800 | |
PeopleSoft: Page Height | 600 | |||
1600644 | PeopleSoft: Developers should avoid developing web pages that result in horizontal scrolling | PeopleSoft: Page Width Max | 800 | |
1600646 | PeopleSoft: Developers should not build long pages that are longer than 5 pages | PeopleSoft: Page Height Max | 2500 | |
1600648 | PeopleSoft: Avoid use a radio button or check box when the user has more than three choices | PeopleSoft: Prefix for Owner ID in Record VieweopleSoft: Max choices | 3 | |
1601800 | PeopleSoft: Record Table should have a OwnerID | PeopleSoft: Prefix for Owner ID in Record Table | EF | |
1601802 | PeopleSoft: Record View should have a OwnerID | PeopleSoft: Prefix for Owner ID in Record View | EF | |
1601804 | PeopleSoft: Record Derived should have a OwnerID | PeopleSoft: Prefix for Owner ID in Record Derived | EF | |
1601806 | PeopleSoft: Record Sub should have a OwnerID | PeopleSoft: Prefix for Owner ID in Record Sub | EF | |
1601808 | PeopleSoft: Record Dynamic should have a OwnerID | PeopleSoft: Prefix for Owner ID in Record Dynamic | EF | |
1601810 | PeopleSoft: Record Query should have a OwnerID | PeopleSoft: Prefix for Owner ID in Record Query | EF | |
1601812 | PeopleSoft: Record Temp should have a OwnerID | PeopleSoft: Prefix for Owner ID in Record Temp | EF | |
1601814 | PeopleSoft: Field should have a OwnerID | PeopleSoft: Prefix for Owner ID in Record Temp | EF | |
1601816 | PeopleSoft: Page should have a OwnerID | PeopleSoft: Prefix for Owner ID in Page | EF | |
1601818 | PeopleSoft: Sub Page should have a OwnerID | PeopleSoft: Prefix for Owner ID in Sub Page | EF | |
1601820 | PeopleSoft: Secondary Page should have a OwnerID | PeopleSoft: Prefix for Owner ID in Secondary Page | EF | |
1601822 | PeopleSoft: SQL should have a OwnerID | PeopleSoft: Prefix for Owner ID in SQL | EF | |
1601824 | PeopleSoft: Component Interface should have a OwnerID | PeopleSoft: Prefix for Owner ID in Component Interface | EF | |
1601826 | PeopleSoft: Application Engine should have a OwnerID | PeopleSoft: Prefix for Owner ID in Application Engine | EF | |
1601828 | PeopleSoft: Package should have a OwnerID | PeopleSoft: Prefix for Owner ID in Package | EF | |
1601830 | PeopleSoft: Mobile Page should have a OwnerID | PeopleSoft: Prefix for Owner ID in Mobile Page | EF | |
1601832 | PeopleSoft: Component should have a OwnerID | PeopleSoft: Prefix for Owner ID in Component | EF | |
1601834 | PeopleSoft: Menu should have a OwnerID | PeopleSoft: Prefix for Owner ID in Menu | EF | |
1601836 | PeopleSoft: Popup Menu should have a OwnerID | PeopleSoft: Prefix for Owner ID in Popup Menu | EF | |
1600760 | PeopleSoft: Avoid Classes with more than X Methods | PeopleSoft: Max Number Method in Class | 30 | |
1600762 | PeopleSoft: Avoid Records Tables with more than X Fields | PeopleSoft: Max Number Field in Record Table | 80 | |
1600764 | PeopleSoft: Avoid Records Views with more than X Fields | PeopleSoft: Max Number Field in Record View | 80 | |
1600766 | PeopleSoft: PeopleSoft: Avoid Records Derived with more than X Fields | PeopleSoft: Max Number Field in Record Derived | 60 | |
1600768 | PeopleSoft: PeopleSoft: Avoid Sub-records with more than X Fields | PeopleSoft: Max Number Field in Record Sub | 20 | |
1600770 | PeopleSoft: Avoid Pages with more than X linked Records Max | PeopleSoft: Max Number Linked Record in Page | 4 | |
1600772 | PeopleSoft: Avoid Pages with more than X linked Pages | PeopleSoft: Max Number Linked Page in Page | 2 | |
1600774 | PeopleSoft: Avoid Methods with too many parameters | PeopleSoft: Max Number Parameter in Method | 5 |
In the following example, we have changed two contextual parameters for the rule 1600184 (PeopleSoft: Avoid PeopleCode Event with High Cyclomatic), and one parameter value for the rule 1600384 (PeopleSoft: Naming convention on Language Record Table):
<QualityRule id="1600184"> <Parameter name="PeopleSoft: Max CC in Event" values=" -999"/> </QualityRule> <QualityRule id="1600384"> <Parameter name="Suffix PeopleSoft Language Record Table " value="Joe, William, Jack, Averell"/> </QualityRule>
Step 3 - configure source code
You now need to configure the source code to deliver in CAST Console. There are two ways to deliver the source code, either in a ZIP file, or via a Source Folder Location:
Vanilla repository | Place the PeopleSoftExtract_Vanilla.castextraction file (resulting from the extraction process in Step 1) in a folder called Vanilla. If you want to:
|
---|---|
Project repository | Place the following files in a folder called Project - note that the prefix of each file must be identical the other:
If you want to:
|
Step 4 - create Version, deliver source code and run analysis/snapshot
For each Application (Vanilla and Project) that you have created in CAST Console, you need to now deliver the source code configured in Step 3 and run the analysis/snapshot. It is very important that you run the analysis and snapshot for the Vanilla application BEFORE you run the analysis and snapshot for the Project application.
Step 5 - check results
When the snapshot has been completed for both repositories, CAST highly recommends that you check the results. For the analysis step, the following is an example of the messages that you could expect (errors are shown in red):
PSOFT-000 Start
PSOFT-001 Update metrics
PSOFT-101 Error executing xxx
PSOFT-002 Additional links
PSOFT-102 Error executing xxx
PSOFT-003 Discrimination data
PSOFT-103 Error executing xxx
PSOFT-100 Variable PSOFT_VANILLA_SCHEMA is not defined
PSOFT-004 Import data from Vanilla schema: xxx
PSOFT-104 Error while importing data from the Vanilla schema
PSOFT-005 Discrimination computation
PSOFT-105 Error executing xxx
PSOFT-006 End