在Mule Datamapper中使用数据库查找时出错

时间:2014-12-28 09:14:58

标签: mule

enter image description here

在datamapper中,我使用数据库查找并连接Mysql表来获取两个字段 - 帐户和名称。在调用查找时,我收到错误说"查找未定义"

output.userId = lookup(GetAccount).get([input.account_user_id]).name;

得到错误,

output.userId = lookup(GetAccount).get([input.account_user_id]).account;" failed.
    at org.mule.el.mvel.DataMapperExpressionLanguage.evaluate(DataMapperExpressionLanguage.java:71)
    at com.mulesoft.datamapper.transform.MelRecordTransform.transform(MelRecordTransform.java:53)
    at org.jetel.component.Reformat.execute(Reformat.java:271)
    ... 15 more
  Caused by: [Error: unresolvable property or identifier: GetAccount]
[Near : {... put.userId = lookup(GetAccount).get([input.accoun ....}]

3 个答案:

答案 0 :(得分:1)

在我的脑海中,你几乎看不到GetAccount周围的引号,因此你实际上将它用作变量而不是字符串。

答案 1 :(得分:1)

我遇到了同样的问题。编辑映射文件(GRF文件)后,它就解决了。该问题是由重命名查找表名称引起的。在GRF文件的代码中,我发现表名在所有地方都没有改变。用新的名称替换旧名称后,它正常工作。

答案 2 :(得分:0)

我有同样的问题,Lenka的评论是正确的。基本上,如果在Datamapper中更改查找表名称,Anypoint Studio只会更新GRF文件中LookupTable标记中的name属性而不是ID属性。您必须手动更新ID属性以匹配Name属性。下面的示例标记。

<LookupTable flow-ref="lookupFlow" id="lookupTest" key="test" metadata="841fa76b-3d1e-4ba6-b7d7-97a879283764711f1cb" name="lookupTest" type="muleFlowLookup">