DataWeave を使用した日付の解析

DataWeave 2.1 は Mule 4.1 と互換性があります。 Mule 4.1 の標準サポートは 2020 年 11 月 2 日に終了しました。このバージョンの Mule は、拡張サポートが終了する 2022 年 11 月 2 日にその​​すべてのサポートが終了します。

このバージョンの Mule を使用する CloudHub には新しいアプリケーションをデプロイできなくなります。許可されるのはアプリケーションへのインプレース更新のみになります。

標準サポートが適用されている最新バージョンの Mule 4 にアップグレード​することをお勧めします。これにより、最新の修正とセキュリティ機能強化を備えたアプリケーションが実行されます。

これらの DataWeave の例では、DataWeave ヘッダーで関数 (​fun​) を定義して、さまざまな日付形式内の日付区切り文字 (​/​、​.​、​-​) を正規化して、すべてで同じ区切り文字 (​-​) が使用されるようにします。

この例では、次の関数を使用します。

  • すべての日付を 1 つのパターンに一致させる ​replace​。

  • date​ 要素を調べる ​mapObject​。スクリプトで正規化関数を各 ​date​ に適用します。

  • 値のデータ型を特定の日付形式の Date (日付) 型に変更する ​as​ (2 番目の DataWeave スクリプト)。

例: String (文字列) 型として日付を返す

入力
<dates>
  <date>26-JUL-16</date>
  <date>27/JUL/16</date>
  <date>28.JUL.16</date>
</dates>
DataWeave
%dw 2.0
output text/xml
fun normalize(date) date replace "/" with "-" replace "." with "-"
---

dates: (payload.dates mapObject {
    normalized_as_string: normalize($.date)
})
出力 (日付が String (文字列) 型)
<?xml version='1.0' encoding='US-ASCII'?>
<dates>
  <normalized_as_string>26-JUL-16</normalized_as_string>
  <normalized_as_string>27-JUL-16</normalized_as_string>
  <normalized_as_string>28-JUL-16</normalized_as_string>
</dates>

例: Date (日付) 型として日付を返す

入力
<dates>
  <date>26-JUL-16</date>
  <date>27/JUL/16</date>
  <date>28.JUL.16</date>
</dates>
DataWeave
%dw 2.0
output text/xml
fun normalize(date) date replace "/" with "-" replace "." with "-"
---
// Outputs date values as Date types in the specified format
dates: (payload.dates mapObject {
    normalized_as_date: normalize($.date) as Date {format: "d-MMM-yy"}
})
出力 (日付が Date (日付) 型)
<?xml version='1.0' encoding='US-ASCII'?>
<dates>
  <normalized_as_date>2016-07-26</normalized_as_date>
  <normalized_as_date>2016-07-27</normalized_as_date>
  <normalized_as_date>2016-07-28</normalized_as_date>
</dates>