У меня есть сохраненный поиск, который просматривает пользовательское текстовое поле в заказе клиента. Пользовательское поле должно содержать дату 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>)