Я строю поиск в RESTlet. Я застрял на создании элегантного фильтра на основе transactionumber
. Я хотел бы отфильтровать его с помощью оператора ANYOF , передавая массив чисел для значений, но это не представляется возможным.
Единственное решение, которое я нашел, - это предварительно обработать массив в строку чисел и использовать условную функцию SQL для его проверки:
search.createFilter({
name : 'formulanumeric',
formula : 'case when TO_NUMBER({transactionnumber}) in ('
+ tranids.join(',') // e.g. in (741,744)
+ ') then 1 else 0 end',
operator : search.Operator.NOTEQUALTO,
values : 0
});
Конечно, есть лучший способ. Выше есть (небольшое) снижение производительности преобразования массива в строку, и меня беспокоят ограничения формульно-числового поля - то есть длина формулы строка.