ディスカッション
AIを用いた自動化で請求書処理を合理化
AIを用いた考察を使用して、計画と予測を迅速化
SuiteWorldまであと41日となりました。以下の最新情報をご確認ください。
アジェンダビルダー公開
SuiteWorld On Airの登録受付開始
新しいNetSuite Prompt Studioコンテスト
その他の最新情報も!
詳細はこのスレッドでご確認ください!
クライントスクリプトでロールによりリスト/レコードフィールドを隠す
適用
製品: NetSuite 2024.2
シナリオ
リスト/レコード種類のフィールドを隠す必要があります。但し、リスト/レコードフィールドの特定の値を隠す方法は以下で行うことができます。
- スクリプトは、Suiteletの時のみリストの値を変更できます。
- または、実際のリスト/レコードフィールドはスクリプトで作成されました。
スクリプトはフィールドのリストの値を変更できません。標準フォームであるクライントスクリプトと同様に、デフォルト値があるフィールドのみ設定できます。
ある条件で、リスト/レコードフィールドの値は隠せます。しかし、リスト/レコードフィールドの値を隠すことの代わり、その値を選択できないようにします。
例えば、経費請求書のレコードで、特定のロールにて承認ステータスの「却下」の選択を防ぎます。
解決策
フィールド検証関数があるクライントスクリプトを作成します。
フィールド検証関数で以下のコードを追加します。
スクリプトを保存して展開します。
SuiteScript 1.0
function clientFieldChanged(type, name, linenum){ var role = nlapiGetRole(); if (name == 'approvalstatus') { // ここに条件を追加します .... if (role == '3'){ // リスト/レコードフィールドの値を取得します var status = nlapiGetFieldValue('approvalstatus'); if (status == '3') { alert('ステータスは「却下」に設定する権限はありません。'); return false; } } // ... 条件終了 } return true; }
SuiteScript 2.0
function fieldChanged(scriptContext) { var userObj = runtime.getCurrentUser(); var role = userObj.role var curRec = scriptContext.currentRecord if (scriptContext.fieldId == 'approvalstatus') { // ここに条件を追加してください .... if (role == '3') { // リスト/レコードフィールドの値を取得 var status = curRec.getValue({ fieldId: 'approvalstatus' }); if (status == '3') { alert('ステータスは「却下」に設定する権限はありません。'); return false; } } // ... END CONDITION } return true; } return { fieldChanged: fieldChanged };
注:特定の条件が満たす場合、リスト/レコードフィールドは選択できなくなります。
免責事項
ここに記載されているサンプルコードは、法律で認められている最大限の範囲で、いかなる種類の保証もなく、「現状のまま」で提供されています。Oracle+NetSuite社は、開発者がそれぞれの開発プラットフォームにサンプルコードを実装したり、独自の Web サーバー構成を使用したりする際に、個々の成功を保証するものではありません。
Oracle + NetSuite社は、サンプルコードに関連するデータまたは情報の使用、使用結果、正確性、適時性または完全性に関して、いかなる保証も行わず、表明もしません。Oracle + NetSuite社は、明示的にも黙示的にもすべての保証を放棄し、特に、商品性、特定目的への適合性、およびコード、またはそれに関連するサービスやソフトウェアに関連する保証を放棄します。
Oracle + NetSuite社は、本サンプルコードに関連してお客様または他者が行った行為に起因するいかなる種類の直接的、間接的または結果的な損害または費用についても責任を負いません。