У меня есть небольшое приложение, которое перебирает результаты «Сохраненного поиска», извлекая значения из нескольких настраиваемых столбцов (упрощенный пример):
var results = searchResults.Select(a => new
{
X = ((SearchColumnBooleanCustomField)a.basic.customFieldList
.First(b => b.scriptId == "custentityX")).searchValue
Y = ((SearchColumnDateCustomField)a.basic.customFieldList
.First(b => b.scriptId == "custentityY")).searchValue
Z = ((SearchColumnSelectCustomField)a.basic.customFieldList
.First(b => b.scriptId == "custentityZ")).searchValue.name
}
Для большинства возвращаемых типов столбцов я получаю значение, соответствующее типу (bool / date / etc ...), но с «SearchColumnSelectCustomField» я не получаю никакого значения в возвращаемом «searchValue.name», оно всегда равно null, однако столбец searchValue.internalID всегда заполняется. Поэтому по какой-то причине он получает выбор, но не возвращает значение из этого выбора.
Как мне получить доступ к текстовому значению, которое я вижу в интерфейсе NetSuite, из SuiteTalk ("searchValue.name")? Нужно ли мне выполнять другой запрос для получения всех пар ключей значений, связанных с этим внутренним идентификатором? Для каждого настраиваемого поля? И если да, то для чего вообще нужно поле имени?
Я пробовал поискать это, но на самом деле нет достаточного количества документации по этому вопросу (или на SuiteTalk в целом), на других языках (PHP / Java) люди упоминают "getSelectValue" (здесь и кратко здесь), я мог бы попробовать это на C #, но я не уверен если они применимы, или если это можно сделать для выбора пользовательских значений. Затем есть несколько ссылок для определения значений ПЕРЕД поиском, это кажется мне излишним, неужели это так сложно? У меня есть десятки настраиваемых полей, к которым я хотел бы получить доступ в своем последнем приложении. Похоже, должен быть способ попроще ...