Ensuring panels and panel sources are not missing after an upgrade

After an upgrade to iMIS EMS, there may be panels and/or panel sources that are missing. This may be because the panel source was not correctly added to the ObjectMetaData table when it was initially created.

How does this happen?

The following is one scenario that outlines how a panel and/or panel source can be missing after an upgrade:

  1. In iMIS 2017, a customizer table is created (ABC_123).
  2. The iMIS Desktop feature to create business objects over customizer tables was used to create CsABC_123.
  3. Instead of using CsABC_123, ABC_123 was manually added to the ObjectMetaData table to directly use this customizer table in panel editor panels as a source. This results in there being no business object named ABC_123 anywhere in iMIS.
  4. During the iMIS upgrade to EMS, the upgrade expects an entry in the ObjectMetaData table to have a business object of the same name (ABC_123). Since one does not exist, the ABC_123 entry in the ObjectMetaData table is deleted/dropped.
  5. Since panel editor sees no source in ObjectMetaData for ABC_123 and no business object for ABC_123, panels referencing that source are likely broken or missing.

The root of the issue is when the Desktop feature to automatically create business objects over customizer tables is combined with adding the original table (not the generated business object) to the ObjectMetaData table, so that there are two rows for the same source/data.

Is the data gone?

No, the data is not gone or deleted, and the physical table for ABC_123 still exists.

What should I do before upgrading?

Prior to upgrading, the customizer table with no backing business object should be deleted from the ObjectMetaData table. The iMIS upgrade will take care of the rest.

Helpful tools

Use the ListPanelDefinitionSources.sql script to help determine where sources are used. This script generates one row for every source included in a panel. If a panel is defined with two sources, the script will produce two rows for the panel, with each row corresponding to one of the sources.