NetSuite CRMモジュールに顧客レコードがあり、顧客レコードにリンクされた追加のカスタムレコードがあります。顧客レコード "顧客ステータス"に関するカスタムフィールドがあります。顧客の状況に基づいてNetSuite:suitscriptを使用してnetsuiteのリンクされたレコードで「新規」ボタンを無効にする方法
我々は(この場合は新しいサービスレコードで)新しいカスタムレコードボタンを無効にしたいです。私はbeforeLoadスクリプトを使用してメインの顧客レコードのボタンを無効にすることができますが、リンクされたレコードに関連するボタンを無効にしようとすると同様のアプローチが失敗します。
/**
* @NApiVersion 2.0
* @NScriptType UserEventScript
*/
define(["N/log", "N/ui/serverWidget"], function(log,ui) {
function disableNewCaseButton(context){
if (context.type == context.UserEventType.VIEW){
var customerStatus = context.newRecord.getValue({"fieldId" : "custentitycustomer_status"});
if (customerStatus !== 1){
var newButton = context.form.getButton({
id: 'newrecrecmachcustrecordso_customer_name'
})
try{
newButton.isDisabled = true;
}
catch(e){
log.debug({
title : "error",
details: e
});
}
}
return;
}
}
return {
beforeLoad: disableNewCaseButton
}
});
レコードが保存されないようにすることはできますが、ユーザーが既に情報を入力している可能性があります(これはサポート/ケースモジュールで行います)。 DOMを操作することでボタンを無効にすることができましたが、クライアントスクリプトの "view"イベントがないので、目的の効果が得られません。 – irfans
@ user3757527ビューモードでクライアントスクリプトを展開することはできませんユーザーイベントを使用してクライアントスクリプトを設定すると、ビューモードでも実行されます。カスタムインラインHTMLフィールドを使用してクライアントスクリプトをビューモードに注入することもできます。 – michoel
ユーザーの使用方法に関するガイダンスイベントスクリプトを使用してクライアントスクリプトを設定するには?クライアントイベントをロードする前にユーザーイベントを使用しますか? – irfans