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:
- If there are graphical occurrences of the connection def, retain it.
- If there are are no graphical occurrences of the connection def, check the object occurrences of the source and target.
- If the source and target appear together on a matrix model, retain the connection def.
- 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:
- There is an occurrence of the relationship on a graphical model; and/or
- 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?