As you probably know a BMIDE data model has lots of dependencies and most of those dependencies exist within the data model itself. For example, a property may have a naming rule attached, and that naming rule may depend on a List of Values (LOV). The property, naming rule, and LOV all exist within the data model.
But data models also contain external dependencies. These are dependencies on things that aren’t in the data model. They are expected to be defined in the Teamcenter instance before the data model is deployed. And those are the problem.
External Dependency Examples
Groups can be an external dependency for Type Display rules which determine which groups can create which item types. The type display rules are in the data model but they refer to groups in the organization structure which are not. And if you try to deploy a template to a Teamcenter instance which doesn’t have those groups defined you will get an error.
PLMXML Transfer Modes can also be an external dependency. I’m not even all that sure what in the data model refers to transfer modes. But I know it’s an issue because the other day we spent a lot of time dealing with a template that failed to deploy because a transfer mode was missing. The template had been extracted from an upgraded Teamcenter Engineering instance which had a lot of accumulated junk in it, the dependency on this transfer mode being one such item. We had to hand-edit the XML of the data model to make it refer to a generic out-of-the-box transfer mode that we knew existed.
External Dependency BMIDE View
My suggestion is to add a new view to the BMIDE that shows all the external dependencies in one place. I think they should be organized by type — groups, transfer modes, etc. Each external dependency should also indicate where the dependency is defined, such as “DojoDesignItem – Type Display Rules”. If that listing can also be linked to the actual definition so we can click on it and go to where it is defined, that would be great.
Armed with this information we could check that the target systems already have the necessary groups, transfer modes, etc. defined or we could make sure we’ve added commands to the install scripts to create the necessary definitions.
I could be wrong but I don’t think there’s anything particularly challenging about this idea, other than just the time it takes to implement. I believe that the list of all possible dependencies is well defined. So all the BMIDE would have to do would be to scan for the types of XML elements which may have external dependencies and then collect any references that it finds.
Is this an enhancement we should try to get Siemens PLM to implement? Do you have a better suggestion? If you just want to show your support, click the Google +1 button.