Siebel Premier Support & Innovation Packs

As with new Innovation Packs of Siebel in the past years, the Premier Support and Extended Support timelines have been recently been further stretched. For premier support (and that is what matters most) it got stretched until November 2019. Although the Lifetime Support Policy document (LTS) does not mention Innovation Packs but rather calls out CRM 8.1.x / 8.2.x. But that does not make much of a difference, the reason is obviously a legal one. Oracle commits at a minimum to support a major product release for at least five years, and by that has to call out the product name at its original general availability release date. And since increments go in full calendar years only, one will see that the month of November will remain. Only the year where support times lines will end will change. And for now we have a comfortable 4+ years remaining, in premier support.

2015-06-26 15_08_23-Oracle Lifetime Support Policy for Oracle Applications Guide - lifetime-support-

…and there will be a pretty full basket of functionality coming next year! Over the summer Oracle will most likely publish the Statement of Direction for Siebel Release 16.

– Jeroen

Siebel 15 – Overriding The Syngergy Theme

You might or might not have tried this yet. But with R15.0 it was not possible to create an overriding theme, based of the Simplified UI (SUI). I hit this issue while working on visualizing the application menu in a recent post.

SUIApplicationMenu3

First of all, I should not be calling out “Simplified UI” anymore, but call in Synergy.

Last week I took the short-cut by modifying the out-of-the-box theme-sui.css. That is alright to proof the concept, but it should be well known that modification of such deliverables is not recommended.

Because one of my customers will be deploying the Synergy theme, I started researching a bit further why the traditional (and documented) way of adding an overriding theme did not work.

1) Created a LOV for the new theme “SUI Custom”
2) Created a custom .css with the overrides called “theme-sui-custom.css”
3) Create a manifest file entry for this (files/custom/theme-sui-custom.css”
4) Created a manifest admin entry for Application / Theme / PLATFORM_DEPENDENT
5) Added as files with Seq 1 the theme-sui.css and with Seq 2 the theme-sui-custom.css
6) Set the user pref to “SUI Custom” and restart the application.

The end result was terrible 😦

SUITheme

Not only the toolbar menu got messed up, there were other anomalies too. But why? After some further research in appears the the SUI theme is not fully implemented as CSS theme, rather there are also modifications in client side proxies.

Reaching out to product development brought the solution. Creating overriding themes for R15 will be provided per upcoming patch set, targeted for the very first R15.1 patch set. The overall procedure will match the existing procedure. That said, if the Synergy theme needs to be overridden, the language independent code for the new theme should always be prefixed with “SUI_THEME_”.

Other than that, a few additional color schemes will be provided as well.

– Jeroen

OPN – Oracle Cloud Implementation Workshops

Thoracloudroughout the year Oracle will run a number of Oracle Cloud Implementation Workshops for partners. These will including Sales, Service, Platform-as-a-Service, Financials, Project Portfolio Management, Procurement, Human Capital Management and Business Intelligence Cloud Service. These are Invite-Only hands-on workshops delivered by Oracle Development at no fee for partners. Well, Gold+ partner level is required to attend.

The workshops consists of live Webex presentations, live demos and hands-on laboratory exercises.

Oracle Gold+ Partner? See this link for additional information.

– Jeroen

Siebel 15 – Simplified UI… Where Did The Application Menu Go?

The “Simplified UI” introduced along with Siebel 15 about which quite a bit has been already written and said lacks out-of-the-box the traditional Application Menu. The Simplified UI has been introduced to, well, simply the UI. More specifically as an effort to make the application easier to use and create a consistent user experience with other Oracle applications which leverage the same “simplified” design.

The obvious target are tablet deployments. The bigger icons and less clutter definitely makes it easier to navigate the UI. The Simplified UI boulders on the “traditional” Aurora UI introduced a bit more than 6 months back. Time flies. I kind of like the look and feel. But came to the conclusion that the UI has been simplified possible a bit too much for me. I really started missing the application menu.

SUIApplicationMenu2

As you might have guessed, the application menu in reality hasn’t gone. Why? Well, because any Siebel UI theme is just a style sheet and will work against exactly the same DOM. So surely, the application menu would still fly around in the DOM.

But technically speaking, this could change if you’d dive into the CRM Composer. CRM Composer allows you to use expressions on Web Templates, and hence the DOM could be presented differently depending on a selected theme. Think of it like this: with CRM Composer if the “Simplified UI” theme is selected, a web template’s expression such could use e.g. GetProfileAttr(“OUI_THEME_SELECTION”) = “THEME_SUI”) to dynamically filters items such as the application menu from the DOM, making it lighter and more agile.

SUIApplicationMenu1

And yes, there it is. The triggering CSS rule is “display: none;”. Life can be easy. Overriding the CSS rule and positioning it nicely is enough to get back a fully functional application menu. And it doesn’t look that bad neither if you ask me.

.applicationMenu {
display: inline-block;
padding-left: 50px;
}

And here you go.

SUIApplicationMenu3

Of course this override would need to be administered correctly as overriding stylesheet e.g. sui-theme-custom.css, stored in /files/custom/. Will spent a bit more time on this topic in a following post, since I have some troubles in Siebel 15 creating a custom theme. Following the usual practice, it downloaded my theme-sui-custom.css. But along with that also theme-aurora.css got downloaded which messed things up. Anyways, a quick hack would be to modify the theme-sui.css… Fair enough for prototyping!

– Jeroen

Siebel R15 – Incremental Repository Merge Failing During Upgrep

Considering Siebel R15, and upgrading from Innovation Pack 2013 and already downloaded the deliverables? Be sure to re-download the ancestor repository otherwise your upgrade will fail.

Check this related support document which got just released:

Upgrep Process Failed On S_APPET_RX Table, from IP2013 to IP2015 (Doc ID 2021250.1)

– Jeroen

Siebel 15 – Hey Where Did The Threadbar Go?

For the vast majority of Siebel implementations which rather focus on desktop-based deployment, the Tab-based Aurora theme will be the most convenient and efficient theme to use. Although the Synergy (or “simplified” UI) theme definitely looks way more sexy, if it comes down to end-user efficiency for typical call center use cases, efficiency is what matters most.

While test driving Siebel 15.0 these days, I found the Thread bar to be missing. That must have been an error wile tweaking the Aurora theme I guess. Although the Aurora theme has not undergone structural changes between IP14 and Siebel 15, they have been re-generated. Development uses LESS to generate the CSS.

 
Going into Google’s developer tools, the root-cause was identified rather quickly. The Siebel Toolbar was hiding it. A simple tweak to the Aurora CSS was enough as quick fix it. That said, any theme overrides should be done in an custom style sheet. Not in the out-of-the-box theme-aurora.css, which will be likely overwritten by a patch set.

Creating custom override rules as such, is extremely simple with Innovation Pack 14 onwards. Just create a custom css in the /files/custom folder. Administer it as Application / Theme / Platform Independent. Just make sure that it will load after the standard (theme-aurora.css, theme-sui.css, …) theme gets loaded. Because otherwise, well per ‘cascading style sheet’ principle, the custom CSS rules with not override the standard ones!

Next will have to do the necessary and raise a Bug.

– Jeroen

Siebel Open UI – Bringing Back The Context Menu

First a brief teaser about the subject at hand…

 
…It came ranking at third position in the infamous Siebel Hub’s Pyramid of Pains. Those Siebel High Interactivity features we are missing so dearly in Open UI. And true, this is one which I too would like to count. Though I understand perfectly fine the Siebel development team is not keen introducing features which do not meet the web standards based approach they remain focused on. Using a context menu is one of those debatable subjects, should a context menu belong to a web application?

2015-06-01 17_46_56-EasellyThat said, I reckoned to give it a shot. Why? Because the vast majority of the existing Siebel customer base are Call Center “type” of implementations. At least running on a desktop of some kind, with a mouse attached 🙂

Where did I start? Well, just by fooling around with the Google developer tools. My initial idea was to mimic clicking the menu wheel button. Then trying to move the applet menu which would render to another position. I wasn’t looking forward having to deal with the complexities implementing a custom context menu from scratch. Please no. Why re-invent the wheel?

First of all, would the JQuery trigger() statement work against the menu’s element? Just a random applet on a random view.

2015-06-01 19_43_40-_new  3 - Notepad++

Guess what, the applet menu popped up. Hopeful start. Next finding the appropriate mechanism to capture the right-mouse button + some additional key. Just overriding the browser’s context menu by-default did not seem such a good option.  Rather have a key-mouse combination instead, to selectively switch between the regular context menu and the Siebel context menu. I opted for the “Alt” key and started off with the following piece of test code:

2015-06-01 19_54_38-_new  3 - Notepad++

Also, no problem here. Next step, experimenting with the JQuery’s .animate statement. Googling a bit showed that the usage is dead simple. Obviously I did not want a true animation to appear, rather just take the feature with a sub-second transition time, so the beholder of they eye would not witness any transition.

Well, that was the idea. The .animate routine accepts coordinates to instruct where to animate a certain DOM element towards. Just by inspecting the DOM I found that once clicking the menu button identified in this example by the selector $(“#s_at_m_5”), the actual menu appearing would be identifiable by $(#s_at_m_5-menu”). And the event parameter passed by JQuery would provide using e.pageY and e.PageX the needed target coordinates where the mouse pointer was located at the time the .mousedown event occured. Nice.

2015-06-01 21_26_58-_new  3 - Notepad++

So, at the point the context menu started appearing more or less where I expected. More or less because there was a strange Y-axis offset. Interestingly enough when logging the coordinates, these turned out to be correct. But the .animate would give an offset of exact 150px . I can live with that, did not care for now to research this particular point deeper.

2015-06-01 17_30_19-My Accounts_ 3 Com

Because I want to suppress the default context menu from the browser, some additional logic was needed. Googling a bit revealed the simplicity of the solution.

2015-06-01 21_39_45-_new  3 - Notepad++

But what to re-instantiate the default functionality again? Simply the opposite of binding to the “contextmenu” event, unbinding the event.

2015-06-01 21_45_57-_new  3 - Notepad++

Things are looking great so far, time to build an actual applet physical renderer. Starting of as always from solid boiler plate code. Really, it saves you loads of time. Much better than copy/pasting from a previous file.

First of all I had to deal with the simple stuff of making use of dynamic selectors instead. Since I found the menu button and the menu itself (which essentially is a list of links) are created by Siebel using the Applet’s Id being respectively $(“#s_at_m_5”) for the button and $(“#s_at_m_5-menu”) for the menu itself.

Using a straight-forward regular expression (straight-forward here means, I Googled it instead of re-inventing it) I was able to substring this number from the applet’s full Id.

While further building the PR and testing it along, I found that it did not work that well. Inconsistent. Sometimes the default context menu did not get suppressed, sometimes the applet menu showed up but did not animate, sometimes the default context menu did not get re-instantiated, sometimes a mix of these… I believed this to be a timing issue. Therefore setTimeout to the rescue. Maybe there is a better alternative like using the stopPropagate to prevent any events from bubbling up the DOM tree. For now I did not really care to research this further, as I found inserting two setTimeouts did the job.

Code wise this became the end result.

2015-06-01 22_08_11-_Z__Client_PUBLIC_enu_23044_SCRIPTS_siebel_custom_SiebelContextMenuPR.js - Notep

For now I just build it as stand-alone physical renderer for list applets. No big deal to create one for form applets too. Obviously if this should be application-wide behavior we would need to override the respective DEFAULT LIST RENDER and DEFAULT FORM RENDERER physical renderer files instead. An interesting previous post on this subject can be found here, while discussing rendering navigation buttons as glyphs instead of the ugly out-of-the-box sprite.

This concludes this post. I am looking forward to comments, suggestions and improvements. An issue I was yet unable to tackle is that the first time I request the Siebel context menu, it shows up in its original location. Doing a second “Alt” + “Right mouse click” fixes that. Other small deficiency is that sometimes you will see the applet menu flickering in its original location before showing up at the cursor’s location.

The complete PR can be grabbed here.

– Jeroen