Nav

Introduction to Mule 4: DataWeave 2.0

DataWeave 2 is largely unchanged from DataWeave 1. However, MuleSoft made many improvements to make it easier to learn and added new capabilities.

Operators Are Functions

In DataWeave 2, all operators are now functions. While this can involve more parentheses, it is less ambiguous and more friendly to learn through auto-completion features. The previous syntax continues to work for functions with two parameters, providing a shorter syntax for power users.

DataWeave 1

sizeOf payload filter $.age > 30

DataWeave 2 - Function Syntax

sizeOf(filter(payload, (value) → value.age > 30)))

DataWeave 2 - Shortcut Syntax

sizeOf(payload filter $.age > 30)

Traits Are Functions

DataWeave 1

payload is :empty

DataWeave 2

isEmpty(payload)

Type Names

DataWeave 2 uses a type name syntax, which removes the : from the name.

DataWeave 1

payload.foo as :string

DataWeave 2

payload.foo as String

New Capabilities

There are also many new capabilities, including: * Typing for reusable functions * Multi-line comments * Ability to call out to Java code * Multipart, URL-encoded, and text readers and writers * Modules and imports * and more