ディスカッション
AIを用いた自動化で請求書処理を合理化
AIを用いた考察を使用して、計画と予測を迅速化
SuiteWorldまであと41日となりました。以下の最新情報をご確認ください。
アジェンダビルダー公開
SuiteWorld On Airの登録受付開始
新しいNetSuite Prompt Studioコンテスト
その他の最新情報も!
詳細はこのスレッドでご確認ください!
SuiteScript 2.0でRESTletの応答としてPDFファイルを出力する
適用
製品: NetSuite 2024.2
シナリオ
統合のためNetSuiteのファイルキャビネットからPDFファイルをRESTLetレスポンスとして返したい
解決策
RESTLetのレスポンスはJSONオブジェクトタイプなので、pdfファイルを直接返すことはできません。回避策としては、N/fileモジュールのfile.getContents();メソッドを使用することができます。このメソッドは、pdfをBASE64エンコードに自動的に変換し、サードパーティのアプリケーションが文字列をデコードして再びpdfフォーマットに変換します。
RESTlet script:
/** * @NApiVersion 2.x * @NScriptType Restlet * @NModuleScope SameAccount */ define(['N/file'], function(file) { function post(dataIn) { if(dataIn){ var recFile = file.load({ id : dataIn.id }); if (recFile.size < 10485760){ return recFile.getContents(); }); } else { return 'File more than 10MB'; } } } return { post : post }; } );
- 上記のコードをコピーし、javascriptファイルとして保存
- NetSuite上で、カスタマイズ>スクリプト>スクリプト>新規に移動
- スクリプトファイルフィールドの横にある”+”ボタンをクリック。新しく保存したjavascriptファイルを探します。
- スクリプトレコードの作成をクリック
- スクリプトレコードのページで、スクリプトレコードの名前を入力。
- 保存&デプロイをクリック
- スクリプトのデプロイメントページで、保存をクリック
RESTletをPOSTman経由でPOSTメソッドで実行し、ペイロードとして以下のJSONを指定します。
JSON Body:
{"id":"123"} Note: "123" is the internal id of the pdf file in the file cabinet in NetSuite.
注:Postmanを使ったRESTletの設定と実行の手順については、参照記事50998 Hello World RESTletを参照してください。
免責事項
ここに記載されているサンプルコードは、法律で認められている最大限の範囲で、いかなる種類の保証もなく、「現状のまま」で提供されています。Oracle+NetSuite社は、開発者がそれぞれの開発プラットフォームにサンプルコードを実装したり、独自の Web サーバー構成を使用したりする際に、個々の成功を保証するものではありません。
Oracle + NetSuite社は、サンプルコードに関連するデータまたは情報の使用、使用結果、正確性、適時性または完全性に関して、いかなる保証も行わず、表明もしません。Oracle + NetSuite社は、明示的にも黙示的にもすべての保証を放棄し、特に、商品性、特定目的への適合性、およびコード、またはそれに関連するサービスやソフトウェアに関連する保証を放棄します。
Oracle + NetSuite社は、本サンプルコードに関連してお客様または他者が行った行為に起因するいかなる種類の直接的、間接的または結果的な損害または費用についても責任を負いません。