在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 ....}]
答案 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">