serializeContextReferenceToJSON
The serializeContextReferenceToJSON
function is used to serialize the context-dependent meta-data of a single reference from an object.
Syntax
c4i:serializeContextReferenceToJSON(reference [, lov] [, units] [, values] [, keyMetaAttribute] [, displayReferenceTarget] [, keysOrder] [, displayMultiContextValues])
Parameters
reference
XPath to the reference
lov (optional) :
- Indicates how to represent LOV values
- The authorized values are "DISPLAY_LOV_VALUE_LABEL" (default), "DISPLAY_LOV_VALUE_ID" or "DISPLAY_BOTH"
unit (optional)
- Indicates how to represent units
- The authorized values are "NO_UNITS" (default), "DISPLAY_UNIT_ID", "DISPLAY_UNIT_LABEL"
value (optional) :
- Indicates if values and units should be concatenated or separated
- The authorized values are "CONCAT_VALUE_UNIT" (default) or "ISOLATE_VALUE"
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
displayReferenceTarget (optional)
- Indicates whether to display reference target ID or key value
- The authorized values are "BY_ID" (default) or "BY_KEY"
keysOrder (optional)
- Indicates the order in with the keys should be used when an object has multiple key values
- Separate keys using a comma (,). Example : "Key1,Key2"
displayMultiContextValues (optional)
- Indicates if values should be indexed by context, then by attribute ID, or the other way around
- The authorized values are "BY_CONTEXT" (default) or "BY_ATTRIBUTE"
Return value
A JSON document containing the reference and associated meta-data.
Examples
Given the following STEP XML:
<STEP-ProductInformation ExportTime="2020-06-05 10:13:28" ContextID="FR" WorkspaceID="Main">
<AttributeList>
<Attribute ID="Quantity"><Validation BaseType="integer"/></Attribute>
<Attribute ID="Label"><Validation BaseType="text"/></Attribute>
</AttributeList>
<Products>
<Product UserTypeID="PROD_ARTICLE" ID="PRD1">
<ProductCrossReference Type="GlobalComponentReference" ProductID="PRD2">
<MetaData>
<Value AttributeID="Quantity">2</Value>
<Value AttributeID="Label" ContextID="FR">Label 1 FR</Value>
<Value AttributeID="Label" ContextID="EN">Label 1 EN</Value>
</MetaData>
</ProductCrossReference>
</Product>
</Products>
</STEP-ProductInformation>
The following YAML configuration will produce the following output :
- c4i:serializeContextReferenceToJSON(ProductCrossReference[@Type="GlobalComponentReference"][1]): globalReference
{
"globalReference": {
"target": "PRD2",
"metaData": {
"globalValues": {
"Quantity": 2
},
"contextValues": {
"EN": {
"Label": "Label 1 EN"
},
"FR": {
"Label": "Label 1 FR"
}
}
}
}
}
Please refer to the documentation of multiValuesToJSON
for more info on using the parameter values of this function.