Documentation

gitHub

Handling when converting to a Polyglot model

Before looking specifically at technical names, it’s important to understand what "convert to Polyglot" means in Hackolade Studio and how it differs from "derive from Polyglot".

 

Model convert function

The feature to convert takes any existing model (most commonly a physical model, but not a Polyglot model) and pushes its content to a Polyglot model. The user converts the currently open model into a Polyglot model.

 

For detailed information about this convert feature, consult this page.

 

Convert into a new or an existing Polyglot model

The user can also choose between:

  • creating a brand-new Polyglot model (simple convert), or
  • replacing an existing Polyglot model, with options to:
    • overwrite it completely, or
    • merge the converted content into the existing Polyglot model (convert and merge)

 

Dependency between the two models

During the convert operation, the user chooses between:

  • making models dependent: the generated Polyglot model becomes the source (the parent, the master), while the original model becomes a derived model, just as if it had been generated from the Polyglot through a normal derivation;
  • keeping models independent: the original model remains standalone and doesn't depend on the Polyglot.

 

Technical names

The user also chooses whether to copy the technical names of the original model into the Polyglot model, with the option Include technical names, unchecked by default.

 

Let's now explore what happens with technical names based on the chosen options. This page describes the process of creating a new Polyglot model, or overwriting an existing one, during a convert operation. For details about handling technical names during a Convert and Merge into an existing Polyglot, please consult this page.

 

Technical names in the generated Polyglot model

Whatever the options, two rules apply during conversion:

  • name coupling is not reproduced in the Polyglot model. Even when the business name and the technical name of an object are coupled in the original model, they are independent in the Polyglot. The naming rules of the target and those of the Polyglot are not the same, so the coupling could not be reused.
  • Polyglot naming conventions (even when active) are not automatically applied during conversion. You can always apply them afterwards to the whole model via the naming convention options.

 

With the option Include technical names unchecked, technical names from the source model are not transferred into the Polyglot model.

 

With the option Include technical names checked, the Polyglot model also receives the technical names of the original model, exactly as they are. An object without technical name in the original model has none in the Polyglot either. Models derived later from this Polyglot can then receive these technical names, whatever their target.

 

Understanding how names behave during convert

The diagrams below illustrate what happens to business names, technical names, and name coupling during a conversion to Polyglot, depending on whether the resulting models are kept independent or made dependent.

 

If the original model being converted contains technical names, they are preserved, after conversion, exactly as they were originally.

 

When the user chooses to keep both models dependent, these technical names are treated as target-level enrichments and remain local to the derived (original) model only. They do not become part of the Polyglot.

 

When models are kept independent

In this scenario, the Polyglot model is created as a standalone structure. The original model remains unchanged, with its technical names and its coupling, and continues to follow its own lifecycle.

 

We detail 3 common situations and what the Polyglot receives:

  • modeling object has a business name only --> only the business name is transferred to the Polyglot. The Polyglot contains no technical name, regardless of the options and of its naming conventions.
  • modeling object has both a business and a technical name, but uncoupled --> the business name appears in the Polyglot. With the option Include technical names unchecked, the technical name stays exclusively in the original model, still uncoupled. With the option Include technical names checked, it is copied into the Polyglot too, uncoupled.
  • modeling object has a business name and a coupled technical name generated from the business name --> the coupling remains active in the original model, but it is not reproduced in the Polyglot. The Polyglot receives the business name. With the option Include technical names checked, it also receives the technical name, as an independent value.

 

With the option Include technical names unchecked:

 

Convert to polyglot keep independent-unchecked

 

With the option Include technical names checked:
Convert to polyglot keep independent-checked

 

When models are made dependent and the original model becomes derived

If the user chooses to make the models dependent, the Polyglot becomes the source (the parent, the master), and the original model becomes a derived model.

 

We detail 3 common situations and how the original model behaves:

  • modeling object has a business name only --> after convert, its business name becomes derived from the Polyglot value.
  • modeling object has both a business and a technical name, but uncoupled --> after convert, its business name becomes derived from the Polyglot value. With the option Include technical names unchecked, it keeps its technical name in the derived model, as an enrichment, unrelated to the Polyglot model. With the option Include technical names checked, its technical name becomes derived from the Polyglot value too, without deviation: if you later change it in the Polyglot model, the next update of the derived model pulls the change.
  • modeling object has a business name and a coupled technical name, generated from the business name --> after convert, its business name becomes derived from the Polyglot value. Its technical name is regenerated according to the current target naming convention rules, since coupling still applies on the derived side, whether the option Include technical names is checked or not (see important note below).

 

With the option Include technical names unchecked:

 

Convert to polyglot keep dependent-unchecked

 

With the option Include technical names checked:
Convert to polyglot keep dependent-checked

 

Important note about name coupling

If some modeling objects in the original model have name coupling enabled (business-to-technical or technical-to-business):

  • the coupling state is preserved in the original model, and never copied into the Polyglot model.
  • the coupled value is regenerated based on the current naming-convention rules defined for the target. (If the naming rules have changed since the model was created, the regenerated technical name may differ from its previous value.)
  • in a dependent model, a coupled name takes its value from the other name of the same object, never from the Polyglot. It is therefore shown as a deviation, even when its value is identical to the Polyglot one.

 

If a particular modeling object should not regenerate its names, we recommend uncoupling its names before running the conversion. With the option Include technical names checked, this object then receives exactly the technical name copied into the Polyglot, without deviation.

 

Modeling objects whose names were not coupled keep their exact values without regeneration. This is usually the case after a reverse-engineering.

 

Making the Polyglot model the source-of-truth for technical names

To make the Polyglot model the master of the technical names of the original model, check the option Include technical names and make the models Dependent. For models derived later from this Polyglot, if naming conventions are enabled for their target, choose to keep the Polyglot parent's technical names during the derive operation, as explained in Choosing a naming strategy.

 

If the Polyglot model must instead define new technical names, for example to apply a new naming standard, clear the technical names of the original model before converting it, in bulk with this use case; otherwise, they stay in the derived model as enrichments, which Polyglot values never overwrite. Then convert with the option Include technical names unchecked and the models Dependent, create the technical names in the Polyglot model, and update the derived model to pull them.