Seucrity Propgation
Teamcenter 11.2.x supports auto propagation of property values from one object to another objects using relationship, references and non-workspace objects on specific action in certain condition
It‘s a very common business scenario where you need to copy property values from one object to another objects say Item to Item Revisions to datasets/forms and so on, also from item to item revision to other item revisions which is associated with different relations for security controls like ADA/Projects/Security Classificaiton and also for other busines purposes.8
Say you have "Comp Part" as shown below and you want to propagate IP Classification to all other associated objects of different types and with different relation to control access on all these objects. To address this requirement in older Teamcenter releases you have a fucntionaility through preferences where you can propgate value from Item to Item Revsion to dataset but not to the other associated objects for that you have to write your own customization or define a process where user has to classify each object manually which is really a cumbersome and prone to human errors. Also, you might have encountered business situation where you wanted to have propgation to happen from secondary object to primary object (like dataset to Item Revision), and might have required propagation only to happen in certain condition and only on specific busienss objects associated to primary (source) object.
To address above business needs, In Teamcenter 11.2.x, fina a great functionaility i.e BMIDE based Propgation Rules which help me to write propagation rules for multi-level data structure, in reverse as well as forward direction, on several types of action/opeartion (check-in, save,revise,export, delete etc) with condition control on when propgation should happen and also on which objects should be traversed at the time of propgation in data strcture. Importantly, it provides a OOTB security propagation styles such asmerge, fill in, override and order of precedance which offers a great flexibity to propgate property values from one object to another object while addressing varied busienss requirements which you would not have imagine before!!!
Propgation rules defined in BMIDE for above use case
Some of the key features useful to address different propagation requirements
-Propagation through relation (IMAN_SPECIFICATION, DIRECT MODEL, ANY), reference (rev_list), non-workspace objectsEx:
Propagate Using Reference Property:
Propagate Using Relation:
Support Multilevel Propagation:
Where you can define propagation which will traverse several levels of objectsEx: Multilevel item data structure
Support Forward Propagation:
You can define property on item revision (primary object) and that can get propagated to datasets/forms/other objects (secondary objects) associated thereExample:
Item -> Item Revisions
Item Revision -> Dataset / Form / Other Item Revision
Support Reverse Propagation:
You can define property on dataset/forms (secondary object) and that can get propagated to item revision (primary objects) associated thereExample:
Item Revision -> Dataset / Forms / Any Other Associated Object
Support controlling propagation action based on condition:
Where you can right any required condition to evaluate before actual propagation to happen.Ex: In this example, I am propagating the “IP Classification” property from Item to Item Revision only when IP Classification is set to “Super Secret”. For this, I have a written a below condition to control propagation action so that propagation will only happen when this condition returns true
Support controlling traversal of objects for propagation based on condition:
Where you can right condition to control traversal to business objects for propagationEx:
In this example, I am propagating the “IP Classificaiton” property from Item to Item Revision excluding Item Revision having name as “Prototype”. For this I have written a below traversal condition so that propagation will traverse Item Revision which has description other than “Prototype”
How to define Propagation Rules in BMIDE?
1. Identify the property and define the required security group using property constant
Example:
1. OOTB properties with defined security group and associated propagation style
2. Configured property constant for custom property
2. Launch propagation rule editor through RMB on project
3. Click on Add new Rule and Define Various Parameters Based on your propagation requirements
4. Deploy the BMIDE template
5. Generate the report for specific security group:
To get info on what are all those properties the specific group is associated and also what are all rules using that group is present in the system which is very useful to analyze rules.
Some of the business scenarios, I see this can be useful
1. Propagate Security Attributes:Propagate Security Projects, Classification (GOV/IP) and ITAR/IP licenses to control security on business objects, this is very common scenario where you want these attributes to be populated on several destination objects from the source object, actually you set these attributes on source object and want these attributes on all other objects should get values populated automatically.
a. Propagate project security (Project_List, Owning _Project) to entire Item Structure on specific action say save action on source object
b. Propagate IP/GOV classification to all the objects within item data structure
c. Propagate IP/ITAR license to all the objects within item structure and this should happen when item as classified as “super-secret” and not for other cases
d. Other custom security attribute
2. Propagate Non Security Attributes:
This could be any property on business object which you need to propagate from one object to another object but not for the purpose of access control. This situation is also common where you want value to be same for all the associated objects as the source object.
Example: Propagate custom property “usage type” from item to item revisions provided item has IP_Classification set to “Proprietary” and only to those item revisions where object_name is not prototype
Are you upgrading from older release to TC11.2.x?
Don’t forget to perform the below steps when you are upgrading from older releases to TC11.2.x. This is required to convert your old preference propagation rules to BMIDE based propagation rules. If you don’t do perform below steps existing propagation you have defined in your system will not work.Steps:
1. Upgrade process will create “propagation_preference_rules.xml” file automatically in TC_DATA\model directory, which you have to import in BMIDE project and deploy it.
2. This will ensure that required propagation rule get created for the preferences you had in older release
Benefits of “Propagation Rules” which I envisaged…
1. Consistent and easy way to manage propagation rules using BMIDE
2. Flexibility in propagating property values from one object to another objects
3. Condition can be used to control propagation action and traversal for propagation
4. Easy way to achieve multi-level propagation and propagation in forward and reverse direction
5. Configure propagation for any types of objects association such as reference, relation, non-workspace object
6. Ideally I see no limit for traversing objects level for propagation