Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| develop:mule:dataweave [2024/02/25 13:06] – [DataWeave] mirocow | develop:mule:dataweave [2024/03/06 22:19] (текущий) – [Ссылки] mirocow | ||
|---|---|---|---|
| Строка 19: | Строка 19: | ||
| <note tip>IDE https:// | <note tip>IDE https:// | ||
| + | ===== Oprators ===== | ||
| + | |||
| + | * using: For initializing local variables in a DataWeave script. | ||
| + | * Unary DataWeave operators at this level: | ||
| + | * .^: Schema selector. | ||
| + | * .#: Namespace selector. | ||
| + | * ..: Descendants selector. | ||
| + | * not: Logical operator for negation. | ||
| + | * .@: All attribute selector, for example, in a case that uses the expression payload.root.a.@ to return the attributes and values of the input payload < | ||
| ==== Condition ==== | ==== Condition ==== | ||
| Строка 150: | Строка 159: | ||
| { | { | ||
| " | " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | === Логические операторы / Logical Operators === | ||
| + | |||
| + | * A > B Greater than | ||
| + | * A < B Less than | ||
| + | * A >= B Greater than or equal to | ||
| + | * A <= B Less than or equal to | ||
| + | * A == B Equal to | ||
| + | * A != B Not equal to | ||
| + | * A ~= B Similar to | ||
| + | * not A Logical negation | ||
| + | * !A Logical negation | ||
| + | * A and B Logical and | ||
| + | * A or B Logical or | ||
| + | * not Negates the result of the input. See also, !. | ||
| + | * ! Negates the result of the input. See also, not. Introduced in DataWeave 2.2.0. Supported by Mule 4.2 and later. | ||
| + | * and Returns true if the result of all inputs is true, false if not. | ||
| + | * or Returns true if the result of any input is true, false if not. | ||
| + | |||
| + | < | ||
| + | %dw 2.0 | ||
| + | output json | ||
| + | var age = 2 | ||
| + | --- | ||
| + | age < 10 | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | %dw 2.0 | ||
| + | var myArray = [1,2,3,4,5] | ||
| + | var myMap = myArray map not (($ mod 2) == 0) | ||
| + | output application/ | ||
| + | --- | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ], | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ], | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ], | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ] | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | %dw 2.0 | ||
| + | var orNot = if (1 + 1 == 4 or not 1 == 2) {" | ||
| + | else {" | ||
| + | var andNot = if (1 + 1 == 2 and not 1 == 2) {" | ||
| + | else {" | ||
| + | var notWithAndNot = if (not (1 + 1 == 2 and not 1 == 1)) {" | ||
| + | else {" | ||
| + | output application/ | ||
| + | --- | ||
| + | { " | ||
| + | [ | ||
| + | orNot, | ||
| + | andNot, | ||
| + | notWithAndNot | ||
| + | ] | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | === Types === | ||
| + | |||
| + | < | ||
| + | %dw 2.0 | ||
| + | output application/ | ||
| + | --- | ||
| + | { | ||
| + | /* | ||
| + | * A multi-line | ||
| + | * comment here. | ||
| + | */ | ||
| + | myString: "hello world", | ||
| + | myNumber: 123, | ||
| + | myFloatingPointNumber: | ||
| + | myVeryBigNumber: | ||
| + | myDate: |2018-12-07|, | ||
| + | myTime: |11:55:56|, | ||
| + | myDateTime: |2018-10-01T23: | ||
| + | myBoolean: true, | ||
| + | myArray: [ 1, 2, 3, 5, 8], | ||
| + | myMixedArray: | ||
| + | myObjectKeyValuePair: | ||
| + | myObjectWithConditionalField: | ||
| + | myNull: null, | ||
| + | myBinary: " | ||
| + | //A one-line comment here. | ||
| } | } | ||
| </ | </ | ||
| Строка 176: | Строка 288: | ||
| * **takeWhile** Selects elements from the array while the condition is met but stops the selection process when it reaches an element that fails to satisfy the condition. | * **takeWhile** Selects elements from the array while the condition is met but stops the selection process when it reaches an element that fails to satisfy the condition. | ||
| + | === divideBy === | ||
| + | |||
| + | < | ||
| + | %dw 2.0 | ||
| + | import divideBy from dw:: | ||
| + | output application/ | ||
| + | --- | ||
| + | { " | ||
| + | </ | ||
| + | === drop === | ||
| + | |||
| + | < | ||
| + | %dw 2.0 | ||
| + | import * from dw:: | ||
| + | var samplearray = [" | ||
| + | output application/ | ||
| + | --- | ||
| + | |||
| + | drop(samplearray, | ||
| + | </ | ||
| + | |||
| + | === indexOf === | ||
| + | |||
| + | < | ||
| + | %dw 2.0 | ||
| + | import * from dw:: | ||
| + | var samplearray = [" | ||
| + | output application/ | ||
| + | --- | ||
| + | |||
| + | indexOf(samplearray, | ||
| + | </ | ||
| + | |||
| + | === join === | ||
| + | |||
| + | < | ||
| + | %dw 2.0 | ||
| + | import * from dw:: | ||
| + | |||
| + | var items = [{id: " | ||
| + | |||
| + | var Prices = [{Id: " | ||
| + | |||
| + | output application/ | ||
| + | --- | ||
| + | join(items, Prices, (item) -> item.id, (price) -> price.Id) | ||
| + | |||
| + | </ | ||
| + | === takeWhile === | ||
| + | |||
| + | |||
| + | < | ||
| + | %dw 2.0 | ||
| + | import * from dw:: | ||
| + | output application/ | ||
| + | var arr = [1, | ||
| + | --- | ||
| + | |||
| + | arr takeWhile $ <= 2 | ||
| + | |||
| + | </ | ||
| + | |||
| + | < | ||
| + | %dw 2.0 | ||
| + | import * from dw:: | ||
| + | output application/ | ||
| + | var obj = { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | --- | ||
| + | obj takeWhile ((value, key) -> value < 3) | ||
| + | </ | ||
| ==== dw::Core ==== | ==== dw::Core ==== | ||
| Строка 189: | Строка 376: | ||
| --- | --- | ||
| payload distinctBy $.id | payload distinctBy $.id | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | %dw 2.0 | ||
| + | output application/ | ||
| + | var str = [1, | ||
| + | var str1= [4,5,6,7,1] | ||
| + | --- | ||
| + | (str ++ str1) distinctBy ((item, index) ->item ) | ||
| </ | </ | ||
| Строка 456: | Строка 652: | ||
| </ | </ | ||
| + | < | ||
| + | %dw 2.0 | ||
| + | output application/ | ||
| + | --- | ||
| + | payload filterObject ((value, key) -> | ||
| + | (key as String != "first name" | ||
| + | and (key as String != "last name") | ||
| + | ) | ||
| + | </ | ||
| === flatten === | === flatten === | ||
| Строка 574: | Строка 779: | ||
| </ | </ | ||
| + | < | ||
| + | %dw 2.0 | ||
| + | output application/ | ||
| + | fun process(obj: | ||
| + | (key): key match { | ||
| + | case " | ||
| + | else -> value | ||
| + | } | ||
| + | }) | ||
| + | --- | ||
| + | payload map ((item, index) -> | ||
| + | process(item) | ||
| + | ) | ||
| + | </ | ||
| === mapObject === | === mapObject === | ||
| Строка 727: | Строка 946: | ||
| So result will be 9 | So result will be 9 | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | %dw 2.0 | ||
| + | output application/ | ||
| + | |||
| + | var data = {" | ||
| + | --- | ||
| + | data..value reduce $ | ||
| </ | </ | ||
| Строка 884: | Строка 1112: | ||
| * **valueSet** Returns an array of the values from key-value pairs in an object. | * **valueSet** Returns an array of the values from key-value pairs in an object. | ||
| + | === everyEntry === | ||
| + | |||
| + | < | ||
| + | %dw 2.0 | ||
| + | import everyEntry from dw:: | ||
| + | output application/ | ||
| + | --- | ||
| + | { | ||
| + | a: {} everyEntry (value, key) -> value is String, | ||
| + | b: {a: "", | ||
| + | c: {a: "", | ||
| + | d: {a: "", | ||
| + | e: {a: "" | ||
| + | f: null everyEntry ((value, key) -> key as String == " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | === mergeWith === | ||
| + | |||
| + | < | ||
| + | %dw 2.0 | ||
| + | import mergeWith from dw:: | ||
| + | output application/ | ||
| + | --- | ||
| + | { " | ||
| + | </ | ||
| + | |||
| + | === someEntry === | ||
| + | |||
| + | < | ||
| + | %dw 2.0 | ||
| + | import someEntry from dw:: | ||
| + | output application/ | ||
| + | --- | ||
| + | { | ||
| + | a: {} someEntry (value, key) -> value is String, | ||
| + | b: {a: "", | ||
| + | c: {a: "", | ||
| + | d: {a: "", | ||
| + | e: {a: "" | ||
| + | f: null someEntry (value, key) -> key as String == " | ||
| + | } | ||
| + | </ | ||
| ==== dw:: | ==== dw:: | ||
| Строка 1020: | Строка 1291: | ||
| * https:// | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||