Table of Contents
Last updated: 2024-06-26

Consolidation concepts


This series of articles will describe another main feature of the ShareAspace core. This is the logic used by the ShareAspace consolidation engine for deciding if an incoming data should be created, modified or left unmodified.

The basic principle of the consolidation engine follows the following process:

  1. A first check is performed to know if the incoming data already exists in the storage (using the ShareAspace Model uniqueness rules)
  2. If the data doesn't already exist, new data will be created if possible, using creation context and consolidation settings or
  3. If the data already exists,
    • an evaluation of the difference between the incoming data and the existing one will be performed
    • then based on the creation context and consolidation settings, the decision for modifying or not the existing data will be evaluated

consolidation-engine-principles

ShareAspace has two consolidation engines, one for importing SoftTypes called the SoftType consolidator. And another one, for importing pure data according to the ShareAspace PLM model, called the Unit of Information consolidator.

Both consolidation setup engines are using the ShareAspace Uniqueness rules for matching differences against the data already in the store. The only difference is the way they react to the result of the differences for preparing the data before pushing it to the consolidation engine.

SoftType consolidation


The SoftType Consolidator works like if the data that is being pushed in the ShareAspace is considered as the new truth:

  • Everything that is not included in the data being pushed is terminated in ShareAspace (i.e. the end date effectivity controlled relationships will be set to the session date),
  • Everything that is updated in the data being pushed is recreated in ShareAspace , the actual value in ShareAspace store is terminated and a new value is created,
  • Everything that is new is the data being pushed is created in ShareAspace .
Note

The ShareAspace SoftType Consolidator can not be configured, no settings are available to an end user for changing the way incoming data is prepared against existing data in a ShareAspace storage.

Unit of Information consolidation


The Unit of Information Consolidator is based on settings that will indicate how the data being pushed is treated.

There are currently different categories of settings dealing with different aspects of the ShareAspace model:

For instance, Effectivity impact settings. These settings are ruling the way effectivity of incoming data is treated before the consolidation.

Note

The ShareAspace Classic Consolidator has settings. Those act on different aspects of the ShareAspace model.

Consolidation error messages


Summary of the different supported exceptions and their presentation:

Exception Summary Detailed
NotEnoughPermissionsToCreateSoftType Not enough permissions to create an instance ({_defaultPresentation}) of SoftType '{_definitionId}', restricted on AllowedRoles for {_roles}.
NotEnoughPermissionsToDeleteSoftType Not enough permissions to delete an instance ({_defaultPresentation}) of SoftType '{_definitionId}', restricted on AllowedRoles for {_roles}.
GloballyUniqueError Global uniqueness collision between ({createdPresentation}) and existing ({existingPresentation})
LocallyUniqueError Uniqueness collision in change set for instance {defaultPresentation} Uniqueness collision in change set between ({firstPresentation}) and ({secondPresentation}).
ModelEffectivityError Entry effectivity error in an instance of '{GetSoftTypeOrTypeId(uoi)}' for an entry ({entry.DefaultPresentation()}) Entry effectivity error in ({entry.DefaultPresentation()}) [start: {start}, end: {end}, role: {role}]
ModelEffectivityUniqueError Entry effectivity overlap in an instance of '{GetSoftTypeOrTypeId(uoi)}' for an entry ({entry.DefaultPresentation()}) Entry effectivity overlap between ({entryA.DefaultPresentation()}) [start: {startA}, end: {endA}, role: {role}] and ({entryB.DefaultPresentation()}) [start: {startB}, end: {endB}, role: {role}]
ModelError Expected: ({entry.DefaultPresentation()}).{attributeName} [{_lower}..{_upper}], Actual: {_actual}
ModelUniqueError Entry uniqueness collision between ({entryA.DefaultPresentation()}) and ({entryB.DefaultPresentation()})
NotEnoughPermissionsToAddParticipant Not enough permissions to add a Participant. Expected permission(s): '{_expectedPermission}'.
NotEnoughPermissionsToGrantExternalAccessValidationError Not enough permissions to grant '{_grantedRights}' to Participant '{_receiver}'. Expected permission(s): '{_expectedPermission}'.
SoftTypeRuleError ({defaultPresentation}) Rule: {softType.Id} {attributeName} [{rule.Lower} .. {rule.Upper}], Actual: {actual}
SoftTypePortRuleError ({defaultPresentation}) {errorMessage}