JSONAttribute v2 Schema Upgrade Considerations

The upgraded attribute schema provides multiple performance and storage enhancements. For example, the new schema extracts values from the vlocity_cmt__JSONAttribute__c field into separate fields: Metadata components, default runtime values, and metadata changes.

This separation allows metadata to remain on the design-time object (the product) while runtime values and metadata changes are maintained on the runtime object (the XLIs), which results in smaller XLI payloads. The data shape of the XLI attribute fields is aligned with the API response, which results in fewer translation operations and better runtime performance.

For deployments prior to the Fall '18 release, you can run an upgrade process to update product attributes to the latest schema. However, any custom Apex code, configurations, and Omnistudio Data Mappers that depend on the vlocity_cmt__JSONAttribute__c field must be updated to use the new fields. The new schema is optional: the previous JSONAttribute field will continue to be supported and your existing processes can remain the same.

Warning
Warning

The migration is one-way only; the action is not reversible. Salesforce does not provide utilities to migrate back to the old schema model.

Custom implementations using the JSONAttributeSupport class must use the new v2 methods outlined in

The Asset Attribute Visualforce component on the Asset page is not supported by the v2 attribute model. If your org needs the Assets Attribute component, it cannot be upgraded to the v2 attribute model. The Card Assets Visualforce component will support this functionality for orgs using the v2 attribute model.

For customers who use Industries Order Management (IOM), add a custom setting to add IOM support for the schema upgrade: JSONAttribute v2 Support in Industries Order Management

The following table provides the newly added fields by object:

Object

Field

Description

Product2

AttributeMetadata__c

Stores productAttribute JSON without default values.

Product2

AttributeDefaultValues__c

Stores the default values for product attributes.

OpportunityLineItem

AttributeSelectedValues__c

Stores the attribute code and the value selected by the user.

OpportunityLineItem

AttributeMetadataChanges__c

Stores the attribute code and any metadata changes from the default product configuration.

OrderItem

AttributeSelectedValues__c

Stores the attribute code and the value selected by the user.

OrderItem

AttributeMetadataChanges__c

Stores the attribute code and any metadata changes from the default product configuration.

QuoteLineItem

AttributeSelectedValues__c

Stores the attribute code and the value selected by the user.

QuoteLineItem

AttributeMetadataChanges__c

Stores the attribute code and any metadata changes from the default product configuration.

Asset

AttributeSelectedValues__c

Stores the attribute code and the value selected by the user.

Asset

AttributeMetadataChanges__c

Stores the attribute code and any metadata changes from the default product configuration.

CompiledAttributeOverride__c

AttributeDefaultValues__c

Stores the attribute code and the value selected by the user.

CompiledAttributeOverride__c

AttributeMetadataChanges__c

Stores the attribute code and any metadata changes from the default product configuration.

EntityFilter__c with attribute set as the entity filter condition

AttributesMetadataFieldName__c

  • The value for OrderItem/OpportunityLineItem/QuoteLineItem is PriceBookEntry.Product2.{namespace}__AttributeMetadata__c.

  • The value for Product2 is {namespace}__AttributeMetadata__c.

EntityFilter__c with attribute set as the entity filter condition

AttributesValuesFieldName__c

  • The value for OrderItem/OpportunityLineItem/QuoteLineItem is {namespace}__AttributeSelectedValues__c.

  • The value for Product2 is {namespace}__AttributeDefaultValues__c.

API Considerations

Starting with the Winter '20 release, the Digital Commerce APIs support the JSONAttribute v2 schema.

Upgrading the Attribute Schema

The schema upgrade steps are listed in Upgrading the Attribute Schema.