Можно ли получить значение элемента строки без загрузки всей записи?

Я пытаюсь ускорить свое приложение ssp, используя nlapiLookupField, где это возможно, вместо того, чтобы загружать всю запись и ее подсписки с помощью nlapiLoadRecord. К сожалению, это не работает с полями строки. Есть ли вызов API для получения значения элемента строки без необходимости использования nlapiLoadRecord?

Я использую 1.0 в соответствии с требованиями SCA.


person Matt    schedule 08.01.2019    source источник


Ответы (2)


К сожалению нет. Только поля тела поддерживаются с nlapiLookupField или search.lookupFields.

person ehcanadian    schedule 08.01.2019
comment
чтобы подтвердить, что позиции никоим образом не доступны без загрузки записи? - person Matt; 08.01.2019
comment
Это верно — вам нужно загрузить всю запись, чтобы получить доступ к позициям. - person ehcanadian; 08.01.2019

nlapiLookupField() ограничен полями тела, однако вы можете использовать другие API поиска (например: nlapiSearchRecord()) для возврата любой информации, к которой может получить доступ сохраненный поиск, которая, очевидно, включает строки элементов. Это особенно полезно, если вы хотите прочитать несколько полей из большого количества записей, но я считаю, что это более эффективно по сравнению с загрузкой записи, даже если вы просто возвращаете один результат, скажем, передавая внутренний идентификатор в качестве одного из фильтров. . Однако я не тестировал сравнение поиска с одним результатом с загрузкой одной записи, поэтому YMMV.

person Krypton    schedule 08.01.2019
comment
у меня сложилось впечатление, что вы не можете получить доступ к позициям из поиска. по крайней мере в 1.0 - person Matt; 08.01.2019
comment
Нет, вы определенно можете получить доступ к позициям, используя nlapiSearchRecord. Попробуйте открыть новую транзакцию в NetSuite, затем нажмите F12, чтобы открыть инструменты разработчика, и выполните в консоли следующее: nlapiSearchRecord("salesorder",null,[["internalid","anyof",1720985]],[new nlobjSearchColumn("entity"),new nlobjSearchColumn("item")]); (замените 1720985 действительным внутренним идентификатором заказа на продажу из вашей системы). Обратите внимание, что возвращается более одной строки. Это будет включать в себя основную строку, строки товаров, строки налогов и т. д. — точно так же, как вы увидите в пользовательском интерфейсе. - person Krypton; 08.01.2019
comment
Я считаю, что это ограничено только транзакциями. к сожалению, моей целевой записью является подписка, и она не соответствует требованиям. извините, что не указал тип моей записи в исходном вопросе. - person Matt; 09.01.2019
comment
Я не использую подписки, поэтому не могу говорить конкретно о них, но это точно не только транзакции. Например, я могу получить все типы строк от товаров и клиентов. Иногда для этого вам нужно использовать соединение, но в основном, если вы можете создать поиск в пользовательском интерфейсе, который возвращает то, что вы хотите, вы можете сделать это и с помощью скрипта. - person Krypton; 09.01.2019