2016-10-11 10 views
0

CRM 입력 커넥터 (계정 생성 용)로 사용되는 Java 맵으로 변환해야하는 XML 입력이 있습니다.Mule 매핑 XML은 CRM Dynamics 온라인 웹 (키, 값)에 나열됩니다

예 입력 : 내가있는 내가 문제

<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의 일부를 제공하고 당신은 내가 주소 및 모든 배열 인 안에 3 개의 adresses이 볼 수 있듯이 동일한 태그를 가지고 있습니다.

이 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 맵으로 변환하려고합니다. 당신이 알고있는 것처럼 자바 맵은 고유 한 키를 가지고 있지만 XML리스트는 데이터 위브에서 같은 키를 갖지만 질문의 두 번째 부분에서 볼 수있는 것처럼 동적 키가 생성되기를 원한다. – 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 
    }) 
    ) 
}