Project Import — PeopleCode Diff vs Database
Categories:
- Target Database: —
- Context Type: —
- Alert Severity: —
- Triggered Time: —
- Firing Context:
—
Project Import — PeopleCode Diff vs Database
Report ID: project-import-diff
Category: Objects
Purpose
You uploaded a PeopleSoft project XML on the Project Import page, and you want to know — line-by-line — how every PeopleCode program inside that file compares to the same program in a live database.
The Project Import results page itself shows a quick Same / Different / Not in DB badge per object (powered by a content-hash compare against PSPCMTXT). That’s enough for triage. When you need to see what actually changed, run this report; it emits a full markdown document with file source, database source, and a unified diff for every PeopleCode object that differs.
The output is designed to be reviewed by hand or fed directly to an LLM — the per-object structure (file block, DB block, diff block) is what most assistants need to reason about the change.
What It Compares
This report only looks at PeopleCode-bearing object types:
- Record PeopleCode (type 8)
- Menu PeopleCode (type 9)
- Message PeopleCode (type 39)
- App Engine PeopleCode (type 43)
- Page PeopleCode (type 44)
- Component PeopleCode (type 46)
- Component Record PeopleCode (type 47)
- Component Record Field PeopleCode (type 48)
- Application Package PeopleCode (type 58)
For each PeopleCode item in the project, the report:
- Reads the source from the uploaded XML (
peoplecode_textnode parsed at upload time). - Fetches the current source from the target database’s
PSPCMTXTtable, concatenating multi-rowPCTEXTpayloads inPROGSEQorder. - Normalizes both sides (line-ending normalization, trailing-whitespace strip, blank-line collapse) so cosmetic differences don’t show up as content changes.
- Classifies the item as Same, Different, Not in DB, No XML Source, or Error.
- For Different items, renders both sources and a line-level diff inline.
Non-PeopleCode object types in the same project are not included in this report — use the Project Import results page for those (it uses LASTUPDDTTM comparison, which is reliable for non-PeopleCode types).
Parameters
| Parameter | Required | Default | Description |
|---|---|---|---|
project_id | Yes | — | The file-store ID of the uploaded project. The Project Import results page provides a “PeopleCode Diff Report” button that pre-fills this. |
max_objects | No | 100 | Cap on how many Different objects are rendered with full source + diff. Excess Different objects are mentioned in a footer line; raise the cap if you need them all inline. Prevents the report from blowing up on projects with hundreds of changed PeopleCode programs. |
include_same | No | false | Set to true to append a table listing every PeopleCode object that matched. Off by default since this is usually the noise, not the signal. |
The target database is the standard psLens database selector on the Reports page — the report runs against whichever database you have selected.
Output Structure
The report is a single markdown document with these sections in order:
- Header — project name, source DB (from the XML export), target DB, export date, exporter ID, uploaded filename, upload time.
- Summary — counts of Same / Different / Not in DB / No XML Source / Errors.
- Different — one section per Different object containing:
- File source — code fence with
peoplecodelanguage hint. - Database source — code fence with
peoplecodelanguage hint. - Line diff (file → DB) — code fence with
difflanguage hint; lines unchanged on both sides appear with two-space prefix, removed-from-file lines with-, added-in-DB lines with+.
- File source — code fence with
- Not in Database — one section per item, with the file source rendered. These are typically programs the project would create on import.
- No XML Source — table of programs the DB has but the XML didn’t inline. Usually means the project listed the PJM entry without the PCM payload.
- Errors — table of programs whose DB query failed, with the underlying error.
- Same (optional,
include_same=true) — table of matching programs.
Tips
- Feed it to an LLM. The structure (file block + DB block + diff block per object) is what assistants need to reason about a change. Download the markdown and paste into your assistant of choice, or use the
Download .mdbutton on the report run page. - Pair with the Cross-Database Comparison report.
project-comparecovers two databases; this one covers file vs database. Different problems. - Run before a project import. Knowing exactly what will change in PeopleCode terms is the question this report answers — not “what does the timestamp say” but “what code lines will end up different.”