私の目標は、カスタムリクエストを外部サーバーに送信するSuiteletに添付することです。私が抱えている問題は、ページをレンダリングするときに、のカスタムボタン内のsend()
ファンクションが、ページがロードされているときに実行されているということです。このため、データはsend()
ファンクションに送信されていないため、適切に処理されません。SuiteletのPOSTリクエストを分離する
私が理解するところでは、この問題はオリジナルのPOSTリクエストでスイートレットをレンダリングし、送信したいPOSTリクエストを妨害しています。 私が行う必要があるのは、フォームを送信するPOST要求を別々に、または区別することです。理想的なのは、これをユーザーイベントスクリプトで実行することですが、フォームは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()メソッドのソース(蒸留さえさえ)を提供した場合は役に立ちます。 Adolfoへのあなたのコメントは、あなたがSuiteLetsの基本的な詳細を見逃していると思わせる。 –
私は、スイートレットのフォーム情報を別のサーバーに送信することに言及しました。しかし、私は問題をsend()関数を分離し、それをデプロイされていないクライアントスクリプトとして格納し、次に展開されたmainFunctionスクリプトでsetScript関数を使用することで解決しました。今私はサーバーからの応答を受け取ります。 – VicDid
'response.getParamterValues(form)'が私を投げた。これは、SuiteLetのPOSTハンドラ(サーバー側)に送信されたフィールドにアクセスしようとしている場合に実行する処理です。クライアントスクリプトの複雑さが増すのを避けたい場合は、SuiteLetを自分自身に戻すことができます。受信したデータをログに記録してから、その要求を目的のエンドポイントに転送します。 –