2017-02-16 7 views
2

私は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:?] 

おかげ

+0

この質問は、別のMuleプロジェクトでdataweave関数を使用する方法であると私は期待していました。すべてのプロジェクトの共有ライブラリ。しかし、答えは1つのプロジェクトでグローバル関数を説明する道に行きました。これは明らかで、私が期待したものではありません。図書館についての考えは? – Alex

答えて

0

設定セクションでグローバル機能を作成し、Datawaveから呼び出すことができます。

関連する問題