Newer Version Available

This content describes an older version of this product. View Latest

Customize the TPM Calendar Launchpad

To customize the promotion hover content and buttons on the TPM calendar launchpad UI, create a callable Apex class as a customization hook.
  1. Log in to your Salesforce org, and go to Developer Console.
  2. Create a global Apex class that implements the System.Callable interface.
  3. Add the global call method with these parameters.
    • action: String. The behavior for the method to exhibit.
    • params: Map<String,Object>. Arguments with these key value pairs.
      • txId: String. ID of the transaction.
      • promoId: Id. ID of the promotion record.
      • promotionHoverContent: Object of type PromotionHoverContent. The PromotionHoverContent class exposes methods to access the UI elements and content on the promotion launchpad. For a list of all the exposed methods, see PromotionHoverContent Class.
    1global class < Your Callable APEX Class > implements System.Callable {
    2
    3    global Object call(String action, Map < String, Object > params) {
    4        String txId = (String) params.get('txId');
    5        Id promoId = (Id) params.get('promotionId');
    6        PromotionHoverContent promoHoverContent = (PromotionHoverContent) params.get('promotionHoverContent');
    7        // Your custom logic goes here
    8        return null;
    9    }
    10}
  4. To modify the content and the UI elements, use the methods exposed by the PromotionHoverContent class.
    You can add a maximum of 4 attributes and 8 KPIs on a promotion launchpad.
    Here’s a sample Apex class that modifies the header content, adds attributes and KPIs, and sets the visibility of the edit button to false on the promotion launchpad.
    1global class TPM_TC_LaunchPad_Cust implements System.Callable {
    2    global class CustomizationException extends Exception {}
    3
    4    global Object call(String action, Map < String, Object > params) {
    5        String txId = (String) params.get('txId');
    6        Id promoId = (Id) params.get('promotionId');
    7        PromotionHoverContent promoHoverContent = (PromotionHoverContent) params.get('promotionHoverContent');
    8        List < PromotionHoverContent.Attribute > attrs = promoHoverContent.getAttributes();
    9        promoHoverContent.setAttributes(
    10            new List < PromotionHoverContent.Attribute > {
    11                new PromotionHoverContent.Attribute(
    12                    attrs[0].getLabel() + '_cust',
    13                    attrs[0].getValue() + '_cust'
    14                ),
    15                new PromotionHoverContent.Attribute(
    16                    attrs[1].getLabel() + '_cust',
    17                    attrs[1].getValue() + '_cust'
    18                )
    19            }
    20        );
    21        List < PromotionHoverContent.Kpi > kpis = promoHoverContent.getKPIs();
    22        List < PromotionHoverContent.Kpi > newKpis = new List < PromotionHoverContent.Kpi > ();
    23        for (PromotionHoverContent.Kpi kpi: kpis) {
    24            newKpis.add(
    25                new PromotionHoverContent.Kpi(
    26                    kpi.getReadCode(),
    27                    kpi.getLabel() + '_cust'
    28                )
    29            );
    30        }
    31        promoHoverContent.setKpis(newKpis);
    32        promoHoverContent.setHeaderRow1(
    33            promoHoverContent.getHeaderRow1() + '_cust'
    34        );
    35        promoHoverContent.setHeaderRow2(
    36            promoHoverContent.getHeaderRow2() + '_cust'
    37        );
    38        promoHoverContent.setHeaderRow3(
    39            promoHoverContent.getHeaderRow3() + '_cust'
    40        );
    41        promoHoverContent.setEditButtonVisible(false);
    42        return null;
    43    }
    44}
  5. From Setup, in the Quick Find box, enter Custom Metadata Types, and then expand Custom Metadata Types.
  6. On the CGCloud Process Customization row, click Manage Records.
  7. Click New, fill in these details, and then save your work.
    • Label: TPM_TradePlanning_PromotionHoverContent
    • DeveloperName: TPM_TradePlanning_PromotionHoverContent
    • Class: <Your Callable APEX Class>
    • Method: call
    • Enabled: Select the checkbox.
The Apex customization hook is enabled. The call method updates the promotion launchpad on the trade calendar based on your custom logic.