Hello community,

I'm trying to solve a very particular concern relating to database reorganisation and matrix models. Any input would be greatly appreciated.

As we know, a reorganisation will delete any objects and occurrences that do not occur somewhere in the database. However, when matrix models are involved, things work a little differently. The (approximate) logic runs along the following lines:

  1. If there are graphical occurrences of the connection def, retain it.
  2. If there are are no graphical occurrences of the connection def, check the object occurrences of the source and target.
  3. If the source and target appear together on a matrix model, retain the connection def.
  4. Otherwise, delete the connection def.

This seems to make sense at first; however consider that two objects can occur on the same matrix model without the connection being visible. This may be because the matrix shows relationships of a different type. It may also be because the objects appear on the same axis of the matrix model and thus do not intersect to form a matrix cell.

The functionality we require is to retain the connection if one of the following is true:

  1. There is an occurrence of the relationship on a graphical model; and/or
  2. The connection is visible on a matrix model

SoftwareAG has advised that the current functionality is by design, so we have had to build our own report to reorganise according to our requirements. However, I have only been able to achieve this having the report iterate through every cell in every matrix model to build a list of connections, and then check every connection definition against this list. Obviously this is grossly inefficient, but there seems to be no function on a connection definition to simply check which matrix models it is visible in.

This is one of those problems where I feel there must be a better way that I'm somehow missing. Could anybody point me to a better way?

Tags: ARIS ARIS Report ARIS Report Scripting ARIS script