СЛУЧАЙ NetSuite, КОГДА НЕ РАБОТАЕТ, хотя все отдельные заявления работают - PullRequest
0 голосов
/ 01 марта 2019

У меня возникла проблема с CASE NetSuite при сохраненном поиске.

Это работает как Формула (Текст) :

CASE WHEN {type} THEN 'Kit' ELSE 'not kit' END

Они работают как Формула (числовая) :

min(({memberitem.quantityonhand}/NULLIF({memberquantity},0))/(NULLIF({memberitem.preferredStockLevel}/NULLIF({memberquantity},0),0)))

и это

{quantityonhand}/NULLIF({preferredstocklevel},0)

Но когда я пытаюсь соединить их в формулу (числовую), они терпят неудачу:

CASE WHEN {type}='Kit/Package' THEN min(({memberitem.quantityonhand}/NULLIF({memberquantity},0))/(NULLIF({memberitem.preferredStockLevel}/NULLIF({memberquantity},0),0))) ELSE {quantityonhand}/NULLIF({preferredstocklevel},0) END 

Я также пытался использовать несколько операторов CASE WHEN:

CASE WHEN {type}='Kit/Package' 
    THEN min(({memberitem.quantityonhand}/NULLIF({memberquantity},0))/(NULLIF({memberitem.preferredStockLevel}/NULLIF({memberquantity},0),0))) 
ELSE 
    CASE WHEN {type}='Inventory Item' 
        THEN {quantityonhand}/NULLIF({preferredstocklevel},0) 
    ELSE 'nope' 
    END 
ELSE 'nope' 
END

Все еще не работает.

Я думаю, что проблема может заключаться в том, что подразумевается мой оператор CASE WHENдля формулы (текст) и мой вывод предназначен для формулы (числовой).Если это так, как я могу проверить тип своего элемента в числовом формате или мой код просто ненадежный?

Заранее спасибо.

1 Ответ

0 голосов
/ 12 марта 2019

Хорошо.Я хотел бы продолжить здесь и опубликовать ответ, который я выяснил, основываясь на помощи в комментариях.

@ Брайан выяснил проблему и дал мне совет, который мне нужен, чтобы заставить его работать.Он был прав - у меня были смешанные агрегаты с неагрегатами.Вот что в итоге заработало:

CASE WHEN {type}='Kit/Package' THEN ({memberitem.quantityonhand}/NULLIF({memberquantity},0))/(NULLIF({memberitem.preferredStockLevel}/NULLIF({memberquantity},0),0)) ELSE {quantityonhand}/NULLIF({preferredstocklevel},0) END

Итак, вы можете видеть, что сработало удаление функции min () из части набора.Мне все еще нужно выяснить, как получить правильные инвентарные номера, но совет @ Брайана решил основную проблему.

...