Hello, our team has an issue stemming from the fact that we use some fairly large/complex library models as project usages (all our models are on TWC).
Most of the time when we make changes to the libraries then update project usage of the top level model there are no problems. More specifically, any "recovered element usage" errors that get introduced are almost always very easy to clear by simply finding the usage in the top level model and dealing with it appropriately (usually just deleting it).
However, every now and then Cameo seems to get VERY confused about a small number of these recovered element usages, and there is no way to delete them from the top level model. It actually appears that they do not exist in that top level model at all, and as a result they are next to impossible to resolve.
Here is a recent example:
In one of our libraries we had a part property which was being referenced in a readStructuralFeature behavior of an activity. At the time the activity was created, the part property was actually a redefinition of an inherited part property. Later on we changed our minds and decided not to redefine it. The change was made in our library and the readStructuralFeature was fixed to reference the inherited part property instead of the redefinition and every thing seemed great!
Then... we updated the project usage of the top level model using this library and the original redefined part property showed up as a recovered element usage error. However, there was nothing in the top level library using it. The more digging I did, it appears that the recovered element was actually in the library itself and the usage was only in the activity that was referring to it through the readStructuralFeature. There was absolutely nothing I could do to find and remove it from the top level model, even though the only place the error showed up was in the top level model.
How I eventually cleared this error was to do the following:
- temporarily deleted the calling activity in the library
- commit this change to TWC
- update project usage of the top level (this action cleared the error)
- revert the library to its previous version using "Set As Latest"
- update project usage again to pull in the correct version of the library with the deleted activity restored
Has anyone else experienced similar problems? If so, have you found a better way to deal with these?
NOTE: While this example had the problem via the readStructuralFeature behavior of an activity referencing a part property of a block, I have also had this exact same problem with activities which have call operation behaviors that use operations owned by a block. It is almost as if Cameo gets confused when we either delete or repurpose a structural element that are referenced by some type of behavior.
Any thoughts or advise are greatly appreciated!
