Flex Gateway新着情報
Governance新着情報
Monitoring API Managerこの DataWeave の例では、filter
と map
を使用して CSV ファイルのデータを参照し、電話番号の入力配列内で検出されたコールコードごとに国コードを返します。
開始する前に、DataWeave バージョン 2 (%dw 2.0
) は Mule 4 アプリケーションを対象とすることに注意してください。Mule 3 アプリケーションの場合、Mule 3.9 ドキュメントセットの DataWeave バージョン 1 (%dw 1.0
) の例を参照してください。他の Mule バージョンの場合は、目次の Mule Runtime バージョンセレクターを使用できます。
次の JSON ペイロードでは、電話番号の配列が DataWeave スクリプトに提供されます。
[
"54-112724555",
"1-6298765432"
]
Mule 変数 country_codes
の値はコールコードを国コードに対応付ける CSV ファイルです。
CALLING_CODE,COUNTRY_CODE
1,US
7,RU
54,AR
20,EG
32,BE
33,FR
505,NI
506,CR
1876,JM
1905,CA
1939,PR
262262,RE
262269,YT
.,.
.,.
次の DataWeave スクリプトでは、ペイロードの各電話番号を読み取り、filter
関数を使用して電話番号のコールコードに一致する Mule 変数 country_code
内でコールコードを検索します。続いて、map
関数がコールコードに対応する国コードを取得して結果を JSON オブジェクトの配列に返します。
%dw 2.0
output application/json
fun lookupCountryCode(phoneNumber: String): String = do {
var callingCode = (phoneNumber splitBy("-"))[0]
---
(vars.country_code filter ((item, index) -> item.CALLING_CODE == callingCode) map ((item, index) -> item.COUNTRY_CODE))[0]
}
---
payload map ((item, index) -> { phone: item, countryCode: lookupCountryCode(item)})
[
{
"phone": "54-112724555",
"countryCode": "AR"
},
{
"phone": "1-6298765432",
"countryCode": "US"
}
]