Leveraging Siebel Open UI: Introducing Plug-in Wrappers

Posted by Andrew Dempsey on Thu, Apr 21, 2016 @ 5:29 PM

Introduction

The Boxfusion team have been working with Siebel Open UI for the last 4 years, producing a steady stream of innovations and new approaches to improving Siebel CX and usability.

Working to drive process efficiency and positively impact the responsiveness of the Siebel application, we are pleased to be able to share our insights into Plug-in Wrappers which are a relatively new feature available with the latest Siebel releases.

Plug-in Wrappers offer a means to apply generic functionality to selected types of controls across the whole application, and can therefore help to reduce development and maintenance effort in certain scenarios. This technical blog aims to describe how and why we are making effective use of this powerful new Open UI functionality, relating it to one of our recent customer requirements.

The requirement

Our client had recently made the leap forward into the world of Open UI with an upgrade to IP2015, and an exploration of the potential User Experience enhancements to the application concluded that users would greatly benefit from highlighting critical information on the page.

For example, when a team member examines an account, it should be immediately obvious if the account should be emailed and never called, or if there are any special instructions associated with a customer. In this instance, it was decided that there needed to be a means to draw attention to these important customer preference fields.

It would also be important that this solution could be easily built upon, or extended to other fields in the future with minimal configuration, to allow the business to rapidly respond to evolving requirements.

Choosing a solution

The flexibility offered by Siebel’s core configuration and reinforced by the Siebel Open UI API enables the delivery of these requirements.

For example, a Physical Renderer can be attached to every applet where this functionality needs to exist; we could hard-code some of the conditions, or we could implement a dynamic solution which uses List of Values to check if a field needs to be highlighted. These solutions lack flexibility and the repetition of code is very likely, and as such it is recommended that we avoid these, given that the requirements may change and we may need to handle more fields in the future. In this case, using Plug-in Wrappers gives us the power to write simple code which can be applied to any number of controls across the application, which eliminates the need for repetition and also offers a useful way of tailoring specific functionality to certain types of controls. We have so far discussed two distinctly different types; namely text-areas for Special Instructions, and check-boxes for Boolean controls like Never Call and Never Email.

The following screenshots illustrate what we aimed to achieve for some of the relevant controls:

Siebel Open UI - Check-box Controls Siebel Open UI - Text Area Control

Some simple CSS classes can be used to create these effects:

Siebel Open UI - CSS Classes

The Plug-in Wrappers can make use of these classes in order to apply the desired highlighting effects to the correct controls when the criteria are met.

Implementing the plug-in wrappers

Our solution needed to deal with both text-area controls and check-box controls and as such we created two new Plug-in Wrapper files. We need to add these as manifest files as normal:

Siebel Open UI - Manifest Files

Figure 4 – Manifest Files

In Manifest Administration, Plug-in Wrappers are added as Application/Common UI Objects, with an expression relevant to the implementation. An additional Application/Common UI object must be created, as the vanilla ones cannot be edited.

Siebel Open UI - UI Objects
Siebel Open UI - UI Object Expressions/Files

Figure 6 – UI Object Expressions/Files

 

The content of the Plug-in Wrappers are logically very similar. There are two main aspects to consider:

  1. When should the Plug-in Wrapper be attached to a control?
  2. How and when should the Plug-in Wrapper manipulate the control it is attached to?

Attaching the plug-in wrappers

In order to improve the maintenance and extensibility of our solution, we made use of Control User Properties in order to determine whether the special functionality should run for a control. For every control where the relevant Plug-in Wrapper functionality should run, a Control User Property can be added as in the following screenshot:

Siebel Open UI - Control User Properties

“ClientPMUserProp” user property allows our user property to be accessible to Open UI. We can get control user properties with a function like the following:

Siebel Open UI - Get Control User Properties Function

Figure 8 – Get Control User Properties Function

This means that we can use the existence of the Control User Property to determine whether or not the Plug-in Wrapper should be attached to the control. The following code illustrates how we can achieve this for Text Area controls:

Siebel Open UI - Attach Text Area Plug-in Wrapper

Figure 9 – Attach Text Area Plug-in Wrapper

Similarly, in our Check-box Plug-in Wrapper, we can do something similar to detect whether the check-box should be highlighted:

Siebel Open UI - Attach Checkbox Plug-in Wrapper

Figure 10 – Attach Check-box Plug-in Wrapper

The above examples show how we used two different control user properties to indicate the logic which should be applied by the Plug-in Wrappers. To extend this functionality to other forms in the application, all we need to do is add the control user properties to the relevant controls.

Manipulating the controls

As with Physical Renderers, familiar methods including “Init”, “ShowUI”, “BindEvents” are available to provide the flexibility to execute custom functionality precisely when necessary. In this case, we have used ShowUI, as we need to make sure that the highlighting happens when the controls are first shown, but it doesn’t need to happen more frequently.

Having chosen an appropriate method, the last step is to write the code which will determine whether the control should be highlighted, and apply the necessary styling.

For Check-boxes, the following screenshot shows how we applied the CSS class to highlight the control if the value was “Y”:

Siebel Open UI - Styling Checkboxes

For Text Area controls, if the length is greater than 0, we call an animate function to render a glowing effect:

Siebel Open UI - Animating Text Areas

Figure 12 – Animating Text Areas

Summary

In summary, this example demonstrates how Plug-in Wrappers can be leveraged as a simple but powerful way to extend the functionality of an Open UI-enabled Siebel solution. A requirement to apply generic functionality across the application can be built with some relatively simple JavaScript and jQuery, supported with basic Manifest and Siebel Tools configuration.

This option can be implemented quickly and also provides a foundation upon which further requirements can be supported in the future.

In light of this, some of the key benefits of applying Plug-in Wrappers are:

  • Reduced development time by reducing repetition
  • Reduced complexity for control-specific development
  • Easy to extend solutions

Plug-in Wrappers therefore add to the growing list of reasons to upgrade to the recent Siebel Innovation Packs, and transform your users’ experience.

Ask Our Experts

Boxfusion - Siebel Platinum SpecializationIf you would like to have a better understanding of how you are able to exploit the benefits of Open UI to the full including leveraging new and advanced Open UI techniques such as Plug-in Wrappers, get in touch with us today.

Call us now on +44 203 2834315 or email us at contact@boxfusionconsulting.com.

Leave new comments

  • (will not be published)

Tags

2014 2015 A/B Testing abcs Active Directory Active X ActiveX ADM Adoption ADSI Agent Desktop Analysis Analytics Apache Ant API Applet application builder cloud service ATG Aurora theme Automated Tasks automotive best practice BI BI Apps BI Cloud Service BICS Big Data Big Machines BI Publisher BI Publisher Reports BI Roadmap Brower-based UI Browser UI Business Application Consultants Business Intelligence Campaign Careers Chat chatbot Cloud Cloud CX Cloud Marketplace cloud migration Cloud Services Co-browse Collaboration COM communications consumer goods CPQ CRM CSS Current Vacancies Customer Experience Customer Portal Customisation Custom Object Support CX CX Cloud CX Summit DAC Daily Organiser Daily Planner Data Analysis data model data visualisation Data Warehousing Day Planner digital transformation Eloqua engagement cloud ETL EXADATA Experience routing Facebook financial services FUSE Fusion Fusion CRM G-Cloud gamification Gartner Gmail Google Drive Google Maps API Graduate Graduates higher education high tech html HTML5 IaaS ICS ID Graph IE8 iFrame Incentive Compensation Incident Mapping widget industry Informatica innovation pack Innovation Pack 2015 Innovation Pack 2016 integration integration cloud service Intergration iot IP 15 IP2013 IP2014 IP2015 ip2016 iPaaS Java javascript JConsole Job Role Functionality journey mapping journey to cloud jQuery Judith Sim Knowledge Knowledge base Larry Ellison LDAP Lead Conversion Mapping life sciences Linux Local XE Machine Learning Macros manufacturing Marketing Marketing Cloud May Release 2015 MBeans mcs messenger migration mobile Mobile application Mobile BI mobile cloud service Mobile Compatibility OBI OBIA OBIEE OBIEE 12c ODI on premise OOTB oow OPA Open UI Open UI pathway Open UI Theme Open UI Training Open World OpenWorld OpenWorld 2012 OpenWorld 2013 OpenWorld 2014 OpenWorld 2015 openworld 2016 OPN Opportunity Assessment Oracle Oracle 12c Oracle BI Oracle BI Cloud Services Oracle Cloud oracle commerce Oracle CPQ Cloud Oracle CRM Oracle CX Cloud Oracle Data Visualization Cloud Service Oracle Knowledge Oracle Marketing Cloud Oracle Modern Business Summit Oracle OpenWorld Oracle Partner Network Oracle PartnerNetwork Specialization for Oracle Sales Cloud Oracle Sales Cloud Oracle Service Cloud Oracle Siebel oracle social cloud Oracle Social Network Oracle Transactional Business Inteliigence Oracle Transactional Business Intelligence Oracle Visual Analyzer OSC OSN OTBI Outlook integration PaaS partner relationship management Performance Personalised Directions widget PHP Php upgrade planning tool Plug-in Wrappers POC Portlets prm Proactive proactive cx Recruiting Recruitment Release Release 9 Release 11.1.1.9 Renne James Reporting tool REST RightNow RightNow CX Roadmap SaaS Sales Cloud Salesforce salesforce automation Sales lightbox SAML Self service Service Cloud Service Cloud February 2015 Release Service Cloud Roadmap sfa Siebel siebel 8.1.1.11 Siebel blog siebel CRM Siebel Open UI Siebel Portlets Siebel Roadmap Siebel upgrade siebel ux Simplified UI SOA soap social Social Monitor Social Relationship Management Specialized Specialized Status SRM SSO Syndicated Widgets tco technical consultancy technical experts Testing third party cookie Time Management UI UI Flow UKOUG UNIX upgrade Usability User-facing prompts user experience user interface UX UX Metrics vertical video chat Virtual Assistant visualisation web customer service WebLogic Web Service Web Services wechat whatsapp Widgets WLST WSDL XML XSLT