40 Sample Customer Center Customizations

This chapter describes various kinds of customizations you can make to the Oracle Communications Billing and Revenue Management (BRM) Customer Center interface.

Before you read this chapter, you should read:

This chapter describes how you can customize various fields and behaviors in several Customer Center tabs and in the Search feature.

Building and Deploying Customizations

To build and deploy the customizations described in this chapter, see "Building Your Customer Center Customizations" and "Deploying Your Customer Center Customizations".

Customizing Contact Fields

This section describes how you can customize the Customer Center contact fields. The contact fields appear in the Contact page of the New Account wizard and in the Summary tab.

Note:

For simplicity, this section uses Contact page to refer to both the Contact page in the New Account wizard and the contact fields in the summary tab.

Customizing Contact Fields

This section describes how to customize some default contact fields within a contact record. For information on modifying contact field behavior when there is more than one contact, see "Modifying Multiple Contact Behavior". For information on replacing address and contact panels with your own custom panels, see "Using Custom Address Panel and Contact Page".

Adding Drop-Down Lists to the Contact Type and Salutation Fields

To replace the Contact type and Salutation text fields with drop-down lists:

  1. Extend the com.portal.app.cc. PContactPage class.

  2. Call the following methods from the extended class:

    • For the Salutation drop-down list:

      protected final void setValidSalutations(String salutations[],String defaultSalutation)
      super.customizeNow();
        
      
    • For the Contact type drop-down list:

      protected final void setValidContactTypes(String contactTypes[],String defaultContactType)
        
      

    where:

    • The first parameter contains the list of values displayed in the drop-down list.

    • The second parameter specifies the default value for the field.

    Example method call:

    protected final void setValidSalutations(String salutations["Mr.","Ms.","Mrs."],String "Mr.")
    super.customizeNow();
      
    

See also "Disabling Changes to the Contact Type for the First Contact".

Populating Drop-Down List Values from a Properties File

To populate drop-down list values from a properties file:

  1. Add the following line to the CCSDK_Home/CustomerCareSDK/CustCntr/custom/CustomizedResources.properties file:

    mycontactpage.contacttype=Billing,Mailing,Shipping
      
    
  2. Add a method to your customized class, such as the one extended from PContactPage, that reads the drop-down list values from the properties file, as in this example for the Contact type field:

    private String[] getValidContactTypes() {
        try {
            final String delimeter = ",";
            Sring contacttypestring = getResourceBundle().getString("mycontactpage.contacttype");
            return contacttypestring.split(delimeter);
        catch(MissingResourceException e){
        //A customized error message can be added here to informing the end user of the error
        String[] retval = {""};
        return retval;
      
    

    When the list of valid data is read, you can set it by calling the base class method:

    setValidContactTypes(getValidContactTypes(),"Billing");
    

Adding Drop-Down Lists to Address Panel Fields

To replace the City, State/Province, ZIP/Postal, and Country text fields in the Contact page with a drop-down list:

  1. Extend the com.portal.app.cc.PAddressPanel class.

  2. Call the following methods:

    • For the City drop-down list:

      protected final void setValidCities(String[] cities,String defaultCity)
        
      
    • For the State/Province drop-down list:

      protected final void setValidStates(String[] states,String defaultState)
        
      
    • For the ZIP/Postal drop-down list:

      protected final void setValidZips(String[] zips,String defaultZip)
        
      
    • For the Country drop-down list:

      protected final void setValidCountries(String[] countries,String defaultCountry)
        
      

    where:

    • The first parameter is the list of values displayed in the drop-down list.

    • The second parameter specifies the default value for the field.

Populating drop-down list values from a properties file

To populate the drop-down list values from a properties file:

  1. Add the myaddresspanel parameters to the CCSDK_Home/CustomerCareSDK/CustCntr/custom/CustomizedResources.properties file, as in this example for countries:

    myaddresspanel.countries=US,UK,India
    

    Note :

    • This entry is for the country field. Follow the same procedure for the City, State/Province, and ZIP/Postal fields.

    • The list drop-down list values will be displayed in the order placed in the parameter.

  2. Add a method to your customized class, such as the one extended from PAddressPanel, that reads the drop-down list values from the properties file, as in this example:

    private String[] getValidCountries() {
        try {
            final String delimeter = ",";
            String countrystring = "A,B,C,D";
            return countrystring.split(delimeter);
          } catch (MissingResourceException e) {
            String[] retval = { "" };
            return retval;
            }
        }
      
    

    Once you have the list of valid data then you can set it by calling the base class method:

    String defaultCountry = "US";
    setValidCountries(getValidCountries(),defaultCountry);
    

Adding and Removing Item Listeners to Address Field Drop-Down Lists

You can add and remove item listeners to the Address drop-down fields that trigger actions depending on which value the CSR selects. For example, you can use listeners to dynamically populate drop-down list values for the State/Province field depending on the country that the customer service representative (CSR) selects for the Country field.

To add and remove item listeners to the address fields, use these methods:

  • For the Country drop-down list:

    protected final void addCountryListener(ItemListener l)
    protected final void removeCountryListener(ItemListener l)
      
    
  • For the State/Province drop-down list:

    protected final void addStateListener(ItemListener l)
    protected final void removeStateListener(ItemListener l)
      
    
  • For the City drop-down list:

    protected final void addCityListener(ItemListener l)
    protected final void removeCityListener(ItemListener l)
      
    
  • For the ZIP/Postal drop-down list:

    protected final void addZipListener(ItemListener l)
    protected final void removeZipListener(ItemListener l)
    

Modifying Multiple Contact Behavior

This section describes how to customize Contact page fields and behavior for accounts with more than one contact.

Specifying the Contact Type for Each Consecutive Contact

You can specify custom contact types by adding the following parameters to the Customized.properties file in the CCSDK_Home/CustomerCareSDK/CustCntr/custom directory:

  • For the first (mandatory) contact panel, use this parameter:

    custinfo.panel.billingcontact.1=<customcontacttype>
      
    
  • For the second and consecutive panels, use this property:

    custinfo.panel.newcontact.index=<customcontacttype>
      
    

    where index is 2 for the second panel and increments by 1 for each subsequent panel. If a new contact has no corresponding type set, for example if you add a fourth contact and custinfo.panel.newcontact indexes are only available for contacts 1, 2, and 3, the contact type defaults to a blank field.

Disabling Changes to the Contact Type for the First Contact

You can disable the custom Contact type drop-down list for the first contact and restrict the field value to a certain value, such as Billing.

To set a static Contact type value for the first contact, call the following method with the parameter true from the contact type subclass:

protected final void setDisableBillingContactType(boolean b)

Configuring Duplicate Checking for the Contact Type Field

You can configure duplicate checking for the Contact type field by calling the following method with the parameter true:

protected final void setContactDuplicateCheckOn(boolean b)
  

By default, duplicate checking is turned off.

Configuring the Contact Type Validation Error Messages

You can customize the error messages that Customer Center displays when contact type uniqueness validation is enabled. (That is, when setContactDuplicateCheckOn is set to true).

Customer Center displays contact type error messages:

  • When the contact type has already been specified for a previous contact and the CSR specifies a contact type for a secondary contact.

    By default, the error message displayed is Contact type duplicate check is on, cannot be duplicated. To change this message, add the following line to the CCSDK_Home/CustomerCareSDK/CustCntr/custom/CustomizedResources.properties file:

    custinfo.validate.duplicatecontacttypes=Error_Message
      
    

    where Error_Message is the error message string.

    Note:

    Do not put the string in quotes.
  • When the CSR attempts to add a new contact without selecting a valid contact type.

    By default, the error message displayed is Contact type duplicate check is on, inadequate contact types. To change this message, add the following line to the CCSDK_Home/CustomerCareSDK/CustCntr/custom/CustomizedResources.properties file:

    custinfo.validate.inadequatecontacttypes=Error_Message
      
    

    where Error_Message is the error message string.

    Note:

    Do not put the string in quotes.

Using Custom Address Panel and Contact Page

This section describes how to replace the default Address panel and Contact page with your customized versions.

Replacing the Address Panel with a Custom Panel

This section describes how to replace the Address panel with a custom Address panel.

Note:

This procedure only customizes the City, State/Province, ZIP/Postal, and Country fields. The Address field isn't customized with this procedure.

To replace the Address panel of the Contact page with a custom Address panel:

  1. Extend the com.portal.app.cc.PAddressPanel class.

  2. Copy the Java source file of the custom class to the CCSDK_Home /CustomerCareSDK/CustCntr/custom directory.

  3. Open the customized properties file (CCSDK_Home/CustomerCareSDK/CustCntr/custom/Customized.properties) and add this line after the comment statements:

    com.portal.app.cc.PAddressPanel.subclass=MyAddressPanel
      
    

    where MyAddressPanel is the name of your extended class.

  4. Save the file.

Replacing the Contact Page with a Custom Page

This section describes how to replace the Contact page with a custom Contact page.

  1. Extend the com.portal.app.cc.PContactPage class.

  2. Copy the Java source file of the custom class to the CCSDK_Home /CustomerCareSDK/CustCntr/custom directory.

  3. Open the customized properties file (CCSDK_Home/CustomerCareSDK/CustCntr/custom/Customized.properties) and add these lines after the comment statements:

    com.portal.app.cc.PContactPage.subclass=MyContactPage
    contactspage.class=MyContactPage
    helpid.acwizard.contactpage=MyContactPage
      
    

    where MyContactPage is the name of your extended class.

  4. Save the file.

Customizing Fields in the Balance Tab

This section describes how to customize the Action drop-down list in the Balance tab.

Setting the Correct JRadioButtonMenuItem Button

To indicate the balance page state, you can add JRadioButtonMenuItem to the Action drop-down list on the Bills panel of the Balance tab:

  1. Extend PARBalancePage class and create a JRadioButtonMenuItem object.

  2. Add the object by calling the addRadioMenuToAction(JRadioButtonMenuItem) method.

Customizing Fields in the Payments Tab

This section describes how to customize various fields in the Payments tab.

Disabling the Billing Cycle & Tax Setup Link in the Payments tab

You can enable or disable the Billing Cycle & Tax Setup link in the Payments tab and enable or disable the fields in the Tax Setup panel.

  • To enable or disable the Billing Cycle & Tax Setup link in the Payments tab, call the methods in Table 40-1:

    Table 40-1 Payments Tab Methods

    PPaymentPage methods Description

    disableBillingCycleAndTaxSetupLink ()

    Disables the BillingCycleAndTaxSetup link

    enableBillingCycleAndTaxSetupLink ()

    Enables the BillingCycleAndTaxSetup link


  • To enable or disable the fields in the Tax Setup panel, use the new setTaxSetupEnabled(boolean) flag. Call this method from the extended PbillingCycleAndTaxSetupPage class. This method is provided in PbillingCycleAndTaxSetupPage. The default is enable.

Configuring Values in the Billing Day of Month Combo Box

You can configure the list of available values in the Billing day of month spinner field in the Payments - Billing Cycle & Tax Setup panel. For example, you might want to offer a different billing day of month for each brand.

To configure the available values of the Billing day of month spinner field:

  1. Extend the PbillingCycleAndTaxSetupPage class.

  2. Create a custom controlled day of month widget by creating a PIASpinnerField object.

  3. Assign a custom range of values to the object.

  4. Call either the setCustomDomFld(PIASpinnerField sf) or the setCustomDomComponent(Component sf) method, where sf is the name of the custom widget.

    Note :

    • The setCustomDomFld(PIASpinnerField) method replaces the Billing Day of Month field (PIASpinnerField) with another custom PIASpinnerField.

    • The setCustomDomComponent(Component) method replaces the Billing Day of Month field (PIASpinnerField) with another custom Component.

  5. In the Custom billing cycle/tax setup class field in the Configurator Payments tab, specify the custom PbillingCycleAndTaxSetupPage class name. See "Payment Configurator".

Setting the Next Billing Cycle Field to Visible or Not Visible

You can specify whether the Next billing cycle read-only field is displayed in the Payment tab - Billing Cycle & Tax Setup - Billing Cycle panel by using the showNextBillingCycle(boolean) method in an extended PbillingCycleAndTaxSetupPage class.

The showNextBillingCycle(boolean) method is included in PbillingCycleAndTaxSetupPage. This method can be used in the extended payment page to set the Next billing cycle field to visible or not visible.

To set the next billing cycle field to visible or not visible:

  1. Extend the com.portal.app.cc.PPaymentPage class.

  2. Call the showNextBillingCycle(boolean) method. Pass in true (default) for visible and false for not visible.

Customizing the Expiration Date Fields in the Credit Card Panel

You can replace the Expiration date field in the Credit Card panel of the Payment Options dialog box with a custom spinner field. To do this:

  1. Open the customized properties file (CCSDK_Home/CustomerCareSDK/CustCntr/custom/CustomizedResources.properties).

  2. After the comment statements, add this line:

    paymentsetup.creditcard.expirationdate.usespinnerfields=true
      
    
  3. (Optional) Set the year limits for the spinner field by adding these lines:

    paymentsetup.creditcard.expirationdate.spinnerfield.yearmax=Max_Limit
    paymentsetup.creditcard.expirationdate.spinnerfield.yearmin=Min_Limit
      
    

    where Max_Limit and Min_Limit are the upper and lower bounds for the year value.

    Note :

    • Max_Limit must be greater than or equal to the Min_Limit. By default range for the year spinner field is 00 to 99.

    • If Min_Limit is not in the range of 00 to 99, the system uses 00 for yearmin.

    • If Max_Limit is not in the range of 00 and 99, the system uses 99 for yearmax.

    • The month spinner field is hard-coded with the range 00 to 12. If the CSR selects the default 00, an error is thrown and the CSR is prompted to select a correct month value.

  4. Save the file.

Creating a Custom Payment Method

You can add a custom payment method to the New Payment Method drop-down list. This list appears on the Payment Options dialog box, which you can access from the Payments tab and the Account Creation wizard.

Important:

To implement custom payment methods, you must also add them to the BRM system so that your custom methods can be saved and retrieved. See "Customizing Payment Methods" in BRM Managing Customers.

To create a custom payment method:

  1. Create a custom panel that extends the BRM class com.portal.app.cc.comp.PIAPaymentTypePanel.

    The following sample code uses the name NewPayPanel for the custom panel:

    public class NewPayPanel extends com.portal.app.cc.comp.PIAPaymentTypePanel  {
      
    //used while acct creation 
    public void shareInData() { }
      
    //used while acct maintenance
    public void shareInData(PModelHandle model) { }
      
    }
      
    
  2. Create an interface that extends com.portal.app.ccare.comp.PIAPaymentTypePanelBean.

    The following sample code uses the name NewPayBean for the interface:

    public interface NewPayBean extends PIAPaymentTypePanelBean  {
    // NewPayBean is a blank interface 
    //PIAPaymentTypePanelBean interface abstract methods are getting implemented in the controller class
    }
      
    
  3. Create a controller class that extends PIAComponentCollectionBean and implements the interface you created in the previous step.

    The abstract methods in the NewPayBean interface need to be implemented in the new controller class for the custom payment method to work.

    In the following sample code, NewPayBeanImpl is the name of the new controller class:

    public class NewPayBeanImpl extends PIAComponentCollectionBean 
                                  implements NewPayBean   {
      
    //Appends additional create-time information onto the model passed in 
    public void defaultsForStoring(PModelHandle model)
                                  throws RemoteException {  }
      
    //Appends additional update-time information onto the model passed in 
    public boolean defaultsForUpdate(PModelHandle model) 
                                  throws RemoteException {   }
      
    //Appends additional validate-time information onto the model passed in 
    public boolean defaultsForValidation(PModelHandle model) 
                                  throws RemoteException {   }
      
    //Gets the contact Name and Address Info  current account model
    public NameAddressData getNameAddressData(PModelHandle modelHandle 
                                  throws RemoteException {   }
      
    }
      
    
  4. Add the following lines to the CCSDK_Home/CustomerCareSDK/CustCntr/custom/Customized.properties file:

    consumerpayment.options=invoice creditcard ddebit new_pay 
    businesspayment.options=invoice creditcard ddebit new_pay
    maintenance.options=invoice creditcard ddebit new_pay 
    new_pay.selector=id 
    id.class=NewPayPanel 
      
    

    where:

    • new_pay is a text string that identifies your custom payment method internally. It is not the text that will be displayed in Customer Center.

    • id is the ID for the new payment method. The ID must be a 5-digit number starting with 100. 10000 to 10016 are already used in the default version of Customer Center. Do not use the same number for more than one payment method.

    • NewPayPanel is the name of the customized panel class for the new payment method.

      Note:

      The invoice, creditcard, and ddebit strings represent the default payment methods.
  5. Save and close Customized.properties.

  6. Add the following line to the CCSDK_Home/CustomerCareSDK/CustCntr/custom/CustomizedResources.properties file:

    payType.format={0,choice,0#Unknown|10000#Prepaid|10001#Invoice|10002#Debit|10003#Credit Card|10004#Direct Debit (Fr)|10005#Direct Debit|10006#Smart Card|10007#Nonpaying child|10008#Unknown|10009#Undefined|10010#Guest|10011#Cash|10012#Check|10013#Wire-Transer|10014#Inter Bank Payment order|10015#Postal order|10016#Voucher|id#New_Pay_Label} 
    methodofpayment.id=New_Pay_Label
      
    

    where:

    • id is the 5-digit number you entered in Customized.properties.

    • New_Pay_Label is the name displayed in Customer Center for the new payment method.

  7. Save and close CustomizedResources.properties.

Customizing Fields in the Services Tab

This section describes how to customize various fields in the Services tab.

Adding Charges for SIM and MSISDN Changes

To charge for Subscriber Identity Module (SIM) changes and Mobile Station International Subscriber Directory Number (MSISDN) changes:

  1. Do one or both of the following:

    • To charge for SIM changes, subclass the SIMPanel.java class.

    • To charge for MSISDN changes, subclass NUMPanel.java.

  2. Create a customized panel with the necessary fields and pass them to the setCustomData(PIACustomizablePanel) method as an argument.

    The new panel appears at the end of the existing SIM or Number panels in the Services tab.

  3. In the Configurator Service tab, specify the custom class names in the Custom SIM Panel Class and Custom Number Panel Class fields. See "Service Configurator".

Adding a Secondary MSISDN for Supplementary Services

To add a secondary MSISDN for supplementary services:

  1. Create a custom PPurchaseOfferingAction class by extending it.

  2. Specify the class path and key in the customized.properties file, as in this example:

    customized.PurchaseOfferingAction.class=<com.portal.app.cc.TestOfferingAction>
      
    
  3. Create a custom PPurchaseOfferingWizard class by extending it.

  4. Specify the class path and key in the customized.properties file, as in this example:

    customized.PurchaseOfferingWizard.class=<com.portal.app.cc.TestOfferingWizard>
      
    
  5. Create a custom search entry panel class (PTelcoNumberEntryPanel) by extending it.

  6. Specify the class path and key in the customized.properties file, as in this example:

    device.num.search.entry.panel.class=<com.portal.app.cc.tcf.TestNumberEntryPanel >
      
    
  7. Create a custom search results panel class (PTelcoNumberResultPanel) by extending it.

  8. Specify the class path and key in the customized.properties file, as in this example:

    device.num.search.results.panel.class=<com.portal.app.cc.tcf.TestNumberResultsPanel>
      
    
  9. Create a custom purchase offering wizard by extending the PPurchaseOfferingWizard class.

  10. In the extended class, override the protected Object commitData(PModelHandle model) throws RemoteException method.

  11. (Optional) Create a search popup dialog box for the secondary MSISDN number based on the services that are purchased in the current MdelHandle.

To call the custom opcode in commitData, call your own method. If you do not want to call the custom opcode, call super.commitData(model).

To retrieve the default value in the Number Category combo field, use the public void setDefaultToNumCategory(String defaultStr) method in the PTelcoNumberEntryPanel class. This can be called with a string (the default value) as a parameter for setting default values in that field.

Customizing Fields in the Hierarchy Tab

This section describes how to customize various fields in the Hierarchy tab.

Adding a Custom Popup Component to the No Hierarchy Page

You can use the addAdditionalActions(AbstractAction[] actions) method in PAcctNoHierarchyPage to add a custom popup component to the title panel. When this method is called from the PAcctNoHierarchyPage subclass, a new action drop-down is displayed the first time the method is called. If the method has been previously called, the action is added to the existing drop-down list.

To set a label for the action:

  1. Define the public String getMenuLabel() method with a return string as the label value.

  2. Implement the action event by defining the public void actionPerformed(ActionEvent) method.

This sample code describes a PAcctNoHierarchyPage subclass:

public class MyHierarchyPage extends PAcctNoHierarchyPage {
    public MyHierarchyPage() {
        PAddOnAction[] actions = new PAddOnAction[1];
        actions[0] = new MyActionA();
        addAdditionalActions(actions);
    }
}
class MyActionA extends PAddOnAction {
    public MyActionA() {
    }
        public String getMenuLabel() {
    return "Action A";
    }
public void actionPerformed(ActionEvent e){
        //Custom Action
        //JOptionPane.showMessageDialog(null,"My Action A");
    }
}

Adding a Custom NoHierarchy Page

To replace the default NoHierarchy page with a custom NoHierarchy page by using Configurator:

  1. Create a custom NoHierarchy page class.

  2. Start Configurator.

  3. Go to the Custom NoHierarchy Page Class field on the Configurator Hierarchy tab. See "Hierarchy Configurator".

  4. Type the full path of your customized page class name in this field to replace the default No-Hierarchy-Page, as in this example:

    com.myComp.app.CustomNoHierarchyPage
    

Creating Customized Search Dialogs and Disabling the To Field

You can create your own search dialog box and disable the To field in the Move account panel in the Hierarchy tab.

  1. Extend the com.portal.app.cc.PhierarchyMovePage.java class and override the search_actionPerformed(ActionEvent e) method to launch a custom action to call a custom Search dialog box.

    Tip:

    See the sample code MyHierarchyMovePage.java.
  2. Disable or enable the To field in the Move account panel by setting the setEnabledToField(boolean) boolean method.

  3. In the Custom Hierarchy Move Page Class field in the Configurator Payments tab, specify the custom payment setup class name. See "Hierarchy Configurator".

Adding Custom Options to the Actions Drop-Down Lists

The Customer Center SDK includes the methods in Table 40-2 for adding custom options to Action drop-down lists in a hierarchy page:

Table 40-2 Custom Options Methods

Method Description

public void treeValueChanged(TreeSelectionEvent)

Triggers events when items are selected in a hierarchy tree.

public void addAdditionalActions(AbstractAction[])

Accepts the PBASAction and PAddOnAction arrays as arguments.


To add custom options to the Action drop-down lists:

  1. Create a custom action class by extending the PAddOnAction class and overriding these methods:

    • public String getMenuLabel()

    • public void actionPerformed(ActionEvent e)

    • public void treeValueChanged(TreeSelectionEvent e)

      Note:

      Override this method to generate an event whenever a new item is selected in the hierarchy.
  2. Write a custom Account Hierarchy page by extending the PAcctHierarchyPage class and using the addAdditionalActions method to add your action to the Action drop-down menu.

See the sample code in MyHierarchyPage.java.

Customizing Fields in the Sharing Tab

This section describes how to customize fields in the Sharing tab.

Adding a New Sharing Type to the View Drop-Down List

You can create your own resource sharing types and create supporting dialog boxes. To create a new resource sharing type, you must define the sharing type, its Sharing panel and all other dialog boxes, its controller class, a unique ID, and a unique label. See "Customizing the Customer Center Interface".

You then add the new sharing type to the View drop-down on the Sharing tab. To do this, you modify the Customized.properties file to add the new Sharing panel class, controller, and option name used internally. You also modify the CustomizedResources.properties file to add the label you want displayed in the drop-down. You then package these files in the ccCustom.jar file, which should be added to the file you use to run customer center (runCC.bat, for example).

To modify the Customized.properties file and CustomizedResources.properties files:

Note:

These files are located in the CustomerCareSDK_Home/CustomerCareSDK/CustCntr/custom directory.
  1. Open the Customized.properties file in a text editor and add these lines for each new sharing type:

    customercenter.sharing.NewSharingType.class = ClassName 
    customercenter.sharing.NewSharingType.controller = ControllerName
    

    Note:

    Be sure to use fully qualified class and controller names. If there are multiple sharing options in the last line, delimit them with commas.
  2. Add the following line:

    customercenter.sharing.options = PCharge, PDiscount,NewSharingType
      
    

    This line appears only once in the Customized.properties file and should include the option names of the standard BRM resource sharing types (PCharge and PDiscount) as well as the option name of each new sharing type you include in the file. The order of the list determines the order of the options in the View box on the Customer Center Sharing tab.

  3. Save the file.

  4. Open the CustomizedResources.properties file in a text editor and add this line:

    customercenter.sharing.NewSharingType.label = StringName 
      
    

    The string name is the sharing type name you want to appear in the View drop-down.

  5. Save the file.

  6. (Optional) On the Customer Center SDK Sharing tab, select the new group on the Order the Sharing combo box list and click Raise Order or Lower Order to rearrange the drop-down list.

    For information on the Customer Center SDK Sharing tab, see "Sharing Configurator".

The following samples show a customization that adds a new resource sharing group for free Megabytes:

Customized.properties file

customercenter.sharing.PMbyte.class = com.portal.app.cc.sharing.PMbyteSharingPanel
customercenter.sharing.PMbyte.controller = com.portal.app.cc.sharing.PMbyteSharingController
  
customercenter.sharing.options = PCharge, PDiscount, PMbyte
  

CustomizedResources.properties file

customercenter.sharing.PMbytes.label = Megabyte Sharing

Configuring Dynamic Drop-Down Lists

To configure a dynamic drop-down list whose labels and values are based on data stored in BRM:

  1. Create a custom properties object by creating a new class that implements the new LoadCustomProperties interface and providing the implementation for the public Properties loadCustomProperties() method. You must override this method with your custom code that accumulates properties (name/value pairs).

  2. In the Class name for loading the Custom Properties field in the Other tab in Configurator, specify the class name that implements the LoadCustomProperties interface. See "Other Settings".

    Important:

    You must define the fully qualified class name, for example, com.helloworld.MyInterface.

See the sample code in the TestInterface.java file.