首页 > 解决方案 > Netsuite,如何搜索 Open Vendor Bills(交易)

问题描述

看起来很简单,但与 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);

如果我注释掉 invoiceSearchBasic.setStatus 行,我会得到所有交易(包括我想要的状态为“Open”的交易),但是当它在那里时,我什么也得不到。不用说将 TransactionStatus.BILL_OPEN.toString() 更改为“Open”也不起作用,这太容易了!

标签: javanetsuitesuitetalk

解决方案


好的,我已经解决了。对于其他人来说,这就是问题所在:

来自 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));

推荐阅读