上位要素の取得

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

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

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

この DataWeave の例では、テストのスコアで候補者の配列を並び替え、募集職種が埋まるまで最もスコアの高い候補者のみを選択します。

この例では、以下を使用します。

  • 入力の各候補者を調べる ​map​。

  • スコアに応じて一連の候補者を並び替える ​orderBy​。

  • 候補者の全配列の一部のみを選択する ​[n to n]​。配列は昇順に並んでいるため、上位の候補者は配列の最後に配置されます。そのため、負のインデックスを使用する必要があります。この入力では、-3 から -1 が選択されます。-1 は配列の最後のインデックスです。

DataWeave
%dw 2.0
output application/json
---
{
    TopCandidateList: (payload.candidates map ((candidate) -> {
        firstName: candidate.name,
        rank: candidate.score
    }) orderBy $.rank) [ -payload.availablePositions to -1]
}
入力
{
 "availablePositions": 3,
 "candidates":
    [
      {
        "name":"Gunther Govan",
        "score":99
      },
       {
        "name":"Michael Patrick",
        "score":35
      },
      {
        "name":"Amalia Silva",
        "score":96
      },
       {
        "name":"Tom Mathews",
        "score":40
      },
      {
        "name":"Simon Wilson",
        "score":84
      },
      {
        "name":"Janet Nguyen",
        "score":52
      }
    ]
}
出力
{
  "TopCandidateList": [
    {
      "firstName": "Simon Wilson",
      "rank": 84
    },
    {
      "firstName": "Amalia Silva",
      "rank": 96
    },
    {
      "firstName": "Gunther Govan",
      "rank": 99
    }
  ]
}