常见的mule数据编织功能,可以从多个数据编织脚本中调用

时间:2017-06-30 20:25:28

标签: mule mule-component dataweave

在流程1中,我有一个像这样的数据编织脚本

%output application/java
%function fun1(str)
    xxxx   //do some steps         
---
payload map ((payload01 , indexOfPayload01) -> {
element1 : fun1(payload01.element1)
}

在流程2中,我有一个像这样的数据编织脚本

%output application/java
%function fun1(str)
    xxxx  //do some steps            
---
payload map ((payload01 , indexOfPayload01) -> {
entity1 : fun1(payload01.entity1)
}

fun1在流程2中的数据编织中重复。如何使fun1成为一个常见的数据编织功能,以便我可以从流1和流2中的数据编织调用?

1 个答案:

答案 0 :(得分:1)

您可以做的是您可以在.dwl文件夹下创建一个外部src/main/resource文件,并将您的数据编辑脚本放在那里。您可以与dataweave组件共享此.dwl。例如:

在flow1中: -

<dw:transform-message doc:name="Transform Message in flow1">
     <dw:set-payload resource="classpath:test.dwl"/
</dw:transform-message>

在flow2中使用相同的.dwl文件: -

<dw:transform-message doc:name="Transform Message in flow2">
       <dw:set-payload resource="classpath:test.dwl"/>
</dw:transform-message>

请注意,如果您在dataweave中使用整个脚本,则可以共享该脚本。但是如果你想使用dataweave组件的任何特定功能,最好选择全局函数,它可以在你的任何数据编织中使用。

参考: - https://forums.mulesoft.com/questions/48759/how-to-use-java-functions-in-dataweave.html
https://forums.mulesoft.com/questions/50391/using-java-class-in-global-functions.html