No More Java Applets In Chrome – Does It Impact You?

java_chrome_42_plugin
Since Google published the “NPAPI de-support statement for Chrome” on September 2013, it was a matter of time. And with Chrome R42, the April ’15 release it was a fact. The NPAPI got disabled.  For Chromium, the Linux fork of Chrome, it was already with R35 by the way. Thanks to @lex for the notification. Since I was running with Chrome R41 I did not notice it (yet).

Now, the question is – what could the impact be? Obviously you should be using Chrome to have an impact. Although Oracle Siebel development is not promoting the use of Java Applet based integration (or any other browser plug-in), with Siebel Innovation Pack 2014 Oracle implemented… a Java Applet. Specifically meant for managing file attachments realizing like-for-like functionality conforming to the High Interactivity client. Basically the Java applet materializes two main functions:

1) It allows to open attachments with known extensions immediately after downloading the file

2) It allows edit & save-back

To realize both functions, it requires any type of browser plug-in, to bridge the gap between the browser and the OS. And a Java applet makes the most sense.

NPAPI_FA3

NPAPI_FA1

Well, this standard IP14 functionality will cease to work with Chrome R42. But so will any other Java Applet bespoke integrations. And for sure, there are a number of such integrations under development or in production. Since with OpenUI the ActiveX-based Siebel Web Client Automation framework is no longer a valid option, Java has been the resort of choice.

UPDATE: Google plans to take away NPAPI completely per September 2015.

For the time being Chrome allows to re-enable the NPAPI. There are basically three options:

  1. Entering “chrome://flags/#enable-npapi” in the address bar, select “Enable” and “Relaunch” Chrome. NPAPI_Enable
  2. Start Chrome using an addtional swith “–enable-NPAPI”NPAPI_Enable2
  3. Through Group Policies using Chrome Administrative Templates. This allows to enable NPAPI plug-ins selectively. NPAPI_Enable3.

Next question is when Firefox will move in the same direction? For Internet Explorer, the Java Browser Plug-in is ActiveX based. But a valid question is whether the new “Spartan-generation” browser will support the NPAPI framework. Spartan will quite surely not support ActiveX :-)

Talking Spartan, recently Microsoft released it for beta testing along with Windows 10. First results are not very promising.

Quoting:

Spartan is meant to be, well, Spartan. Internet Explorer is commonly viewed as bulky and slow, and Microsoft wants to fix that perception. Unfortunately, Spartan doesn’t do as much as expected to challenge user preconceptions.

And further…

Spartan has a new Web browsing engine called Edge. Well, kinda new. It’s actually a fork of Trident, the browser engine used by Internet Explorer, but changed to improve Web standard support and performance. Presumably, the gap between it and Trident will only grow over time, as Microsoft says that Internet Explorer’s legacy engine won’t receive any of Edge’s updates.

For now, though, it seems that Edge is not far removed from its predecessor. We started out testing with the Peacekeeper Web-browsing benchmark, a test that broadly covers numerous performance metrics, and it gave Spartan no advantage.

But then… and this is really important… Octane is the Google-driven suite of benchmark tests. And it turned out in previous tests done by me, being the best predictor for Siebel Open UI. So quoting…

Ah, at last, we have a result that’s favorable to Spartan! It appears that Microsoft has done serious work upping the browser’s JavaScript capability, and that’s an incredibly important feat given how widely it’s used.

The excellent Octane result may explain the feel of the browser, which is quicker than the benchmarks suggest. In typical use, on Web pages that don’t include games or video, Spartan feels just as snappy as Chrome and actually quicker than Firefox. Pages scroll smoothly, even when they include numerous intensive elements, such as high-resolution photos, with no hint of unsightly check-boarding (on our desktop with an Intel quad-core, at least). Multiple tabs eventually slowed the browser, but only after opening 15 or more.

So I can safely end a bit more positive on the Spartan project. Unfortunately Spartan will only be released on Windows 10. No backport as of yet to Windows 7 / 8 (even if it were technically feasible). And we can safely say that it will take years before enterprises will change from Windows 7 to 10 (my guestimate).
– 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

IP 14 – Displaying The Siebel Server (The Sequel)

Last year I spent a post explaining a rather simple means enabling to display the Siebel Server name in OpenUI, IP13 at that time. Given the number of questions the article raised I opted to spend another post explaining it a bit further, improving it a bit and including the sources for IP14. But for a starter, have a quick read of the previous post.

The end result we aim for would be along these lines:

ShowSiebelServerName

So, where do we start?

        1. First of all, the concept I came up with last year is based on the fact that every Siebel Server host will have an OS system variable defined. In my case it has been named “COMPUTERNAME“. So basically every Siebel Server will need to be configured with an environment variable, named as you’d like it. On Windows it’s easy, on Linux/Unix flavors you’d need to add it to the .profile for the user under which the Siebel Service process runs.SiebelServerNameEnvVar
        2. To add-in a little flexibility I decided to create configurable System Preference which would hold the name of the environment variable. So you would be able to call it SIEBEL_SERVER_HOST or whatever you prefer. This could be an optional step, but hard-coding such parameters, should be a no-no to all among us. I named the System Preference SiebelHostEnvVar. 

          syspref

        3. The next step would be to configure two new fields in the the Personalization Profile business component. These fields would both turn out as Profile Attributes after a Web Session starts. Beautiful! And as said before – not widely known. The SiebelServerHost field will simply invoke a Business Service to retrieve the value of the OS environment variable. Nothing more, nothing less.
          • Name: SiebelHostEnvVar
          • Value: SystemPreference(“SiebelHostEnvVar”)
          • Name: SiebelServerHost
          • Value: InvokeServiceMethod(“Get Environment Variable”, “Get Environment Variable”, “‘Name’=’eval([SiebelHostEnvVar])'”, “Value”)

          pers

        4. The business  service is as straightforward as can be. I condensed the initial version a bit further taking out unnecessary code.GetVar2
        5. Now, the tiny few lines of “postload” code. Using a postload script comes with a warning, caution and instruction for good behavior. Do not overly use postload scripts. And if you use them, be considerate about the global impact. All navigations will be affected.ShowSSName
        6. A bit of styling with a golden edge. Add this snippet of CSS to your own override file.ShowSSNameCSS
        7. And finally, it needs to be added under Manifest Administration.SSNameManifest

That’s all. Grab the code here if you like:

– Jeroen

Siebel Hub – The Open UI Challenge 2015 Is On!

coding-challenge-banner

April has started and the team at the Siebel Hub can look back at an amazing start of their newly crafted platform since January. It is apparent a lot of effort went into launching the Siebel Hub. And a wealth of information got shared already by @lex, Richard and Bruce. And the team is further expanding in uncharted territories. And what a great idea: an Open UI coding challenge. Open for everybody. For single developers as well as teams. Do you feel taking up the glove and enter the competition?

– Jeroen

Siebel IP15 – Siebel Simplified Versioning

Oracle dragged along the legacy release numbering scheme of Siebel 8.1.1 (and for that sake 8.2.2 too) for quite some time. Adding to that Oracle introduced the Innovation Pack terminology geared towards customers forgetting about the legacy number scheme. But regardless of the Innovation Pack, customers today would still see the 8.1.1 / 8.2.2 numbering scheme all over the place. To start while downloading the software… Which will make it hard to forget, won’t it?

Not to mention customers still getting confused by the 8.1.1 / 8.2.2 “difference”. Which there really isn’t anymore starting 8.1.1.10 / 8.2.2.4 (which equals Innovation Pack 2012).

Anyways, this will change. Even though not a technical change, it does make a lot of sense if you ask me.

Excerpt from “Innovation Pack 2015 for Siebel CRM 8.1.1 and 8.2.2 Statement of Direction / Planned Features (Doc ID 1963908.1)“:

With the 2015 Innovation Pack, the Siebel product version notation is being simplified, from the four to five part version naming convention to a simple two-part naming convention. This will eliminate the difference between 8.1.1 and 8.2.2 code lines, there will no longer be an “8.1.1.15” and “8.2.2.15” parallel release, instead a single “15.0” release, corresponding to the current year i.e. 2015. This will make it easier for customers to differentiate between releases when reporting bugs, patch requests, and referring to their implementation. This is simply a notation change and customers on either 8.1.1.x and 8.2.2.x releases can upgrade to the single 15.0 Innovation Pack.

– Jeroen

Oracle Started Supporting Virtualized Platforms For Siebel (But Silently)

In the past days I have been visiting a couple of my customers together with our product marketing lead for Siebel Open UI. A great opportunity and time to discuss lots of top-of-mind topics ;-)

One really interested piece of information, which I missed out on until this week, is that Oracle silently started supporting server and client virtualization platforms. Certify will be further completed soon, but practically your VMWare Hypervisor should be at least ESX 4.x or above. ESX 3.x was known to cause scheduling issues for multiple vCPU virtual machines running Siebel Servers.

Besides server virtualization, also expect soon to see Citrix appearing on Certify.

virtualization

Today virtualization is only added to Certify for Innovation Pack 2014. And the support message does still come with certain constraints.

The My Oracle Support DocID has been updated:

Virtualization Technology Support in Siebel Environments (Doc ID 1307968.1)

Oracle allows any type of virtual technology to be used with Siebel because, running at a layer below the operating system, it is transparent to the Siebel application.  For the same reason, Oracle does not test Siebel products with specific virtualization technologies.

Oracle makes no recommendation on the use of virtualization technology with the exception that virtual environments need to be appropriately sized.  Each virtual environment must meet the requirements documented in *MOS Certifications.  Customers should consider scheduling a deployment sizing review with their Oracle sales representative for Oracle Advanced Customer Services to request assistance from Oracle’s Application Expert Services.

Oracle is under no obligation to make changes to Siebel software in order to accommodate any virtualization technology product, and strongly recommends thorough pre-production testing when running server and/or client applications in virtualized environments.

– Jeroen