问题描述
%dw 2.0
import fail from dw::Runtime
output application/java
fun isValuePresent(value,message: String) = if ( value == null or isEmpty(value) ) fail(message) else value
---
{
brand: isValuePresent(payload.document[0].brand,p('import.error.missing.brand')),...
Mule 中的错误有其属性,例如:description
或 detailedDescription
。
现在通常,当我捕捉到其他错误(例如来自 is true
组件的错误)时 - 一切正常,error.description
保存我的错误消息,一切正常。
但是当产生一个由 fail()
产生的错误时,我得到一个非常大的错误描述信息:
""my error message here
Trace:
at fail (UnkNown)
at isValuePresent (line: 13,column: 85)
at main (line: 23,column: 7)" evaluating expression: "%dw 2.0
import fail from dw::Runtime
output application/java
fun isValuePresent(value,...
...
etc,etc
看起来我的 dataweave 脚本的全部内容都添加到了跟踪中。我只想拥有:
my error message here
Trace:
at fail (UnkNown)
at isValuePresent (line: 13,column: 7)" evaluating expression: "%dw 2.0
是否有可能实现这一目标?或者我在设计这种行为时犯了一些错误?有没有办法解决这个问题?
解决方法
我认为您对此无能为力。这是使用 fail() 报告错误的方式,并且不可自定义。可能这取决于 DataWeave 本身如何报告错误而不是 fail() 本身。