Netsuite: Базовый поиск SalesOrders возвращает заказы, чей ItemList.Item [i] .Item.Type всегда отсутствует - PullRequest
0 голосов
/ 07 декабря 2018

Я использую SuiteTalk для выполнения базового поиска заказов на продажу.

Я могу получать заказы просто отлично, каждый заказ поставляется с itemList Однако все элементы в itemList отсутствуют RecordRef type.Это даже не ноль.Просто.Отсутствует.

(Вот документация NetSuite , показывающая, что он должен быть частью объекта)

Я предполагаю, что некоторые элементы должны быть type = RecordRef.kitItem.И другие должны быть type = RecordRef.inventoryItem

Как мне убедиться, что все элементы имеют тип RecordRef?Есть ли какое-то разрешение, которое мне нужно включить на моем токене?

enter image description here

1 Ответ

0 голосов
/ 10 февраля 2019

Элементы в itemList являются объектами типа SalesOrderItem и не имеют свойства Type.Чтобы получить Type из SalesOrderItem, вам нужно будет выполнить дополнительный поиск.Ниже приведен расширенный поиск, который я написал, чтобы получить 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;
...