【问题标题】:error in mule 4 "You cannot compare a value of type :Null"mule 4中的错误“您无法比较类型的值:Null”
【发布时间】:2020-01-01 01:53:14
【问题描述】:

我正在尝试从 json 数据中找到日期的最大值。但我遇到了错误

Message        : "You cannot compare a value of type :Null
Trace:
 at reduce (Unknown)
 at dw::Core::maxBy (line: 5535, column: 3)
 at main (line: 1, column: 248)" evaluating expression: 
 "%dw 2.0 output application/json ---  {  Value2:  (  if (vars.data.Value1 as String != "")   
 (payload maxBy((item) -> item.startDate)).startDate default vars.data.Value1   
 else   ""  ), RCount: sizeOf(payload) }".
Error type      : MULE:EXPRESSION
Element        : executeInterface/processors/8 @ gg:gg.xml:121 (interface)
Element XML      : <set-variable value="#[%dw 2.0 output application/json ---
 {  Value2:  (  if (vars.data.Value1 as String != "")   
 (payload maxBy((item) -> item.startDate)).startDate default vars.data.Value1   
 else   ""  ), RCount: sizeOf(payload) }]" doc:name="interface" doc:id="2c140185-2fc5-4e11-9b78-96fc2ddcfa2f" variableName="interface"></set-variable>
 (set debug level logging or '-Dmule.verbose.exceptions=true' for everything).

设置变量组件中写的逻辑是

%dw 2.0
output application/json
---
{
Value2:   
(  if (vars.data.Value1 as String != "")   
(payload maxBy((item) -> item.startDate)).startDate default vars.data.Value1   
 else   ""  
 ),
RCount: sizeOf(payload)
}

在调试模式下运行时,发现问题出在maxby语句中。

请提出建议。如何解决此问题

【问题讨论】:

    标签: mule-component anypoint-studio mulesoft mule4


    【解决方案1】:

    该错误表明尝试比较时某些内容为空。鉴于您提到错误出现在 maxBy() 处,因此属性 startDate 可能为 null 或其中一个元素中不存在。您还应该显示转换的值,以便我们确认。

    更新:如果 startDate 属性不存在或拼写错误,我可以重现该错误。例如,如果我拼错了 item.StartDate(错误的大写“S”),则会产生错误。确保有效负载和脚本完全匹配。

    【讨论】:

    • 感谢您的回复。但列中没有空值。基本上我要做的是从列 startdate 中找到最大日期并将此日期存储在变量中以供进一步使用。做你还有其他办法解决这个问题
    • 您需要共享有效负载数据和结构,以便我们进一步了解问题。你能用一个小样本重现它吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    • 2013-08-28
    • 1970-01-01
    • 2019-06-25
    • 2020-03-02
    相关资源
    最近更新 更多