MuleSoft DataWeave

Transformation von Daten

DataWeave ist eine Sprache welche die Anforderung einer flexiblen Datenintegration erfüllt. DataWeave erlaubt die Abfrage und Transformation von Daten und sorgt so für eine effiziente Anwendugsintegration. Der Prozess der Konvertierung von Daten oder Informationen in ein Zielformat wird als Datentransformation bezeichnet. Heutige Unternehmensinfrastrukturen nutzen selten die gleichen Datenformate. Transformation von Datenstrukturen ist eines der wichtigsten Themen für die Integration von Enterprise Applikationen. Unterstützt werden die gängigen Datenformate wie JSON, XML, Java, CSV, Excel, Cobol Copybook und Flat Files.

DataWeave 1.0

Das DataWeave-Skript besteht aus einem Header und einem Body und wird durch --- getrennt.

DataWeave Header

Der Header erlaubt die folgenden Elemente in separaten Zeilen, denen jeweils ein '%' vorangestellt ist.

Element Beschreibung Beispiel

%dw

DataWeave Version

%dw 1.0

%output

Ausgabe-Format als MIME type

%output application/json

%input

Input-Format als MIME type

%input application/xml

%namespace

XML Namespaces

%namespace soap http://www.w3.org/2003/05/soap-envelope

%var

Konstanten können im nachfolgenden Header oder im Script-Body verwendet werden. Die Referenzausdrücke der DataWeave Expression Language werden unterstützt.

%var user = {"firstname": "John", "lastname": "Doe", "user_id" : "jdoe"}

%function

Funktion - DataWeave Expression Language wird unterstützt.

%function fullname(user) (user.firstname ' ' user.lastname)

%type

Benutzerdefinierter Datentyp

%type order = :object {class: "com.dataliquid.domain.User"}

DataWeave Body

Der DataWeave Body beschreibt die Transformationslogik und definiert die Ausgabestruktur. Die Anwendungsbereiche sind sehr vielfältig und reichen von einfachen Mappings bis hin zu komplexen Transformationsregeln. Unterstützung von Datentypen und umfangreiche Funktionen (Zusammenführung, Aggregation, Anreicherung, Filterung) erleichtern die Umsetzung von fachlich komplexen Transformationsregeln.

Input

{
  "fname": "John",
  "name": "Doe",
  "id" : "jdoe"
}

DataWeave-Skript

%dw 1.0
%output application/json
---
{
  uid : payload.id,
  firstname : payload.fname,
  lastname : payload.name
}

Output

{
  "uid": "jdoe",
  "firstname": "John",
  "lastname": "Doe"
}

Zusammenfassung

In diesem Artikel wurden Grundlagen von DataWeave vorgestellt. Neben dem recht einfachem Datenmapping ist DataWeave in der Lage sehr komplexe Transformationen durchzuführen. Als wichtiger Bestandteil des Mule ESB vereinfacht DataWeave die Datenintegration stark.

Nach oben