Compositional Clause

The compositional clause defines the relationship between a composer object and a composee object. You can define an access mask for the composee.

Relationships defined using the compositional clause act as pointers from the composer to the composee. Such relationships cannot be defined with any attributes, paths, or interfaces.

You cannot define paths that point to a compositional relationship. In addition, a compositional relationship cannot be at the from or to end of another relationship.

When you add or modify a relationship with the compositiontal clause, you can include composeeaccess MASK to define the access for the composee. Replace MASK with a comma-separated list of any valid access masks, such as show,read,.... For a list of all the access masks, see Access Privilege Definitions..

For example:

add relationship r_comp compositional from type ComposerObject to type ComposeeObject composeeaccess show,read;

When a composee object is created (such as when the composer object is revised or cloned), it inherits the access mask defined in the relationship.

If you add a composeeaccess mask to an existing relationship, any existing objects that use the relationship are not affected. Any future composee objects that use the relationship will inherit the access mask.

The environment variable MX_COMPOSEE_STRICT_ACCESS is used to define if composee is allowed to inherit access from composer. The default value of MX_COMPOSEE_STRICT_ACCESS is TRUE. When the value is TRUE, composee is allowed to inherit access from composer. Only the read and show accesses are considered. Adding inherited ownership and explicit SOV (ORG|PROJ) is not allowed. When the value is FALSE, composee is not allowed to inherit access from composer.