LoginSignup
2
2

More than 1 year has passed since last update.

MuleSoft DataWeave関数一覧

Last updated at Posted at 2021-12-06

#MuleSoft DataWeave関数一覧

##DataWeaveとは?
MuleSoft Anypoint Platformでは、多システム間連携を含むAPIの開発がローコード/ノーコードで行えるようになっています。
単純に投入された(または取得してきた)データを、投入したいシステムの項目とマッピングするだけであれば、ドラッグ&ドロップして関連付けるだけで終わります。
image.png

しかし、実際の導入では、複数のデータソースから吸い上げたデータを統合したり、投入先に合わせて結果の形式(Json/XML/CSV等)や、項目の型変換をしたりする必要が出てきます。
この時、DataWeaveと呼ばれるスクリプトを利用することで、高度な編集が可能となっています。
このDataWeaveスクリプトですが、利用可能な数多くの便利な関数が予め準備されており、これらを活用することで開発生産性は高まるかと思います。

尚、DataWeave Playgroundというのが公開されており、WebブラウザでDataWeaveを試してみることが出来ます。

##DataWeave関数一覧

MuleSoftのウェブサイトに各モジュール毎の関数一覧や説明は記載されていますし、一度覚えてしまえば必要ないのかもしれませんが、
どの様な関数があるのかを俯瞰的に眺める・検索できるページがあれば、(覚えてないor忘れても検索が出来て)便利かと思い、以下にまとめました。

DataWeave関数 概要 含まれているモジュール
++ 2 つの値を連結します。 dw::Core
-- 指定された値を入力値から削除します。 dw::Core
abs 数値の絶対値を返します。 dw::Core
avg 配列に含まれる数値の平均を返します。 dw::Core
ceil 数値を最も近い整数に切り上げます。 dw::Core
contains 入力に特定の値が含まれる場合は true​、それ以外の場合は false​ を返します。 dw::Core
daysBetween 2 つの日付間の日数を返します。 dw::Core
distinctBy 配列を反復処理し、一意の要素を配列に返します。 dw::Core
endsWith 文字列が指定されたサブ文字列で終了する場合は true​、それ以外の場合は false​ を返します。 dw::Core
entriesOf 入力オブジェクトのキー、値、任意の属性を表すキー - 値ペアの配列を返します。 dw::Core
filter 配列を反復処理し、一致する値を返す式を適用します。 dw::Core
filterObject オブジェクト内のキー-値ペアのリストを反復処理し、一致するオブジェクトのみを返す式を適用することで、残りを出力から除外します。 dw::Core
find 指定された値と一致する、入力のインデックスを返します。 dw::Core
flatMap 配列内の各項目を反復処理し、結果をフラット化します。 dw::Core
flatten 一連のサブ配列 ([ [1,2,3], [4,5,[6]], [], [null] ]​ など) を 1 つのフラット化した配列 ([ 1, 2, 3, 4, 5, [6], null ]​ など) に変換します。 dw::Core
floor 数値を最も近い整数に切り捨てます。 dw::Core
groupBy 指定された条件 (式や一致セレクタなど) に基づいて配列の項目をグループ化するオブジェクトを返します。 dw::Core
isBlank 特定の文字列が空か、完全に空白で構成されている場合は true​、それ以外の場合は false​ を返します。 dw::Core
isDecimal 特定の数値に小数部が含まれる場合は true​、それ以外の場合は false​ を返します。 dw::Core
isEmpty 特定の入力値が空の場合は true​、それ以外の場合は false​ を返します。 dw::Core
isEven 数値または算術演算の数値結果が偶数の場合は true​ を返し、それ以外の場合は false​ を返します。 dw::Core
isInteger 特定の数値が整数 (小数部なし) の場合は true​、それ以外の場合は false​ を返します。 dw::Core
isLeapYear うるう年の日付を受け取った場合は true​、それ以外の場合は false​ を返します。 dw::Core
isOdd 数値または算術演算の数値結果が奇数の場合は true​ を返し、それ以外の場合は false​ を返します。 dw::Core
joinBy 配列を 1 つの文字列値にマージし、指定された文字列をリストの各項目間の区切り文字として使用します。 dw::Core
keysOf 入力オブジェクト内のキー - 値ペアからのキーの配列を返します。 dw::Core
log 入力の値を変更することなく、log​ は入力をシステムログとして返します。 dw::Core
lower 指定された文字列を小文字で返します。 dw::Core
map 配列の項目を反復処理し、結果を新しい配列に出力します。 dw::Core
mapObject オブジェクトのキー、値、またはインデックスで動作するマッパーを使用して、オブジェクトを反復処理します。 dw::Core
match Java 正規表現 (regex) を使用して文字列を照合して各キャプチャグループに分割します。結果を配列で返します。 dw::Core
matches 式が入力文字列全体に一致するかどうかを確認します。 dw::Core
max 配列内の最大の Comparable​ 値を返します。 dw::Core
maxBy 配列を反復処理し、配列から Comparable​ 要素の最大値を返します。 dw::Core
min 配列内の最小の Comparable​ 値を返します。 dw::Core
minBy 配列を反復処理し、配列から比較可能な要素の最小値を返します。 dw::Core
mod 剰余 (dividend​ (被除数) を divisor​ (除数) で割った余り) を返します。 dw::Core
namesOf 特定のオブジェクト内のすべてのキーの名前が含まれる文字列の配列を返します。 dw::Core
native 関数の実装が DataWeave ではなく Scala で記述されていることを示す内部メソッド。 dw::Core
now 現在の日付と時刻で DateTime​ (日時) 値を返します。 dw::Core
orderBy 入力の要素を、その入力の選択された要素で動作する条件を使用して並び替えます。 dw::Core
pluck 1 つのオブジェクトを配列にマップする場合に便利です。pluck​ はオブジェクトを反復処理してそのオブジェクトからキー、値、またはインデックスの配列を返します。 dw::Core
pow base​ (基数) の数値を、指定された power​ (指数) で累乗します。 dw::Core
random 0.0​ 以上 1.0​ 未満の疑似乱数を返します。 dw::Core
randomInt 0​ 以上指定数値未満の整数の疑似乱数を返します。 dw::Core
read 文字列またはバイナリを読み取り、解析後のコンテンツを返します。 dw::Core
readUrl read​ 関数と似ています。ただし、readURL​ は、クラスパスベースの URL を含め URL を入力として受け入れます。 dw::Core
reduce 配列の要素に縮小式を適用します。 dw::Core
replace 文字列置換を実行します。 dw::Core
round 数値を最も近い整数に丸めます。 dw::Core
scan 入力文字列内で検出されたすべての一致を含む配列を返します。 dw::Core
sizeOf 配列内の要素数を返します。配列が空の場合は 0​ を返します。 dw::Core
splitBy 文字列の一部に一致する値に基づいて、文字列を文字列配列に分割します。一致部分は、返される配列から除外されます。 dw::Core
sqrt 数値の平方根を返します。 dw::Core
startsWith 入力文字列が照合するプレフィックスで始まるかどうかによって true​ または false​ を返します。 dw::Core
sum 配列内の数値の合計を返します。 dw::Core
to 指定された境界の範囲を返します。 dw::Core
trim 文字列の先頭と末尾に空白スペースがあれば、それを削除します。 dw::Core
typeOf 値の型を返します。 dw::Core
unzip zip​ の逆の操作を実行します。. これは、配列の配列を入力として使用します。 dw::Core
upper 指定された文字列を大文字で返します。 dw::Core
uuid 取得元として乱数を使用して、v4 UUID を返します。 dw::Core
valuesOf オブジェクト内のキー-値ペアからの値の配列を返します。 dw::Core
with replace​ と共に使用すると、with​ は置換文字列を渡します。 dw::Core
write 値を、サポートされる形式で文字列またはバイナリとして記述します。 dw::Core
xsiType xsi:type​ 型の属性を作成します。このメソッドはオブジェクトを返すため、動的属性と共に使用する必要があります。 dw::Core
zip 2 つの配列からの要素を配列の配列にマージします。 dw::Core
HMACBinary 入力コンテンツの HMAC ハッシュを計算します (秘密暗号化キーを使用)。 dw::Crypto
HMACWith 入力コンテンツの HMAC ハッシュを計算し (秘密暗号化キーを使用)、その結果を小文字の 16 進文字列に変換します。 dw::Crypto
MD5 MD5 ハッシュを計算し、そのバイナリ結果を小文字の 16 進文字列に変換します。 dw::Crypto
SHA1 SHA1 ハッシュを計算し、その結果を小文字の 16 進文字列に変換します。 dw::Crypto
hashWith 指定されたアルゴリズムを使用してバイナリコンテンツのハッシュ値を計算します。 dw::Crypto
fail 指定されたメッセージと共に例外をスローします。 dw::Runtime
failIf エバリュエータの式が true​ を返す場合は、指定されたメッセージでエラーを生成し、それ以外の場合は値を返します。 dw::Runtime
locationString 指定された値の位置の文字列を返します。 dw::Runtime
orElse previous​ の try 結果が失敗の場合は orElse​ の結果を返し、失敗でない場合は previous​ の結果を返します。 dw::Runtime
orElseTry 複数の try​ をチェーニングするために try で使用される関数 dw::Runtime
prop 指定された名前のプロパティの値を返すか、プロパティが定義されていない場合は null​ を返します。 dw::Runtime
props Mule Runtime に設定されたすべてのプロパティを返します。 dw::Runtime
try デリゲート関数を評価し、デリゲート関数が成功した場合は success: true​ と result​ を含むオブジェクトを返し、デリゲート関数が例外をスローした場合は success: false​ と error​ を含むオブジェクトを返します。 dw::Runtime
wait 指定されたタイムアウト (ミリ秒) の間、実行を停止します。 dw::Runtime
envVar 指定された名前の環境変数を返すか、環境変数が定義されていない場合は null​ を返します。 dw::System
envVars ホストシステムで定義されているすべての環境変数を返します。 dw::System
countBy 配列内の、関数の結果と一致する要素をカウントします。 dw::core::Arrays
divideBy 配列を、指定数の要素が含まれるサブ配列に分割します。 dw::core::Arrays
drop 最初の n​ 個の要素をドロップします。n <= 0​ の場合は元の配列を返し、n > sizeOf(array)​ の場合は空の配列を返します。 dw::core::Arrays
dropWhile 条件を満たす場合に要素を配列から削除しますが、条件を満たさない要素に達したら選択プロセスを停止します。 dw::core::Arrays
every 配列内のすべての要素が条件に一致すると true​ を返します。 dw::core::Arrays
firstWith 条件を満たす最初の要素を返すか、条件を満たす要素がない場合は null​ を返します。 dw::core::Arrays
indexOf 配列内で最初に出現する要素のインデックスを返します。 dw::core::Arrays
indexWhere 配列内で条件に一致する最初に出現する要素のインデックスを返します。 dw::core::Arrays
join オブジェクトの 2 つの配列を、指定された ID 条件で結合します。 dw::core::Arrays
leftJoin オブジェクトの 2 つの配列を、指定された ID 条件で結合します。 dw::core::Arrays
outerJoin オブジェクトの 2 つの配列を、指定された ID​ 条件で結合します。 dw::core::Arrays
partition 条件を満たす要素と条件を満たさない要素に配列を分割します。 dw::core::Arrays
slice 条件 (from <= indexOf(array) < until​) を満たす要素の間隔を選択します。 dw::core::Arrays
some 配列内の 1 つ以上の要素が指定された条件に一致すると true​ を返します。 dw::core::Arrays
splitAt 配列を、指定された位置で 2 つに分割します。 dw::core::Arrays
splitWhere 配列を、条件を満たす最初の位置で 2 つに分割します。 dw::core::Arrays
sumBy 配列内の要素の値の合計を返します。 dw::core::Arrays
take 最初の n​ 個の要素を選択します。n <= 0​ の場合は空の配列を返し、n > sizeOf(array)​ の場合は元の配列を返します。 dw::core::Arrays
takeWhile 条件を満たす場合に要素を配列から選択しますが、条件を満たさない要素に達したら選択プロセスを停止します。 dw::core::Arrays
fromBase64 Base64 文字列をバイナリ値に変換します。 dw::core::Binaries
fromHex 16 進文字列をバイナリに変換します。 dw::core::Binaries
readLinesWith 指定されたバイナリコンテンツを複数の行に分割し、結果を配列で返します。 dw::core::Binaries
toBase64 バイナリ値を Base64 文字列に変換します。 dw::core::Binaries
toHex バイナリ値を 16 進文字列に変換します。 dw::core::Binaries
writeLinesWith 指定された行を書き込んで、バイナリコンテンツを返します。 dw::core::Binaries
fromBinary 2 進数から 10 進数に変換します。 dw::core::Numbers
fromHex 16 進数を 10 進数に変換します。 dw::core::Numbers
fromRadixNumber 指定された基数の数値を 10 進数に変換します。 dw::core::Numbers
toBinary 10 進数を 2 進数に変換します。 dw::core::Numbers
toHex 10 進数を 16 進数に変換します。 dw::core::Numbers
toRadixNumber 10 進数を他の基数の数値文字列に変換します。 dw::core::Numbers
divideBy オブジェクトを、指定された数のキー - 値ペアを含むサブオブジェクトに分割します。 dw::core::Objects
entrySet 入力オブジェクトのキー、値、任意の属性を表すキー - 値ペアの配列を返します。 dw::core::Objects
everyEntry オブジェクト内のすべてのエントリが条件に一致すると true​ を返します。 dw::core::Objects
keySet オブジェクトからのキー名の配列を返します。 dw::core::Objects
mergeWith 取得元オブジェクトからのすべてのキー - 値ペアを対象オブジェクトに追加します。 dw::core::Objects
nameSet オブジェクトからのキーの配列を返します。 dw::core::Objects
someEntry オブジェクト内の 1 つ以上のエントリが指定された条件に一致すると true​ を返します。 dw::core::Objects
takeWhile 条件を満たす場合、オブジェクトからキー - 値ペア選択します。 dw::core::Objects
valueSet オブジェクト内のキー-値ペアからの値の配列を返します。 dw::core::Objects
appendIfMissing text​ が suffix​ で終了していない場合、text​ の末尾に suffix​ を追加します。 dw::core::Strings
camelize 文字列内のアンダースコアに基づいて、キャメルケースの文字列を返します。 dw::core::Strings
capitalize 文字列内の各単語の先頭を大文字にします。 dw::core::Strings
charCode 入力文字列の最初の文字の Unicode を返します。 dw::core::Strings
charCodeAt 指定されたインデックスの文字の Unicode を返します。 dw::core::Strings
dasherize 文字列内のスペース、アンダースコア、キャメルケースをダッシュ (ハイフン) に置き換えます。 dw::core::Strings
fromCharCode 指定された Unicode に一致する文字を返します。 dw::core::Strings
isAlpha text​ に Unicode 数字のみが含まれるかどうかを確認します。小数点は Unicode 数字ではないため、false​ が返されます。 dw::core::Strings
isAlphanumeric text​ に Unicode 文字または数字のみが含まれるかどうかを確認します。 dw::core::Strings
isLowerCase text​ に小文字のみが含まれるかどうかを確認します。 dw::core::Strings
isNumeric text​ に Unicode 数字のみが含まれるかどうかを確認します。 dw::core::Strings
isUpperCase text​ に大文字のみが含まれるかどうかを確認します。 dw::core::Strings
isWhitespace text​ に空白のみが含まれるかどうかを確認します。 dw::core::Strings
leftPad 目的のサイズ (size​) になるように、指定された text​ の_左_​側に padText​ を埋め込みます。 デフォルトの padText​ は " "​ です。 dw::core::Strings
ordinalize 数値を序数 (1st​ や 2nd​ など) として返します。 dw::core::Strings
pluralize 単数形の文字列を複数形にします。 dw::core::Strings
prependIfMissing text​ が prefix​ で開始されていない場合、文字列の先頭にそのプレフィックスを追加します。 dw::core::Strings
repeat text​ を、指定された回数 (times​) 繰り返します。 dw::core::Strings
rightPad 目的のサイズ (size​) になるように、指定された text​ の_右_​側に padText​ を埋め込みます。 デフォルトの padText​ は " "​ です。 dw::core::Strings
singularize 複数形の文字列を単数形に変換します。 dw::core::Strings
substringAfter 区切り文字の最初の出現位置より後にあるサブ文字列を取得します。区切り文字は返されません。 dw::core::Strings
substringAfterLast 区切り文字の最後の出現位置より後にあるサブ文字列を取得します。区切り文字は返されません。 dw::core::Strings
substringBefore 区切り文字の最初の出現位置より前にあるサブ文字列を取得します。区切り文字は返されません。 dw::core::Strings
substringBeforeLast 区切り文字の最後の出現位置より前にあるサブ文字列を取得します。区切り文字は返されません。 dw::core::Strings
underscore 文字列内のハイフン、スペース、キャメルケースをアンダースコアに置き換えます。 dw::core::Strings
unwrap 指定された text​ を wrapper​ テキストからラップ解除します。 dw::core::Strings
withMaxSize 文字列長が指定された maxLength​ より長くないことを確認します。 文字列の長さが maxLength​ よりも長い場合、関数では文字列長が長さ制限を満たすまで、文字が左から右に切り捨てられます。 dw::core::Strings
wrapIfMissing 指定された文字列の先頭または末尾から wrapper​ が欠落している場合、text​ を wrapper​ でラップします。 dw::core::Strings
wrapWith 指定された text​ を、指定された wrapper​ でラップします。 dw::core::Strings
arrayItem 特定の配列のデータ型を返します。入力が Array (配列) 型でない場合、この関数は失敗します。 dw::core::Types
baseTypeOf 特定のデータ型の基本データ型を返します。 dw::core::Types
functionParamTypes 特定の関数型からパラメータのリストを返します。 指定された型が Function (関数) 型でない場合、この関数は失敗します。 dw::core::Types
functionReturnType 関数の戻り値のデータ型の型を返します。 入力種別が Function (関数) 型でない場合、この関数は失敗します。 dw::core::Types
intersectionItems 特定の Intersection (交差) 型を定義するすべての型の配列を返します。 入力が Intersection (交差) 型でない場合、この関数は失敗します。 dw::core::Types
isAnyType 入力が Any (任意) 型の場合は true​ を返します。 dw::core::Types
isArrayType 入力種別が Array (配列) 型の場合は true​ を返します。 dw::core::Types
isBinaryType 入力が Binary (バイナリ) 型の場合は true​ を返します。 dw::core::Types
isBooleanType 入力が Boolean (ブール) 型の場合は true​ を返します。 dw::core::Types
isDateTimeType 入力が DateTime (日時) 型の場合は true​ を返します。 dw::core::Types
isDateType 入力が Date (日付) 型の場合は true​ を返します。 dw::core::Types
isFunctionType 入力が Function (関数) 型の場合は true​ を返します。 dw::core::Types
isIntersectionType 入力種別が Intersection (交差) 型の場合は true​ を返します。 dw::core::Types
isKeyType 入力が Key (キー) 型の場合は true​ を返します。 dw::core::Types
isLiteralType 入力が Literal (リテラル) 型の場合は true​ を返します。 dw::core::Types
isLocalDateTimeType 入力が LocalDateTime (ローカル日時) 型の場合は true​ を返します。 dw::core::Types
isLocalTimeType 入力が LocalTime (ローカル時刻) 型の場合は true​ を返します。 dw::core::Types
isNamespaceType 入力が Namespace (名前空間) 型の場合は true​ を返します。 dw::core::Types
isNothingType 入力が Nothing (なし) 型の場合は true​ を返します。 dw::core::Types
isNullType 入力が Null 型の場合は true​ を返します。 dw::core::Types
isNumberType 入力が Number (数値) 型の場合は true​ を返します。 dw::core::Types
isObjectType 入力が Object (オブジェクト) 型の場合は true​ を返します。 dw::core::Types
isPeriodType 入力が Period (期間) 型の場合は true​ を返します。 dw::core::Types
isRangeType 入力が Range (範囲) 型の場合は true​ を返します。 dw::core::Types
isReferenceType 入力種別が Reference (参照) 型の場合は true​ を返します。 dw::core::Types
isRegexType 入力が Regex (正規表現) 型の場合は true​ を返します。 dw::core::Types
isStringType 入力が String (文字列) 型の場合は true​ を返します。 dw::core::Types
isTimeType 入力が Time (時刻) 型の場合は true​ を返します。 dw::core::Types
isTimeZoneType 入力が TimeZone (タイムゾーン) 型の場合は true​ を返します。 dw::core::Types
isTypeType 入力が Type (データ型) 型の場合は true​ を返します。 dw::core::Types
isUnionType 入力種別が Union (結合) 型の場合は true​ を返します。 dw::core::Types
isUriType 入力が Uri (URI) 型の場合は true​ を返します。 dw::core::Types
literalValueOf Literal (リテラル) 型に属する入力の値を返します。 dw::core::Types
metadataOf 特定の型にアタッチされたメタデータを返します。 dw::core::Types
nameOf 入力種別の名前を返します。 dw::core::Types
objectFields 特定の Object (オブジェクト) 型から項目の配列を返します。 データ型が Object (オブジェクト) 型でない場合、この関数は失敗します。 dw::core::Types
unionItems 特定の Union (結合) 型を定義するすべてのデータ型の配列を返します。 入力が Union (結合) 型でない場合、この関数は失敗します。 dw::core::Types
compose カスタム補間値を使用して、URL コンポーネントを encodeURIComponent​ 結果に置き換えます。 dw::core::URL
decodeURI URI 内のエスケープシーケンス (%20​ など) をデコードします。 dw::core::URL
decodeURIComponent encodeURIComponent​ または類似のルーチンによって以前に作成された Uniform Resource Identifier (URI) コンポーネントをデコードします。 dw::core::URL
encodeURI UTF-8 エスケープシーケンスを使用して URI をエンコードします。 dw::core::URL
encodeURIComponent UTF-8 エンコーディングを使用して、URI コンポーネント内の特定の文字をエスケープします。 dw::core::URL
parseURI URL を解析し、URI​ オブジェクトを返します。 dw::core::URL
field 指定されたパート名、そのパートの入力コンテンツ、形式 (または MIME タイプ)、および省略可能なファイル名を使用して、MultipartPart​ データ構造を作成します。 dw::module::Multipart
file ソースファイルから MultipartPart​ データ構造を作成します。 dw::module::Multipart
form 指定されたパートの配列を使用して Multipart​ データ構造を作成します。 dw::module::Multipart
generateBoundary Multipart​ データ構造の境界を生成するためのヘルパー関数。 dw::module::Multipart
diff 2 つの値の構造的な違いを返します。 dw::util::Diff
currentMilliseconds 現在の時刻をミリ秒単位で返します。 dw::util::Timer
duration 入力関数を実行し、その関数の実行時間 (ミリ秒) と結果を含むオブジェクトを返します。 dw::util::Timer
time 入力関数を実行し、その関数の実行の開始時刻と終了時刻が含まれる TimeMeasurement​ オブジェクトと関数の結果を返します。 dw::util::Timer
toMilliseconds 指定された日時のミリ秒での表現を返します。 dw::util::Timer
asExpressionString パスを文字列表現に変換します。 dw::util::Tree
mapLeafValues ツリー内のターミナル (リーフ) ノードをマップします。 dw::util::Tree
nodeExists ツリー内のいずれかのノードが、指定された条件に対して検証された場合、true​ を返します。 dw::util::Tree
attr この関数は、XML 属性を選択するために使用する PathElement​ を作成し、型の selector​ 項目に特定の文字列を入力します。 dw::util::Values
field この関数は、オブジェクト項目​を選択するために使用する PathElement​ データ型を作成し、型の selector​ 項目に特定の文字列を入力します。 dw::util::Values
index この関数は、配列要素​を選択するために使用する PathElement​ データ型を作成し、型の selector​ 項目に、指定されたインデックスを入力します。 dw::util::Values
mask この mask​ 関数は、指定された条件に一致するすべての_単純_​要素を置き換えます。 dw::util::Values
update この update​ 関数は、指定された文字列値でオブジェクトの項目を更新します。 dw::util::Values
causedBy この関数は、エラーハンドラのように、エラーをその種別によって一致させます。 dw::Mule
lookup この関数を使用すると、Mule アプリケーション内でフローを実行し、結果のペイロードを取得できます。 dw::Mule
p この関数は、Mule プロパティプレースホルダ、システムプロパティ、または環境変数のいずれかの入力プロパティの値を識別する文字列を返します。 dw::Mule
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2