Integrating External Web Service Content into Siebel with Open UI

Historically, when we integrate Siebel with external systems we do so via business services and workflows at the Siebel Server layer.  Given the new capabilities of Open UI, Jon and I thought it would be fun to see if we could write a plug in wrapper to call a .NET web service that was hosted on a Linux server and display it in a user friendly format.  Note that hosting .NET on Linux is a recent development from Microsoft.  For more information on how to host .NET applications on Linux, please see Jon’s post here.


What’s interesting to us is that this approach allows you to deliver a robust, feature-rich integration solution into the Siebel UI without having to deploy anything more than a few JavaScript and CSS files.  Whereas before we needed to develop, test and manage the deployment of an SRF, workflows, data maps, BCs, applets, etc. now it's only a couple of files.  Moreover, to deploy these files to Production, no complex deployment guide is needed.  It’s just a simple copy/paste and some new Manifest Administration records.  


This is an exciting idea to us and one we’d like to explore further in future posts.  We are particularly interested in identifying the pros and cons of doing this vs. the more traditional integration approach when faced with developing for an integration requirement.  Be on the lookout for another post from us soon where this will be discussed.



Ok about the demo… Our idea is that perhaps it would be nice for sales team members to be able to invoke a popup by clicking on an icon next to a contact’s email address.  This popup would match the contact’s email address to the emails in the user’s actual inbox/outbox and display the related emails in a table within the popup.  The user could then take action on these emails (Reply, Forward, etc.) or could even use the information to interact with the Siebel Object Layer (To create new activities for example).  Keep in mind that this could represent anything but the general framework and interactions would be the same.  Say for example that instead of the integration pointing to an email server to get emails, it’s pulling data from a backend invoicing system.


How It Works

First, here’s a list of the components that are involved and how they contribute to the final solution:

  • A .NET web service that runs on Linux – We’re not going to go into much detail here but just be sure that your service can accept Ajax calls.
  • The Magnific Popup jQuery Plugin – We know there are many examples using Colorbox but we thought that we’d try something different.  Our example uses Magnific Popup.  Check them out here.
  • The DataTables and TableTools jQuery Plugins – We use them to call our web service and display the output in a nicely formatted table along with buttons and other controls that allow users to interact with the data.  For more information on these plugins, please visit them here.
  • BSPREmailIntgrPW.js – This is our custom written plug in wrapper that renders the email icon, invokes the integration and basically puts it all together.  I’d like to credit Duncan Ford and his work in developing a template generator for this.  I used it and found it to be extremely helpful.  You can find it here


Here's a video of the integration in action.


Final Thoughts

The fact that we can display and interact with external data via a table in a popup provides a great alternative to the traditional approach for solving integration requirements.  Using the plug in wrapper, we can attach this integration to controls across the application and contain our changes within a couple of files for easy management and deployment.  


If you're going to try and replicate, here are some considerations you should keep in mind:

  • It may be helpful to mock up the functionality in a basic HTML file first.  This allows you to work through the usability of your solution first without introducing the complexities of Siebel.  Afterwards, you can migrate your code to a PM, PR or PW.
  • Since most of your changes are contained within files, it's important that you utilize a version control system so that you can revert back to a prior version if necessary.
  • Be mindful of how your JavaScript and CSS changes may collide with other JS and CSS customizations that have been made or the out of the box configuration that has been provided by Oracle.
  • Keeping track of all these customizations can quickly become a mess.  If your team expects to do a lot of Open UI development, spend some time now to figure out how to reduce duplication and manage these types of changes going forward.


We hope that sharing this has been helpful.  If you would like a copy of our custom plug in wrapper shown in the video, please request it by clicking the button below.