在流程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中都可以从数据编织中调用?
发布于 2017-07-01 05:24:51
您可以在src/main/resource文件夹下创建一个外部.dwl文件,并将dataweave脚本放在那里。这个.dwl可以与dataweave组件共享。例如:
在流程1中:-
<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中的整个脚本,你可以分享这个脚本。但是如果你想使用数据编织组件的任何特定函数,最好使用全局函数,它可以在你的任何数据编织中使用。
参考:- 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
https://stackoverflow.com/questions/44854351
复制相似问题