Suitescript 2.0 - Suitelet + транзакция_поиск для serverWidget_sublist получить элементы и выбрать подсписки полей - PullRequest
0 голосов
/ 10 января 2020

в следующем скрипте я создал пакет для получения столбцов из поиска. Как я могу установить значение поля в подсписке для выбранных полей, таких как элементы?

В "myLog" я вижу, что получаю внутренний идентификатор правильного элемента - но если я установлю значение как текст или значение. Оно не работает - у кого-нибудь есть идея?

ниже сценария:

/**

* u/NApiVersion 2.x
* u/NScriptType Suitelet
* u/NModuleScope SameAccount
*/
define(['N/record', 'N/redirect', 'N/ui/serverWidget', 'N/search', 'N/log'],
function( record, redirect, serverWidget, search, myLog) {

    function onRequest(context) {

        var request = context.request;

        var response = context.response;

        if (request.method == 'GET') {
// title of the page
var form = serverWidget.createForm({
title: 'Dispatching'
});
var sublist = form.addSublist({
id: 'item',
type: serverWidget.SublistType.LIST,
label: 'Dispatching - List'
});
//Item
        var item\_field = sublist.addField({
id: 'itemid',
type: serverWidget.FieldType.SELECT,
source: 'item',
label: 'item'
});
//price Level
sublist.addField({
id: 'level',
type: serverWidget.FieldType.SELECT,
source: 'pricelevel',
label: 'price level'
});
var button = form.addSubmitButton({
label: 'Process Proforma creation'
});
var salesorderSearchObj = search.create({
type: "salesorder",
filters: [
["type", "anyof", "SalesOrd"],
"AND",
["status", "anyof", "SalesOrd:A", "SalesOrd:B", "SalesOrd:D", "SalesOrd:E", "TrnfrOrd:E"],
"AND",
["item.type", "anyof", "Group", "Kit", "InvtPart"],
"AND",
["closed", "is", "F"],
"AND",
["job.entityid", "haskeywords",],
"AND",
["formulanumeric: {quantity}-{quantityshiprecv}", "notequalto", "0"],
"AND",
["custcol_deldate", "within", "thisweek"],
"AND",
["custcol57", "is", "T"]
],
columns: [
search.createColumn({
name: "item",
label: "Item"
}),
search.createColumn({
name: "tranid",
sort: search.Sort.ASC,
label: "Document Number"
}),
search.createColumn({
name: "custcol12",
sort: search.Sort.ASC,
label: "PS"
}),
search.createColumn({
name: "custcolcustomerpart",
label: "Customer Part"
}),
search.createColumn({
name: "formulatext",
formula: "XXX"
label: "Customer Description"
}),
search.createColumn({
name: "formulacurrency",
formula: "{item.pricelevel12}",
label: "Price €"
}),
]
});
var searchResultCount = salesorderSearchObj.runPaged().count;
log.debug("salesorderSearchObj result count", searchResultCount);
salesorderSearchObj.run().each(function(result) {
// .run().each has a limit of 4,000 results
var searchResult = salesorderSearchObj.run().getRange({
start: 0,
end: 200
});
for (var i = 0; i < searchResult.length; i++) {
var ps = searchResult[i].getValue({name: 'custcol12'});
var item = searchResult[i].getValue({name: 'item'});
var description = searchResult[i].getValue({name: 'formulatext'});
myLog.debug({
title: 'Item in loop',
details: item
});
//SET ITEM
var setItem = sublist.setSublistValue({
id : 'custpage_dispatching',
line : i,
value : item
});

1 Ответ

0 голосов
/ 10 января 2020

Ваш подсписок item, похоже, не имеет sublsit-поля с идентификатором custpage_dispatching, поэтому он не будет устанавливать / обновлять любое значение. Если вы измените свой блок setSublistValue на нижеследующий, он должен работать и устанавливать требуемые значения.

sublist.setSublistValue({
  id: 'itemid',
  line: i,
  value: item
})
...