Quantcast
Channel: Oracle Implementation Advisor
Viewing all 163 articles
Browse latest View live

Siebel IP14 – PS4 Has Some Performance Tricks Up Its Sleeve

$
0
0

A few posts back I reported about Microsoft to release a performance fix for Internet Explorer 11. Tonight I completed my initial tests with the Siebel Innovation Pack 2014 Patch set 4 which Oracle released a couple of weeks ago. The Patch Set 4 release notes make note of two particular bugs which should improve OpenUI view rendering performance. So I picked up the glove and executed my usual set of performance review scenarios. I compared Patch Set 2 against Patch Set 4, for the usual set of browsers. I ran each test three times to cancel out any measurements which could have a (too) high standard deviation. The cool thing is that the performance measurement framework does all the heavy lifting for you. Duncan discusses this simple but very effective framework in the Open UI Developer’s Handbook too.

IE11PerfFigures

Bottom line? All browsers benefit from the Patch Set 4. IE11 benefits most. But still IE sits all alone silent in corner. Internet Explorer – despite the performance hot fix being applied – remains no competition for Chrome and Firefox.

IP14PS4PerfCompAgain Chrome outperforms all, with significant improvements. These improvements alone should make you to consider Patch Set 4 strongly.

– Jeroen



Microsoft Is Killing Off The Internet Explorer Brand (but really?)

$
0
0

It certainly will not be an easy journey for Microsoft to really leave Internet Explorer behind. Especially not as long as it will ship with Windows 10 for enterprise customers. And the next question is about actual support. Given the fact that Microsoft has stated last year it will only provide mainstream support for the most recent browser available on a given platform. So will the message that Internet Explorer lives on further on Windows 10 for enterprise customers be a carrot or actually a stick? Since most enterprise customers are using Internet Explorer for two primary reasons: one being (perceived) security, the other one being (perceived) support, one should scratch its head about that.

That said, I like the subtle subtitle the Verge put under the article:

IE will live on, but only as plumbing for Windows

– Jeroen


Oracle Started Supporting Virtualized Platforms For Siebel (But Silently)

$
0
0

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. Although the information on My Oracle Support’s Certify is yet half-way correct (e.g. it only states for VMWare ESX, while today most customers will be using VSphere) this obviously is a significant change. Besides server virtualization, also expect soon to see Citrix appearing on Certify.

virtualization

Today virtualization is only added to Certify for IP14. And the support message does still come with certain constraints, safe-harbor (or CYA) statements.

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


Siebel IP15 – Siebel Simplified Versioning

$
0
0

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


Siebel Hub – The Open UI Challenge 2015 Is On!

$
0
0

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


IP 14 – Displaying The Siebel Server (The Sequel)

$
0
0

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 IP14 – Getting Rid Of The “Case Sensitive” Watermark

$
0
0

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 – Watermarking Those Query Assistant Controls

$
0
0

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

 



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

$
0
0

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.

Luckily <sigh> 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

Oracle Partner? Oracle Siebel IP2014 Partner Workshop!

$
0
0

OraclePEIP14

Are you an Oracle Partner? In that case you might have interest in this upcoming Siebel IP14 Partner workshop. More info and registration via this link.

Oracle is hosting a special 2-day event to give our partners an overview of the Siebel IP 2014 release, and an opportunity to work through hands-on labs and demos to learn about key concepts and best practices with Open UI. The Oracle Siebel IP2014 Partner Workshop will feature key experts who will guide you through the IP2014 release. In case you first need to catch up on Open UI? No worries. Come and join at the pre-session workshop!


Siebel IP14 – Patch Set 6 Has Been Released

$
0
0

Last Friday Oracle released Siebel IP14 PS6.

IP14PS6

Find the complete release notes here.


Siebel – Please Don’t Loose My Attachments!

$
0
0

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


Testdrive Siebel 15 with Bloomspire! Expires June 5th

$
0
0

TestDriveSiebel15BloomspireFirst glance on Siebel 15 without going through the hassle of downloading Gigabytes of software and setting-up a playground Siebel environment? Try out Bloompire’s offer to Testdrive Siebel 15. Expires June 5th.

Try Siebel IP 2015


Starting now until 5 June 2015, test drive Siebel IP 2015 for FREE by completing and submitting the form below.

Thank you for requesting access to our IP 2015 evaluation environment.  You will receive an email shortly with instructions to login.

This environment is running on our Siebel Environment Service.  For more information about this service, please visit us here: http://www.bloomspire.com/siebel-environment-service-about/.

Please be aware that this free evaluation will only be available until 5 June 2015.  If you’d like continue to use it with a paid subscription, please contact us at sales@bloomspire.com.  


Siebel Application Management with Oracle Enterprise Manager Cloud Control 12c!

$
0
0

These days many enterprise-grade Oracle databases will be managed by Oracle’s Enterprise Manager (OEM) flag ship product. Though the management of databases has been the breeding ground for OEM, OEM is certainly not limited to managing databases. Actually most of Oracle’s technologies and applications can be managed through OEM, as OEM essentially is an amazing platform and very open to extensibility. This includes customer extensions. All you need is a good knowledge of Python.

Oracle has been delivering and expanding the depth and breadth of what is known as the “Siebel Application Management Suite” over the years.

OEM_Siebel_1

Oracle likes to distribute the capabilities of Enterprise Manager across the following four pillars. In this post I will briefly discuss the first two pillars, in a follow-up post I will make note of the latter two.

OEMOverview

Discovery & Application management…

Would allows insight in the actual health of the managed applications. OEM provides a single platform to manage and monitor many Siebel Enterprises. It will provide typical monitoring & alerting capabilities. A Siebel Application object manager suddenly died taking with the crash 30 or so user. Alright, the component would certainly have recovered itself, and spawned a new multi-threaded process. But in a non-monitored scenarios, this fact would be often remain unknown. Until an affected end-user would raise its hand maybe. But would it not be great to be alerted in such a unwanted situation? By that I do not necessarily mean over-flooding an administrator with emails or sms messages. Pretty convenient rules preventing such over-flooding can be administered for monitored events. E.g. a repetition of incidents within a short interval for a specific object manager on one server could mean a priority 1 incident accompanied with an sms. A sporadic crash of a less critical component could be just visualized on the dashboard.

True, Siebel natively possess out-of-the-box capabilities introduced in Innovation Pack 2013, to investigate crashes. But that really is more a feature or troubleshooting, rather than monitoring and alerting.

SiebelDiag1

The Siebel Management pack is being extended all the time by Oracle. But customers might want to create their own extensions too. Wanting to visualize those Communication Inbound Receiver issues, where suddenly a certain Mailbox does not get polled anymore? A relatively simple plugin could be hand-crafted checking the /incoming folder for .idx files which have become stale. And really, that is no rocket science! Want to be alerted when a certain Siebel Process ID starts consuming over 1 GB and like to see a possible trend? Again, this would pertain a customer extension. But no rocket science needed neither.

Next, APM…

Application Performance Management. This is where one of the most complex acronyms within Oracle is hidden: RUEI. Real User Experience Insight. Truly amazing tool which is capable of non-intrusive introspecting HTTP traffic and gather brilliant insights. This is what RUEI does, it monitors you HTTP traffic at the switch within your data center. It basically uses the SPAN port and the RUEI data collector selectively consumes the HTTP traffic. Since RUEI is Siebel aware it understands what end-user activity got produced and how long it took end-to-end to produce a response on the user’s browser.

There is this little side note. For Siebel High-interactivity there is absolutely no added client-side software required. Though for Siebel Open UI a tiny additional Javascript needs to be included per Siebel Manifest Administration. This allows the Siebel OUI client to inject a bit of additional information in every HTTP request to further fuel RUEI, so it can even better report than before. RUEI_OEM

Further, it can do “wild things” like reporting based on geographical location of the user. So really, enabling to see that a user in Australia experiences less performance than on average versus a user based out of Singapore. Just to mention a few characteristics of RUEI. And well, OEM integrates the RUEI Dashboard within its single source of truth. Nice?RUEI_OEM2

Further, RUEI allows (within defined periods in which is captured data in its warehouse) to re-generate end-user trails. A user call the help desk with a specific incident, but cannot explain nor recall what lead to a certain behavior? RUEI allows to identify the user and show what activities the user carried out. Not sure to what extent organizations are really open for such a feature. Would RUEI become too big of a brother, watching over once shoulder? That said, it can be done.

This completes for now this post.

– Jeroen


Googling The Siebel Bookshelf – Custom Google Search (Bookmark It!)


Siebel 15 – Siebel CRM Composer Webcast Demonstrating Responsiveness

$
0
0

Direct from product development another glance at the Siebel CRM composer! Richard and @lex from the SiebelHub have also produced initial recordings of their first experiences.

This webcast from the Oracle Siebel CX team further drills into some of the technicalities of the CRM Composer. It demonstrates the migrated Web Templates and how they can be modified. Further the demonstration shows how to leverage a new profile attribute “Viewport:width” which allows more dynamic expressions to either show or hide content such as complete applets or controls depending on the actual size of the browser window.

I played a bit with this feature. As I imagined the value of the profile attribute is captured once you logon to Siebel. That means that re-sizing your browser’s window will not dynamically change the Viewport:width value. This could have unwanted effects in case you would for example open your browser not in maximized mode. In that case responsiveness would kick-in and potentially hide content. Once you think about maximizing the browser, well you’re stuck with the previously set Viewport:width.

Also a scenario where one would re-size the window will not change the outcome of any expressions where Viewport:width is used. Maybe the implementation which sets the Profile Attribute will change for Siebel 16? Might not be a bad idea I guess. At least I will address it with product development.

Further, Oracle produced a pretty descent Bookshelf document. And watch this: in the typical “Oracle” style. The traditional “Bookshelf” style has gone. Get it here: Siebel CRM Composer Developer Preview Guide

– Jeroen


Siebel Open UI – Bringing Back The Context Menu

$
0
0

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

 


Siebel 15 – Hey Where Did The Threadbar Go?

$
0
0

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 R15 – Incremental Repository Merge Failing During Upgrep

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

$
0
0

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


Viewing all 163 articles
Browse latest View live