(888) 685-3101 ext. 2

1. Objects (dw::core::Objects)
DataWeave 2.0 Object related functions are: divideBy, entrySet, mergeWith, nameSet & valueSet.

  • divideBy:
  • Divides object into sub-objects with properties.

    dwl script:
    {a: 1, b: true, a:2, b:false} divideBy 2
    Output:

    [
       {
         "a": 123,
         "b": true
       },
       {
         "a": 123,
         "b": false
       }
     ]
  • entrySet:
  • Returns list of key-value pair objects.

    dwl script:
    Objects::entrySet({a: true, b: 1})
    Output:

    [
     {
       key: "a",
       value: true,
       attributes: null
     },
     {
       key: "b",
       value: 1,
       attributes: null
     }
    ]
  • mergeWith:
  • Keeps the target object as constant, then appends to that with the source key-value pairs.

    dwl script:
    {a: false, b: 2} mergeWith {a: true, c: "Hello"}
    Output:
    {"a": true, "b": 2 , "c": "Hello"}

  • nameSet:
  • Returns list of key names from an object.

    dwl script:
    Objects::nameSet({a: true, b: 1})
    Output:
    ["a", "b"]

  • valueSet:
  • Returns list of key values of an object.

    dwl script:
    Objects::valueSet({a: true, b: 1})
    Output:
    [true,1]

2. Runtime (dw::Runtime)

Runtime related functions are fail, failif & wait ….. These should be imported into DataWeave code by adding import dw::Runtime at header.

  • fail:
  • Throws an exception with specified message.

    dwl script:
    %dw 2.0
    import dw::Runtime
    ---
    Runtime::fail("Timeout Error")

    Output:
    Timeout Error

  • failif:
  • Returns an exception with the specified message if defined expression evaluates true. If not, returns the value.

    dwl script:
    %dw 2.0
    import failIf from dw::Runtime
    output application/json
    ---
    { "a" : "b" } failIf ("b" is String)

    Output:
    Failed

  • wait:
  • Stops execution for specified timeout.

    dwl script:
    %dw 2.0
    import * from dw::Runtime
    output application/json
    ---
    {user: 1} wait 2000

    Output:
    {
    "user": 1
    }

3. Strings (dw::core::Strings)

String related functions are camelize, capitalize, dasherize, pluralize & underscore … etc.

  • camelize:
  • a: camelize("murali_thuraka") will gives : "a" : "muraliThuraka"

  • capitalize:
  • a: capitalize("murali_thuraka") will gives : "a" : "MuraliThuraka"

  • dasherize:
  • a: dasherize("Murali Thuraka") will gives : "a" : "Murali-Thuraka"

  • pluralize:
  • a: pluralize("box") will gives : "a" : "boxes"

  • underscore:
  • a: underscore("Murali Thuraka") will gives : "a" : "Murali_Thuraka"

4. System (dw::System)

System related functions are: envVar & envVars.

  • envVar:
  • Returns an environment variable with specified name.

    dwl script:
    %dw 2.0
    import dw::System
    output application/json
    ---
    System::envVar("SYS_PSWD")

  • envVars:
  • Returns all environment variables defined in the hosted system.

    dwl script:
    %dw 2.0
    import dw::System
    output application/json
    ---
    System::envVars().SYS_PSWD

5. URL (dw::core::URL)

URL related functions are: compose, decodeURI & parseURI ….etc

  • compose:
  • It is used to replace URL components by encodeURIcomponent result of it.

    dwl script:
    %dw 2.0
    import * from dw::core::URL
    output application/json
    ---
    { 'composition': compose `encoding http://asd/$(' Welcome to Mule - 4 ')/text now` }

    Output:
    {
    "composition": "encoding http://asd/%20Welcome%20to%20Mule - 4%20/text now"
    }

  • decodeURI:
  • It decodes a Uniform Resource Identifier (URI) means that Replaces each escape sequence in the encoded URI with the character that it represents.

    dwl script:
    %dw 2.0
    import * from dw::core::URL
    output application/json
    ---
    {
    a: decodeURI('http://asd/%20text%20to%20decode%20/text')
    }

    Output:
    {
    "a": "http://asd/ text to decode /text"
    }

  • parseURI:
  • Parses an URL and returns an URI object.

    dwl script:
    %dw 2.0
    import * from dw::core::URL
    output application/json
    ---
    {
    'composition': parseURI('https://en.wikipedia.org/wiki/Uniform_Resource_Identifier#footer')
    }

    Output:

    {
      "composition": {
        "isValid": true,
        "raw": "https://en.wikipedia.org/wiki/Uniform_Resource_Identifier#footer",
        "host": "en.wikipedia.org",
        "authority": "en.wikipedia.org",
        "fragment": "footer",
        "path": "/wiki/Uniform_Resource_Identifier",
        "scheme": "https",
        "isAbsolute": true,
        "isOpaque": false
      }
    }

For Mule 4 DataWeave Functions: Part 1 refer to below links:
https://www.xtivia.com/mule-4-dataweave-functions/
Or
https://dzone.com/articles/mule-4-dataweave-functions-part-1

Share This