Documentation

gitHub

Handling technical names during convert and merge to an existing Polyglot

When converting a model into an existing Polyglot with the merge strategy (and not overwrite), Hackolade Studio merges the converted content into a Polyglot model that may already contain technical names.

 

This page describes what happens to these technical names, and to those of the original model, depending on the option Include technical names. For a convert into a new Polyglot model, or an overwrite of an existing one, consult Handling when converting to a Polyglot model. The convert function itself, and all its options, are described in Convert a model to Polyglot. (LINK TO THE NEW PAGE)

 

Choosing whether to include technical names

If the physical model must keep its specific naming, and the Polyglot its own, leave the option Include technical names unchecked.

 

If the technical names of the physical model must become those of the Polyglot, check the option Include technical names. If some objects of the existing Polyglot have business-to-technical coupling, uncouple their names before the convert and merge; otherwise, the Polyglot naming conventions regenerate their technical names.

 

Technical names in the merged Polyglot model

Objects that exist only in the original model are created in the Polyglot, with their technical name if the option Include technical names is checked, and always without coupling.

 

Objects that exist only in the Polyglot are not changed.

 

Objects that exist in both the original and Polyglot models keep their Polyglot technical name when the option Include technical names is unchecked. When the option Include technical names is checked, they receive the technical name of the original model, which replaces the Polyglot one; if the original object has no technical name, they keep their Polyglot technical name.

 

Name coupling in the existing Polyglot is preserved, since coupling is never copied from the original model. After the merge, Hackolade Studio applies the Polyglot naming conventions again to the coupled objects of the Polyglot. On an object with business-to-technical coupling, the technical name is regenerated from the business name with the Polyglot rules. With the option Include technical names checked, the copied technical name is therefore replaced on these objects if the Polyglot rules produce a different value.

 

Technical names in the derived model

If the user chooses to make the models dependent, the original model becomes a derived model of the Polyglot.

 

With the option Include technical names unchecked, the objects of the derived model keep their own technical names. Where the Polyglot holds a different technical name, the one of the derived model is a deviation, which behaves like any other overridden property in a derived model.

 

With the option Include technical names checked, the Polyglot holds the technical names of the original model, and the derived model receives them from the Polyglot, without deviation. The exception is an object with business-to-technical coupling in the existing Polyglot: if the Polyglot rules regenerate a different technical name, the derived model keeps its original technical name, as a deviation.

 

Whether the option Include technical names is checked or not:

  • an object without technical name in the original model stays without technical name, even if the Polyglot holds one, and the empty value is a deviation. The original model may already have been derived from this Polyglot, so an empty technical name was probably emptied on purpose: the convert does not fill it without your knowledge.
  • an object whose names are coupled in the original model keeps its coupling. Its technical name is regenerated with the target naming conventions, and shown as a deviation, even when its value is identical to the Polyglot one: a coupled name takes its value from the other name of the same object, never from the Polyglot.

 

When the existing Polyglot has no technical names

Before the convert and merge, the original model holds technical names, and the existing Polyglot holds business names only:

 

Polyglot with no technical names

 

After the convert and merge, with the option Include technical names unchecked:

 

Polyglot with no technical names-unchecked

 

The Polyglot still holds business names only, since the original model brings no technical names. In the derived model, each object with an uncoupled technical name keeps it, as an enrichment: the Polyglot has no value to compare it with, so it is not a deviation. These technical names remain local to the derived model, and Polyglot values never overwrite them.

 

After the convert and merge, with the option Include technical names checked:

 

Polyglot with no technical names-checked

 

The technical names of the original model are copied into the Polyglot, which becomes their master. Objects with an uncoupled technical name receive it from the Polyglot, without deviation: if you later change a technical name in the Polyglot, the next update of the derived model pulls the change. Objects whose names are coupled in the derived model keep their coupling: their technical name is regenerated with the target naming conventions, and shown as a deviation.

 

When the existing Polyglot already has technical names

Before the convert and merge, both models hold technical names, sometimes different for the same object, and...

 

Polyglot names are not coupled

Polyglot with technical names-not coupled

 

With the option Include technical names unchecked, the Polyglot keeps all its technical names, and each object of the derived model keeps its own. Where the two values differ, the technical name of the derived model is a deviation, which behaves like any other overridden property in a derived model:

 

Polyglot with technical names-not coupled-unchecked

 

After the convert and merge, with the option Include technical names checked:

 

Polyglot with technical names-not coupled-checked

 

For each object:

  • an object that has a technical name in the original model: the Polyglot takes this technical name, replacing its own. The derived model receives it from the Polyglot, without deviation.
  • an object that has no technical name in the original model: the Polyglot keeps its own technical name. The derived model stays without technical name, as a deviation against the Polyglot value.

 

Polyglot names are coupled

In this scenario, the objects of the existing Polyglot have business-to-technical coupling.

 

After the convert and merge, with the option Include technical names unchecked:
Polyglot w technical names-coupled-unchecked

 

In the Polyglot, the technical names are regenerated from the business names with the Polyglot rules. In the derived model, each object with an uncoupled technical name keeps it, as a deviation where it differs from the regenerated Polyglot value.

 

After the convert and merge, with the option Include technical names checked:

 

Polyglot with technical names-coupled-checked

 

In the Polyglot, the copied technical names are replaced by the values that the Polyglot rules regenerate from the business names, when these values differ: on these objects, the Polyglot keeps its own naming policy. In the derived model, an object keeps its original technical name (even when empty), as a deviation, where it differs from the regenerated value. Where both values are the same, the technical name is derived from the Polyglot, without deviation.