ディスカッション
AIを用いた自動化で請求書処理を合理化
AIを用いた考察を使用して、計画と予測を迅速化
SuiteWorldまであと41日となりました。以下の最新情報をご確認ください。
アジェンダビルダー公開
SuiteWorld On Airの登録受付開始
新しいNetSuite Prompt Studioコンテスト
その他の最新情報も!
詳細はこのスレッドでご確認ください!
SuiteScript 2.0ユーザーイベントを使用して、レコードの外部IDを更新します
適用
製品: NetSuite 2021.2
シナリオ
これは、従業員が同じでない場合にのみ、従業員の外部IDをその電子メールに設定するサンプルスクリプトです。このスクリプトは従業員レコードにデプロイされ、ユーザーイベントスクリプト(SuiteScript2.0)でafterSubmit()関数を使用します。以下のコードを参照してください
解決策
- scriptContext.oldRecordを使用して、従業員レコードのレコードオブジェクトを取得します
- rec.getValue()を使用して、従業員レコードのexternalIdと電子メールの値を取得します
- 従業員レコードの外部IDと電子メールが同じでない場合にのみ実行されるアクションの条件を作成します
- 条件が満たされている場合は、record.submitFields()を使用して、外部IDの値を従業員レコードの電子メールと同じに設定します
- カスタマイゼーション> スクリプト> スクリプトをデプロイ> スクリプトを検索> 表示> 実行ログに移動して、値を確認します
注:LOGLEVELのデプロイメント設定はDEBUGに設定する必要があります - 従業員レコードの値も確認してください
以下は、SuiteScript2.0コードスニペットのサンプルです。
/**
* @NApiVersion 2.x
* @NScriptType UserEventScript
* @NModuleScope SameAccount
*/
define(['N/record'],
/**
* @param {record} record
*/
function(record) {
function afterSubmit(scriptContext) {
//Step 1
rec = scriptContext.oldRecord;
//Step 2
var extId = rec.getValue({fieldId: 'externalid'});
var empEmail = rec.getValue({fieldId: 'email'});
//Step 3
if (empEmail != extId)
{
//Step 4
record.submitFields({
type: record.Type.EMPLOYEE,
id: rec.id,
values: {
'externalid': empEmail
}
});
}
//Step 5
var newext = rec.getValue({fieldId: 'externalid'});
log.debug('rec id',rec.id)
}
return {
afterSubmit: afterSubmit
};
});
免責事項
ここに記載されているサンプルコードは、法律で認められている最大限の範囲で、いかなる種類の保証もなく、「現状のまま」で提供されています。Oracle+NetSuite社は、開発者がそれぞれの開発プラットフォームにサンプルコードを実装したり、独自の Web サーバー構成を使用したりする際に、個々の成功を保証するものではありません。
Oracle + NetSuite社は、サンプルコードに関連するデータまたは情報の使用、使用結果、正確性、適時性または完全性に関して、いかなる保証も行わず、表明もしません。Oracle + NetSuite社は、明示的にも黙示的にもすべての保証を放棄し、特に、商品性、特定目的への適合性、およびコード、またはそれに関連するサービスやソフトウェアに関連する保証を放棄します。
Oracle + NetSuite社は、本サンプルコードに関連してお客様または他者が行った行為に起因するいかなる種類の直接的、間接的または結果的な損害または費用についても責任を負いません。