serializeDataContainerToJSON

The serializeDataContainerToJSON function is used to serialize a SingleDataContainer or a MultiDataContainer.

Syntax

c4i:serializeDataContainerToJSON(xpath [, keyMetaAttribute])

Parameters

xpath

XPath to a Data Container

keyMetaAttribute (optional)

  • By default, attributes are indexed using their attribute ID
  • If this parameter is supplied, attributes will be indexed using a meta-attribute value, if it is present

Return value

A JSON document representing the Data Container, its attributes and references

Example

Given the following STEP XML,

<STEP-ProductInformation>
  <Products>
    <Product ID="PRD1" UserTypeID="PRODUCT">
      <Name>Test Product</Name>
      <DataContainers>
        
        <MultiDataContainer Type="DC_ETIM_VALUE_MULTIPLE">
          <DataContainer ID="1408679">
            <Values>
              <Value AttributeID="ATD_ETIM_VALEUR">30</Value>
              <Value AttributeID="ATD_ETIM_CLASSIFICATION">EC001582</Value>
              <Value AttributeID="ATD_ETIM_CARACTERISTIQUE">EF006582</Value>
              <Value AttributeID="ATD_ETIM_VERSION">7</Value>
            </Values>
          </DataContainer>
          <DataContainer ID="1408680">
            <Values>
              <Value AttributeID="ATD_ETIM_VALEUR">60</Value>
              <Value AttributeID="ATD_ETIM_CLASSIFICATION">EC001582</Value>
              <Value AttributeID="ATD_ETIM_CARACTERISTIQUE">EF006582</Value>
              <Value AttributeID="ATD_ETIM_VERSION">7</Value>
            </Values>
          </DataContainer>
        </MultiDataContainer>
        <SingleDataContainer ID="1508680" Type="DC_ETIM_VALUE_SINGLE">
          <Values>
            <Value AttributeID="ATD_ETIM_VALEUR">90</Value>
            <Value AttributeID="ATD_ETIM_CLASSIFICATION">EC001582</Value>
            <Value AttributeID="ATD_ETIM_CARACTERISTIQUE">EF006582</Value>
            <Value AttributeID="ATD_ETIM_VERSION">7</Value>
          </Values>
          <ProductCrossReference Type="CrossSelling" ProductID="Target1"/>
          <ProductCrossReference Type="Accessory" ProductID="Accessory1">
            <MetaData>
              <Value AttributeID="ATT_001">Test Value 1</Value>
              <Value AttributeID="ATT_002">2020-04-02</Value>
              <MultiValue AttributeID="ATT_003">
                <Value>MultiValue1</Value>
                <Value>MultiValue2</Value>
              </MultiValue>
              <Value AttributeID="ATT_004">16</Value>
            </MetaData>
          </ProductCrossReference>
          <ProductCrossReference Type="CrossSelling" ProductID="Target2"/>
        </SingleDataContainer>
      </DataContainers>
    </Product>
  </Products>
</STEP-ProductInformation>

The following YAML configuration will produce the following output :

c4i:serializeDataContainerToJSON(DataContainers/SingleDataContainer[@Type="DC_ETIM_VALUE_SINGLE"))
{
    "ID": "1508680",
    "Type": "DC_ETIM_VALUE_SINGLE",
    "Values": {
      "ATD_ETIM_VALEUR": "90",
      "ATD_ETIM_CLASSIFICATION": "EC001582",
      "ATD_ETIM_CARACTERISTIQUE": "EF006582",
      "ATD_ETIM_VERSION": "7"
    },
    "References": {
      "ProductCrossReference": {
        "CrossSelling": [
          {
            "target": "Target1"
          },
          {
            "target": "Target2"
          }
        ],
        "Accessory": [
          {
            "target": "Accessory1",
            "metaData": {
              "ATT_001": "Test Value 1",
              "ATT_002": "2020-04-02",
              "ATT_003": [
                "MultiValue1",
                "MultiValue2"
              ],
              "ATT_004": 16.0
            }
          }
        ]
      }
    }
  }
Last Updated: