簡體   English   中英

使用其他RefNum運算符時,NetSuite中的交易預付款搜索交易訂單會返回錯誤

[英]Transaction Advance Search for Sales Order in NetSuite returning Errors when otherRefNum Operator used

知道為什么下面的代碼將為其狀態返回錯誤(失敗)嗎?

    private SearchResult getTxns()
    {
        TransactionSearchAdvanced tsa = new TransactionSearchAdvanced();

        tsa.columns = new TransactionSearchRow();

        tsa.columns.basic = new TransactionSearchRowBasic();
        tsa.columns.basic.tranId = new SearchColumnStringField[] { new SearchColumnStringField() };

        tsa.criteria = new TransactionSearch();
        tsa.criteria.basic = new TransactionSearchBasic();

        tsa.criteria.basic.mainLine = new SearchBooleanField();
        tsa.criteria.basic.mainLine.searchValue = true;
        tsa.criteria.basic.mainLine.searchValueSpecified = true;

        tsa.criteria.basic.type = new SearchEnumMultiSelectField();
        tsa.criteria.basic.type.@operator = SearchEnumMultiSelectFieldOperator.anyOf;
        tsa.criteria.basic.type.operatorSpecified = true;
        tsa.criteria.basic.type.searchValue = new string[] { "_salesOrder" };

        tsa.criteria.basic.otherRefNum = new SearchTextNumberField();
        tsa.criteria.basic.otherRefNum.@operator = SearchTextNumberFieldOperator.equalTo;
        tsa.criteria.basic.type.operatorSpecified = true;
        tsa.criteria.basic.type.searchValue = new string[] { "BBnB 1001" };

        SearchResult sr = _service.search(tsa);

        return sr;
    }

以下是結果中返回的錯誤。

狀態碼: INVALID_SEARCH_OPERATOR
狀態消息:您需要提供有效的搜索字段運算符。

但是,當我進行搜索時,該運算符會出現在NetSuite UI本身中。 另外,我發現它的NetSuite的文檔中這里

我正在將v2013_1_0用於wsdl的網絡服務版本。

解決方案位於代碼的最后一塊。 試圖設置otherRefNum並引用了Type。 這是更正的代碼。

    private SearchResult getTxns()
    {
        TransactionSearchAdvanced tsa = new TransactionSearchAdvanced();

        tsa.columns = new TransactionSearchRow();

        tsa.columns.basic = new TransactionSearchRowBasic();
        tsa.columns.basic.tranId = new SearchColumnStringField[] { new SearchColumnStringField() };

        tsa.criteria = new TransactionSearch();
        tsa.criteria.basic = new TransactionSearchBasic();

        tsa.criteria.basic.mainLine = new SearchBooleanField();
        tsa.criteria.basic.mainLine.searchValue = true;
        tsa.criteria.basic.mainLine.searchValueSpecified = true;

        tsa.criteria.basic.type = new SearchEnumMultiSelectField();
        tsa.criteria.basic.type.@operator = SearchEnumMultiSelectFieldOperator.anyOf;
        tsa.criteria.basic.type.operatorSpecified = true;
        tsa.criteria.basic.type.searchValue = new string[] { "_salesOrder" };

        tsa.criteria.basic.otherRefNum = new SearchTextNumberField();
        tsa.criteria.basic.otherRefNum.@operator = SearchTextNumberFieldOperator.equalTo;
        tsa.criteria.basic.otherRefNum.operatorSpecified = true;
        tsa.criteria.basic.otherRefNum.searchValue = "BBnB 1001";

        SearchResult sr = _service.search(tsa);

        return sr;
    }

問題出在您的SearchEnumMultiSelectField運算符上。 equalto不是該過濾器的有效運算符; 您將需要改用anyOf

-編輯-由原始評論改編-

SearchTextNumberField不接受字符串數組。 而是嘗試tsa.criteria.basic.otherRefNum.searchValue = "BBnB 1001";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM