Netsuite:SalesOrders的基本搜索返回总是缺少ItemList.Item [i] .Item.Type的订单

时间:2018-12-07 01:53:27

标签: netsuite suitetalk

我正在使用SuiteTalk对销售订单进行基本搜索

我可以得到很好的订单,每个订单都附带一个itemList,但是itemList中的所有项目都缺少RecordRef type。它甚至都不为空。只是。丢失。

(这里的NetSuite documentation显示它应该是对象的一部分)

我希望某些项目应为type = RecordRef.kitItem。而其他人应该是type = RecordRef.inventoryItem

如何确保所有项目都具有RecordRef类型? 我需要对令牌启用一些许可吗?

enter image description here

1 个答案:

答案 0 :(得分:1)

itemList中的项目是SalesOrderItem类型的对象,并且没有Type属性。为了获得Type中的SalesOrderItem,您将不得不执行其他搜索。下面是我编写的用于根据其内部ID检索项目Type的高级搜索。

ItemSearchAdvanced customSearch = new ItemSearchAdvanced()
{
    columns = new ItemSearchRow()
    {
        basic = new ItemSearchRowBasic()
        {
           type = new SearchColumnEnumSelectField[] { new SearchColumnEnumSelectField() },
        }
    },

    criteria = new ItemSearch()
    {
        basic = new ItemSearchBasic()
        {
            internalId = new SearchMultiSelectField
            {
                @operator = SearchMultiSelectFieldOperator.anyOf,
                operatorSpecified = true,
                searchValue = new RecordRef[] { new RecordRef { internalId = itemInternalId } };
            }
        }
    }
};

Client.Service.searchPreferences.returnSearchColumns = true;
SearchResult res = Client.Service.search(customSearch);
ItemSearchRow row = (ItemSearchRow)res?.searchRowList?[0];
return row?.basic?.type?[0].searchValue;