RightNow (RN) introduced a new customer portal framework as part of November 2012 release. This framework is called Customer Portal Framework 3 (CP 3). And a new framework is mainly launched to address some of the challenges & limitations with CP2 (November 2009 release) and for software modernization & modularization.
As part of this blog article, I would cover the features & benefits of CP3. And the activities involved while migrating from CP2 to CP3.
Before we proceed further, let us understand the difference between Migration & Upgrading. Migration is moving from one version of the Customer Portal framework to a newer one. Upgrading is moving from one release of Oracle RightNow CX to a newer release. Before the November 2012 release, upgrading your Oracle RightNow CX application meant you also had to migrate to the new Customer Portal at the same time, absorbing all new features whether you needed them or not.
With CP3, migration process is quite simplified – you migrate the features you want when it’s convenient for you.
CP3 – Features & benefits:
- Independent frameworks and versioning – Control when you migrate and what you migrate. Upgrading to new releases of RN will not have any impact on the existing functionalities of Customer Portal (CP).
- Automatic updates of backward compatible changes – All new upgrades are backward compatible
- Widget builder – Creation of custom widgets become simpler, quicker and accurate using the widget builder feature.
- Widget changes – New structure & process is defined to create custom widgets. This would help to modularize, easy code maintenance & fasten the development process.
- Easy migration – Migrating to new releases doesn’t have any impact on the custom widgets.
- New file structure – Intuitive and easy-to-navigate file structure
- Connect PHP API – Framework Version 3 is built on the Connect PHP API and uses data objects from the Connect PHP API rather than internal APIs
- Software modernization – Usage of YUI 3.X in CP 3 improves performance and simplifies the coding
CP2 to CP3 – Migration Activities:
- Adhering to new file structure
- Widget changes (major activity):
- Widgets created using standard widgets: re-create the widget (extending standard widget) using the widgets builder feature of CP 3. Post creation, edit the code to duplicate (implement) its CP 2 functionality.
- Widgets developed from scratch: If the widget was developed from scratch to implement the functionality which was not available in CP, it is better to convert this widget code to work with CP 3 following CP 3 development standards. The detailed widget conversion process is defined in the migration guide referred below.
- PHP namespacing: To avoid the conflicts between CP reference implementation PHP files and customer files RightNow and Custom namespacing is introduced. RightNow namespace contains reference implementation files and the customized files are available under Custom namespace.
- Modifying display elements,
- Using HTML5 on custom pages: CP3 standard widgets and pages conform to HTML 5 specification. To take advantage of this, it is recommended to use HTML 5 doctype in all custom pages and templates.
- Editing widgets that open in a separate window: As mentioned above, YUI 2.X is replaced by YUI 3.X in CP3 framework. This change impacts display of standard widgets such as Login Dialog, Advanced Search Dialog and Product Category. So standard template needs to be edited as per the procedure mentioned in the document to correct the display.
- Changing the width of the Email Address field: In CP 2, email fields are <input type=”text”>. In CP 3, HTML 5 input types are used for email fields, so email fields are now <input type=”email”>.
- Editing the width of the OpenLogin dialog: The dialog that opens when your customers click one of the open login icons (for example, Facebook, Twitter, or AOL) needs to be adjusted editing OpenLogin CSS file after migrating to CP 3.
- Modifying the SocialBookmarkLink widget: The SocialBookmarkLink in CP3 offers Facebook, Twitter, LinkedIn, and Reddit options, eliminating Delicious, Digg, and StumbleUpon, which were used in CP2, and adding LinkedIn. If you want to continue using the earlier social networking sites with the widget, edit it according to the procedure mentioned in the migration guide.
- YUI resources: If your CP2 custom widgets includes calls to YUI modules, this code has to be modified as per YUI 3.X standard. Refer the guide for the details.
- Adding the PasswordInput widget: To support password hardening, CP 3 includes new password input widget.
- Other functional changes,
- Using high-contrast mode for accessibility: Edit the CSS files as per the instructions in the guide to make your customer portal pages viewable in high-contrast mode.
- Disabling incident receipt emails: In CP 3, by default the customer would be sent email notifications after submitting the question. This feature can be deactivated.
- Changing incident source for rules: If you have been using Connect PHP API in CP2, review your incident rules to see if any of them have an IF condition of Incident.Source equals End-User Pages > Ask a Question. If they do, edit the rule to also add the condition IF Incident.Source equals End-User Pages > End-User Connect
- Removing customer search preferences: The Connect PHP API does not store contact preferences in the database, so the use of profile_default attributes is no longer supported for CP3
- Changing the SmartAssistantDialog widget: Several default values are changed to simplify the code.
- Editing the CommunitySearchResults widget: See if the display_initial_posts attribute of this widget is used in CP2 code. This attributed is not supported in CP3 because community posts are displayed by default when the widget loads on a page. You can remove the attribute from your widget code.
- Login required configuration setting: CP 3 introduced a new configuration setting, CP_CONTACT_LOGIN_REQUIRED, which lets you require your customers to log in to most customer portal pages.
- Adding label attributes: Because of the data structure of the Connect PHP API, some business objects use more generic labels than those used in CP2. So additional attribute named label_input should be added to input widgets in CP3.
- Customer portal changes on the agent desktop,
- Guided assistance styling on the agent desktop: CSS edits to make the desktop styling (of guides) more consistent with what customers experience on your customer portal.
- Replacing variables on the preview page: Variables names to be changed in the CP answers preview page that is displayed to the agents in CX console.
- Converting custom code,
- Using Connect PHP API in custom scripts: If CP2 site includes custom PHP scripts that call normally unavailable product API functions (that is, functions you could use only after applying for access through the whitelist process), you cannot use these functions in Framework Version 3. Instead, check for equivalent functions in the Connect for PHP API.
- Direct SQL queries: CP3 doesn’t support this feature. Replace this with equivalent Connect PHP & ROQL.
- Using PHP5 style constructors: Instead of using the old PHP4 style PHP constructors (where the method name that matches the class name is the constructor), you should use PHP5 style constructors
- Custom models: Your custom models must use namespacing to indicate that they are extending RightNow models.
- Optional code cleanup: Although it’s not necessary, you might want to take the time now to clean up Framework Version 2 code now so that you won’t be required to do it at some future migration
- Replacing business objects: naming convention changes
- Replacing unused widgets: ChatLaunchFormOpen, MobileEmailAnswerLink, and ContactNameInput widgets of CP2 to be replaced with equivalent replacement widgets of CP3.
Please refer to the CP2 to CP3 Migration Guide from Oracle for more details
Originally posted on Prashanth on Technology