Как отловить исключение в сохраненной формуле поиска Netsuite? - PullRequest
0 голосов
/ 07 апреля 2020

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

1 Ответ

1 голос
/ 07 апреля 2020

Вы можете использовать функцию NVL2 для условной обработки любых пустых значений поля.

например,

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

См. Страницу справки под названием SQL Expressions для всех формул доступные вам функции.

Лично я бы сказал, что любые значения полей, которые являются недопустимыми датами, являются проблемой данных и должны быть исправлены с помощью массового обновления или импорта CSV, а правила проверки должны быть добавлены в ваше настраиваемое поле, например что недопустимые даты не допускаются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...