Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

  • Legen Sie einen Datensatz in Datenbankfelder (Mapping) an, um ein Mappingprofil zu definieren

Feld

Beschreibung

NameDer Name der Map
TypDie Tabelle, aus der Daten gemapped werden sollen

Es kann notwendig sein, für unterschiedliche Http-Request-Methoden unterschiedliche Mapping-Profile zu verwenden. Bspw. möchte man beim Auslesen einer Datensatzliste den Inhalt von 10 bestimmten Feldern zurückgeben, für das Schreiben eines Datensatzes aber nur 5 dieser Felder erlauben. Durch die Definition zweier unterschiedlicher Mapping-Profile für die Request-Typen GET und DELETE lässt sich dies konfigurieren.

...

Im Feld Datenbankfeld der Tabelle Datenbankfelder (Mapping) lassen sich standardmäßig alle Felder aller Tabellen (außer Versionstabellen) mappen. Um eigene Datenquellen zu ergänzen, steht ein Event zur Verfügung:

Event-KlasseBeschreibung
Brandbox\EtlMap\Input\MapOriginSelect\Lib\Event\OnPopulateEnumerationElements
Wird beim Laden des Auswahlfelds "Datenbankfeld" ausgelöst und enthält alle Einträge für das Auswahlfeld

Da sich solche Datenquellen nicht immer als Property einer Tabelle abbilden lassen, steht ein Event zur Verfügung, um den gemappten Wert für eine gewählte Datenquelle zu ermitteln:

Event-KlasseBeschreibung
\Brandbox\EtlMap\Etl\Map\Lib\Event\OnPopulateMapValue

Wird beim Ermitteln des zu mappenden Werts ausgelöst. Der Standard Subscriber liefert den Inhalt eines Properties eines Datensatzes zurück

\Brandbox\Framework\Brandbox\Dbal\Definition\EntityInterface $entity: enthält das zu mappende Entity
bool $hasTranslationValue: gibt an, ob der zu mappende Wert übersetzbar ist
bool $isTranslation: gibt an, ob gerade ein Übersetzungswert aus dem Knoten (translations) gemappt wird
\Brandbox\EtlMap\Etl\Map\Lib\Entity\EtlMapProperty$property: enthält den Mapping-Datensatz vom Typ Datenbankfelder (Mapping)
mixed $value: enthält den gemappt Ergebniswert

Über ein weiteres Event kann validiert werden, ob ein Map-Datensatz gültig ist:

Event-KlasseBeschreibung
\Brandbox\EtlMap\Etl\Map\Lib\Event\OnPopulateIsMapPropertyValid

Wird beim Validieren des zu mappenden Werts ausgelöst. Der Standard Subscriber prüft, ob die gewählte Spalte in der Tabelle verfügbar ist

array $columnIdentifiers: enthält alle Spalten-Identifikatoren der Tabelle
bool $isValid: gibt an, ob die Property (noch) verfügbar ist. Dieser Wert muss vom Subscriber ermittelt werden
\Brandbox\EtlMap\Etl\Map\Lib\Entity\EtlMapProfile $profile: enthält das Mappingprofil
\Brandbox\EtlMap\Etl\Map\Lib\Entity\EtlMapProperty $property: enthält den Mapping-Datensatz vom Typ Datenbankfelder (Mapping)

Transformationen und Callbacks

...

Durch diese Transformation können Fremdschlüssel direkt anhand eines vordefinierten Mechanismus in einem für Menschen lesbaren Format dargestellt werden. Dabei wird der Fremdschlüssel so aufgelöst, dass die für den Ziel-Datensatz als Identifikatoren definierten Felder für die Darstellung des Werts verwendet werden.
Bei der Verwendung dieser Transformation ist kein weiteres Mapping notwendig.

EventBeschreibung

Brandbox\EtlCore\InputEtl\Abstract\Lib\Event\OnPopulateHumanReadable

Ermittelt das Entity, anhand dessen Widget der HumanReadable-Wert gebildet wird.
Brandbox\EtlCore\InputEtl\Abstract\Lib\Event\OnPopulateHumanReadableValueErmittelt den HumanReadable-Wert. Kann für Datenstrukturen verwendet werden, die nicht auf dem Widget eines Entity basieren.

Array Strukturen verflachen (FirstValueFromSubArray)

...