ディスカッション
AIを用いた自動化で請求書処理を合理化
AIを用いた考察を使用して、計画と予測を迅速化
SuiteWorldまであと41日となりました。以下の最新情報をご確認ください。
アジェンダビルダー公開
SuiteWorld On Airの登録受付開始
新しいNetSuite Prompt Studioコンテスト
その他の最新情報も!
詳細はこのスレッドでご確認ください!
SuiteScript-ファイルキャビネットからファイルをダウンロードするフィールド
適用
製品: NetSuite 2021.2
シナリオ
NetSuiteでは、データを操作するためにさまざまな方法でフォームをカスタマイズするのが一般的です。フォームに表示されていないが、ファイルキャビネットにある情報にアクセスする必要があるシナリオとします。
解決策
目的のレコードの種類に対して、次の手順に従ってSuiteScriptを使用するソリューションを以下に示します。
フィールドの種類のハイパーリンクを使用してカスタムフィールドを作成
ユーザーイベントスクリプトによりハイパーリンクを作成し、ロード前関数でカスタムフィールドに値を設定
適応させたいレコードの種類にユーザイベントスクリプトをデプロイ
SuiteScript1.0でのスクリプトは以下の様な内容となります:
function userEventBeforeLoad(type, form, request){ // ファイルをロード シンタクスはnlapiLoadFile('fileId') var file = nlapiLoadFile('Images/Desert.jpg'); var url = "https://system.netsuite.com" + file.getURL(); nlapiSetFieldValue('hyperlinkFieldId', url); }SuiteScript 2.0のサンプルは以下となります。 N/Fileモジュールをロードする必要があります。
/** *@NApiVersion 2.x *@NScriptType UserEventScript */ define(['N/record', 'N/file', 'N/url'], function (record, file, url) { // /** // * @param {UserEventContext.beforeLoad} context // */ function beforeLoad(context) { var filePath = file.load({ id: 'Images/Desert.jpg' //ファイルキャビネットでのファイルのパス }); var newRecord = context.newRecord; var urlPath = url.resolveDomain({ hostType: url.HostType.APPLICATION }) + filePath.url; record.setValue({ fieldId: 'hyperlinkFieldId', //カスタムフィールドのID value: urlPath }); } return { beforeLoad: beforeLoad }; });
免責事項
ここに記載されているサンプルコードは、法律で認められている最大限の範囲で、いかなる種類の保証もなく、「現状のまま」で提供されています。Oracle+NetSuite社は、開発者がそれぞれの開発プラットフォームにサンプルコードを実装したり、独自の Web サーバー構成を使用したりする際に、個々の成功を保証するものではありません。
Oracle + NetSuite社は、サンプルコードに関連するデータまたは情報の使用、使用結果、正確性、適時性または完全性に関して、いかなる保証も行わず、表明もしません。Oracle + NetSuite社は、明示的にも黙示的にもすべての保証を放棄し、特に、商品性、特定目的への適合性、およびコード、またはそれに関連するサービスやソフトウェアに関連する保証を放棄します。
Oracle + NetSuite社は、本サンプルコードに関連してお客様または他者が行った行為に起因するいかなる種類の直接的、間接的または結果的な損害または費用についても責任を負いません。