How to

Create template for business team

Business teams do not need to see all the information of a Companion Excel Sheet. You can add comments, add a descriptive sheet (not converted into STEPXML), hide lines or columns, insert calculation formulas, ...

Here is an example a such file: Excel Sheet.

Once modified by users, this file can be directly inserted in the Companion for Delivery or Companion for Business project to be converted and uploaded to STEP.

Replacement rules

Replacement rules can be used in some cases in STEPXML to perform imports in undo and replace mode.

When you add a ReplacementRules tag in a module, it is valid for the entire module.

ReplacementRules can be written using a .companion.csv, .companion.xlsx or .companion.xlsm file when data is expected.
In other cases, a .companion.xml or .step.xml file must be used.

Here are a few examples :

Using .companion.csv file :

<ReplacementRules>
<Products>
<ReplaceValues>
AttributeID

MY_ATTRIBUTE_TO_REPLACE
| <ReplacementRules>      |
| <Products>              |
| <ReplaceValues>         |
| AttributeID             |
|                         | 
| MY_ATTRIBUTE_TO_REPLACE | 

Using .companion.xml file :

@(config: CompanionParams)
<STEP-ProductInformation ContextID="@config.context" WorkspaceID="@config.workspace">
    <ReplacementRules>
        <Products>
            <ReplaceValues/>
        </Products>
    </ReplacementRules>
</STEP-ProductInformation>

A common use case while maintaining a product hierarchy, is to suppress an attribute link (specification attribute validity on a product in a specific node of the blue hierarchy).

It's not sufficient to remove the corresponding line in your sheet containing attribute links, you have to add a sheet with the following header

AB
<Products>
<Product>
ID<DeleteAttributeLink>
AttributeID

For each attribute link you want to delete add a line with the node on which the link resides and the attribute identifier.

Once the attribute link has been suppressed on all environments the sheet can be removed.

It is also possible to use the STEPXML tag ReplaceAttributeLinks as follow:

<ReplacementRules>
    <Products>
        <ReplaceAttributeLinks></ReplaceAttributeLinks>
    </Products>
</ReplacementRules>

Then STEP will replace all previous attribute links on products specified in the resulting file.

Managing qualifiers

It is important to understand that the main difference between a context and a qualifier (also called pseudo context) is that a context is a point of view of the data as a qualifier is the point of residence of the data. That is why when a user select a context, it selects a point of view and is able to see also inherited data coming from qualifiers higher in the tree of data storage.

When creating a multi context STEPXML, data is set on a qualifier defined by its QualifierID.

Qualifiers are defined by the Qualifier tag in STEPXML and can also be represented in Excel sheet.

A Qualifier is defined by a set of dimension points depending on dimension links. For a single dimension dependency a single dimension point is necessary. One can also define the order of context for inheritance. This order is simple for a single dimension dependency, it is not the case for a multi dimension dependency and this order will have an impact on how data is beeing inherited in dimension tree.

The definition of the context order is optional for qualifiers since STEP will compute automatically the order by looking over the entire tree.

For a single dimension dependency it is usual to have the same identifier for qualifier and dimension point.

It is then possible to create a file with data for different languages for instance.

To do so, export the qualifiers already defined in the instance and store the result in a companion file

  <Qualifiers>
    <Qualifier ID="Qualifier root">
        <DimensionPointLink DimensionPointID="Qualifier root"/>
        <Context ID="GL" Priority="1"/>
        <Context ID="GROUP_FR" Priority="2"/>
        <Context ID="GROUP_US" Priority="2"/>
    </Qualifier>
    <Qualifier ID="std.lang.all">
      <DimensionPointLink DimensionPointID="std.lang.all"/>
        <Context ID="GL" Priority="1"/>
        <Context ID="GROUP_FR" Priority="2"/>
        <Context ID="GROUP_US" Priority="2"/>
    </Qualifier>
    <Qualifier ID="fr-FR">
        <DimensionPointLink DimensionPointID="fr-FR"/>
        <Context ID="GROUP_FR" Priority="1"/>
    </Qualifier>
    <Qualifier ID="en-US">
        <DimensionPointLink DimensionPointID="en-US"/>
        <Context ID="GROUP_US" Priority="1"/>
    </Qualifier>
  </Qualifiers>

You may also add a new qualifier if it is not already defined.

Then use the QualifierID in your file, for instance for a name definition:

<Name>
QualifierID
en-USEnglish name
fr-FRNom français

It can also be used for ListOfValue values or Attribute values if dependent on a dimension. Refer to XSD for a complete description of STEPXML tags.

Last Updated: