PeopleCode Integrity

The following table describes the audit queries and resolutions for this area:

Query Description Resolution

PEOPLECODE-1

The PeopleCode Name table contains a program name that does not exist in PcmProgram table

Run the following SQL:

DELETE FROM PSPCMNAME
WHERE NOT EXISTS
 (SELECT 'X'FROM PSPCMPROG B
  WHERE B.OBJECTID1 =
   PSPCMNAME.OBJECTID1 AND
  B.OBJECTVALUE1 =
   PSPCMNAME.OBJECTVALUE1 AND
  B.OBJECTID2 =
   PSPCMNAME.OBJECTID2 AND
  B.OBJECTVALUE2 =
   PSPCMNAME.OBJECTVALUE2 AND
  B.OBJECTID3 =
   PSPCMNAME.OBJECTID3 AND
  B.OBJECTVALUE3 =
   PSPCMNAME.OBJECTVALUE3 AND
  B.OBJECTID4 =
   PSPCMNAME.OBJECTID4 AND
  B.OBJECTVALUE4 =
   PSPCMNAME.OBJECTVALUE4 AND
  B.OBJECTID5 =
   PSPCMNAME.OBJECTID5 AND
  B.OBJECTVALUE5 =
   PSPCMNAME.OBJECTVALUE5 AND
  B.OBJECTID6 =
   PSPCMNAME.OBJECTID6 AND
  B.OBJECTVALUE6 =
   PSPCMNAME.OBJECTVALUE6)

PEOPLECODE-2

The PeopleCode Program table contains a program name that does not exist in the PcmName table.

Run the following SQL:

DELETE FROM PSPCMPROG
WHERE NAMECOUNT <> 0 AND
NOT EXISTS
 (SELECT 'X'FROM PSPCMNAME B
  WHERE PSPCMPROG.OBJECTID1 =
   B.OBJECTID1 AND
  PSPCMPROG.OBJECTVALUE1 =
   B.OBJECTVALUE1 AND
  PSPCMPROG.OBJECTID2 =
   B.OBJECTID2 AND
  PSPCMPROG.OBJECTVALUE2 =
   B.OBJECTVALUE2 AND
  PSPCMPROG.OBJECTID3 =
   B.OBJECTID3 AND
  PSPCMPROG.OBJECTVALUE3 =
   B.OBJECTVALUE3 AND
  PSPCMPROG.OBJECTID4 =
   B.OBJECTID4 AND
  PSPCMPROG.OBJECTVALUE4 =
   B.OBJECTVALUE4 AND
  PSPCMPROG.OBJECTID5 =
   B.OBJECTID5 AND
  PSPCMPROG.OBJECTVALUE5 =
   B.OBJECTVALUE5 AND
  PSPCMPROG.OBJECTID6 =
   B.OBJECTID6 AND
  PSPCMPROG.OBJECTVALUE6 =
   B.OBJECTVALUE6)

PEOPLECODE-3

The PeopleCode Program table name count does not match the record count in PcmName table.

Run Application Designer in two-tier mode in order to compile all PeopleCode. Select the Compile all and Save all PeopleCode option. See PeopleCode Developer’s Guide: Finding References to Application Packages and Classes

PEOPLECODE-4

PeopleCode contains invalid FILELAYOUT References.

Open the PeopleCode program in Application Designer and correct the invalid reference.

PEOPLECODE-5

PeopleCode reference to an invalid record or field.

Open the PeopleCode program in Application Designer and correct the invalid reference.

PEOPLECODE-6

PeopleCode reference to an invalid field.

Open the PeopleCode program in Application Designer and correct the invalid field name.

PEOPLECODE-7

There is orphaned Application Package PeopleCode.

Run the following SQL:

DELETE FROM PSPCMPROG
WHERE OBJECTID1 = 104
  AND OBJECTID2 = 107
  AND OBJECTVALUE2 NOT IN
  (SELECT APPCLASSID
   FROM PSAPPCLASSDEFN P
   WHERE P.PACKAGEROOT =
    OBJECTVALUE1 AND
   P.APPCLASSID =
    OBJECTVALUE2)

PEOPLECODE-8

There is orphaned Application Package PeopleCode.

Run the following SQL:

DELETE FROM PSPCMPROG
WHERE OBJECTID1 = 104
  AND OBJECTID2 = 105
  AND OBJECTID3 = 107
  AND OBJECTVALUE3 NOT IN
  (SELECT APPCLASSID 
   FROM PSAPPCLASSDEFN P
   WHERE P.PACKAGEROOT =
    OBJECTVALUE1 AND
   P.QUALIFYPATH =
    OBJECTVALUE2 AND
   P.APPCLASSID =
    OBJECTVALUE3)

PEOPLECODE-9

There is orphaned Application Package PeopleCode.

For Microsoft SQL Server, run the following SQL:

DELETE FROM PSPCMPROG
WHERE OBJECTID1 = 104
  AND OBJECTID2 = 105
  AND OBJECTID3 = 106
  AND OBJECTID4 = 107
  AND OBJECTVALUE4 NOT IN
  (SELECT APPCLASSID
   FROM PSAPPCLASSDEFN F
   WHERE F.PACKAGEROOT =
    OBJECTVALUE1 AND
   F.QUALIFYPATH =
    RTRIM(OBJECTVALUE2)+ ':'+
    RTRIM(OBJECTVALUE3) AND
   F.APPCLASSID = OBJECTVALUE4)

For all other DB platforms

DELETE FROM PSPCMPROG
WHERE OBJECTID1 = 104
  AND OBJECTID2 = 105
  AND OBJECTID3 = 106
  AND OBJECTID4 = 107
  AND OBJECTVALUE4 NOT IN
 (SELECT APPCLASSID FROM
  PSAPPCLASSDEFN F
  WHERE F.PACKAGEROOT =
   OBJECTVALUE1 AND
  QUALIFYPATH =
   RTRIM(P.OBJECTVALUE2) || ':'
   || RTRIM(P.OBJECTVALUE3) AND
  F.APPCLASSID =
   OBJECTVALUE4)

PEOPLECODE-10

Lists PeopleCode programs that contain directives and that have not been compiled after a PeopleTools upgrade.

Compile and save all directive PeopleCode in Application Designer when upgrading from PT8.53 or later.