OIEP - Post-processor - Copy Context Dependent Values and References

When multiple contexts are selected in the Configuration section of an OIEP, this post-processor reduces the complexity of inheritance of values in cross-context exports, and allows downstream systems to receive a multi-context export in a single file.

Important: Using the 'Copy Context Dependent Values and References' post-processor requires a strong understanding of the STEP Qualifier concept that defines in which dimensions and at which inheritance levels values are present.

If you want to further process the information in a form similar to a typical single-context export, we strongly recommend using the context-splitter post-processor instead. For more information, refer to the OIEP - Post-processor - Context Splitter topic here.

ContextID and QualifierID XML Tags

The 'Copy Context Dependent Values and References' post-processor adds the <ContextID> and <QualifierID> XML tags to the export. A standard cross-context export (exporting data for multiple contexts) only adds the <QualifierID>. The <QualifierID> tag specifies the ID of the Dimension Point in which the attribute value exists but does not provide the specific context. For example, the <QualifierID> of 'en-US' could be the ID of the 'English' dimension point, but without the <ContextID> tag, the additional contexts that an attribute value has inherited down to cannot be determined.

When the <ContextID> XML tag is used in combination with the <QualifierID> XML tag, it is possible for the downstream system to determine the inheritance relationship between a value (or reference) and a context. The <QualifierID> XML tag is useful when a service tries to re-import processed data into STEP. Because the downstream system knows which context the data must be imported into, it is easier to target specific contexts within STEP for import.

The following example illustrates the differences between using the Export Manager for a standard cross-context export (exporting data for multiple contexts) and using an outbound integration endpoint with the Copy Context Dependent Values and References post-processor enabled.

Although attribute values are used, the post-processor also works with inherited references such as classification or asset references.

The product with ID '235122' has a language-dependent attribute, 'Description, Web.' The following contexts will be considered:

  • 'English US' (Context 1) has a value defined and is the master context (determined by its selection in the Context dropdown
  • 'English Canada' (Context3) does not have a value defined but inherits values from the English US context
  • 'English UK' (Context7) has a value defined (notice the slightly different wording)
  • 'Germany German' (Context5) has a value defined

XML Output Example - Standard Cross-Context Export

Using a standard cross-context export (exporting data for selected contexts), the following XML is generated:

Only the attribute values specific to particular dimension points—indicated by QualifierIDs—are exported, and only the attribute values that are different from the master context. Master values are taken from the 'en-US' and the English UK values are taken from 'UK English.'

Note: Standard export methods collapse duplicate values, and only the top value of the inheritance tree is exported.

XML Output Example - with Copy Context Dependent Values and References post-processor

The following shows an XML output of an OIEP cross-context export (exporting data for selected contexts) with the Copy Context Dependent Values and References post-processor enabled:

The <ContextID> tag has been added to the export along with the <QualifierID> tag, and each value—including inherited values—is explicitly exported. This means that the 'English Canada' (Context3) values are included in the export, even though it inherits from the master context. If the value is overwritten in the English Canada context, as shown below, the <QualifierID> changes to the ID of the 'Canada English' language dimension point.

The default filename of the delivered XML is 'CopyContextDependent##exported_0.'However, the filename can be changed based on the selected delivery method, as defined in the OIEP - Delivery Method Section topic here.