ディスカッション
AIを用いた自動化で請求書処理を合理化
AIを用いた考察を使用して、計画と予測を迅速化
SuiteWorldまであと41日となりました。以下の最新情報をご確認ください。
アジェンダビルダー公開
SuiteWorld On Airの登録受付開始
新しいNetSuite Prompt Studioコンテスト
その他の最新情報も!
詳細はこのスレッドでご確認ください!
SuiteScriptを使用して注文書で削除したラインアイテムを取得する
適用
製品: NetSuite 2022.1
シナリオ
SuiteScriptでサブリストアイテムの削除を検出・取得します。
nlapiGetOldRecordかつnlapiGetNewRecordのAPIを使用して、レコードの編集後またはロード時の値を配列にプッシュして、相互比較して、サブリストラインの不足がある事をチェックします。
注:nlapiGetOldRecord()はあるスクリプト種類のみで使用できます。(SuiteAnswers 記事: 10278 Record APIsを参照してください)
解決策
注:ラインアイテム数はループカウントに参照します。
元のレコードのラインアイテム数とフィールド値をnlapiGetOldRecord()で取得します。
値を取得するループを作成して配列にプッシュします。
編集後の現在の残りのサブリストラインアイテム値とラインアイテム数を取得します。
値を取得するループを作成して配列にプッシュします。
指数としてループのカウンタを使用して、各配列の値を比較するループを作成します。
2つ目の配列が空白である事をチェックする条件を追加して、元のレコードから特定の配列の指数を返します。
特定のサンプルとは、以下のサンプルコードで注文書から削除されたサブリストラインアイテムの値を取得します。
//old record array assignment var oldRec = nlapiGetOldRecord(); var oldRecArr = {}; for (var x=1; x <= oldRec.getLineItemCount('item'); x++) { oldRecArr[x] = oldRec.getLineItemValue('item', 'item', x); nlapiLogExecution('DEBUG', 'Old record line values: ', oldRecArr[x]); }