Summary: this page explains how to onboard a new PeopleSoft application with AIP Console and work the process of analyzing the source code and generating a snapshot.

Note that AIP 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

AIP Core≥ 8.3.39
AIP Console≥ 1.27.0-funcrel
Extension

≥ 5.2.0 (this will be installed automatically by AIP 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 AIP Console, for the Vanilla and Project repositories. See Add a new Application for more information about this. These applications should be named as follows:

  • "PeopleSoft_Project"
  • "PeopleSoft Vanilla"

Here are some indicative schema sizes for a large PeopleSoft analysis (3.4 GB of source code):

Schema

Data

Index

Total

Management Schema

163 MB

-

163 MB

Dashboard Schema

1.5 GB

1.5 GB

3 GB

Project Analysis Database

7 GB

7 GB

14 GB

Vanilla Analysis Database

5 GB

6 GB

11 GB


Repository extractionAIP Console only accepts .castextraction files generated by the CAST Database Extractor, in other words, the Vanilla and Project repository extraction must be actioned outside of AIP Console (see below for more information). Note that for the Project repository extraction, this 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.project.
.project file for Project repositoryA .project 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.project, 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 CAST Database Extractor (which can be downloaded from https://extend.castsoftware.com/#/extension?id=com.castsoftware.aip.extractor.sqldatabase&version=latest). A tailor made batch file provided in the PeopleSoft extension is available for running the offline extraction with the CAST Database Extractor - 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:

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:

SET DBTYPE=oracle

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:

SET SERVER_NAME=MY_HOST
SET PORTNUMBER=1521
SET DATABASE_NAME=MY_DB

Hints:

  • SET SERVER_NAME - enter an IP address or host name
  • SET PORTNUMBER:
    • DB2 = 50000
    • Oracle = 1521 (as per the Tnsname.ora file)
    • Microsoft SQL Server = 1433
  • SET DATABASE_NAME:
    • DB2 = The DB2 database name
    • Oracle =  Either the Service name as per the Tnsname.ora file, or the SID (System ID) as per the Tnsname.ora file
    • Microsoft SQL Server = The instance name
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 SET DATABASE_NAME, you should change the line to:

SET JDBC_URL_ORACLE=%JDBC_URL_ORACLE_SERVICE%

PeopleSoft repository access parameters

Find the section rem PeopleSoft parameters = Access to the PeopleSoft repository:

rem user that contains the tables
SET SCHEMA=<PARAM>
Schema/database in which the PeopleSoft tables are stored:
  • Oracle USER name
  • DB2 schema name

For example:

SET SCHEMA=MY_DB

rem Repository type = Vanilla or Project
SET PROJECT_NAME=<PARAM>

Choose Vanilla or Project according the to repository you are extracting:

SET PROJECT_NAME=Project

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:

SET REPOSITORY_VERSION=PeopleTools8.53

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:

These files need to be delivered to AIP Console - see below.

Batch file logging

The batch file will generate logs inside the folder defined in the parameter "ROOT_FOLDER", as follows:

The execution log file gives you the status of the execution:

SituationMessageWhat 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%

  • 1000: Missing configuration file %CONFIG_FILE%.
  • 1001: Check the log file %EXECUTION_LOG_FILE%.
  • 2000: Unable to establish a connection. Check the log file %EXECUTION_LOG_FILE%.
  • 2001: Error during the extraction. Check the log file %EXECUTION_LOG_FILE%.
  • Other: Java error. Contact CAST Support.
  • Please checks the logs, fix the configuration and retry the extraction.
  • If the issue is not a configuration issue, please contact the CAST Support.

Potential errors:

Validation error #-1: Schema EFORCE_G5R3R is not a PeopleSoft repository: table PSRECDEFN is missingIf errors similar to "Validation error #-1: Schema EFORCE_G5R3R is not a PeopleSoft repository: table PSRECDEFN is missing" are reported in extactor'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:

  • Resolution error type in
  • Invalid identification group value

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 Quality Rule violations may be missed if these messages appear, however, the overall impact is low.

Step 2 - .project 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.project, the .castextraction file must be named PeopleSoftExtract_Project.castextraction.

The Project repository requires a .project configuration file that defines specific information required during the analysis:

Below is a template .project file - items in square brackets need to be manually defined:

<PeoplesoftProjectConfig vanillaApplication="[application_name_or_analysis_schema_name]">
	<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 name of the Vanilla application defined in AIP Console. You can define either the Application name, or the corresponding Analysis schema name. Both are highlighted below and can be found in the AIP Console Admin Center (see Administration Center - Applications - Application Details):

In the above example, this would give the following when using the Application Name:

<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
(external ID)

Rule name

Parameter name

Default value

Project value

1600380PeopleSoft: 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


1600396PeopleSoft: Naming convention on AE State RecordSuffix PeopleSoft AE State Record _AET
1600398PeopleSoft: Naming convention on AE Temporary RecordSuffix PeopleSoft AE Temp Record

 _TAO

_TMP


1600400PeopleSoft: Naming convention suffix on Record ViewSuffix PeopleSoft Record View _VW
1600402PeopleSoft: Naming convention suffix on Record DerivedSuffix 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
(external ID)

Rule name

Parameter name

Default value

Project value

1600380PeopleSoft: 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


1600396PeopleSoft: Naming convention on AE State RecordSuffix PeopleSoft AE State Record _AET
1600398PeopleSoft: Naming convention on AE Temporary RecordSuffix PeopleSoft AE Temp Record

 _TAO

_TMP


1600400PeopleSoft: Naming convention suffix on Record ViewSuffix PeopleSoft Record View _VW
1600402PeopleSoft: Naming convention suffix on Record DerivedSuffix 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
(external ID)

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 Height600

1600644

PeopleSoft: Developers should avoid developing web pages that result in horizontal scrollingPeopleSoft: 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 choices3
1601800PeopleSoft: Record Table should have a OwnerID PeopleSoft: Prefix for Owner ID in Record Table

EF


1601802PeopleSoft: Record View should have a OwnerID PeopleSoft: Prefix for Owner ID in Record ViewEF
1601804 PeopleSoft: Record Derived should have a OwnerID PeopleSoft: Prefix for Owner ID in Record DerivedEF
1601806 PeopleSoft: Record Sub should have a OwnerID PeopleSoft: Prefix for Owner ID in Record SubEF
1601808 PeopleSoft: Record Dynamic should have a OwnerID PeopleSoft: Prefix for Owner ID in Record DynamicEF
1601810 PeopleSoft: Record Query should have a OwnerID PeopleSoft: Prefix for Owner ID in Record QueryEF
1601812 PeopleSoft: Record Temp should have a OwnerID PeopleSoft: Prefix for Owner ID in Record TempEF
1601814 PeopleSoft: Field should have a OwnerID PeopleSoft: Prefix for Owner ID in Record TempEF
1601816 PeopleSoft: Page should have a OwnerID PeopleSoft: Prefix for Owner ID in PageEF
1601818 PeopleSoft: Sub Page should have a OwnerID PeopleSoft: Prefix for Owner ID in Sub PageEF
1601820 PeopleSoft: Secondary Page should have a OwnerID PeopleSoft: Prefix for Owner ID in Secondary PageEF
1601822 PeopleSoft: SQL should have a OwnerID PeopleSoft: Prefix for Owner ID in SQLEF
1601824 PeopleSoft: Component Interface should have a OwnerIDPeopleSoft: Prefix for Owner ID in Component InterfaceEF
1601826 PeopleSoft: Application Engine should have a OwnerIDPeopleSoft: Prefix for Owner ID in Application EngineEF
1601828 PeopleSoft: Package should have a OwnerID PeopleSoft: Prefix for Owner ID in PackageEF
1601830 PeopleSoft: Mobile Page should have a OwnerID PeopleSoft: Prefix for Owner ID in Mobile PageEF
1601832 PeopleSoft: Component should have a OwnerID PeopleSoft: Prefix for Owner ID in ComponentEF
1601834 PeopleSoft: Menu should have a OwnerID PeopleSoft: Prefix for Owner ID in MenuEF
1601836 PeopleSoft: Popup Menu should have a OwnerID PeopleSoft: Prefix for Owner ID in Popup MenuEF
1600760 PeopleSoft: Avoid Classes with more than X Methods PeopleSoft: Max Number Method in Class30
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 View80
1600766 PeopleSoft: PeopleSoft: Avoid Records Derived with more than X Fields PeopleSoft: Max Number Field in Record Derived60
1600768 PeopleSoft: PeopleSoft: Avoid Sub-records with more than X Fields PeopleSoft: Max Number Field in Record Sub20
1600770 PeopleSoft: Avoid Pages with more than X linked Records Max PeopleSoft: Max Number Linked Record in Page4
1600772  PeopleSoft: Avoid Pages with more than X linked PagesPeopleSoft: Max Number Linked Page in Page2
1600774  PeopleSoft: Avoid Methods with too many parametersPeopleSoft: Max Number Parameter in Method5

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 AIP 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:

  • deliver via ZIP file, zip the folder called Vanilla to create a zip file called Vanilla.zip.
  • deliver via a Source Folder Location, copy the Vanilla folder to your defined Source Folder Location
Project repository

Place the following files in a folder called Project - note that the prefix of each file must be identical the other:

  • PeopleSoftExtract_Project.castextraction file (resulting from the extraction process in Step 1)
  • PeopleSoftExtract_Project.project file (resulting from the configuration process in Step 2)

If you want to:

  • deliver via ZIP file, zip the folder called Project to create a zip file called Project.zip.
  • deliver via a Source Folder Location, copy the Project folder to your defined Source Folder Location

Step 4 - create Version, deliver source code and run analysis/snapshot

For each Application (Vanilla and Project) that you have created in AIP Console, you need to now deliver the source code configured in Step 3 and run the analysis/snapshot. In AIP Console, the process can be done in small steps, or in one go, and each is explained in more detail in:

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. This process is explained in more detail in Standard onboarding - check results.

For the analysis step, the following is an example of the messages that you could expect (errors are shown in red):