私はDataweaveトランスフォームメッセージコンポーネントで3つの関数を持っています。これらの関数を4つのトランスフォームメッセージコンポーネントで再利用したいと思います。データウェイブで再利用できる関数を作成するには
3つの関数を集中化し、4つのトランスフォームメッセージコンポーネントでそれらを参照する方法はありますか?使用するすべてのトランスフォームメッセージに関数をコピーして貼り付けることはありませんか?
私はAnypoint Studio 6.1とMule 3.8.1を使用しています。私は私のプロジェクトでグローバルにアクセスしたいDataweaveで
3の機能は以下のとおりです。
%function acceptable(value) (
value match {
:null -> false,
a is :array -> a != [{}],
o is :object -> o != {},
s is :string -> s != "",
default -> true
}
)
%function filterKeyValue(key, value) (
{(key): value} when acceptable(value) otherwise {}
)
%function removeFields(x)
x match {
a is :array -> a map removeFields($),
o is :object -> o mapObject
(filterKeyValue($$, removeFields($))),
default -> $
}
これらの関数は、空のフィールドを削除する周りのStackOverflowのポストから採取し、私がしようとしたとき、私はこのエラーを取得していますアプリケーションをデプロイ:
INFO 2017-02-17 19:31:37,190 [main] org.mule.config.spring.MuleArtifactContext: Closing [email protected]: startup date [Fri Feb 17 19:31:30 GMT 2017]; root of context hierarchy
ERROR 2017-02-17 19:31:37,478 [main] org.mule.module.launcher.application.DefaultMuleApplication: null
org.mule.mvel2.CompileException: [Error: unknown class or illegal statement: [email protected]]
[Near : {... value match { ....}]
^
[Line: 3, Column: 20]
at org.mule.mvel2.compiler.AbstractParser.procTypedNode(AbstractParser.java:1476) ~[mule-mvel2-2.1.9-MULE-010.jar:?]
おかげ
この質問は、別のMuleプロジェクトでdataweave関数を使用する方法であると私は期待していました。すべてのプロジェクトの共有ライブラリ。しかし、答えは1つのプロジェクトでグローバル関数を説明する道に行きました。これは明らかで、私が期待したものではありません。図書館についての考えは? – Alex