2016-10-11 7 views
0

私はCRMのオンラインコネクタの入力として(アカウントを作成するために)使用するためにJavaマップに変換する必要があるXML入力があります。Muleマッピングxmlは、CRM DynamicsオンラインのJavaマップ(キー、値)に一覧表示されます

例入力:私はあなたが私がアドレスおよびすべての配列である内部の3人の住所がを持って見ることができるように、私は問題

<account> 
<identification> 
<accountId>String</accountId> 
</identification> 

<addresses> 
    <address> 
     <type>type1</type> 
     <name>name1</name> 
     <street>street1</street> 
     <communication> 
      <phone>phone1</phone> 
      <phoneExtension>phoneExtension1</phoneExtension> 
      <phoneCountry>phoneCountry1</phoneCountry> 
      <fax>fax1</fax> 
      <faxExtension>faxExtension1</faxExtension> 
      <faxCountry>faxCountry1</faxCountry> 
      <email>email1</email> 
      <website>website1</website> 
     </communication> 
     </address> 
    <address> 
     <type>type2</type> 
     <name>name2</name> 
     <street>street2</street> 
     <communication> 
      <phone>phone2</phone> 
      <phoneExtension>phoneExtension2</phoneExtension> 
      <phoneCountry>phoneCountry2</phoneCountry> 
      <fax>fax2</fax> 
      <faxExtension>faxExtension2</faxExtension> 
      <faxCountry>faxCountry2</faxCountry> 
      <email>email1</email> 
      <website>website2</website> 
     </communication> 
     </address> 
    <address> 
     <type>type3</type> 
     <name>name3</name> 
     <street>street3</street> 
     <communication> 
      <phone>phone3</phone> 
      <phoneExtension>phoneExtension3</phoneExtension> 
      <phoneCountry>phoneCountry3</phoneCountry> 
      <fax>fax3</fax> 
      <faxExtension>faxExtension3</faxExtension> 
      <faxCountry>faxCountry3</faxCountry> 
      <email>email3</email> 
      <website>website3</website> 
     </communication> 
     </address> 
</addresses> 

に直面していたため、XMLの一部のみを与えています同じタグを持っています。

このxmlをJavaマップに変換して、CRM Dynamicsオンラインでアカウントを作成したいとします。しかし、問題は、CRMでは全く異なる構造を持っていることです。私たちは、キーバリューペアの形でアドレスを持っています。だから、アドレス入力の上から、我々はマッピングの下に持って

address1_type : type1 
address1_name : name1 
address1_street : street1 
address1_phone : phone1 
address1_phoneExtension : phoneExtension1 
address1_phoneCountry : phoneCountry1 
address1_fax : fax1 
address1_faxExtension : faxExtension1 
address1_faxCountry : faxCountry1 
address1_email : email1 
address1_website : website1 

address2_type : type2 
address2_name : name2 
address2_street : street2 
address2_phone : phone2 
address2_phoneExtension : phoneExtension2 
address2_phoneCountry : phoneCountry2 
address2_fax : fax2 
address2_faxExtension : faxExtension2 
address2_faxCountry : faxCountry2 
address2_email : email2 
address2_website : website2 

address3_type : type3 
address3_name : name3 
address3_street : street3 
address3_phone : phone3 
address3_phoneExtension : phoneExtension3 
address3_phoneCountry : phoneCountry3 
address3_fax : fax3 
address3_faxExtension : faxExtension3 
address3_faxCountry : faxCountry3 
address3_email : email3 
address3_website : website3 

は、必要なマップのキー値に入力されたアドレスアレイを変換する方法はありますか?可能であれば、データウェイブでそれを行う方法を探しています。

+0

これはコード作成サービスではありません。これまでに何を試しましたか?あなたのコードを投稿してください!あなたがそれを走らせたとき何が起こったのですか?代わりに何が起こると思いますか?具体的に何が問題になっていますか? – Robert

+0

btw dataweaveを使ってxmlリストをJavaマップに変換しようとしています。あなたが知っているようにJavaマップには固有のキーがありますが、xmlリストにはデータウェイヴで同じキーがありますが、私は質問の第2部分で見られるように動的キーを作成したいと思います。 – user3084212

答えて

1

私はsolution.Thisは、リストをループして、特定のインデックスを持つdataweaveでダイナミックマップキーを作成中

変換が可能である誰かのために役に立つかもしれません発見しました。

%dw 1.0 
%output application/java 
--- 
{ //tells DW that output should be object i.e. HashMap 
(//tells DW to use key-value from below mapping 
    payload.account.addresses map ((value,index) -> { 
     ("address" ++ (index+1) ++ "_type"): value.type, // Parenthesis around key tells DW to evaluate contents and use the result as key 
     ("address" ++ (index+1) ++ "_name"): value.name, 
     ("address" ++ (index+1) ++ "_street"): value.street 
    }) 
    ) 
} 
関連する問題