<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://178.140.10.58:8080/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://178.140.10.58:8080/feed.php">
        <title>Библиотека знаний - develop:mule</title>
        <description>Заметки IT программиста</description>
        <link>http://178.140.10.58:8080/</link>
        <image rdf:resource="http://178.140.10.58:8080/lib/exe/fetch.php?media=wiki:dokuwiki.svg" />
       <dc:date>2026-04-17T10:36:41+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=develop:mule:dataweave"/>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=develop:mule:extensions"/>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=develop:mule:plugins"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://178.140.10.58:8080/lib/exe/fetch.php?media=wiki:dokuwiki.svg">
        <title>Библиотека знаний</title>
        <link>http://178.140.10.58:8080/</link>
        <url>http://178.140.10.58:8080/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=develop:mule:dataweave">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-06T22:19:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>DataWeave</title>
        <link>http://178.140.10.58:8080/doku.php?id=develop:mule:dataweave</link>
        <description>&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:language&amp;amp;do=showtag&amp;amp;tag=language&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:language&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; language&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:languages&amp;amp;do=showtag&amp;amp;tag=languages&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:languages&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; languages&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:datawiave&amp;amp;do=showtag&amp;amp;tag=datawiave&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:datawiave&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; datawiave&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:mule&amp;amp;do=showtag&amp;amp;tag=mule&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:mule&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; mule&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;h2 class=&quot;sectionedit1&quot; id=&quot;dataweave&quot;&gt;DataWeave&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code dw&quot;&gt;%dw 2.0
input payload json
output application/java
---
payload&lt;/pre&gt;
&lt;pre class=&quot;code dataweave&quot;&gt;%dw 2.0
output application/dw
---
payload&lt;/pre&gt;
&lt;div class=&quot;plugin_note notetip&quot;&gt;IDE &lt;a href=&quot;https://dataweave.mulesoft.com/learn/playground&quot; class=&quot;urlextern&quot; title=&quot;https://dataweave.mulesoft.com/learn/playground&quot; rel=&quot;ugc nofollow&quot;&gt;https://dataweave.mulesoft.com/learn/playground&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DataWeave&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dataweave&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;44-285&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;oprators&quot;&gt;Oprators&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 using: For initializing local variables in a DataWeave script.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Unary DataWeave operators at this level:
&lt;/div&gt;&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 .^: Schema selector.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 .#: Namespace selector.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 ..: Descendants selector. 
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 not: Logical operator for negation.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 .@: 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 &amp;lt;root&amp;gt; &amp;lt;a attr1=&amp;quot;foo&amp;quot; attr2=&amp;quot;bar&amp;quot; /&amp;gt;&amp;lt;/root&amp;gt; within the array of objects { &amp;quot;attr1&amp;quot;: &amp;quot;foo&amp;quot;, &amp;quot;attr2&amp;quot;: &amp;quot;bar&amp;quot; }.                                                                                                                                                                                                                                              
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Oprators&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;oprators&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;286-1053&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;condition&quot;&gt;Condition&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
{
    &amp;quot;result&amp;quot;: if (vars.myVar == null) &amp;quot;myVar is null&amp;quot; else &amp;quot;myVar has a value set&amp;quot;
}&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
var myVar = { country : &amp;quot;India&amp;quot; }
output application/json
---
if (myVar.country == &amp;quot;UAE&amp;quot;)
  { currency: &amp;quot;EUR&amp;quot; }
else { currency: &amp;quot;RUPEES&amp;quot; }&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
var user = {&amp;quot;firstName&amp;quot;: &amp;quot;Manik&amp;quot;, &amp;quot;lastName&amp;quot;: &amp;quot;Magar&amp;quot;, &amp;quot;Address Line1&amp;quot; : &amp;quot;Address line 1&amp;quot;}
---
name : user mapObject {
	(&amp;#039;$$&amp;#039; : &amp;#039;$&amp;#039;) when ($ contains &amp;#039;Ma&amp;#039;)
}&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
var aRecord =
 [
    &amp;quot;bookId&amp;quot;:&amp;quot;101&amp;quot;,
    &amp;quot;title&amp;quot;:&amp;quot;world history&amp;quot;,
    &amp;quot;price&amp;quot;:&amp;quot;19.99&amp;quot;
 ]
output application/xml
---
{ examples:
    {
       ex1 : if (1 + 1 == 55) true
             else false,
       ex2 : if ([1,2,3,4][1] == 1) 1
             else &amp;quot;value of index 1 is not 1&amp;quot;,
       ex3 : if (isEmpty(aRecord.bookId)) &amp;quot;ID is empty&amp;quot;
         else &amp;quot;ID is not empty&amp;quot;,
       ex4 : aRecord.bookId map (idValue) -&amp;amp;gt;
         if (idValue as Number == 101) idValue as Number
         else &amp;quot;not 101&amp;quot;
    }
}&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
var user = {&amp;quot;firstName&amp;quot;: &amp;quot;Manik&amp;quot;, &amp;quot;lastName&amp;quot;: &amp;quot;Magar&amp;quot;, &amp;quot;Address Line1&amp;quot; : &amp;quot;Address line 1&amp;quot;}
---
name : user filter ($ contains &amp;quot;Ma&amp;quot;)&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Condition&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;condition&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1054-2292&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;filters&quot;&gt;Filters&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Filters&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;filters&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;2293-2316&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;functions&quot;&gt;Functions&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Named functions
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Lambdas
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Passing functions to other functions
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Calling 2-arity functions with infix notation
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 $, $$, $$$ syntax
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Functions&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;functions&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;2317-2483&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit6&quot; id=&quot;лямда_функции_functions_as_values&quot;&gt;Лямда функции / Functions as Values&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Полезность лямбд становится очевидной, когда мы объединяем две идеи:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Лямбды — это значения, такие же, как строки, объекты и логические значения.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Значения могут передаваться функциям в качестве аргументов, а также возвращаться из функций.
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;
В DataWeave функции и лямбды (анонимные функции) могут передаваться как значения или присваиваться переменным. 
&lt;/p&gt;

&lt;p&gt;
DataWeave предоставляет несколько способов создания функций. Точно так же, как у нас есть именованные функции, у нас есть функции без имен, называемые лямбда-выражениями. Лямбда — это значение в DataWeave, такое же, как строка, объект и логическое значение. При использовании лямбда-выражений в теле файла DataWeave в сочетании с такой функцией, как карта, его атрибутам можно либо дать явное имя, либо оставить анонимным, и в этом случае на них можно ссылаться как $, $$ и т. д.
&lt;/p&gt;
&lt;div class=&quot;plugin_note notetip&quot;&gt;Другими словами, лямбды становятся полезными, когда вы хотите передать функции в качестве аргументов другим функциям или вернуть функцию из функции.
&lt;/div&gt;&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output json

fun isOddNum(n) =
  (n mod 2) == 1

// Generate [1, 2, ..., 5]
var numbers = (1 to 5)
---
filter(numbers, (n, idx) -&amp;gt; isOddNum(n))&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output json

var numbers = (1 to 5)
---
filter(numbers, (n, idx) -&amp;gt; (n mod 2) == 1)&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output json
---
(() -&amp;gt; 2 + 3)()&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
var toUser = (user) -&amp;gt; {
  firstName: user.field1,
  lastName: user.field2
}
---
{
  &amp;quot;user&amp;quot; : toUser(payload)
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041b\u044f\u043c\u0434\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \/ Functions as Values&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043b\u044f\u043c\u0434\u0430_\u0444\u0443\u043d\u043a\u0446\u0438\u0438_functions_as_values&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;2484-4808&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit7&quot; id=&quot;логические_операторы_logical_operators&quot;&gt;Логические операторы / Logical Operators&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 A &amp;gt; B	Greater than
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 A &amp;lt; B	Less than
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 A &amp;gt;= B	Greater than or equal to
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 A ⇐ B	Less than or equal to
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 A == B	Equal to
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 A != B	Not equal to
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 A ~= B	Similar to
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 not A	Logical negation
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 !A	Logical negation
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 A and B	Logical and
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 A or B	Logical or
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 not	Negates the result of the input. See also, !.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 !	Negates the result of the input. See also, not. Introduced in DataWeave 2.2.0. Supported by Mule 4.2 and later.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 and	Returns true if the result of all inputs is true, false if not.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 or	Returns true if the result of any input is true, false if not.
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output json
var age = 2
---
age &amp;lt; 10&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
var myArray = [1,2,3,4,5]
var myMap = myArray map not (($ mod 2) == 0)
output application/json
---
{
  &amp;quot;not&amp;quot; : [
    &amp;quot;notTrue&amp;quot; : not true,
    &amp;quot;notFalse&amp;quot; : not false,
    &amp;quot;myMapWithNot&amp;quot; : myMap
  ],
  &amp;quot;and&amp;quot; : [
    &amp;quot;andTrueFalse&amp;quot; : true and false,
    &amp;quot;andIsTrue&amp;quot; : (1 + 1 == 2) and (2 + 2 == 4),
    &amp;quot;andIsFalse&amp;quot; : (1 + 1 == 2) and (2 + 2 == 2)
  ],
  &amp;quot;or&amp;quot; : [
    &amp;quot;orTrueFalse&amp;quot; : true or false,
    &amp;quot;orIsTrue&amp;quot; : (1 + 1 == 2) or (2 + 2 == 2),
    &amp;quot;orIsFalse&amp;quot; : (1 + 1 == 1) or (2 + 2 == 2)
  ],
  &amp;quot;!-vs-not&amp;quot; : [
      &amp;quot;example-!&amp;quot; : (! true or true),
      &amp;quot;example-not&amp;quot; : (not true or true)
  ]
}&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
var orNot = if (1 + 1 == 4 or not 1 == 2) {&amp;quot;answer&amp;quot;: &amp;quot;orNot - Condition met&amp;quot;}
             else {&amp;quot;answer&amp;quot;: &amp;quot;nope&amp;quot;}
var andNot = if (1 + 1 == 2 and not 1 == 2) {&amp;quot;answer&amp;quot;: &amp;quot;andNot - Condition met&amp;quot;}
             else {&amp;quot;answer&amp;quot;: &amp;quot;nope&amp;quot;}
var notWithAndNot = if (not (1 + 1 == 2 and not 1 == 1)) {&amp;quot;answer&amp;quot;: &amp;quot;notWithAndNot - Condition met&amp;quot;}
              else {&amp;quot;answer&amp;quot;: &amp;quot;nope&amp;quot;}
output application/json
---
{ &amp;quot;answers&amp;quot; :
  [
    orNot,
    andNot,
    notWithAndNot
  ]
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \/ Logical Operators&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435_\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b_logical_operators&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:11,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;4809-6639&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit8&quot; id=&quot;types&quot;&gt;Types&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
{
  /*
   * A multi-line
   * comment here.
   */
  myString: &amp;quot;hello world&amp;quot;,
  myNumber: 123,
  myFloatingPointNumber: 123.456,
  myVeryBigNumber: 12341234134123412341234123,
  myDate: |2018-12-07|,
  myTime: |11:55:56|,
  myDateTime: |2018-10-01T23:57:59-03:00|,
  myBoolean: true,
  myArray: [ 1, 2, 3, 5, 8],
  myMixedArray: [ 1, 2, &amp;quot;blah&amp;quot;, { hello: &amp;quot;there&amp;quot; } ],
  myObjectKeyValuePair: { innerKey: &amp;quot;innerValue&amp;quot; },
  myObjectWithConditionalField: { a : { b : 1, ( c : 2 ) if true, (d : 4) if false } },
  myNull: null,
  myBinary: &amp;quot;abcd1234123&amp;quot; as Binary
  //A one-line comment here.
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Types&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;types&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:14,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;6640-7294&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;dw&quot;&gt;dw::*&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;dw::*&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dw&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:15,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;7295-7313&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;dwcorearrays_working_with_array&quot;&gt;dw::core::Arrays / Working with Array&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;countBy&lt;/strong&gt;	Counts the elements in an array that return true when the matching function is applied to the value of each element.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;divideBy&lt;/strong&gt;	Breaks up an array into sub-arrays that contain the specified number of elements.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;drop&lt;/strong&gt;	Drops the first n elements. It returns the original array when n ⇐ 0 and an empty array when n &amp;gt; sizeOf(array).
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;dropWhile&lt;/strong&gt;	Drops 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.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;every&lt;/strong&gt;	Returns true if every element in the array matches the condition.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;firstWith&lt;/strong&gt;	Returns the first element that satisfies the condition, or returns null if no element meets the condition.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;indexOf&lt;/strong&gt;	Returns the index of the first occurrence of an element within the array. If the value is not found, the function returns -1.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;indexWhere&lt;/strong&gt;	Returns the index of the first occurrence of an element that matches a condition within the array. If no element matches the condition, the function returns -1.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;join&lt;/strong&gt;	Joins two arrays of objects by a given ID criteria.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;leftJoin&lt;/strong&gt;	Joins two arrays of objects by a given ID criteria.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;outerJoin&lt;/strong&gt;	Joins two array of objects by a given ID criteria.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;partition&lt;/strong&gt;	Separates the array into the elements that satisfy the condition from those that do not.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;slice&lt;/strong&gt;	Selects the interval of elements that satisfy the condition: from ⇐ indexOf(array) &amp;lt; until
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;some&lt;/strong&gt;	Returns true if at least one element in the array matches the specified condition.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;splitAt&lt;/strong&gt;	Splits an array into two at a given position.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;splitWhere&lt;/strong&gt;	Splits an array into two at the first position where the condition is met.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;sumBy&lt;/strong&gt;	Returns the sum of the values of the elements in an array.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;take&lt;/strong&gt;	Selects the first n elements. It returns an empty array when n ⇐ 0 and the original array when n &amp;gt; sizeOf(array).
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;takeWhile&lt;/strong&gt;	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.
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;dw::core::Arrays \/ Working with Array&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dwcorearrays_working_with_array&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:15,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;7314-9461&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit11&quot; id=&quot;divideby&quot;&gt;divideBy&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
import divideBy from dw::core::Objects
output application/json
---
{ &amp;quot;a&amp;quot;: 1, &amp;quot;b&amp;quot;: true, &amp;quot;a&amp;quot;: 2, &amp;quot;b&amp;quot;: false, &amp;quot;c&amp;quot;: 3 } divideBy 2 &lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;divideBy&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;divideby&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:15,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;9462-9631&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit12&quot; id=&quot;drop&quot;&gt;drop&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
import * from dw::core::Arrays
var samplearray = [&amp;quot;124&amp;quot;, &amp;quot;35454&amp;quot;, &amp;quot;Sachin&amp;quot;,&amp;quot;Amit&amp;quot;]
output application/json
---
 
drop(samplearray, 2)&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;drop&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;drop&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:16,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;9632-9803&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit13&quot; id=&quot;indexof&quot;&gt;indexOf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
import * from dw::core::Arrays
var samplearray = [&amp;quot;124&amp;quot;, &amp;quot;35454&amp;quot;, &amp;quot;Sachin&amp;quot;,&amp;quot;Amit&amp;quot;]
output application/json
---
 
indexOf(samplearray, &amp;quot;Sachin&amp;quot;)&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;indexOf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;indexof&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:17,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;9804-9988&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit14&quot; id=&quot;join&quot;&gt;join&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
import * from dw::core::Arrays
 
var items = [{id: &amp;quot;12&amp;quot;, name:&amp;quot;Tea&amp;quot;},{id: &amp;quot;22&amp;quot;, name:&amp;quot;Salt&amp;quot;},{id: &amp;quot;3&amp;quot;, name:&amp;quot;Soap&amp;quot;},{id: &amp;quot;5&amp;quot;, name:&amp;quot;Butter&amp;quot;}]
 
var Prices = [{Id: &amp;quot;12&amp;quot;, price:123},{Id: &amp;quot;3&amp;quot;, price:24}, {Id: &amp;quot;22&amp;quot;, price:20}, {Id: &amp;quot;4&amp;quot;, price:456}]
 
output application/json
---
join(items, Prices, (item) -&amp;gt; item.id, (price) -&amp;gt; price.Id)
&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;join&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;join&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:18,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;9989-10361&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit15&quot; id=&quot;takewhile&quot;&gt;takeWhile&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
import * from dw::core::Arrays
output application/json
var arr = [1,2,3,4,1,2]
---
 
arr takeWhile $ &amp;amp;lt;= 2
&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
import * from dw::core::Objects
output application/json
var obj = {
  &amp;quot;a&amp;quot;: 1,
  &amp;quot;b&amp;quot;: 2,
  &amp;quot;c&amp;quot;: 5,
  &amp;quot;d&amp;quot;: 1
}
---
obj takeWhile ((value, key) -&amp;gt;  value &amp;lt; 3)&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;takeWhile&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;takewhile&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:19,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;10362-10694&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit16&quot; id=&quot;dwcore&quot;&gt;dw::Core&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;dw::Core&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dwcore&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:21,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;10695-10714&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit17&quot; id=&quot;distinctby&quot;&gt;distinctBy&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполняет итерацию по массиву и возвращает уникальные элементы в нем. DataWeave использует результат применения предоставленной лямбды в качестве критерия уникальности. Эта версия DifferentBy находит уникальные значения в массиве. Другие версии действуют на объект и обрабатывают нулевое значение.
&lt;/p&gt;

&lt;p&gt;
Эта функция полезна, когда вам нужно удалить повторяющиеся элементы из массива
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output json
---
payload distinctBy $.id&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
var str = [1,2,3,4,5,6,7]
var str1= [4,5,6,7,1]
---
(str ++ str1) distinctBy ((item, index) -&amp;gt;item )&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;distinctBy&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;distinctby&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:21,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;10715-11630&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit18&quot; id=&quot;filter_arrays&quot;&gt;Filter Arrays&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
{
    id: payload.Id,
    markCode: payload.marketCode,
    languageCode: payload.languageCode,
    username: payload.profile.base.username,
    phoneNumber: (payload.profile.base.phone filter ($.activeInd == &amp;quot;Y&amp;quot; and $.primaryInd== &amp;quot;Y&amp;quot;)).number default []
}&lt;/pre&gt;

&lt;p&gt;
Infix Notation: Long-Hand
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[ ] filter (value, index) -&amp;gt; (condition)  &lt;/pre&gt;

&lt;p&gt;
Infix Notation: $ syntax 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[ ] filter (&amp;lt;condition using $, $$&amp;gt;) &lt;/pre&gt;

&lt;p&gt;
Prefix Notation
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;filter([ ], (value, index) -&amp;gt; (condition))&lt;/pre&gt;

&lt;p&gt;
Filter Expression
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[ ]  [? (&amp;lt;boolean_expression&amp;gt;) ]&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
[&amp;quot;AAPL&amp;quot;, &amp;quot;MSFT&amp;quot;, &amp;quot;NVDA&amp;quot;, &amp;quot;TSLA&amp;quot;, &amp;quot;CRM&amp;quot;, &amp;quot;GOOG&amp;quot;, &amp;quot;GOOGL&amp;quot;]
filter 
(value) -&amp;gt; (value contains &amp;quot;GO&amp;quot;)&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
[&amp;quot;AAPL&amp;quot;, &amp;quot;MSFT&amp;quot;, &amp;quot;NVDA&amp;quot;, &amp;quot;TSLA&amp;quot;, &amp;quot;CRM&amp;quot;, &amp;quot;GOOG&amp;quot;, &amp;quot;GOOGL&amp;quot;]
filter
(value, index) -&amp;gt; ((index mod 2) == 0)&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
[&amp;quot;AAPL&amp;quot;, &amp;quot;MSFT&amp;quot;, &amp;quot;NVDA&amp;quot;, &amp;quot;TSLA&amp;quot;, &amp;quot;CRM&amp;quot;, &amp;quot;GOOG&amp;quot;, &amp;quot;GOOGL&amp;quot;, &amp;quot;V&amp;quot;, &amp;quot;COST&amp;quot;] filter ($endsWith(&amp;quot;A&amp;quot;))&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
payload
filter
(value, index) -&amp;gt; ((value.cik_str mod 2) == 1) and
(index &amp;gt; 5) and
(value.ticker startsWith  (&amp;quot;T&amp;quot;))&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
[&amp;quot;AAPL&amp;quot;, &amp;quot;MSFT&amp;quot;, &amp;quot;NVDA&amp;quot;, &amp;quot;TSLA&amp;quot;, &amp;quot;CRM&amp;quot;, &amp;quot;GOOG&amp;quot;, &amp;quot;GOOGL&amp;quot;, &amp;quot;V&amp;quot;, &amp;quot;COST&amp;quot;] [?( $ contains &amp;quot;GO&amp;quot; )]&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Filter Arrays&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;filter_arrays&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:23,&amp;quot;secid&amp;quot;:18,&amp;quot;range&amp;quot;:&amp;quot;11631-13034&amp;quot;} --&gt;
&lt;h5 class=&quot;sectionedit19&quot; id=&quot;инфиксная_запись_infix_notation&quot;&gt;Инфиксная запись / Infix Notation&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Когда вы пишете арифметическое выражение, такое как B * C, форма выражения предоставляет вам информацию, позволяющую правильно его интерпретировать. В этом случае мы знаем, что переменная B умножается на переменную C, поскольку между ними в выражении появляется оператор умножения *. Этот тип записи называется инфиксным , поскольку оператор находится между двумя операндами, над которыми он работает.
&lt;/p&gt;

&lt;p&gt;
До сих пор мы вызывали фильтр, используя префиксную запись. При использовании префиксной записи имя функции помещается перед аргументами. Если функция принимает два аргумента, как это делает фильтр, DataWeave позволяет вызывать ее с инфиксной записью.
&lt;/p&gt;
&lt;div class=&quot;plugin_note notetip&quot;&gt;Обратите внимание на дополнительные круглые скобки вокруг первой лямбды. Круглые скобки вокруг лямбда-выражений помогают DataWeave определить, где начинается и заканчивается лямбда-выражение.
&lt;/div&gt;&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output json

var numbers = (1 to 5)
---
numbers filter ((n, idx) -&amp;gt; (n mod 2) == 1)&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output json

var numbers = (1 to 5)
---
numbers
  filter ((n, idx) -&amp;gt; (n mod 2) == 1)
  filter ((n, idx) -&amp;gt; (n &amp;gt; 3))&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output json
---
[ ] filter (value, index) -&amp;gt; (condition)&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output json
---
[ ] filter (&amp;lt;condition using $, $$&amp;gt;) &lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0418\u043d\u0444\u0438\u043a\u0441\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \/ Infix Notation&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u043d\u0444\u0438\u043a\u0441\u043d\u0430\u044f_\u0437\u0430\u043f\u0438\u0441\u044c_infix_notation&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:33,&amp;quot;secid&amp;quot;:19,&amp;quot;range&amp;quot;:&amp;quot;13035-15054&amp;quot;} --&gt;
&lt;h5 class=&quot;sectionedit20&quot; id=&quot;prefix_notation&quot;&gt;Prefix Notation&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output json
---
filter([ ], (value, index) -&amp;gt; (condition))&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Prefix Notation&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;prefix_notation&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:37,&amp;quot;secid&amp;quot;:20,&amp;quot;range&amp;quot;:&amp;quot;15055-15160&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit21&quot; id=&quot;filterobject&quot;&gt;filterObject&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Оператор  filterObject перебирает список пар ключ-значение в объекте и применяет выражение, которое возвращает только соответствующие объекты, отфильтровывая остальные из выходных данных. Выражение должно возвращать значение  true или  false. Если выражение возвращает  true ключ, значение или индекс объекта, объект фиксируется в выходных данных. Если он возвращает  false какой-либо из них, объект отфильтровывается из вывода. Если совпадений нет, выходной массив будет пустым.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://178.140.10.58:8080/lib/exe/detail.php?id=develop%3Amule%3Adataweave&amp;amp;media=develop:f5f675_07446b0d77c8425e81b40ce33ebe0ec6_mv2.webp&quot; class=&quot;media&quot; title=&quot;develop:f5f675_07446b0d77c8425e81b40ce33ebe0ec6_mv2.webp&quot;&gt;&lt;img src=&quot;http://178.140.10.58:8080/lib/exe/fetch.php?media=develop:f5f675_07446b0d77c8425e81b40ce33ebe0ec6_mv2.webp&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Infix Notation: Long-Hand
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{ } filterObject (value,  key, index) -&amp;gt; (condition)&lt;/pre&gt;

&lt;p&gt;
Infix Notation: $ syntax 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{ } filterObject (condition with $, $$ , $$$ syntax) &lt;/pre&gt;

&lt;p&gt;
Prefix Notation 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;filterObject({ }, (value, index) -&amp;gt; (condition))&lt;/pre&gt;

&lt;p&gt;
Filter Expression 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;{ } [? (&amp;lt;boolean_expression&amp;gt;) ]&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output json
---
payload filterObject (value, key, index) -&amp;gt; key == &amp;quot;age&amp;quot;&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output json
---
payload filterObject (value, key, index) -&amp;gt; key~=&amp;quot;age&amp;quot;&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
var myObject = {
    str1 : &amp;quot;String 1&amp;quot;,
    str2 : &amp;quot;String 2&amp;quot;,
    str3 : null,
    str4 : &amp;quot;String 4&amp;quot;,
}
---
myObject filterObject $ != null&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
payload
filterObject
(value, key, index) -&amp;gt; ((value.ticker contains &amp;quot;GO&amp;quot;))&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;Filter object by key 

%dw 2.0
output application/json
---
payload
filterObject
(value, key, index) -&amp;gt; (((key as Number) mod 2) == 0)&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;Filter object by index

%dw 2.0
output application/json
---
payload
filterObject
(value, key, index) -&amp;gt; (((index) mod 2) == 0)&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;Filter object by value with $ syntax 

%dw 2.0
output application/json
---
payload
filterObject
$ is Object&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
payload
filterObject
$ is Array&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;Filter object by key with $$ syntax 

%dw 2.0
output application/json
---
payload
filterObject
((($$ as Number) mod 2) == 0)&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;Filter object by index with $$$ syntax 

%dw 2.0
output application/json
---
payload
filterObject
(($$$ mod 2) == 0)&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;Filter object using the filter expression selector

%dw 2.0
output application/json

---
payload [?( $.ticker contains &amp;quot;GO&amp;quot; )]&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json  
---
payload filterObject ((value, key) -&amp;gt; 
    (key as String != &amp;quot;first name&amp;quot;) 
    and (key as String != &amp;quot;last name&amp;quot;)
)&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;filterObject&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;filterobject&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:38,&amp;quot;secid&amp;quot;:21,&amp;quot;range&amp;quot;:&amp;quot;15161-18037&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit22&quot; id=&quot;flatten&quot;&gt;flatten&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Для перемещения элементов из подмассивов в родительский массив, удаления подмассивов и преобразования всех пар ключ-значение в список объектов в родительском массиве. С помощью функции Flatten несколько массивов объединяются в один массив.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;items&lt;/strong&gt;	The input array of arrays made up of any supported types.
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
flatten(payload)&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
var array1 = [1,2,3]
var array2 = [4,5,6]
var array3 = [7,8,9]
var arrayOfArrays = [array1, array2, array3]
---
flatten(arrayOfArrays)&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;flatten&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;flatten&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:54,&amp;quot;secid&amp;quot;:22,&amp;quot;range&amp;quot;:&amp;quot;18038-18817&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit23&quot; id=&quot;groupby&quot;&gt;groupBy&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Функция groupBy принимает список объектов [x1,…,xn] и некоторую функцию f. Затем она отображает f в списке, давая список объектов [f(x1),…,f(xn)], и использует эти значения для выполнения операции groupBy. Эта функция полезна для группировки элементов массива на основе некоторого значения, которое генерируется из каждого элемента массива.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output json
---
payload groupBy (n, idx) -&amp;gt; isEven(n)&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output json
---
payload groupBy (n, idx) -&amp;gt; n.dayOfWeek&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
var user = {&amp;quot;firstName&amp;quot;: &amp;quot;Manik&amp;quot;, &amp;quot;lastName&amp;quot;: &amp;quot;Magar&amp;quot;, &amp;quot;Address Line1&amp;quot; : &amp;quot;Address line 1&amp;quot;}
---
user groupBy ((value, key) -&amp;gt; if (key contains &amp;#039;Name&amp;#039;) &amp;quot;Names&amp;quot; else &amp;quot;Address&amp;quot;)&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;groupBy&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;groupby&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:56,&amp;quot;secid&amp;quot;:23,&amp;quot;range&amp;quot;:&amp;quot;18818-19810&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit24&quot; id=&quot;map&quot;&gt;map&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Функция карты используется для преобразования данных, содержащихся в массиве. Это делается путем перебора элементов массива и применения преобразования к каждому элементу. Результат преобразования собирается вместе и выводится в виде массива преобразованных элементов.
&lt;/p&gt;

&lt;p&gt;
Перебирает элементы массива и выводит результаты в новый массив.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
{
    &amp;quot;candidatedetails&amp;quot;: payload.employee map((item,index) -&amp;gt; {
        &amp;quot;fname&amp;quot;:item.FirstName ++ &amp;quot; &amp;quot; ++ item.LastName
    })
}&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output json
---
payload map (n, idx) -&amp;gt; n + 1&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output json
---
payload.items.*name map (
    (item, index) -&amp;gt; {name: item}
)&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;
%dw 2.0
var myVar = [
  { bookId: 101,
    title: &amp;quot;world history&amp;quot;,
    price: &amp;quot;19.99&amp;quot;
  },
  {
    bookId: 202,
    title: &amp;#039;the great outdoors&amp;#039;,
    price: &amp;quot;15.99&amp;quot;
  }
]
var myVar2 = [
  {
    bookId: 101,
    author: &amp;quot;john doe&amp;quot;
  },
  {
    bookId: 202,
    author: &amp;quot;jane doe&amp;quot;
  }
]
output application/json
---
myVar map (item, index) -&amp;gt; using (id = item.bookId) {
	&amp;quot;id&amp;quot; : id,
	&amp;quot;topic&amp;quot; : item.title,
	&amp;quot;cost&amp;quot; : item.price as Number,
	(myVar2 filter ($.*bookId contains id) map (item) -&amp;gt; {
		author : item.author
	})
}&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/java
fun process(obj: Object) = obj mapObject ((value, key) -&amp;gt; {
    (key): key match {
        case &amp;quot;description&amp;quot; -&amp;gt; vars.descriptionValue
        else -&amp;gt; value
    }
})
---
payload map ((item, index) -&amp;gt; 
    process(item)
)&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;map&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;map&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:59,&amp;quot;secid&amp;quot;:24,&amp;quot;range&amp;quot;:&amp;quot;19811-21603&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit25&quot; id=&quot;mapobject&quot;&gt;mapObject&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Функция  mapObject используется для преобразования данных, содержащихся в объекте. Это делается путем перебора каждой пары ключ/значение в объекте и применения преобразования к каждому ключу и значению. Он принимает объект и лямбду, которая принимает 3 параметра: значение, ключ и индекс, и возвращает новый объект. Наконец, вся функция возвращает объект.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
{&amp;quot;a&amp;quot;:&amp;quot;b&amp;quot;,&amp;quot;c&amp;quot;:&amp;quot;d&amp;quot;} mapObject (value,key,index) -&amp;gt; { (index) : { (value):key} }&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output json
---
payload mapObject (value, key, index) -&amp;gt; {
  (upper(key)): value
}&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
var user = {&amp;quot;firstName&amp;quot;: &amp;quot;Manik&amp;quot;, &amp;quot;lastName&amp;quot;: &amp;quot;Magar&amp;quot;, &amp;quot;addressLine1&amp;quot; : &amp;quot;Address line 1&amp;quot;}
var userList = [{&amp;quot;firstName&amp;quot;: &amp;quot;Manik&amp;quot;, &amp;quot;lastName&amp;quot;: &amp;quot;Magar&amp;quot;, &amp;quot;addressLine1&amp;quot; : &amp;quot;Address line 1&amp;quot;},
	{&amp;quot;firstName&amp;quot;: &amp;quot;Om&amp;quot;, &amp;quot;lastName&amp;quot;: &amp;quot;Magar&amp;quot;, &amp;quot;addressLine1&amp;quot; : &amp;quot;Address line 2&amp;quot;}
]
---
{
	mapObject: user mapObject (value:String, key:Key, index:Number) -&amp;gt; { 
		&amp;#039;$key-$index&amp;#039;: value
	},

	pluck: user pluck (value, key, index) -&amp;gt; (key ++ &amp;#039;-&amp;#039; ++ index ++ &amp;#039;-&amp;#039; ++ value),    

	filter: user filterObject ((value, key, index) -&amp;gt; (index &amp;lt; 1)), 
	filter2: userList filter ((value, index) -&amp;gt; (index &amp;lt; 1)), 

	groupBy1 : user groupBy (value, key) -&amp;gt; key endsWith &amp;#039;Name&amp;#039;,    
	groupBy2 : userList groupBy ((value, index) -&amp;gt; value.lastName)   

}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;mapObject&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;mapobject&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:64,&amp;quot;secid&amp;quot;:25,&amp;quot;range&amp;quot;:&amp;quot;21604-23269&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit26&quot; id=&quot;pluck&quot;&gt;pluck&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
это функция, используемая для преобразования свойств и значений этих свойств объекта в массив свойств, массив значений и массив индексов этих свойств. Эту функцию можно использовать, если вам нужно преобразовать объект в массив.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output json
---
payload pluck (v,k,idx) -&amp;gt; {(k): v}&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
var requestBody= 
{
    &amp;quot;name&amp;quot;:&amp;quot;Jack&amp;quot;,
    &amp;quot;name&amp;quot;:&amp;quot;James&amp;quot;,
    &amp;quot;name&amp;quot;:&amp;quot;Joseph&amp;quot;
}
---
{
    value: requestBody pluck $,
    keys: requestBody pluck $$,
    indexes: requestBody pluck $$$
}&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
var requestBody= 
{
    &amp;quot;car&amp;quot;: 
    {
        &amp;quot;Make&amp;amp;Model&amp;quot;: &amp;quot;Maruti Suzuki Swift&amp;quot;,
        &amp;quot;MakeYear&amp;quot;: 2017,
        &amp;quot;Color&amp;quot;: &amp;quot;Red&amp;quot;,
        &amp;quot;Type&amp;quot;: &amp;quot;Hatchback&amp;quot;,
    },
    &amp;quot;car&amp;quot;: 
    {
        &amp;quot;Make&amp;amp;Model&amp;quot;: &amp;quot;Maruti WagonR&amp;quot;,
        &amp;quot;MakeYear&amp;quot;: 2018,
        &amp;quot;Color&amp;quot;: &amp;quot;Brown&amp;quot;,
        &amp;quot;Type&amp;quot;: &amp;quot;Hatchback&amp;quot;,
    },
    &amp;quot;car&amp;quot;: 
    {
        &amp;quot;Make&amp;amp;Model&amp;quot;: &amp;quot;Honda City&amp;quot;,
        &amp;quot;MakeYear&amp;quot;: 2017,
        &amp;quot;Color&amp;quot;: &amp;quot;Red&amp;quot;,
        &amp;quot;Type&amp;quot;: &amp;quot;Sedan&amp;quot;,
    },
    &amp;quot;car&amp;quot;: 
    {
        &amp;quot;Make&amp;amp;Model&amp;quot;: &amp;quot;Ford Figo&amp;quot;,
        &amp;quot;MakeYear&amp;quot;: 2017,
        &amp;quot;Color&amp;quot;: &amp;quot;Black&amp;quot;,
        &amp;quot;Type&amp;quot;: &amp;quot;Hatchback&amp;quot;,
    }
}
---
car:requestBody pluck $ filter $.Color == &amp;quot;Red&amp;quot;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;pluck&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;pluck&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:67,&amp;quot;secid&amp;quot;:26,&amp;quot;range&amp;quot;:&amp;quot;23270-24709&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit27&quot; id=&quot;reduce&quot;&gt;reduce&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Функция уменьшения используется для выполнения любых вычислений во время итерации массива, поэтому результат вычислений не теряется во время итерации. Для каждого элемента входного массива по порядку сокращение применяет лямбда-выражение (функцию) сокращения, а затем заменяет аккумулятор новым результатом. Лямбда-выражение может использовать как текущий элемент входного массива, так и текущее значение аккумулятора.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output json
---
payload reduce (n, total) -&amp;gt; total + n&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
[2, 3] reduce ($ + $$)

Here

    [2,3] – is the input array
    acc -&amp;gt; $$ will take the 1st item value = 2 (as acc is not initialized)
    $ will take the 2nd item value = 3 (as acc is not initialized)
    Loop count = no of item in array minus 1 (as acc is not initialized) = 2 – 1 = 1
        Acc = ($=3 + $$=2) = 5

So result will be 5&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
[2,3] reduce ((item, acc = 4) -&amp;gt; acc + item)

Here

    [2,3] – is the input array
    acc will take the initialized value = 4
    item will take 1st item value = 2 (as acc is initialized)
    Loop count = no of item in array (as acc is initialized) = 2
        Acc = acc + item -&amp;gt; 4 + 2 -&amp;gt; 6
        Acc = acc + item -&amp;gt; 6 + 3 -&amp;gt; 9

So result will be 9&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json

var data = {&amp;quot;xyz&amp;quot;: {&amp;quot;abc&amp;quot;:[&amp;quot;account&amp;quot;:[{&amp;quot;value&amp;quot;:&amp;quot;savings&amp;quot;}]]}}
---
data..value reduce $&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;reduce&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;reduce&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:70,&amp;quot;secid&amp;quot;:27,&amp;quot;range&amp;quot;:&amp;quot;24710-26522&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit28&quot; id=&quot;read&quot;&gt;read&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;stringToParse&lt;/strong&gt;	The string or binary to read.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;contentType&lt;/strong&gt;	A supported format (or content type). Default: application/dw.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;readerProperties&lt;/strong&gt;	Optional: Sets reader configuration properties. For other formats and reader configuration properties, see Supported Data Formats.
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
var inputData=
&amp;quot;name,age,salary
Joseph,34,3000
James,32,5000&amp;quot;
---
read(inputData,&amp;quot;application/csv&amp;quot;)&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
var myVar = &amp;quot;Some, Body&amp;quot;
output application/json
---
read(myVar,&amp;quot;application/csv&amp;quot;,{header:false})[0]&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/xml
---
read(&amp;#039;{ &amp;quot;hello&amp;quot; : &amp;quot;world&amp;quot; }&amp;#039;,&amp;#039;application/json&amp;#039;)&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;read&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;read&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:74,&amp;quot;secid&amp;quot;:28,&amp;quot;range&amp;quot;:&amp;quot;26523-27201&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit29&quot; id=&quot;readurl&quot;&gt;readUrl&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;url&lt;/strong&gt;	The &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt; string to read. It also accepts a classpath-based &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;. for example: classpath:\/\/myfolder/myFile.txt where myFolder is located under src/main/resources in a Mule project. Other than the &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;, readURL accepts the same arguments as read.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;contentType&lt;/strong&gt;	A supported format (or MIME type). Default: application/dw.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;readerProperties&lt;/strong&gt;	Optional: Sets reader configuration properties. For other formats and reader configuration properties, see Supported Data Formats.
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
readUrl(&amp;quot;classpath://employee.json&amp;quot;,&amp;quot;application/json&amp;quot;)&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
var myJsonSnippet = readUrl(&amp;quot;classpath://myJsonSnippet.json&amp;quot;, &amp;quot;application/json&amp;quot;)
output application/csv
---
(myJsonSnippet.results map(item) -&amp;gt; item.profile)&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
readUrl(&amp;quot;https://jsonplaceholder.typicode.com/users/5&amp;quot;,&amp;quot;application/json&amp;quot;)&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
var inputData=readUrl(&amp;quot;https://jsonplaceholder.typicode.com/users/5&amp;quot;,&amp;quot;application/json&amp;quot;)
---
{
    name: inputData.name,
    username: inputData.username,
    email: inputData.email
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;readUrl&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;readurl&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:77,&amp;quot;secid&amp;quot;:29,&amp;quot;range&amp;quot;:&amp;quot;27202-28360&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit30&quot; id=&quot;splitby&quot;&gt;splitBy&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Разбивает строку на массив строк на основе входного значения или соответствует части этой входной строки. Он отфильтровывает соответствующую часть из возвращаемого массива. Строка или регулярное выражение Java, используемое для разделения строки. Если какая-то часть строки не соответствует, функция вернет исходную неразбитую строку в массиве.
&lt;/p&gt;

&lt;p&gt;
Эта версия splitBy принимает регулярное выражение Java (регулярное выражение), соответствующее входной строке. Регулярное выражение может соответствовать любому символу во входной строке. Обратите внимание, что splitBy выполняет противоположную операцию joinBy.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;text&lt;/strong&gt;	The input string to split.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;regex&lt;/strong&gt;	A Java regular expression used to split the string. If it does not match some part of the string, the function will return the original, unsplit string in the array.
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
{ &amp;quot;splitters&amp;quot; : {
   &amp;quot;split1&amp;quot; : &amp;quot;a-b-c&amp;quot; splitBy(/^*.b./),
   &amp;quot;split2&amp;quot; : &amp;quot;hello world&amp;quot; splitBy(/\s/),
   &amp;quot;split3&amp;quot; : &amp;quot;no match&amp;quot; splitBy(/^s/),
   &amp;quot;split4&amp;quot; : &amp;quot;no match&amp;quot; splitBy(/^n../),
   &amp;quot;split5&amp;quot; : &amp;quot;a1b2c3d4A1B2C3D&amp;quot; splitBy(/^*[0-9A-Z]/)
  }
}&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
{ &amp;quot;splitters&amp;quot; : {
    &amp;quot;split1&amp;quot; : &amp;quot;a-b-c&amp;quot; splitBy(&amp;quot;-&amp;quot;),
    &amp;quot;split2&amp;quot; : &amp;quot;hello world&amp;quot; splitBy(&amp;quot;&amp;quot;),
    &amp;quot;split3&amp;quot; : &amp;quot;first,middle,last&amp;quot; splitBy(&amp;quot;,&amp;quot;),
    &amp;quot;split4&amp;quot; : &amp;quot;no split&amp;quot; splitBy(&amp;quot;NO&amp;quot;)
   }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;splitBy&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;splitby&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:81,&amp;quot;secid&amp;quot;:30,&amp;quot;range&amp;quot;:&amp;quot;28361-30239&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit31&quot; id=&quot;valuesof&quot;&gt;valuesOf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
valuesOf(payload.responses) filter ($.fieldname ~= &amp;quot;verifyemail&amp;quot;)&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/java
---
payload splitBy(&amp;quot; &amp;quot;)&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/java
---
payload splitBy(/s/)&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
&amp;quot;192.88.99.0/24&amp;quot; splitBy(/[.\/]/)&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
&amp;quot;192.88.99.0&amp;quot; splitBy(&amp;quot;.&amp;quot;)&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;valuesOf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;valuesof&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:83,&amp;quot;secid&amp;quot;:31,&amp;quot;range&amp;quot;:&amp;quot;30240-30685&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit32&quot; id=&quot;working_with_objects_dwcoreobjects&quot;&gt;Working with Objects / dw::core::Objects&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;divideBy&lt;/strong&gt;	Breaks up an object into sub-objects that contain the specified number of key-value pairs.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;entrySet&lt;/strong&gt;	Returns an array of key-value pairs that describe the key, value, and any attributes in the input object.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;everyEntry&lt;/strong&gt;	Returns true if every entry in the object matches the condition.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;keySet&lt;/strong&gt;	Returns an array of key names from an object.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;mergeWith&lt;/strong&gt;	Appends any key-value pairs from a source object to a target object.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;nameSet&lt;/strong&gt;	Returns an array of keys from an object.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;someEntry&lt;/strong&gt;	Returns true if at least one entry in the object matches the specified condition.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;takeWhile&lt;/strong&gt;	Selects key-value pairs from the object while the condition is met.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;valueSet&lt;/strong&gt;	Returns an array of the values from key-value pairs in an object.
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Working with Objects \/ dw::core::Objects&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;working_with_objects_dwcoreobjects&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:88,&amp;quot;secid&amp;quot;:32,&amp;quot;range&amp;quot;:&amp;quot;30686-31527&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit33&quot; id=&quot;everyentry&quot;&gt;everyEntry&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
import everyEntry from dw::core::Objects
output application/json
---
{
    a: {} everyEntry (value, key) -&amp;gt; value is String,
    b: {a: &amp;quot;&amp;quot;, b: &amp;quot;123&amp;quot;} everyEntry (value, key) -&amp;gt; value is String,
    c: {a: &amp;quot;&amp;quot;, b: 123} everyEntry (value, key) -&amp;gt; value is String,
    d: {a: &amp;quot;&amp;quot;, b: 123} everyEntry (value, key) -&amp;gt; key as String == &amp;quot;a&amp;quot;,
    e: {a: &amp;quot;&amp;quot;} everyEntry (value, key) -&amp;gt; key as String == &amp;quot;a&amp;quot;,
    f: null everyEntry ((value, key) -&amp;gt; key as String == &amp;quot;a&amp;quot;)
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;everyEntry&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;everyentry&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:88,&amp;quot;secid&amp;quot;:33,&amp;quot;range&amp;quot;:&amp;quot;31528-32032&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit34&quot; id=&quot;mergewith&quot;&gt;mergeWith&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
import mergeWith from dw::core::Objects
output application/json
---
{ &amp;quot;a&amp;quot; : true, &amp;quot;b&amp;quot; : 1} mergeWith { &amp;quot;a&amp;quot; : false, &amp;quot;c&amp;quot; : &amp;quot;Test&amp;quot;} &lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;mergeWith&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;mergewith&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:89,&amp;quot;secid&amp;quot;:34,&amp;quot;range&amp;quot;:&amp;quot;32033-32206&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit35&quot; id=&quot;someentry&quot;&gt;someEntry&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
import someEntry from dw::core::Objects
output application/json
---
{
    a: {} someEntry (value, key) -&amp;gt; value is String,
    b: {a: &amp;quot;&amp;quot;, b: &amp;quot;123&amp;quot;} someEntry (value, key) -&amp;gt; value is String,
    c: {a: &amp;quot;&amp;quot;, b: 123} someEntry (value, key) -&amp;gt; value is String,
    d: {a: &amp;quot;&amp;quot;, b: 123} someEntry (value, key) -&amp;gt; key as String == &amp;quot;a&amp;quot;,
    e: {a: &amp;quot;&amp;quot;} someEntry (value, key) -&amp;gt; key as String == &amp;quot;b&amp;quot;,
    f: null someEntry (value, key) -&amp;gt; key as String == &amp;quot;a&amp;quot;
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;someEntry&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;someentry&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:90,&amp;quot;secid&amp;quot;:35,&amp;quot;range&amp;quot;:&amp;quot;32207-32700&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit36&quot; id=&quot;dwutilvalues&quot;&gt;dw::util::Values&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;dw::util::Values&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dwutilvalues&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:91,&amp;quot;secid&amp;quot;:36,&amp;quot;range&amp;quot;:&amp;quot;32701-32728&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit37&quot; id=&quot;selector_expressions_update_operator&quot;&gt;Selector Expressions (update Operator)&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
update оператор позволяет обновлять указанные поля структуры данных новыми значениями.
Этот селектор соответствия может проверять совпадения с любым значением внутри объекта.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
var myInput = {
    &amp;quot;name&amp;quot;: &amp;quot;Ken&amp;quot;,
    &amp;quot;lastName&amp;quot;:&amp;quot;Shokida&amp;quot;,
    &amp;quot;age&amp;quot;: 30,
    &amp;quot;address&amp;quot;: {
        &amp;quot;street&amp;quot;: &amp;quot;Amenabar&amp;quot;,
        &amp;quot;zipCode&amp;quot;: &amp;quot;AB1234&amp;quot;
    }
}
output application/json
---
myInput update {
    case age at .age -&amp;gt; age + 1
    case s at .address.street -&amp;gt; &amp;quot;First Street&amp;quot;
}&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
payload update {
    case s at .addresses[0] -&amp;gt; {
        &amp;quot;street&amp;quot;: &amp;quot;Second Street&amp;quot;,
        &amp;quot;zipCode&amp;quot;: &amp;quot;ZZ123&amp;quot;
    }
}&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
payload update {
    case name at .user.@name -&amp;gt; upper(name)
}&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
var theFieldName = &amp;quot;name&amp;quot;
output application/json
---
payload update {
    case s at .&amp;quot;$(theFieldName)&amp;quot; -&amp;gt; &amp;quot;Shoki&amp;quot;
}&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
payload map ((user) -&amp;gt;
    user update {
        case name at .name if(name == &amp;quot;Ken&amp;quot;) -&amp;gt; name ++ &amp;quot; (Leandro)&amp;quot;
        case name at .name if(name == &amp;quot;Tomo&amp;quot;) -&amp;gt; name ++ &amp;quot; (Christian)&amp;quot;
    }
)&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
var myInput = [{&amp;quot;lastName&amp;quot;: &amp;quot;Doe&amp;quot;}, {&amp;quot;lastName&amp;quot;: &amp;quot;Parker&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;Peter&amp;quot; }]
output application/json
---
myInput  map ((value) -&amp;gt;
    value update {
        case name at .name! -&amp;gt; if(name == null) &amp;quot;JOHN&amp;quot; else upper(name)
    }
)&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
payload update {
    //equivalent expression:
    //case age at .age -&amp;gt; age + 1
    case .age -&amp;gt; $ + 1
    case .address.street -&amp;gt; &amp;quot;First Street&amp;quot;
}&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
var myInput = {
    &amp;quot;name&amp;quot;: &amp;quot;Ken&amp;quot;,
    &amp;quot;lastName&amp;quot;:&amp;quot;Shokida&amp;quot;,
    &amp;quot;age&amp;quot;: 30
}
output application/json
---
myInput mapObject ((value,key) -&amp;gt;
    if(key as String == &amp;quot;age&amp;quot;)
       {(key): value as Number + 1}
    else
       {(key): value} )&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
var myInput = {
    &amp;quot;name&amp;quot;: &amp;quot;Ken&amp;quot;,
    &amp;quot;lastName&amp;quot;:&amp;quot;Shokida&amp;quot;,
    &amp;quot;age&amp;quot;: 30
}
output application/json
---
myInput update {
    case age at .age -&amp;gt; age + 1
}&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;%dw 2.0
output application/json
---
payload map ((item) -&amp;gt;
    item.ServiceDetails update {
        case Designation at .Designation if (Designation == &amp;quot;Clerk&amp;quot;) -&amp;gt;  &amp;quot;Assistant Manager&amp;quot;
})&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Selector Expressions (update Operator)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;selector_expressions_update_operator&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:91,&amp;quot;secid&amp;quot;:37,&amp;quot;range&amp;quot;:&amp;quot;32729-35179&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit38&quot; id=&quot;ссылки&quot;&gt;Ссылки&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;https://docs.mulesoft.com/dataweave/latest/&quot; class=&quot;urlextern&quot; title=&quot;https://docs.mulesoft.com/dataweave/latest/&quot; rel=&quot;ugc nofollow&quot;&gt;https://docs.mulesoft.com/dataweave/latest/&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;https://mulesy.com/1-mulesoft-as-middleware-solution/&quot; class=&quot;urlextern&quot; title=&quot;https://mulesy.com/1-mulesoft-as-middleware-solution/&quot; rel=&quot;ugc nofollow&quot;&gt;https://mulesy.com/1-mulesoft-as-middleware-solution/&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;https://reddeveloper.ru/tags/mule&quot; class=&quot;urlextern&quot; title=&quot;https://reddeveloper.ru/tags/mule&quot; rel=&quot;ugc nofollow&quot;&gt;https://reddeveloper.ru/tags/mule&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;a href=&quot;https://questu.ru/tag/mule/&quot; class=&quot;urlextern&quot; title=&quot;https://questu.ru/tag/mule/&quot; rel=&quot;ugc nofollow&quot;&gt;https://questu.ru/tag/mule/&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0441\u044b\u043b\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0441\u044b\u043b\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:101,&amp;quot;secid&amp;quot;:38,&amp;quot;range&amp;quot;:&amp;quot;35180-&amp;quot;} --&gt;</description>
    </item>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=develop:mule:extensions">
        <dc:format>text/html</dc:format>
        <dc:date>2024-01-06T23:43:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Mule ESB / Mulesoft расширения</title>
        <link>http://178.140.10.58:8080/doku.php?id=develop:mule:extensions</link>
        <description>&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:mule&amp;amp;do=showtag&amp;amp;tag=%5Bmule&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:mule&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; [mule&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:datawave&amp;amp;do=showtag&amp;amp;tag=datawave&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:datawave&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; datawave&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:esb&amp;amp;do=showtag&amp;amp;tag=esb%5D&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:esb&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; esb]&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;mule_esb_mulesoft_расширения&quot;&gt;Mule ESB / Mulesoft расширения&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Mule ESB \/ Mulesoft \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;mule_esb_mulesoft_\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;30-&amp;quot;} --&gt;</description>
    </item>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=develop:mule:plugins">
        <dc:format>text/html</dc:format>
        <dc:date>2024-01-08T00:47:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Mule ESB / Mulesoft plugins</title>
        <link>http://178.140.10.58:8080/doku.php?id=develop:mule:plugins</link>
        <description>&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:mule&amp;amp;do=showtag&amp;amp;tag=%5Bmule&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:mule&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; [mule&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:datawave&amp;amp;do=showtag&amp;amp;tag=datawave&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:datawave&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; datawave&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:esb&amp;amp;do=showtag&amp;amp;tag=esb%5D&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:esb&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; esb]&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;mule_esb_mulesoft_plugins&quot;&gt;Mule ESB / Mulesoft plugins&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Mule ESB \/ Mulesoft plugins&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;mule_esb_mulesoft_plugins&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;30-&amp;quot;} --&gt;</description>
    </item>
</rdf:RDF>
