2016-07-22 1 views
0

私が直面している問題は、データ織りの中で複数のリストを繰り返すことです。 dataweaveのmuleでデータ織りの中で複数のリストを繰り返す方法

入力 - >(下記のような)2つの流varibles、dataweave

var1: [{bkAuthorID=1, bkAuthorName=abc, bookCategory=horror}, {bkAuthorID=2, bkAuthorName=xyz, bookCategory=horror}, {bkAuthorID=1, bkAuthorName=abc, bookCategory=comedy}, {bkAuthorID=2, bkAuthorName=xyz, bookCategory=Fantacy}}] 

var2: [{bkAuthorID=1, bkName=gjh, bkDescription=kjh},{bkAuthorID=1, bkName=sfs, bkDescription=kjh},{bkAuthorID=2, bkName=gjh, bkDescription=kjh},{bkAuthorID=2, bkName=gjh, bkDescription=kjh}] 

出力に来る - 3つのリストを持つ>所望のJSON structueは以下のようです。

{ 
    "books": [ 
    { 
     "bookAuthor": "abc", 
     "bookCategorys": [ 
     { 
      "bookCategory": "horror", 
      "listOfBooks": [ 
      { 
       "bookName": "xyz", 
       "bookDescription":"lmn" 
      }, 
      { 
       "bookName": "xyz", 
       "bookDescription":"lmn" 
      } 
      ] 
     }, 
     { 
      "bookCategory": "comedy", 
      "listOfBooks": [ 
      { 
       "bookName": "xyz", 
       "bookDescription":"lmn" 
      } 
      ] 
     } 
     ] 
    }, 
    { 
     "bookAuthor": "xyz", 
     "bookCategorys": [ 
     { 
      "bookCategory": "horror", 
      "listOfBooks": [ 
      { 
       "bookName": "xyz", 
       "bookDescription":"lmn" 
      } 
      ] 
     } 
     ] 
    } 
    ] 
} 

この要件のこのデータウェアマッピングでは、誰でも助けてください。

@Manik、お手伝いできますか?

+0

あなたはVAR1とVAR2であり、それらの間の関係は何であるデータの種類に関するいくつかの詳細を追加していただけますか?また、あなたが達成しようとしていることは正確には何ですか(例えば、著者別、カテゴリ別)。これらの2つのリストをマージする理由は何か誤りがありますか? –

答えて

0

私はbkAuthorIDを使ってvar1とvar2の間の関係を確立することができます。 しかし、var2のどの本がどのカテゴリに属しているかを知るにはもう一つの関係が必要です。したがって、以下の出力では、各カテゴリには、その著者によって書かれたすべての書籍のリストがあります。とにかく、あなたがする必要があるのは、 'listOfBooks'行にもう1つのフィルター条件を追加するだけです。

Dataweaveコード:

%dw 1.0 
%output application/json 
--- 
{ 
    books:(flowVars.var1 groupBy $.bkAuthorName map using (authorId=$.bkAuthorID[0]) { 
     bookAuthor:$[0].bkAuthorName, 
     bookCategorys: $ groupBy $.bookCategory map { 
      bookCategory:$.bookCategory[0], 
      listOfBooks: flowVars.var2[?($.bkAuthorID == authorId)] map { 
       bookName:$.bkName, 
       bookDescription:$.bkDescription 
      } 
     } 
    }) 
} 

出力:

{ 
"books": [ 
{ 
    "bookAuthor": "abc", 
    "bookCategorys": [ 
    { 
     "bookCategory": "horror", 
     "listOfBooks": [ 
     { 
      "bookName": "gjh", 
      "bookDescription": "kjh" 
     }, 
     { 
      "bookName": "sfs", 
      "bookDescription": "kjh" 
     } 
     ] 
    }, 
    { 
     "bookCategory": "comedy", 
     "listOfBooks": [ 
     { 
      "bookName": "gjh", 
      "bookDescription": "kjh" 
     }, 
     { 
      "bookName": "sfs", 
      "bookDescription": "kjh" 
     } 
     ] 
    } 
    ] 
}, 
{ 
    "bookAuthor": "xyz", 
    "bookCategorys": [ 
    { 
     "bookCategory": "horror", 
     "listOfBooks": [ 
     { 
      "bookName": "gjh", 
      "bookDescription": "kjh" 
     }, 
     { 
      "bookName": "gjh", 
      "bookDescription": "kjh" 
     } 
     ] 
    }, 
    { 
     "bookCategory": "Fantacy", 
     "listOfBooks": [ 
     { 
      "bookName": "gjh", 
      "bookDescription": "kjh" 
     }, 
     { 
      "bookName": "gjh", 
      "bookDescription": "kjh" 
     } 
     ] 
    } 
    ] 
} 
] 
} 
関連する問題