В Netsuite тип записи заказа на продажу содержит поле с именем « shipaddresslist », которое содержит внутренний идентификатор адреса клиента, связанный с выбранным адресом клиента.
К сожалению, нет столбца поиска для заказов на продажу, который получит значение " shipaddresslist ", поэтому мне пришлось искать обходной путь.
Используя SuiteScript, я смог получить значение этого поля, просматривая результаты поиска, передавая идентификатор заказа на продажу в функцию record.Load () и вызывая record.getValue () для загруженного запись, как показано ниже
Поиск:
var salesorderSearchObj = search.create({
type: "salesorder",
filters:
[
["type","anyof","SalesOrd"],
"AND",
["item.isfulfillable","is","T"],
"AND",
["status","anyof","SalesOrd:B","SalesOrd:E","SalesOrd:D"],
"AND",
["quantitycommitted","greaterthanorequalto","1"],
"AND",
["location","anyof","1","3"],
"AND",
["mainline","is","F"],
"AND",
["item.type","anyof","InvtPart"]
],
columns:
[
search.createColumn({
name: "transactionnumber",
sort: search.Sort.ASC,
label: "Transaction Number"
}),
search.createColumn({name: "entity", label: "Name"}),
search.createColumn({
name: "custcol8",
sort: search.Sort.ASC,
label: "JANコード"
}),
search.createColumn({name: "quantityuom", label: "Quantity in Transaction Units"}),
search.createColumn({name: "statusref", label: "Status"}),
search.createColumn({
name: "quantityonhand",
join: "item",
label: "On Hand"
}),
search.createColumn({
name: "isfulfillable",
join: "item",
label: "Can be Fulfilled"
}),
search.createColumn({name: "department", label: "Department"}),
search.createColumn({name: "otherrefnum", label: "PO/Cheque Number"}),
]
});
Загрузка циклов и записей:
var matches = [];
salesorderSearchObj.run().each(function(result){
var objRecord = record.load({
type: record.Type.SALES_ORDER,
id: result.id,
isDynamic: true,
});
var push = resultToObject(result);
push.addressid = objRecord.getValue({fieldId:'shipaddresslist'});
log.debug("Result:",push);
matches.push(push);
return true;
});
Это прекрасно работает ... За исключением того, что я возвращаю около 1000 заказов на продажу с поиском, это означает, что record.Load () проедает мои блоки управления, прежде чем я смогу завершить поиск и построить весь список результатов.
Короче говоря, есть ли способ вернуть значение " shipaddresslist " из записи заказа на продажу непосредственно из объекта поиска?
Или, возможно, способ динамического захвата этого поля без загрузки всего объекта записи?
Любая помощь очень ценится!