Patch Set 15.3/14.9 Skyrockets Performance!

This result deserves truly a big applause. Oracle development worked closely together with Microsoft engineers to boost Open UI performance. With IP15.3/14.9 a complete overhaul of the List Applet renderer has been delivered. This went into the release quite silent, with no notice in the patch set’s release notes. The improvements were focused to give a boost for Internet Explorer, but the improvement is evident for Chrome (hence other browsers, including Edge) too!

Without more wording, just have a look at the results! These results are just amazing. We can safely say that Open UI will come close or exceed what you have ever experienced with High Interactivity clients. Think of the improvement it will make on mobile deployments for tablets… Skyrocketing performance.

IP153-149Performance

– Jeroen

Advertisements

Siebel Open UI – First Encounter With Edge

Windows 10, exciting enough? The atmosphere around Windows 10 is quite positive if you read the many articles which have been written. So, yesterday I took up the glove and downloaded the Windows 10 .iso file and today I created my first Windows 10 Virtual Box image. Without any pain, smoother than you can imagine. Click, click, click, done!

After having played around a bit, I decided to copy my Demo Quick Start environment across. That is the local dedicated client environment I often use, when I do not need a beefed-up server virtual machine.

Of course, there was one major reason for doing this: taking Edge to the test. My Demo Quick Start environment was functional without any pain. Well, that means for Internet Explorer it was working immediately! Since Edge is the default browser, I reckoned removing the /b (browser) switch should be enough to launch Siebel using the Edge browser. Wrong.

Luckily Richard from the SiebelHub faced the same issue. And the simple workaround would be to open Siebel in either Internet Explorer (or Chrome), then launch Edge and copy/paste the Siebel URL in that browser. Et voilá, works like a charm (as workaround then). Do not close the other browser, otherwise the Siebel client will be closed too.

SyngergyUI_Edge

Next I installed Chrome as well on the virtual machine, and was ready to run my usual performance benchmark test. Expectations are high, because while browsing with Edge some web sites it seems to behave pretty well. Added to this those recent positive benchmarks for Edge.

My joy changed into disappointment quickly. In this test Edge did not outperform even its neighbor. Really, it just behaving very similar to Internet Explorer. That means sluggish. Alright, back to Chrome. Immediately you get that feel of ‘souplesse’ back. Could it be Edge is so sluggish because it has Internet Explorer running in the background? Or does Virtual Box has a dramatic influence? Definitely it requires some more testing, but initial signs are not favoring Edge. Unfortunately.

Win10EdgeIEChrome

– Jeroen

Siebel OUI: Windows 10 + Edge – Ultimate Replacement For IE?

The team at Anandtech.com have produced a nice & updated comparison between the Edge browser which comes with Windows 10 and the usual suspects, Internet Explorer, Chrome and Firefox. Using the most common benchmarks. While I personally have little trust in Sunspider for obvious reasons from the past, apparently Edge performs particularly well according to Octane 2.0 too.

anandtech

It will definitely take a while before enterprise customers will move to Windows 10. The good thing is that Windows 10 will ship with Internet Explorer as well as the Edge browser.

Although Edge is brand-new, according to the HTML5Test it is still quite a bit behind on the competition. So less innovation than expected? This requires digging into a bit deeper at a later moment.

Anyways, eager to upgrade my Windows 8.1 laptop to 10 in the coming days 🙂

– Jeroen

Siebel – Please Don’t Loose My Attachments!

One of my customers recently showed me that using the most straight-forward scenario one could think of, would make them loose attachments in Siebel.

What is the issue? Once you would attach a new file in Siebel you will typically use the “New File” button, which brings up the browser’s File Browser window. You select an attachment, and save it back to Siebel. Easy.

But guess what, if you do not force focus on the “Attachment Applet” but immediately click on the “New File” button, you will still be shown the File Browser. You select your file, and save it back to Siebel.

You’d guess. Although the UI makes you think the attachment is there, it will not be committed to Siebel unless you force focus on the Attachment applet. That could be a simple click on the applet, or filling out some attachment related fields which implicitly forces focus.

AttachmentIssue

Supposedly many customers will potentially hit this issue. But then data loss in production is one of the hardest issues to tackle… Apparently it did not yet get reported to Oracle Support yet. Well, now it has and will be tracked under:

Bug 21119217 – ATTACHMENT NOT SAVED UNLESS ATTACHMENT APPLET IS GIVEN FOCUS

This Bug will quite definitely be fixed soon per patch set. The issue applies to Siebel 15 as well, unsure whether it applies to IP13 (I did not take the time to test it).

Since my customer could not wait until a definite fix from Oracle, I created simple fix for the time being. Done by means of a postload. Not ideal, but since it pertains extremely light script…

It attaches a function to every element with class “siebui-ctrl-file”, which makes it to trigger a click on the button’s parent element once the button is clicked. This forces focus on the Attachment applet, hurray!

AttachmentFix

The file can be downloaded here.

– Jeroen

Siebel IP14 – Watermarking Those Query Assistant Controls

Never gotten remarks from a customer about those two “Query Assistant” controls, which are to a normal end-user less self-explanatory than a developer might think?

QA1

Putting some watermark text behind those controls should be easy. And it is. I did resort to a post loader solution. Although it could have been resolved with a Contron Plugin Wrapper (PW) too. But in this case, the code is so extremely light if written on a post loader… Why take the added overhead of a PW?

$("[aria-labelledby=QueryComboBox_Label]").attr("placeholder", $("[aria-labelledby=QueryComboBox_Label]").attr("aria-label"));

$("[aria-labelledby=QuerySrchSpec_Label]").attr("placeholder", $("[aria-labelledby=QuerySrchSpec_Label]").attr("aria-label"));

Really, there is nothing more to it. Just adding a placeholder and pulling in the “aria-label” attribute. The latter is already translated, so it solves any multilingual issues in one step.
After adding it to the Manifest Administration, this should be the outcome:

QA3

Grab the code here.

– Jeroen

 

Siebel IP14 – Getting Rid Of The “Case Sensitive” Watermark

One of my customers reported a Bug about the inappropriate display of the <Case Sensitive> watermark, is cases where fields got configured to allow case-insensitive queries. To be exact, this is the bug:

Bug 20601528 : OPEN UI: CASE REQUIRED PROMPT UNEXPECTEDLY SHOWN IN HOME PAGE SEARCH APPLET

Diving a bit deeper in the subject, in appears indeed that the Bug is yet unresolved. Although it seems on the surface a cosmetic issue, it could be confusing for end-users. All those years they have been allowed to query case-insensitive on a limited number of fields. Did the developers revoke that privilege?!

Interesting enough, in normal views the behavior is correct. If a certain field is configured for case-insensitive searches, the watermark <Case Sensitive> would not be absent. Just on Home Page views containing Search Applets, the issue is present.

CaseInsensitiveSearchApplet

After some considerations, I choose to solve this with a Control Plugin Wrapper (PW), which would be fit-for-purpose. Since a PW has a global scope, as it is administered as “Application” / “Common” – we would need to add some simple conditional logic. The PW should only trigger if both the Applet Name for the control would match and the Case Sensitivity mode of the control would be “Case Insensitive”. Otherwise, the PW should do nothing.

CIControlPW

Next, I needed to attach the PW to different types of possible controles such as Generic Fields, Picklists, MVG controls… Basically replicate the same statement.

CIControlPW2

I found that the BindEvents events, provided the appropriate timing for my code. Initially I tried ShowUI, but that event apparently triggered too early. Removing the watermark? Just a simply removing the placeholder attribute. The placeholder is a standard HTML5 feature.

CIControlPW3

And well, that’s that. No more, no less.

Grab the complete source here. Simply add it to Manifest Administration under “Application” / “Common” and Bob’s your uncle.

– Jeroen

Siebel IP14 – Enance Checkbox Behavior using Control Plugin-wrapper

A couple of previous posts have already demonstrated the good use of the IP14 Control Plugin-wrapper framework. Today again another simple use-case to demonstrate its potential.

In Open UI it turns out that selecting (or better changing) the value of a check box can be cumbersome. Especially if you want to quickly modify its value in a list applet. Form applets are just fine. Most important of all you need to quite correctly point your cursor on a relatively small area. Further the element containing the check box needs to have focus too, before you can change it.

Experimenting a bit I created a new control plugin-wrapper.

 .

Of course starting-off some solid boiler plate code…!

Implementing the AttachPW event

The usual set-up of a PW requires the implementation of the AttachPW event. This event basically defines for what type of control such as a Dropdown, MVG or Link it should act upon. From the Bookshelf you can get the available controls including the constant value Siebel works with internally. For a Check box this appears to be “SWE_CTRL_CHECKBOX”.

The AttachPW conceptually acts like a bouncer in a bar. It decides if the control’s behavior will be overridden or not. The bouncer will return true, what will make the PW control events to execute. By returning false, well nothing will happen.

PWCheckboxFrom a development perspective, creating plugin-wrappers should be considered carefully, since they could have a widespread impact. A simple typo or a statement which throws an (unhandled) error could make your whole Siebel application could be negatively affected. Further, since the effect of a plugin-wrapper is more or less global, we should refrain from too heavy or process-expensive code.

The AttachPW event allows us to prevent execution of override code, in case this is either not required or would potentially not work at all given the context a certain control type is rendered within.

In this example, I just bluntly return “true”, it passes.

Implementing the ShowUI event

Next, the actual code. All within the ShowUI event.

To get the control’s element is simply done by using the GetEl() method on the object. Following that we need to find the gridcell in the list applet to which the Check box is tied. By testing whether we actually received a value element we select upwards the DOM the closest gridcell.

If that results in a valid element, we can attach a double-click even to it. Whether you use JQuery style or otherwise to bind an event to an element is irrelevant. I opted for JQuery style.

Finally, to make things not more complicated than necessary, I simply simulate and end-user click, again in JQuery style. For that one can use the “trigger” method.

The Out-of-the-box Siebel code will process the event further and “Bob’s you uncle”!

PWCheckbox2

Enjoy and grab the full content here.

– Jeroen