2015-12-16 4 views
2

Я новичок в mule esb. Я пытаюсь извлечь значения из mySQL и преобразовать в XML. Затем, нажав на сервис, а затем результат будет сохранен в таблице DB. У меня есть два вопроса:ESB mule - трансформация данных Weaver

1) Я вижу два разных способа отображения в ESB-муле. a) Использование «Data Mapper» b) Использование «Transform Message» - это использование данных Weaver. Какой из методов преобразования подходит для моего требования.

2) Я попытался использовать «Transform Message» и Data Weaver для преобразования. Мой ввод из БД будет извлекать три строки, как показано ниже.

college = abc  college = abc  college = abc 
dept = IT   dept = CSE   dept = MECH   
No of students = 5 No of students = 4 No of students = 7 

Ожидаемый выход

<University> 
<college>abc</college> <!-- this is simple tag/ It will not repeat --> 
<dept> <!-- This is complex tag --> 
    <dept Name>IT</dept Name> 
    <No of students>5</No of students> 
</dept> 
<dept> 
    <dept Name>IT</dept Name> 
    <No of students>5</No of students> 
</dept> 
<dept> 
    <dept Name>IT</dept Name> 
    <No of students>5</No of students> 
</dept> 

Я попытался данные, Weaver что-то вроде ниже.

%dw 1.0 

%output application/xml 

"University":{ 
    "college": payload.college, 
     dept: { 
      dept_Name: payload."dept_Name", 
      No of students: payload."No of students" 
     } 
} 

Но вышеуказанное dw не дает ожидаемого результата. Не могли бы вы помочь мне в этом?

ответ

2

Вы можете попробовать этот DataWeave и изменить его по своему усмотрению. Надеюсь, это поможет.

%dw 1.0 
%output application/xml 
--- 
{ 
    University: { 
     college: payload.college[0], 
     (payload map ((payload01 , indexOfPayload01) -> { 
      dept: { 
       deptName: payload01.dept, 
       Noofstudents: payload01."No of students" as :number 
      } 
     })) 
    } 
} 
+0

Большое спасибо. Это сработало для меня. :) – Simbu