Netsuite, как искать открытые векселя (транзакции) поставщика - PullRequest
0 голосов
/ 05 мая 2020

Казалось бы, просто, но, как это часто бывает с netsuite, это больно. Вот что у меня есть:

        TransactionSearch invoiceSearch = new TransactionSearch();        

        TransactionSearchBasic invoiceSearchBasic = new TransactionSearchBasic();

        SearchEnumMultiSelectField criteria = new SearchEnumMultiSelectField();                       

        criteria.setOperator(SearchEnumMultiSelectFieldOperator.ANY_OF);
        String[] statuses = new String[] { TransactionStatus.BILL_OPEN.toString() };

        stats.getSearchValue().addAll(Arrays.asList(statuses));

        invoiceSearchBasic.setStatus(stats);

Если я закомментирую строку invoiceSearchBasi c .setStatus, я получу все транзакции в порядке (включая те, которые я хочу, со статусом «Открыть»), но когда он там, я ничего не получаю. Излишне говорить, что изменение TransactionStatus.BILL_OPEN.toString () на «Открыть» тоже не работает, это было бы слишком просто!

1 Ответ

0 голосов
/ 05 мая 2020

Хорошо, я решил. Для всех остальных это проблема:

из перечисления TransactionStatus:

@XmlEnumValue("_billOpen")
BILL_OPEN("_billOpen")

, которое при регистрации значения toString дает BILL_OPEN (не _billOpen )

а это _billOpen нам нужно!

решение:

SearchEnumMultiSelectField criteria = new SearchEnumMultiSelectField();
criteria.setOperator(SearchEnumMultiSelectFieldOperator.ANY_OF);
String[] statuses = new String[] { "_billOpen" };
criteria.getSearchValue().addAll(Arrays.asList(statuses));
...