Revert to old value

Feature

With this feature, you can re-set an old value for a field in the history tab and audit trail detail tab.

images/download/attachments/304547484/image2020-11-25_20-57-37.png

In general, the revert button is shown for all enabled fields if the field is editable, is not a password field and not a field belonging to a logical key, and the user has write access for the field.

The write access includes checks for

  • action rights: The user needs action rights for all entities up to the root entity

  • field rights

  • qualified field rights

  • object rights

Customizing

It is possible to exclude single fields or whole entities from this functionality using the attribute "Supports History Reset" in the repository.

images/download/attachments/304547484/image2020-11-25_21-2-16.png

In order for the button to be shown, the field and all its parent entities need to support the feature. This means if one of the parent entities' attribute is set to false the "Revert" button will not be shown. So there is no need to set the attribute on all individual fields, you can just define it on the entity and all fields of the entity will be excluded.

Limitations

For certain fields, we deactivated this feature. In some cases, an entity might be read-only like the StructureGroupMap of items, products or variants; in others, the complexity and dependency to other fields are too high like the characteristic model. There are several different reasons.

The revert won't work out of the box for fields of type MIMEValue. So if you add custom fields, please deactivate "Supports History Reset" in the repository.

In case you change either "Supports Audit Trail" or "Supports History Reset", be aware that the revert of a value might not work out of the box and you might have to contribute and implement something yourself. The RevertCommand has several command operators that can be contributed.

The following fields don't support this feature:

  • ArticlePricePurchase (whole entity)

  • ArticlePriceValuePurchase (whole entity)

  • ArticlePriceSales (whole entity)

  • ArticlePriceValueSales (whole entity)

  • ArticleStructureMap.StructureGroup

  • ArticleStructureGroupMap (whole entity)

  • ArticleAttribute.JoinedAttributeCount

  • ArticleAttribute.DomainValue

  • ArticleAttribute.Mapping

  • ArticleMediaAssetMap (whole entity)

  • ArticleMediaAssetDocument (whole entity)

  • ArticleMediaAssetLang (whole entity)

  • VariantPricePurchase (whole entity)

  • VariantPriceValuePurchase (whole entity)

  • VariantPriceSales (whole entity)

  • VariantPriceValueSales (whole entity)

  • VariantStructureMap.StructureGroup

  • VariantStructureGroupMap (whole entity)

  • VariantAttribute.JoinedAttributeCount

  • VariantAttribute.DomainValue

  • VariantAttribute.Mapping

  • VariantMediaAssetMap (whole entity)

  • VariantMediaAssetDocument (whole entity)

  • VariantMediaAssetLang (whole entity)

  • Product2GPricePurchase (whole entity)

  • Product2GPriceValuePurchase (whole entity)

  • Product2GPriceSales (whole entity)

  • Product2GPriceValueSales (whole entity)

  • Product2GStructureMap.StructureGroup

  • Product2GStructureGroupMap (whole entity)

  • Product2GAttribute.JoinedAttributeCount

  • Product2GAttribute.DomainValue

  • Product2GAttribute.Mapping

  • Product2GMediaAssetMap (whole entity)

  • Product2GMediaAssetDocument (whole entity)

  • Product2GMediaAssetLang (whole entity)

  • Characteristic (whole entity)

  • LookupValue.MIMEValue

  • LookupValueLang.MIMEValue