2016-11-13 76 views
0

我的目标是将自定义提交按钮附加到将外部请求发送到外部服务器的Suitelet。我遇到的问题是,当页面加载时,在我的自定义按钮form.addButton('submit','Submit', send(form));内的功能send()正在渲染页面时正在运行。因此,没有数据被发送到send()函数,因此没有正确处理。分离Suitelet的POST请求

据我所知,这个问题与渲染Suitelet的原始POST请求有关,然后干扰我想发送的POST请求。 我需要做的是分离或区分POST请求,该请求将表单从发送表单的表单呈现出来。理想的做法是在用户事件脚本中完成此操作,但表单只能在SS1.0中的Suitelets中使用...

这有可能吗?我应该使用SuiteScript 2.0来实现吗? 下面是我的代码的外观:在Suitelet

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... } 
+0

您是否将SuiteLet提交回自己或调用某个其他端点?如果你提供了更多的上下文以及send()方法的源代码,甚至可以提炼出来,这将会很有帮助。您对Adolfo的评论让我怀疑您错过了SuiteLets的基本细节。 –

+0

我提到我将Suitelet表单信息发送到另一个服务器,因为它本身不是。但是,我通过分离send()函数并将其存储为未部署的客户端脚本,然后在部署的mainFunction脚本中使用setScript函数解决了我的问题。现在我收到服务器的回应。 – VicDid

+0

'response.getParamterValues(form)'扔我;那么如果您尝试访问SuiteLet的POST处理程序(即服务器端)中的提交字段,则会这样做。如果您想避免增加客户端脚本的复杂性,您可以将SuiteLet发回自己,记录收到的数据(如果您在意),然后将请求转发到所需的端点。 –

回答

3

当你正在做派(表格)您在实际运行的功能。该form.addButton方法第三个参数接受一个字符串,所以你要像做

form.addButton('submit','Submit', "alert('Sending form')")

您可以添加一个字符串化整体功能,如果你想建立自己的职位,虽然我认为它会更容易只需包含一个form.addSubmitButton(标签),并将表单数据发送到同一个Suitelet,然后您可以使用nlapiRequestURL通过POST发送该数据。

+0

那么一个简单的'response.getParamterValues(form)'应该给我提交的表单值。那是对的吗? – VicDid

+0

我的错误,获取值的方式是使用'request.getParameter'而不是'response.getParameter'。按照您的建议,我最终只保留一个Suitelet。谢谢! – VicDid