Netsuite:SalesOrders的基本搜索返回其ItemList.Item[i].Item.Type始终丢失的订单

Netsuite:SalesOrders的基本搜索返回其ItemList.Item[i].Item.Type始终丢失的订单,netsuite,suitetalk,Netsuite,Suitetalk,我正在使用SuiteTalk对销售订单执行基本搜索 我可以很好地获得订单,每个订单都有一个itemList,但是itemList中的所有项目都缺少RecordRef type。它甚至不是空的。只是失踪 (这里显示它应该是对象的一部分) 我希望有些项目应该是type=RecordRef.kitItem。其他应为type=RecordRef.inventoryItem 如何确保所有项目都具有RecordRef类型? 我需要在我的令牌上启用一些权限吗 您的项目列表中的项目是类型为的对象,没有类型属性。

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

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

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

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

如何确保所有项目都具有RecordRef类型? 我需要在我的令牌上启用一些权限吗


您的
项目列表中的项目是类型为的对象,没有
类型属性。要获取
SalesOrderItem
类型
,您必须执行额外的搜索。下面是我编写的一个高级搜索,根据项目的内部id检索项目的
类型

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;

伙计,考虑到NetSuite对“并发连接”的控制有多么严格,如果他们能在更高级别的搜索调用中提供更多返回数据的选项,那肯定是件好事。