Assetize

MXH · Sample assessment

A full MXH assessment: 7.6.1.3 to 9.2, 99 findings, every one owned and closable.

This is the set a partner hands to a client, not a screenshot of one. Kestrel Energy is a made-up customer: its export, code and screen are synthetic. The IBM dictionaries, upgrade scripts and API it's checked against are real. Exported 2026-09-10: 7.6.1.3 base plus Oil & Gas plus local columns, moving to 9.2.

What the run found

1 BLOCKING · 90 REVIEW · 8 ENVIRONMENT · 99 findings, from 4 assessed objects and 3 scanned source files.

GradeFindingsWhat it means
BLOCKING1Will not compile, will not load, or throws on first use.
REVIEW90A real difference whose consequence depends on what the code does with it.
ENVIRONMENT8Differs between the two systems; not a property of the release.
Total99Every finding in the report, one row each.

14 more references in the code couldn't be tied to an object, so they weren't checked. They aren't in the 99. The report lists each one and what to send so the next run checks them.

Run ID aa9943ae606583d04ccfa76de2d43b37df6162e539a93e1d830d634247f74c40. These are what one run raised against a synthetic customer, not failures counted in a real system.

One finding, taken apart

PermitGate.java:8

psdi.iface.jms.ErrorQueueNotfCronTask no longer exists in 9.1 and your code references it

Severity (how much it hurts)
BLOCKING
Evidence class (how sure we are)
A2 · IBM's API at 9.1
Owner (who fixes it)
Customisation developer
Required action (what to do)
Replace the reference. The type does not exist at the target, so the customisation will not compile; find the supported equivalent or remove the dependency.
Closure test (how you prove it's closed)
The customisation compiles against the target's `businessobjects.jar` with no unresolved import.

Three findings that stay REVIEW

These rows name a member IBM removed, in a class your code references. That's a real difference, graded for what's proven.

Why this is REVIEW, not BLOCKING.

Your code references the psdi.app.person.Person class. REVIEW · evidence class A2. If your code called the removed member, it would be BLOCKING. The call is not established.

IBM's API at 8.7 no longer has getAvailableHours(Date, PersonCalRemote, AvailCalc), getAvailableMbo(Date, PersonCalRemote, AvailCalc) or getAvailableMboList(Date, PersonCalRemote, AvailCalc). Your code references the class. The report doesn't claim you call the method.

The API changed. Check the call.

At 8.7, IBM's Person class no longer has double getAvailableHours(Date, PersonCalRemote, AvailCalc). Kestrel's code references the Person class at PermitGate.java:9. That's what this sample shows. It doesn't show the code calling this method, so the finding is REVIEW, not BLOCKING.

A2 is about IBM's API: the method is gone at the target. It doesn't prove this code calls it. Checking the call settles it.

REVIEW · evidence class A2 · IBM's API at 8.7

Owner: Customisation developer

Required action: Check each cited site. The class survives but this member does not, so a call compiles today and fails at the target.

Closed when: The customisation compiles against the target's `businessobjects.jar`, and the cited lines either no longer call the member or call its replacement.

The same check applies to getAvailableMbo and getAvailableMboList, which the report lists separately.

Two more findings, as they appear

WORKORDER.LOCATION length 12 → 25. Check anything that pads, truncates or length-validates it, and the receiving side of any integration that carries it.

The most common kind of finding here: 53 of 99 are length changes.

REVIEW · evidence class B2 · dictionary 7.6.1.3 vs 9.2

Owner: Customisation developer

Required action: Check anything that pads, truncates or length-validates the attribute, and the receiving side of every integration that carries it.

Closed when: No cited site assumes the old length, and every integration carrying the attribute accepts the new one — tested against the target, not reasoned about.

WORKORDER.KEWELLID is not part of IBM's own 7.6.1.3 dictionary either — it is your own field, not something the release removes. Decide whether to carry it forward to 9.2. Your code reads or writes it.

One of 8 fields that are Kestrel's own, not IBM's.

ENVIRONMENT · evidence class B2 · not present in IBM's shipped 7.6.1.3 dictionary

Owner: Database / migration

Required action: Decide whether to carry it forward. It is your own field, not part of IBM's dictionary at either release, so its absence at the target is not release evidence — re-applying it is a database change, not a code change.

Closed when: Either the attribute exists on the target with the type, length and required flag your code expects, or every cited site has been changed to stop using it. One or the other, recorded.

The seven files

  • Executive brief — the one-page read, prints to PDF from the browser.
  • Technical report — all 99 findings with owner, required action and closure test.
  • Evidence appendix — what each finding rests on.
  • Findings workbook — the spreadsheet a client tracks against.
  • Findings JSON — against the published schema, for your own tooling.
  • Markdown rendering — for diffing between runs.
  • Lock file — inputs hashed, pack digests, rerun id.