在流程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中的数据编织调用?
答案 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