Я построил форму с люкслетом, у которой есть подсписок, выпадающий список и кнопка. После того, как пользователь будет отмечать некоторые выборы в подсписке, нажимается кнопка, и выбранные элементы отправляются через остальные в другом месте.Передать переменные из набора пакетов в clientcript в API 2.x?
Suitelet:
@NApiVersion 2.x
*@NScriptType Suitelet
*/
define(['N/ui/serverWidget', 'N/search', 'N/https', 'N/record'],
function(serverWidget, search, https, record) {
function onRequest(context) {
if (context.request.method === 'GET') {
var form = serverWidget.createForm({ ... });
form.clientScriptModulePath = 'path/to/client/script';
// code to build a sublist, add a button and write page
} return {
onRequest: onRequest
};
});
Тогда мой ClientScript что-то вроде:
* @NApiVersion 2.x
* @NScriptType ClientScript
*/
define(
[ 'N/currentRecord', 'N/https' ],
function(currentRecord, https) {
functionSendRequest(sublist //the sublist that I want to get from the suitelet)
{
//code to build json string and send http request
} return {
saveRecord: test
}
});
Теперь, проведя несколько часов на это, N/currentRecord пришло мое внимание (я m noobie с netsuite), и это казалось бы решателем проблем для меня, поскольку он извлекает записи, которые в настоящее время активны в контексте на стороне клиента. Он отлично подходит для выпадающего меню и имеет метод getSublist (параметры), хотя он возвращает record.Sublist, который имеет только метод getColumn(). Таким образом, это не будет работать для меня. Итак, есть ли способ передать параметр sublist для clientcript из набора пакетов после нажатия кнопки?
Эй, спасибо йо u очень много для ответа! Цените это, я попробую. Любопытно, есть ли способ для вызова другой функции внутри пакета suite с опцией functionName на кнопке? Я не мог заставить его работать, а другой парень из stackoverflow предложил использовать скрипт на стороне клиента. Однако отправка исходящих вызовов с клиентской стороны не кажется хорошим подходом. – user2187935
Передайте данные из вашего клиентского листа в свой пакет приложений через POST, используйте одну из переменных в теле POST, чтобы определить тип операции и попросите своего Suitelet вызвать Restlet. –
Удивительный, спасибо, это сработало для меня! – user2187935