Запись в формате Deleted Record
не поддерживается в SuiteTalk версии 2016_2, что означает, что вы не можете запустить Сохраненный поиск и вывести результаты.
Это не редкость при интеграции с NetSuite. :(
Что я всегда делал в этих ситуациях, это создать RESTlet (инфраструктуру API RESTful NetSuite), который будет запускать поиск (или делать все возможное с помощью SuiteScript и не возможно с помощью SuiteTalk) и возвращать результаты .
Из документации:
Вы можете развернуть серверные сценарии, которые взаимодействуют с данными NetSuite следующие RESTful принципы RESTlets расширить API SuiteScript для позволяют пользовательские интеграции с NetSuite Некоторые преимущества использования .. RESTlets включают в себя возможность:
Найти возможности для повышения удобства и производительности, используя , реализуя интеграцию RESTful, которая является более легкой и гибкой, чем веб-службы на основе SOAP. Поддержка безстоящих сообщений между клиентом и сервером. Контролируйте реализацию клиента и сервера. Используйте встроенную аутентификацию на основе токенов или учетных данных пользователя в HTTP-заголовке . Разработка мобильных клиентов на таких платформах, как iPhone и Android. Интеграция внешних веб-приложений, таких как Gmail или Google Apps. Создайте серверы для пользовательских интерфейсов на основе Suitelet. RESTлеты предлагают легкость для разработчиков, знакомых с SuiteScript, и поддерживают больше поведения, чем сетевые службы NetSuite SOAP , которые ограничены функциями, которые называются операциями SuiteTalk. RESTлеты также более безопасны, чем Suitelets, которые становятся доступными пользователям без регистрации. Более подробное сравнение см. В разделе RESTлеты и другие варианты интеграции NetSuite.
В вашем случае это будет почти тривиальный скрипт для создания, он будет собирать результаты и возвращать JSON-кодированный (самый простой) или любой другой формат, который вам нужен.
Скорее всего, вы потратите больше времени на работу с аутентификацией на основе токенов (TBA), чем написание сценария.
[Update] Добавление некоторых примеров кода, связанные с тем, что я говорил в комментариях ниже:
Обратите внимание, что прокси-модель объекта SuiteTalk расстраивает, что он не хватает наследования, что он может сделать такой хороший использование. Таким образом, вы заканчиваете кодом , как ваш SafeTypeCastName(). Отражение - один из лучших инструментов в моей панели инструментов, когда дело доходит до прокси-серверов SuiteTalk. Для примера , все типы * RecordRef имеют общие поля/реквизиты, поэтому отражение экономит ваш тип проверки повсюду, чтобы работать с объектом, который вы подозреваете, что у вас есть.
public static TType GetProperty<TType>(object record, string propertyID)
{
PropertyInfo pi = record.GetType().GetProperty(propertyID);
return (TType)pi.GetValue(record, null);
}
public static string GetInternalID(Record record)
{
return GetProperty<string>(record, "internalId");
}
public static string GetInternalID(BaseRef recordRef)
{
PropertyInfo pi = recordRef.GetType().GetProperty("internalId");
return (string)pi.GetValue(recordRef, null);
}
public static CustomFieldRef[] GetCustomFieldList(Record record)
{
return GetProperty<CustomFieldRef[]>(record, CustomFieldPropertyName);
}
Да, это то, как вы получаете все удаленные записи, но вы не можете получить результаты «Сохраненного поиска» на «Удаленные записи». Не уверен, что это сработает для моего конкретного сценария ... И где источник вашей документации? –
Я не понимаю, что вы хотите сделать. После удаления записей вы не можете получить доступ к записи, все, что вы можете сделать, это поиск по метаданным о действии удаления для целей аудита («Кто мы стреляем !!?») Документация из справки NetSuite, даже лучше представляет собой Руководство по платформе SuiteTalk PDF, которое доступно в SuiteAnswers, а также в базовой справочной системе. Чтобы получить доступ к справки и SuiteAnswers, вам необходимо войти в NetSuite. –
Я добавил обновление к моему вопросу, надеюсь, он может прояснить, чего я пытаюсь выполнить. Может быть, я могу добавить некоторые снимки экрана, если это недостаточно ясно, для некоторых из них я предполагаю, что это немного для понимания, не видя веб-интерфейс NetSuite. –