Netsuite CASE WHEN выражение в пользовательском поиске возвращает недопустимое выражение

Я новичок в написании выражений CASE в NetSuite. Я вставил следующее выражение в поле формулы пользовательского поиска.

CASE WHEN {item.custitem_custid}=05 OR {item.custitem_custid}=12 THEN
     ({item.custitem_margin}/2) 
ELSE 
     ({item.custitem_margin}/3)
END

и в результате получаю "недопустимое выражение. Я пытаюсь разделить значение поля поля на 2, если случай КОГДА верен, и разделить на 3, если не верно. Кто-нибудь знает, что не так с моей формулой?"


person Rick    schedule 08.08.2013    source источник
comment
Мне ваш синтаксис подходит. Какой тип записи вы ищете? Я думаю, что соединение работает неправильно. В качестве примечания: при использовании деления в формулах NetSuite рекомендует использовать X / nullif(Y, 0) вместо просто X / Y, чтобы избежать деления на ноль.   -  person erictgrubaugh    schedule 09.08.2013
comment
Спасибо. Я попробую.   -  person Rick    schedule 13.08.2013


Ответы (2)


Думаю, нужно добавить скобки:

CASE WHEN ({item.custitem_custid}=05 OR {item.custitem_custid}=12) THEN
     ({item.custitem_margin}/2) 
ELSE 
     ({item.custitem_margin}/3)
END
person user5587157    schedule 20.11.2015
comment
Добро пожаловать в Stack Overflow! Это должен был быть комментарий, а не ответ. Если немного больше репутации, вы сможете публиковать комментарии. - person IKavanagh; 20.11.2015

Я согласен с egrubaugh360, что синтаксис в порядке и, вероятно, объединения работают некорректно. В своем форуме, просто дважды отметьте "элемент". часть и посмотрите, что вы можете сделать.

Я также согласен с рекомендацией NVL (), но я также вижу, что ваш знаменатель равен 2 и 3 соответственно, поэтому функция NVL () не поможет. ПОЖАЛУЙСТА, ИСПОЛЬЗУЙТЕ NVL () каждый раз, когда ваш знаменатель является неизвестным значением, например, из поля в вашей записи / транзакции.

person kennethbaucum    schedule 16.04.2014