Моя цель - присоединить пользовательскую кнопку Submit к Suitelet, которая отправляет запрос на отправку на внешний сервер. Проблема заключается в том, что при рендеринге страницы функция send()
в моей пользовательской кнопке в form.addButton('submit','Submit', send(form));
работает, когда страница загружается. Из-за этого никакие данные не отправляются в функцию send()
и поэтому не обрабатываются должным образом.Разделение запросов POST для Suitelet
Из чего я понимаю, эта проблема связана с первоначальным запросом POST, передающим Suitelet, а затем вмешивается в запрос POST, который я хочу отправить. Что мне нужно сделать, это разделить или дифференцировать запрос POST, который отображает форму из той, которая отправляет форму. Идеальным было бы это сделать в скрипте пользовательского события, но формы могут использоваться только в Suitelets в SS1.0 ...
Есть ли способ, которым это возможно? Должен ли я использовать SuiteScript 2.0 для достижения этого? Ниже, как мой код выглядит:
function main(request, response){
var form = nlapiCreateForm('Submission Form');
form.addField('one', 'text', 'Field 1');
response.writePage(form);
form.addButton('submit','Submit', send(form));
}
function send(form){ process form data somewhere... }
Вы отправляете SuiteLet обратно себе или вызываете какую-либо другую конечную точку? Было бы полезно, если бы вы предоставили больше контекста и источника, даже дистиллированного, метода send(). Ваш комментарий к Адольфо заставляет меня подозревать, что вам не хватает фундаментальной детали SuiteLets. –
Я упомянул, что отправляю информацию о форме Suitelet на другой сервер, как и не сам себе. Однако я решил свою проблему, разделив функцию send() и сохранил ее как незанятый клиентский скрипт, а затем используя функцию setScript в развернутом скрипте mainFunction. Теперь я получаю ответ от сервера. – VicDid
'response.getParamterValues (form)' бросил меня; это то, что вы сделали бы, если бы пытались получить доступ к представленным полям в обработчике POST для SuiteLet (например, на стороне сервера). Если вы хотите избежать дополнительной сложности клиентского скрипта, вы можете отправить SuiteLet обратно в себя, зарегистрировать полученные данные (если вам интересно), а затем перенаправить запрос на нужную конечную точку. –