Netsuite:基本搜索 SalesOrders returns 订单,其 ItemList.Item[i].Item.Type 始终缺失

Netsuite: Basic Search of SalesOrders returns orders whose ItemList.Item[i].Item.Type is always missing

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

我可以很好地接到订单,每个订单都带有一个 itemList 但是,itemList 中的所有项目都丢失了 RecordRef type。它甚至不是空的。只是。失踪。

(这里NetSuite documentation表明应该是对象的一部分)

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

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

itemList 中的项目是 SalesOrderItem 类型的对象,并且没有 Type 属性。为了获得 SalesOrderItemType,您必须执行额外的搜索。下面是我编写的高级搜索,用于在给定其内部 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;