ディスカッション
AIを用いた自動化で請求書処理を合理化
AIを用いた考察を使用して、計画と予測を迅速化
SuiteWorldまであと41日となりました。以下の最新情報をご確認ください。
アジェンダビルダー公開
SuiteWorld On Airの登録受付開始
新しいNetSuite Prompt Studioコンテスト
その他の最新情報も!
詳細はこのスレッドでご確認ください!
スクリプトで配送のカスタム配送先住所の上書きを外す
適用
製品: NetSuite 2022.1
シナリオ
配送レコードを動的にロードして、住所サブレコードの宛先(担当者)(id: attention)に詳細を追加するユーザーイベントスクリプトがあります。既述フィールドで値をレコードレベルで追加する場合、配送の住所サブレコードの上書き(id: override)のチェックバックスは有効されて、住所選択(id: shipaddresslist)を「-Custom-」に設定されます。その後、宛先(担当者)のフィールドの変更は住所(id: shipaddress)のテキスト・エリアには反映しません。
解決策
住所のテキスト・エリアに宛先(担当者)の変更は反映するために、送信後機能があるユーザーイベントスクリプトを配送レコードにデプロイします。送信後機能の中身に上書きのチェックバックスが有効の時に外すロジックを作成します。そのようなスクリプトのロジックは以下のサンプルを参照できます。
ユーザーイベントスクリプトの送信後機能を使用します。
配送レコードをロードします。
サブレコードをアクセスします。
上書きのチェックバックスは「T」真かどうかチェックします。
上書きのチェックバックスは「T」真の場合、「F」否にします。
サブレコードをコミットします。
レコードを保存します。
SuiteScript 1.0のサンプルコード:
function userEventAfterSubmit(type) {
var itemFulfillment = nlapiLoadRecord("itemfulfillment", nlapiGetRecordId());
var sub = itemFulfillment.editSubrecord("shippingaddress");
if (sub.getFieldValue("override") == "T") {
nlapiLogExecution("DEBUG", "上書き", "否に設定する");
sub.setFieldValue("override", "F");
sub.commit();
} else {
nlapiLogExecution("DEBUG", "上書き", "既に否となっている");
}
nlapiSubmitRecord(itemFulfillment);
}
SuiteScript 2.0のサンプルコード:
function afterSubmit(scriptContext) {
var itemFulfillment = record.load({
type: record.Type.ITEM_FULFILLMENT,
id: scriptContext.newRecord.id
});
var sub = itemFulfillment.getSubrecord({
fieldId: "shippingaddress"
});
if (sub.getValue({
fieldId: "override"
})) {
log.debug({
title: "上書き",
details: "否に設定する"
});
sub.setValue({
fieldId: "override",
value: false
});
} else {
log.debug({
title: "上書き",
details: "既に否となっている"
});
}
itemFulfillment.save();
}
免責事項
ここに記載されているサンプルコードは、法律で認められている最大限の範囲で、いかなる種類の保証もなく、「現状のまま」で提供されています。Oracle+NetSuite社は、開発者がそれぞれの開発プラットフォームにサンプルコードを実装したり、独自の Web サーバー構成を使用したりする際に、個々の成功を保証するものではありません。
Oracle + NetSuite社は、サンプルコードに関連するデータまたは情報の使用、使用結果、正確性、適時性または完全性に関して、いかなる保証も行わず、表明もしません。Oracle + NetSuite社は、明示的にも黙示的にもすべての保証を放棄し、特に、商品性、特定目的への適合性、およびコード、またはそれに関連するサービスやソフトウェアに関連する保証を放棄します。
Oracle + NetSuite社は、本サンプルコードに関連してお客様または他者が行った行為に起因するいかなる種類の直接的、間接的または結果的な損害または費用についても責任を負いません。