この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

TPM UI 編集アクセス権のカスタマイズフック

編集アクセス権は、TPM UI アプリケーションで使用されるメカニズムの 1 つです。ビジネスロジックに応じて特定の機能または UI 要素を個々に有効または無効にできます。

コアソリューションでは、ビジネスロジックに基づいて編集アクセス権のリストが生成されます。ただし、シナリオによっては、次の目的で独自のロジックを適用できる場合があります。

  • カスタムロジックに基づいてプロモーションおよび戦略のグローバルな Editability および Visibility を有効または無効にする。
  • 必要に応じて組み込み Lightning コンポーネントの機能を有効または無効にする。

設定

プロモーションおよび戦略レベルのアクセス権の場合、編集アクセス権は、さまざまなコールで処理されます。プロモーションの編集アクセス権をカスタマイズするには、コール可能な APEX クラスをカスタマイズフックとして挿入します。フックを設定するには、[設定][カスタムメタデータ型][CGCloud Process Customization (CGCloud プロセスのカスタマイズ)] に移動して、次のレコードを追加します。
  • Label (表示ラベル): TPM_Promotion_EARightsAccess_Promotion
  • DeveloperName (API 参照名): TPM_Promotion_EARightsAccess_Promotion
  • クラス: <コール可能な APEX クラス>
  • 有効化: チェック済み
  • Method (メソッド): EARights
Apex クラスの構造
1global class <Your Callable APEX Class> implements System.Callable {
2
3    global Object call(String action, Map<String, Object> args) {
4        // Read Transaction Id
5        String txId = (String) args.get('txId');
6        // Get the Promotion Id
7        Id promotionId = args.get('promotionId'); 
8        // Get the EARigths
9        List<cgcloud.EARightsAccess> promotionRights = (List<cgcloud.EARightsAccess>) args.get('EARights');
10                
11        // Your custom logic goes here
12    }
13}
戦略の編集アクセス権をカスタマイズするには、別の APEX クラスをカスタマイズフックとして挿入します。フックを設定するには、[設定][カスタムメタデータ型][CGCloud Process Customization (CGCloud プロセスのカスタマイズ)] に移動して、次のレコードを追加します。
  • Label (表示ラベル): TPM_Promotion_EARightsAccess_Tactic
  • DeveloperName (API 参照名): TPM_Promotion_EARightsAccess_Tactic
  • クラス: <コール可能な APEX クラス>
  • 有効化: チェック済み
  • Method (メソッド): EARights
Apex クラスの構造
1global class <Your Callable APEX Class> implements System.Callable {
2
3    global Object call(String action, Map<String, Object> args) {
4        // Read Transaction Id
5        String txId = (String) args.get('txId');
6        // Get the Promotion Id
7        Id promotionId = args.get('promotionId'); 
8        // Get the EARigths
9        List<cgcloud.EARightsAccess> tacticRights = (List<cgcloud.EARightsAccess>) args.get('EARights');
10                
11        // Your custom logic goes here
12    }
13}

EARightsAccess クラス

EARightsAccess クラスでは、アプリケーションで使用される編集アクセス権にアクセスできます。リストに新規のインスタンスを追加することはできません。ただし、必要に応じて既存の要素の編集アクセス権を変更できます。

各 EARightsAccess インスタンスには、次のプロパティがあります。
  • Name (名前): String (権限の名前を指定します)。
  • Type (型): String (権限のカテゴリ)。
  • Visible (参照可能): Boolean (参照される項目が参照可能かどうか)。
  • Editable (編集可能): Boolean (参照される項目が編集可能かどうか)。

プロモーションの編集アクセス権

次の表は、カスタマイズフックで変更できるプロモーションレベルのすべての編集アクセス権を示しています。
表 1. プロモーションレベルの編集アクセス権
名前 種別 参照可能 編集可能 説明
cgcloud__Promotion__c オブジェクト SObject が参照可能の場合は true、それ以外の場合は false SObject が編集可能の場合は true、それ以外の場合は false プロモーションへのグローバルアクセスを制御します。プロモーションカードの項目はすべて編集可能です。
PROMOTION_PLANNING_GRID_BUTTON UI 要素 [Promotion template calculation mode (プロモーションテンプレート計算モード)] が [Adhoc (アドホック)] または [Writeback (書き戻し)] の場合 「参照可能」と同じ [display PL (PL を表示)] ボタンの表示を制御します。
PROMOTION_EDIT_BUTTON UI 要素 ユーザーにプロモーションの編集アクセス権がある場合 ユーザーに編集アクセス権がある場合、これはプッシュが進行中のプッシュ可能なプロモーションや、子プロモーションではなく、プロモーションは凍結されていません。 [edit mode (編集モード)] ボタンの表示を制御します。
ADD_TACTIC_BUTTON UI 要素 プロモーションテンプレートに、関連する戦略テンプレートがある場合 TRUE ヘッダーの [Add Tactic (戦略を追加)] ボタンの表示を制御します。
TACTIC_DUPLICATE_BUTTON UI 要素 TRUE TRUE ヘッダー上の重複する戦略、および戦略ナビゲーションコンポーネントの表示を制御します。
PROMOTION_PLANNING_BUTTON UI 要素 TRUE TRUE プロモーションプランニングが表示されるページ領域の表示を制御します。
PROMOTION_ATTACHMENT_BUTTON UI 要素 TRUE TRUE ヘッダーのプロモーション添付ファイルの表示を制御します。
TACTIC_DELETE_BUTTON UI 要素 TRUE TRUE 重複する戦略、および戦略ナビゲーションコンポーネントの表示を制御します。
ROI_KPI_CHART UI 要素 [Promotion Template Calculation mode (プロモーションテンプレート計算モード)] が [Writeback (書き戻し)] の場合 「参照可能」と同じ ROI プロモーショングラフの表示を制御します。
COSTS_KPI_CHART UI 要素 [Promotion Template Calculation mode (プロモーションテンプレート計算モード)] が [Writeback (書き戻し)] の場合 「参照可能」と同じ コストプロモーショングラフの表示を制御します。
SUBACCOUNT_GRID UI 要素 プロモーションテンプレートのサブ取引先が有効の場合 「参照可能」と同じ サブ取引先カードの表示を制御します。
VOLUME_PLANNING_GRID UI 要素 プロモーションテンプレートに [Display VPC (VPC を表示)] がある場合 「参照可能」と同じ VPC カードの表示を制御します。
SCENARIO_PLANNING_BUTTON UI 要素 プロモーションテンプレートに [Enable Scenario Planning (シナリオプランニングの有効化)] があり、プロモーションフェーズがテンプレートのプロモーションクリーニングフェーズでない場合。 「参照可能」と同じ シナリオプランニングメニューの表示を制御します。
PARTICIPATION_CUSTOMER_GRID UI 要素 プロモーションテンプレートに [Is Pushable (プッシュ可能)] がある場合 「参照可能」と同じ プッシュ可能プロモーションの参加顧客カードの表示を制御します。
cg_cloud__Anchor_Account__c 属性 [Anchor Type (アンカー種別)] が [Customer (顧客)] でユーザーに項目への参照アクセス権がある場合は true [Anchor Type (アンカー種別)] が [Customer (顧客)] でユーザーに項目への編集アクセス権がある場合は true [anchor customer (アンカー顧客)] 項目への参照および編集アクセス権を制御します。
cg_cloud__Anchor_Account_Set__c 属性 [Anchor Type (アンカー種別)] が [Customer Set (顧客セット)] でユーザーに項目への参照アクセス権がある場合は true [Anchor Type (アンカー種別)] が [Customer Set (顧客セット)] でユーザーに項目への編集アクセス権がある場合は true [anchor customer set (アンカー顧客セット)] 項目への参照および編集アクセス権を制御します。
cg_cloud__Slogan__c 属性 ユーザーに項目への参照アクセス権がある場合は true ユーザーに [Slogan_Language_1__c] 項目への編集アクセス権がある場合は true [slogan (スローガン)] 項目への参照および編集アクセス権を制御します。
cg_cloud__Date_From__c 属性 ユーザーに項目への参照アクセス権がある場合は true ユーザーに項目への編集アクセス権があり、[Promotion Template Timeframe Determination Policy (プロモーションテンプレートの期間決定ポリシー)] が [Simple (シンプル)] でない場合は true [date from (開始日)] 項目への参照および編集アクセス権を制御します。
cg_cloud__Date_Thru__c 属性 ユーザーに項目への参照アクセス権がある場合は true ユーザーに項目への編集アクセス権があり、[Promotion Template Timeframe Determination Policy (プロモーションテンプレートの期間決定ポリシー)] が [Simple (シンプル)] でない場合は true [date thru (終了日)] 項目への参照および編集アクセス権を制御します。
cg_cloud__Commit_Date__c 属性 ユーザーに項目への参照アクセス権がある場合は true ユーザーに項目への編集アクセス権があり、[Promotion Template Timeframe Determination Policy (プロモーションテンプレートの期間決定ポリシー)] が [Simple (シンプル)] でない場合は true [commit date (コミット日)] 項目への参照および編集アクセス権を制御します。
他のすべての [Promotion SObject (プロモーション SObject)] 項目 属性 ユーザーに項目への参照アクセス権がある場合は true ユーザーに項目への編集アクセス権がある場合は true FLS に基づいて他のすべての [promotion (プロモーション)] 項目へのユーザーの参照および編集アクセス権を制御します。

戦略の編集アクセス権

次の表は、カスタマイズフックで変更できる戦略レベルのすべての編集アクセス権を示しています。
表 2. 戦略の編集アクセス権
名前 種別 参照可能 編集可能 説明
cgcloud__Tactic__c オブジェクト SObject が参照可能の場合は true、それ以外の場合は false SObject が編集可能の場合は true、それ以外の場合は false 戦略へのグローバルアクセス権を制御します。
TACTIC_FUNDS_CARD UI 要素 プロモーションテンプレートに [Display Fund Card (資金カードを表示)] がある場合 「参照可能」と同じ 戦略の資金カードの表示を制御します。
ROI_KPI_CHART UI 要素 [Promotion Template Calculation mode (プロモーションテンプレート計算モード)] が [Writeback (書き戻し)] の場合 「参照可能」と同じ ROI 戦略グラフの表示を制御します。
COSTS_KPI_CHART UI 要素 [Promotion Template Calculation mode (プロモーションテンプレート計算モード)] が [Writeback (書き戻し)] の場合 「参照可能」と同じ コスト戦略グラフの表示を制御します。
SPEND_PLANNING_CARD UI 要素 プロモーションテンプレートに [Display SPC (SPC を表示)] がある場合 「参照可能」と同じ 戦略の SPC カードの表示を制御します。
他のすべての [Tactic SObject (戦略 SObject)] 項目 属性 ユーザーに項目への参照アクセス権がある場合は true ユーザーに項目への編集アクセス権がある場合は true FLS に基づいて他の [tactic (戦略)] 項目への参照および編集アクセス権を制御します。
1global class MyEditAccessRightsHook implements System.Callable {
2
3    global Object call(String action, Map<String, Object> args) {
4        // Read Transaction Id
5        String txId = (String) args.get('txId');
6        // Get the Promotion Id
7        Id promotionId = args.get('promotionId'); 
8        // Get the EARigths
9        List<cgcloud.EARightsAccess> promotionRights = (List<cgcloud.EARightsAccess>) args.get('EARights');
10                
11        // Get the Promotion Template name
12        List<cgcloud__Promotion__c> promos = [
13            SELECT cgcloud__Promotion_Template__r.Name
14            FROM cgcloud__Promotion__c
15            WHERE Id = :promotionId
16            LIMIT 1
17        ];
18        
19        // Check if its the target template
20        Boolean isNoTactics = promos[0].cgcloud__Promotion_Template__r.Name == 'No Tactics';
21        
22        // Search the related EARightsAccess instance
23        for (cgcloud.EARightsAccess acl : promotionRights) {
24            if (acl.Name == 'PROMOTION_EDIT_BUTTON' && isNoTactics) {
25                acl.Visible = false;
26                acl.Editable = false;
27            }
28        }
29        
30    }
31}