ASSETIZE MXH
Development, data & testing
MAXIMO UPGRADE ASSESSMENT

The verification playbook.

7.6.1.3→Manage 9.2Kestrel Energy

Each work package carries an action and a closure test. Record the target version, product composition, result and evidence when a test is executed.

Resolve before cutover1 observations

Class removed

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.

Owner · Customisation developer

Closed when The customisation compiles against the target's `businessobjects.jar` with no unresolved import.

WP-ee4980cc · affected subjects and evidence
psdi.iface.jms.ErrorQueueNotfCronTask
  1. psdi.iface.jms.ErrorQueueNotfCronTask · class-removed

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

    A2 · IBM's API at 9.1
Validation required3 observations

Validate changed datatypes against actual usage

Validate existing values and every cited consumer against the new type, including case, rounding, range and truth semantics. A metadata difference alone does not establish a failing operation.

Owner · Customisation developer

Closed when Each cited site has been read against the new type and either changed or recorded as unaffected, with the reason.

WP-cf44bbb5 · affected subjects and evidence
ASSET.ASSETHEALTH ASSET.GEOMETRY LOCATIONS.HEALTH
  1. ASSET.ASSETHEALTH · type-changed

    ASSET.ASSETHEALTH type INTEGER → DECIMAL. Check stored values and consumers for case, rounding and conversion effects. A type difference alone does not establish a failure. No line of the supplied code reads or writes it, so nothing you own is known to break; anything outside the supplied code that carries it — an integration, a report — is what to check. The same column carries this change on 2 tables: ASSET, LOCATIONS.

    B2 · dictionary 7.6.1.3 vs 9.2
  2. ASSET.GEOMETRY · type-changed

    ASSET.GEOMETRY type BLOB → CLOB. Check stored values and consumers for case, rounding and conversion effects. A type difference alone does not establish a failure. No line of the supplied code reads or writes it, so nothing you own is known to break; anything outside the supplied code that carries it — an integration, a report — is what to check. The same column carries this change on 3 tables: ASSET, LOCATIONS, WORKORDER.

    B1 · dictionary 7.6.1.3 vs 9.2, corroborated by IBM's upgrade script, 9.0
  3. LOCATIONS.HEALTH · type-changed

    LOCATIONS.HEALTH type INTEGER → DECIMAL. Check stored values and consumers for case, rounding and conversion effects. A type difference alone does not establish a failure. No line of the supplied code reads or writes it, so nothing you own is known to break; anything outside the supplied code that carries it — an integration, a report — is what to check.

    B2 · dictionary 7.6.1.3 vs 9.2
Validation required3 observations

Method removed

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

Owner · Customisation developer

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.

WP-395a9c9b · affected subjects and evidence
psdi.app.person.Person.getAvailableHours(Ljava/util/Date;Lpsdi/app/person/PersonCalRemote;Lpsdi/app/common/AvailCalc;)D psdi.app.person.Person.getAvailableMbo(Ljava/util/Date;Lpsdi/app/person/PersonCalRemote;Lpsdi/app/common/AvailCalc;)Lpsdi/mbo/MboRemote; psdi.app.person.Person.getAvailableMboList(Ljava/util/Date;Lpsdi/app/person/PersonCalRemote;Lpsdi/app/common/AvailCalc;)Ljava/util/List;
  1. psdi.app.person.Person.getAvailableHours(Ljava/util/Date;Lpsdi/app/person/PersonCalRemote;Lpsdi/app/common/AvailCalc;)D · method-removed

    psdi.app.person.Person.getAvailableHours(Ljava/util/Date;Lpsdi/app/person/PersonCalRemote;Lpsdi/app/common/AvailCalc;)D is gone in 8.7; you reference the class — check the call

    A2 · IBM's API at 8.7
  2. psdi.app.person.Person.getAvailableMbo(Ljava/util/Date;Lpsdi/app/person/PersonCalRemote;Lpsdi/app/common/AvailCalc;)Lpsdi/mbo/MboRemote; · method-removed

    psdi.app.person.Person.getAvailableMbo(Ljava/util/Date;Lpsdi/app/person/PersonCalRemote;Lpsdi/app/common/AvailCalc;)Lpsdi/mbo/MboRemote; is gone in 8.7; you reference the class — check the call

    A2 · IBM's API at 8.7
  3. psdi.app.person.Person.getAvailableMboList(Ljava/util/Date;Lpsdi/app/person/PersonCalRemote;Lpsdi/app/common/AvailCalc;)Ljava/util/List; · method-removed

    psdi.app.person.Person.getAvailableMboList(Ljava/util/Date;Lpsdi/app/person/PersonCalRemote;Lpsdi/app/common/AvailCalc;)Ljava/util/List; is gone in 8.7; you reference the class — check the call

    A2 · IBM's API at 8.7
Validation required2 observations

Attribute removed

Change every cited site before cutover. The column is gone at the target: a read throws and a write fails.

Owner · Customisation developer

Closed when `select 1 from maxattribute where objectname = <object> and attributename = <attribute>` on the target returns no row, and no cited site references it.

WP-232873dd · affected subjects and evidence
ASSET.PLUSSGEOJSON WORKORDER.PLUSSGEOJSON
  1. ASSET.PLUSSGEOJSON · attribute-removed

    ASSET.PLUSSGEOJSON is removed on the path to 9.2 (no reference found in the code supplied)

    A1 · IBM upgrade script, 9.0
  2. WORKORDER.PLUSSGEOJSON · attribute-removed

    WORKORDER.PLUSSGEOJSON is removed on the path to 9.2 (no reference found in the code supplied)

    A1 · IBM upgrade script, 9.0
Validation required2 observations

Persistence changed

A non-persistent attribute is not in the table. Anything that queries, indexes, reports on or joins to it stops working, even though reading it through the MBO still does.

Owner · Customisation developer

Closed when No SQL, report or integration references the attribute as a column on the target.

WP-15e67888 · affected subjects and evidence
ASSET.GEOMETRY ASSET.METHODNAME
  1. ASSET.GEOMETRY · persistence-changed

    ASSET.GEOMETRY persistent true → false The same column carries this change on 3 tables: ASSET, LOCATIONS, WORKORDER.

    B1 · dictionary 7.6.1.3 vs 9.2, corroborated by IBM's upgrade script, 9.0
  2. ASSET.METHODNAME · persistence-changed

    ASSET.METHODNAME persistent false → true The same column carries this change on 2 tables: ASSET, LOCATIONS.

    B2 · dictionary 7.6.1.3 vs 9.2
Validation required2 observations

Scale changed

Check arithmetic and rounding at every cited site, and any total that has to reconcile.

Owner · Customisation developer

Closed when A worked example at the new scale reconciles against the same example at the old one, or the difference is accepted and recorded.

WP-1683a233 · affected subjects and evidence
ASSET.ASSETHEALTH LOCATIONS.HEALTH
  1. ASSET.ASSETHEALTH · scale-changed

    ASSET.ASSETHEALTH scale 0 → 2 The same column carries this change on 2 tables: ASSET, LOCATIONS.

    B2 · dictionary 7.6.1.3 vs 9.2
  2. LOCATIONS.HEALTH · scale-changed

    LOCATIONS.HEALTH scale 0 → 2

    B2 · dictionary 7.6.1.3 vs 9.2
Validation required1 observations

Screen field local extension

Confirm the column on the upgraded system, then leave the screen alone. The field is your own column, which an in-place upgrade carries forward; the stock target dictionary not listing it is expected, not a broken binding. If the column is not there after the upgrade, re-apply it — a database change — before the screen is opened.

Owner · Application Designer / configuration

Closed when `select 1 from maxattribute where objectname = <object> and attributename = <attribute>` on the upgraded system returns a row, and the screen renders with the field populated.

WP-253434f3 · affected subjects and evidence
ASSET.KEINSPECTIONCLASS
  1. ASSET.KEINSPECTIONCLASS · screen-field-local-extension

    ASSET.KEINSPECTIONCLASS is bound on a screen through WORKORDER.ASSET → ASSET, and it is your own column: in your export, not in IBM's shipped dictionary at either release. The stock 9.2 dictionary not carrying it is expected — an in-place upgrade carries your own columns forward — so this is not a release removal and the screen is not known to be broken. Confirm the column is present on the upgraded system before cutover; if it is, the binding is unaffected. At least one hop was read from the 9.2 relationship graph mxh ships rather than from your own MAXRELATIONSHIP rows, so which object the field lands on is our assumption about your install — confirm the relationship too.

    B2 · not present in IBM's shipped dictionary at either release; bound by the screen, followed through the 9.2 relationship graph mxh ships
Product and environment decisions8 observations

Local extension

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.

Owner · Database / migration

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.

WP-1af3c60d · affected subjects and evidence
ASSET.KECORROSIONLOOP ASSET.KEINSPECTIONCLASS FAILUREREPORT.KEROOTCAUSECODE LOCATIONS.KEPLATFORM WORKORDER.KEFLARINGHOURS WORKORDER.KEPERMITSTATUS WORKORDER.KESHUTDOWNREF WORKORDER.KEWELLID
  1. ASSET.KECORROSIONLOOP · local-extension

    ASSET.KECORROSIONLOOP 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.

    B2 · not present in IBM's shipped 7.6.1.3 dictionary
  2. ASSET.KEINSPECTIONCLASS · local-extension

    ASSET.KEINSPECTIONCLASS 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.

    B2 · not present in IBM's shipped 7.6.1.3 dictionary
  3. FAILUREREPORT.KEROOTCAUSECODE · local-extension

    FAILUREREPORT.KEROOTCAUSECODE 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.

    B2 · not present in IBM's shipped 7.6.1.3 dictionary
  4. LOCATIONS.KEPLATFORM · local-extension

    LOCATIONS.KEPLATFORM 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.

    B2 · not present in IBM's shipped 7.6.1.3 dictionary
  5. WORKORDER.KEFLARINGHOURS · local-extension

    WORKORDER.KEFLARINGHOURS 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.

    B2 · not present in IBM's shipped 7.6.1.3 dictionary
  6. WORKORDER.KEPERMITSTATUS · local-extension

    WORKORDER.KEPERMITSTATUS 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.

    B2 · not present in IBM's shipped 7.6.1.3 dictionary
  7. WORKORDER.KESHUTDOWNREF · local-extension

    WORKORDER.KESHUTDOWNREF 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.

    B2 · not present in IBM's shipped 7.6.1.3 dictionary
  8. WORKORDER.KEWELLID · local-extension

    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.

    B2 · not present in IBM's shipped 7.6.1.3 dictionary