You are here:
Abstraction Framework Concepts and Terminology (Managed Package)
The abstraction framework abstracts out the essential structure of a product model so that it can locate a product or an attribute anywhere in the product model, without any knowledge of the product model itself.
This feature is part of the Communications Cloud managed package.
A product model is represented by a comprehensive set of metadata and the abstraction framework uses its knowledge of the metadata structure to locate products and attributes in a product model. Any changes in a product model, therefore, are communicated to the framework simply by updating the relevant custom metadata.
The custom metadata used by the product model abstraction layer consists of the following columns:
| Column Name | Description |
|---|---|
| IntegrationKey | A unique identifier for the product, attribute, or field that
you want to access. It maps to the label of the custom metadata
object. In the custom metadata provided by default, the prefix
|
| Target | The name of the target.
The target must exist in your org. |
| TargetType | The target type. A target can be one of the following types:
The TargetType must be consistent with the method
used. For example, the method to set an attribute can be used only
with the TargetType |
TargetEntity |
The Product Code of the product that you want to access. If the target that you want to access is a product, the TargetEntity is the same as the Target. If the target that you want to access is an attribute or a field, the TargetEntity is the Product Code of the product or the product specification to which the attribute or field belongs. |
| TargetEntityContext | The location of the TargetEntity in the product model hierarchy. A TargetEntity can have one of the following contexts:
|
| ParentEntity | The Product Code of the entity that is the parent of the TargetEntity. ParentEntity can be null for an attribute or a field where the TargetEntityContext is Root or RootChild. |
| ParentEntityContext | The location of the ParentEntity in the product model hierarchy. A ParentEntity can have one of the following contexts for each value of TargetEntityContext:
If ParentEntityContext is Child, then you should use options such as ContextId, Mode, and Depth to provide more information about the context of the target in the product hierarchy. |
| Flow | The name of the workflow where the target is used. This allows you to define the context at a more granular level when you search for a target in the custom metadata table. It is useful if you want to find a target for which the IntegrationKey is not known. It also allows you to group together target products and attributes based on the workflow they are used in. |
| TargetGroup | A name that allows you to group identical targets that occur in different places in the hierarchy, so that the MatchData method can act on all the targets in a single call. For example, consider a nested hierarchy where a particular product occurs at different places in the product model. Let's say the target product can be either a RootChild, or a Child. The integration key for the product is unique to the target's place in the product model. So if you want to act on just one specific occurrence of the product, you can use its integration key. If, however, you want to act on all instances of the target, wherever they occur in the product model, then you can specify the target group. Specifying the target group returns all rows in the custom metadata table that match the given target group. |
| TargetDataType | The data type of the target. A target can have one of the following data types:
|
| Comment | Any comment pertaining to the target. This comment is returned in the output of the GetData method. |

