SuiteScript 2.0 addButton должен вызывать функцию?

Скажем, у меня есть следующий фрагмент, который в основном представляет собой форму с прикрепленной к ней кнопкой. При нажатии я хочу выполнить функцию:

define(['N/ui/serverWidget', 'N/search', 'N/https'],
function(serverWidget, search, https) {
function onRequest(context) {
  if (context.request.method === 'GET') 
  {
    var form = serverWidget.createForm({
      title: 'Some Form'
    });
    // some code
    form.addButton({
      id : '_buttonId',
      label : 'Button Label',
      functionName: "someFunctinonIWantToCallOnClick(myParam)"
    });
      context.response.writePage(form)
    } else {
      // some other code
    }
  }
function someFunctinonIWantToCallOnClick(myParam)
{
  // some code
}
return {
  onRequest: onRequest
};
});

Согласно документации NetSuite: options.functionName string optional

Имя функции, которая будет запускаться по событию клика. Версия 2016 Выпуск 1

Что я делаю не так?


person user2187935    schedule 10.02.2017    source источник


Ответы (1)


В вашем примере есть несколько неправильных вещей.

  1. вы на самом деле не пишете форму. В конце концов вам нужно:

    context.response.writePage(форма);

  2. Ваша функция, которую вы хотите вызвать, находится только на сервере. На клиенте не определяется. Вам нужно включить клиентский скрипт, который имеет эту функцию:

    form.clientScriptModulePath = './myFormClient.js';

person bknights    schedule 11.02.2017
comment
Привет, спасибо за ответ. 1. context.response.writePage(форма); находится прямо перед оператором else. 2. В этом есть смысл, значит, если я правильно понял: мне нужно перенести someFunctinonIWantToCallOnClick(myParams) в клиентский скрипт, привязать его к форме и тогда моя кнопка будет вызывать функцию? - person user2187935; 11.02.2017