Code Collective October 6th 2018

Code Collective meetups are held at NoD Coworking on Saturdays. Here’s the recap of links and discussion topics from the meetup on Oct 6th, 2018: Lime Scooter Shutdown Law / Cinderella Law Dallas…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




Entendiendo DataWeave de MuleSoft 4

En este articulo aprenderemos que es DataWeave como utilizarlo en el Anypoint Studio para realizar las transformaciones de datos que necesitemos en nuestro flujo.

¡Empecemos!

DataWeave es el lenguaje de programación utilizado por MuleSoft para hacer las transformaciones de datos pero también nos permite manejar las variables de nuestro flujo o hacer referencia a los datos contenidos en el payload desde cualquier parámetro de cualquier nodo que tenga la opción de (function “fx”) .

La manera en que el DataWeave representa el modelo de datos puede tener tres tipos: Objetos: Representado como una colección clave valor, Arrays: Representado como una secuencia de valores separados por comas y Literales simples

El archivo DataWeave contendrá dos partes. La cabecera donde se indica el formato del mensaje resultante y donde se pueden crear las variables y el cuerpo donde se realizara la transformación. Las dos partes estaran separadas por tres líneas. Ej:

Podemos tener los siguientes formatos de salida:

· application/json

· application/xml

· application/java

· text/plain

· application/csv

· application/xlsx

· application/octet-stream

· application/x-www-form-urlencoded

· application/dw (para testear las expresiones del DataWeave)

Al implementar el código podemos tener errores de sintaxis o de formato. Si modificamos el tipo del mensaje a application/dw y obtenemos una salida correcta el error será de formato.

Para comentarios seguiremos la sintaxis utilizada por Java. La doble barra “//” para comentar una línea y la barra y el asterisco “/* */” para múltiples líneas.

JSON-XML

Recordad que para saber como cargar el formato del mensaje en un Transform Message podéis leer el articulo Mapeando mensajes con MuleSoft.

Para poder hacer la transformación a XML tenemos que tener en cuenta que debemos proporcionar un tag padre por lo que el código quedaría de la siguiente manera

Para crear atributos lo haremos con el @(atrNombre: atrValor)

XML-JSON

El lenguaje DataWeave nos ofrece varias funciones para facilitar el mapeo, entre ellas la más utilizada es la función “map” que nos permite recorrer un array para mapear cada uno de sus items.

JSON-XML

XML-JSON

Para definir las variables utilizaremos la directiva “var” y dado que DataWeave es un lenguaje funcional podremos utilizar las variables como funciones

También podremos definir funciones con la directiva “fun”

Utilizando la palabra clave “using” podremos declarar variables locales

Podemos definir tipos de datos con la directiva “type”

type dateFormat = DateTime {format: “ddMMyyyy”}

type Coche = Object {class: “com.example.Coche”}

coche: payload.coche as Coche

Para funciones con dos parámetros podemos utilizar dos tipos de sintaxis

contains(payload, value)

payload contains value

Podemos pasar funciones lambda como parámetros. Si necesitamos utilizar alguna función que no este dentro del modulo “core” necesitaremos importar el modulo que contiene la función

import dw::util::Diff

DataWeave nos permite llamar a flujos, no a subflujos, mediante la palabra clave lookup

usuarios: lookup(“getUsuariosFlow”, {tipo: “admin”})

Si queréis profundizar en DataWeave leed el articulo

Visita la siguiente publicación para encontrar todos los artículos sobre MuleSoft

Add a comment

Related posts:

Midnight

It is the dread of unraveling the mysterious that demands caution, and the hazy sense of amorous fever that should be guarded from touching the material, from falling on earth. For whatever…

Our strongest strength is our biggest weakness

Character strengths are contagious, but there is also weakness found in our strengths. Too much of something can be a fault, yet so can having too little. With too much kindness I can be seen as what…

On History and Historians

History as a field of study is primarily a retelling in an another time & place of events, contexts, motivations of characters of a time long gone, from a perspective which is by definition alien to…