Search Framework Integrity Audit
Categories:
- Target Database: —
- Context Type: —
- Alert Severity: —
- Triggered Time: —
- Firing Context:
— - Contextual SQL:
—
Search Framework Integrity Audit Report
Report ID: ptsf-integrity-audit
Category: Objects
Purpose
This report finds Search Framework definitions (PSPTSF_SD, PSPTSF_SRCCAT, PSPTSF_ATTRS) that reference an object that does not exist. It runs the twelve checks of the SYSAUDIT search audit (syssrch.sqc, PTSF-1 through PTSF-12) and three psLens checks, on demand and without a SYSAUDIT run.
A broken reference usually comes from a project migration that copied a search definition without its query, Application Engine program, or application class. The index build for that definition then fails on the target database.
Checks
| Check | Finding | Severity | Compares |
|---|---|---|---|
| PTSF-1 | Category member is not a search definition | warning | PSPTSF_SRCCATAT → PSPTSF_SD |
| PTSF-2 | Search definition has no same-named category | info | PSPTSF_SD → PSPTSF_SRCCAT |
| PTSF-3 | Search definition is not in its same-named category | info | PSPTSF_SD → PSPTSF_SRCCATAT |
| PTSF-4 | Source query does not exist | warning | PSPTSF_SD → PSQRYDEFN |
| PTSF-4 | Source connected query does not exist | warning | PSPTSF_SD → PSCONQRSDEFN |
| PTSF-5 | Delete query does not exist | warning | PSPTSF_SD → PSQRYDEFN |
| PTSF-6 | Pre- or post-processing App Engine does not exist | warning | PSPTSF_SD → PSAEAPPLDEFN |
| PTSF-7 | Document security app class does not exist | warning | PSPTSF_SD_DCACL → PSPCMPROG |
| PTSF-8 | Indexed field is not in its query | warning | PSPTSF_SD_ATTR → PSQRYFIELD |
| PTSF-9 | Search attribute is not in the attribute catalog | warning | PSPTSF_SD_ATTR → PSPTSF_ATTRS |
| PTSF-10 | Search attribute label does not exist | info | PSPTSF_ATTRS → PSDBFLDLABL |
| PTSF-11 | Search attribute is not used by any search definition | info | PSPTSF_ATTRS → PSPTSF_SD_ATTR, PSPTSF_SRCHATTR |
| PTSF-12 | Insights dashboard role does not exist | warning | PTSF_KIB_ROLE → PSROLEDEFN |
| LENS-1 | Data partitioning App Engine does not exist | warning | PSPTSF_SD → PSAEAPPLDEFN |
| LENS-2 | Real-Time Indexing trigger record does not exist | warning | PTSF_INDEXTRREC → PSRECDEFN |
| LENS-3 | Insights dashboard creator role does not exist | warning | PTSF_KIBCR_ROLE → PSROLEDEFN |
PTSF-4 appears twice because a search definition’s source is either a PS Query (PTSF_SOURCE_TYPE = 'Q') or a connected query ('C'), and each is looked up in its own table. LENS-n checks cover fields and tables that SYSAUDIT does not audit.
Skipped Checks
A check runs only when every table it compares was read in full. When a table is not whitelisted or its query fails, the check is marked Skipped in the summary with the table name and the reason. It is never reported as clean, and it never reports findings from partial data.
Three tables are optional and not in the common whitelist block:
PSCONQRSDEFN. Without it,PTSF-4skips connected-query search definitions.PTSF_KIB_ROLE. Without it,PTSF-12is skipped.PTSF_KIBCR_ROLE. Without it,LENS-3is skipped.
Add them with the Search Framework block in Whitelist Tables.
Report Output
- Header with the database, the generation timestamp, and the number of search definitions, categories, and attributes read.
- Warning block naming any table whose query failed.
- Summary table with one row per check:
Clean, the number found, orSkippedwith the reason. - One section per check that has findings, with a table of the definition (linked to its psLens page) and the missing object.
Parameters
This report has no configurable parameters.
Change Tracking
The report is diffable. Each finding is keyed by check, definition, and missing object (for example PTSF-5|PTPORTALREGISTRY|PTPORTALNOTVALID), so a scheduled run with notify mode On change reports only references that broke or were fixed since the previous run.
When a check cannot run because a query failed, the run records a “check could not run” finding. Without it, the findings of that check from the previous run would read as fixed.
Interpreting Results
PTSF-4,PTSF-5,PTSF-6,PTSF-7,LENS-1. The search definition names an object that is not in this database. Migrate the missing object or correct the search definition in Search Designer.PTSF-7looks for the application class’s PeopleCode inPSPCMPROG. A class that exists but was never saved with code is reported as missing.PTSF-8checks fields flagged to be indexed (PTSF_ISFIELDTOIDX = 'Y'). A finding means the field was removed from the query after the search definition was mapped.PTSF-2andPTSF-3are informational. PeopleSoft creates a same-named category when a search definition is saved, so a missing one points to an incomplete migration.PTSF-11is cleanup. Delivered PeopleSoft databases carry unused attributes: the PeopleTools 8.62 Campus Solutions demo database reports six.
Differences from SYSAUDIT
PTSF-7readsPSPCMPROG. SYSAUDIT readsPSAPPCLASSDEFN.PTSF-11also counts attributes used by record-based search definitions (PSPTSF_SRCHATTR) as used.- The checks were written from the descriptions of the PeopleTools 8.61 SYSAUDIT checks, not from the SQL in
syssrch.sqc. Compare against a SYSAUDIT run if you need an exact match.