如何在Netsuite保存的搜索公式中捕获异常?

问题描述 投票:0回答:1

我有一个保存的搜索,它查看销售订单上的自定义文本字段。自定义字段应包含一个ISO日期。我想获取该日期大于今天的所有记录。我的第一次尝试是使用以下公式尝试Formula(Date),并且条件“大于今天”]

TO_DATE({custbody_est_delivery}, 'YYYY-MM-DD')

但是,当我尝试进行搜索时,这给了我一个“意外错误”。我发现这是因为并非每条记录都有一个ISO日期,有些不是空的,有些已经被编辑为包含一些非日期的数据。看来,如果有任何行返回错误,则整个保存的搜索将失败。因此,我想从搜索中排除所有未解析为日期的内容。但是,我找不到从TO_DATE函数捕获异常的方法。目前,我有:

CASE WHEN REGEXP_LIKE({custbody_est_delivery},'(\d{4})-(\d{2})-(\d{2})') THEN TO_DATE({custbody_est_delivery}, 'YYYY-MM-DD')ELSE TO_DATE('2099-12-31', 'YYYY-MM-DD') END

可以,但这是一个可怕的骇客,如果有人在字段“ 9999-99-99”中写。

如何在Netsuite保存的搜索公式中捕获异常?我正在寻找类似于以下伪代码的内容:

IFERROR(TO_DATE({custbody_est_delivery}, 'YYYY-MM-DD'), <do something sensible>)
netsuite saved-searches
1个回答
0
投票

您可以使用NVL2功能有条件地处理任何空字段值。

例如

NVL2({custbody_est_delivery}, TO_DATE({custbody_est_delivery}, 'YYYY-MM-DD'), '')

请参阅标题为SQL Expressions的帮助页面,以获取所有可用的公式函数。

我个人会说任何无效日期的字段值都是数据问题,应通过批量更新或CSV导入进行更正,并且应将验证规则添加到您的自定义字段中,以便不允许无效日期。

© www.soinside.com 2019 - 2024. All rights reserved.