Mule 具有dataweave运算符的全局函数?

Mule 具有dataweave运算符的全局函数?,mule,mule-el,dataweave,Mule,Mule El,Dataweave,我有几个数据编织函数需要在流中的不同位置重用。但它们使用的是数据编织操作符,比如Pull。那么,有没有办法让它们全球化呢 %function formatterm(a) (a pluck (null when $==null otherwise "term" : {'$$':$})) -null %函数formatterms(a)(一个pull(当$==null时为null,否则为“terms”){$$:$}-null %function formatquerystring(a)(一个pul

我有几个数据编织函数需要在流中的不同位置重用。但它们使用的是数据编织操作符,比如Pull。那么,有没有办法让它们全球化呢

%function formatterm(a)  (a pluck (null when $==null otherwise "term" : {'$$':$})) -null
%函数formatterms(a)(一个pull(当$==null时为null,否则为“terms”){$$:$}-null
%function formatquerystring(a)(一个pull(当$==null时为null,否则为(“查询字符串”:“查询”:“$$”+”:“++$)))-null

谢谢
Sushma

您可以创建全局MEL函数。从MEL可以调用dataweave,例如:

有关详细信息,请参阅

你必须小心引用:

def formatquerystring(a) { 
return dw("("+ a + " pluck (null when $==null otherwise 
           (\"query_string\" : \"query\": '$$' ++ ':' ++ $) )) - null")
} 
对我有用。但是有了它,您就可以动态地创建一个必须编译的dwl脚本。还要注意代码注入


用MEL编写formatquerystring可能更好。

实际上,我试图引用该示例,并将全局函数定义为def formatquerystring(a){return dw(($==null时为null,否则为(“查询字符串”:“查询”:“$$”+':“+$))-null”),但此函数在dataweave中不可读。