ディスカッション
AIを用いた自動化で請求書処理を合理化
AIを用いた考察を使用して、計画と予測を迅速化
SuiteWorldまであと41日となりました。以下の最新情報をご確認ください。
アジェンダビルダー公開
SuiteWorld On Airの登録受付開始
新しいNetSuite Prompt Studioコンテスト
その他の最新情報も!
詳細はこのスレッドでご確認ください!
SuiteScript 1.0でCSVインポート時のクレジットメモから顧客払戻へ変換するサンプルスクリプト
適用
製品: NetSuite 2025.1
シナリオ
この記事では、SuiteScript 1.0を使用して、CSVインポートで作成されたクレジットメモを自動的にカスタマーリファンド(顧客への返金)に変換する方法について説明します。
ユーザーイベントスクリプト内では、**顧客ID(customer ID)・勘定科目ID(account ID)・支払方法ID(payment method ID)**の3つのパラメータが必須となるため、これらを必ず取得してください。これらが揃っていないと、カスタマーリファンドの作成はできません。
また、**「Run Server SuiteScript and Trigger Workflows(サーバーSuiteScriptの実行とワークフローのトリガー)」**の設定が有効になっていることを確認してください。これが有効でないと、クレジットメモレコードにデプロイされたユーザーイベントスクリプトがCSVインポート時に実行されません。
解決策
「サーバーSuiteScriptを実行してワークフローをトリガー」設定が有効になっていることを確認してください。これにより、CSVインポートが実行されたときに、クレジットメモレコードにデプロイされたユーザーイベントスクリプトも実行されます。
以下によりサーバーSuiteScriptを実行してワークフローをトリガーのプリファレンスが有効となっていることをご確認ください。
- 設定> インポート/エキスポート> CSVインポートプリファレンスに移動
- サーバーSuiteScriptを実行してワークフローをトリガーにチェック
CSVインポートによる作成時にクレジットメモを顧客払戻に変換するサンプルユーザーイベントスクリプトは以下となります。
function userEventAfterSubmit(type) {
var currentContext = nlapiGetContext();
//Checks if context is csv import
if(currentContext.getExecutionContext() == 'csvimport' && type == 'create') {
var applyIdToApply = {selected credit memo ID};
var custID = {selected customer ID};
var acctID = {selected account ID};
var paymethID = {selected payment method ID};
var rec = nlapiCreateRecord('customerrefund', {recordmode:'dynamic'} );
rec.setFieldValue('customer',custID);
rec.setFieldValue('account',acctID);
rec.setFieldValue('paymentmethod',paymethID);
var lineCount = rec.getLineItemCount('apply');
nlapiLogExecution('DEBUG','lines',lineCount);
for(var i=1; i<= lineCount;i++) {