A closer view on Siebel OpenUI performance, the Firefox – IE11 battle

In a recent previous post I already concluded the IE11 is not an ideal browser for Open UI. Which obviously is shame because still the most widely used browsers within organizations. In private life though people tend to use different browsers. But even though the decline for IE is ongoing it will take time before IE is replaced in workplace environments.

630px-Usage_share_of_web_browsers_(Source_StatCounter).svg[1]

Organizations tend to move towards Firefox rather than Chrome. Most likely because Chrome being a Google product, too risky? Firefox as Open source is assumed a safer bet. But this goes at a very slow pace. We should not expect that to change dramatically over the coming years.

So, we have to deal with IE. That is why I created in Siebel OUI as couple of “test” views. Large views which have increasingly more applets and controls. These views are build on top of a VBC in order to cancel out any false-positives from the test results (e.g. to measure only rendering, not queries and fetching).

Taken for granted that I created huge views which you will never (?) see in a typical Siebel environment. But I wanted to take a somewhat scientific approach here to find a possible pattern. View 1 and 2 could be considered still realistic in terms of number of controls in certain customer scenarios – though 2 could be considered pretty outrageous.

  • View 1 (indicative: 40 controls in total)
    • One Form applet with 20 controls
    • One List applet with 20 list controls
  • View 2 (indicative: 240 controls in total)
    • One Form applet with 20 controls
    • One Form applet with 100 controls
    • One List applet with 20 list controls
    • One List applet with 100 list controls
  • View 3 (indicative: 440 controls in total)
    • One Form applet with 20 controls
    • Two Form applet with 100 controls
    • One List applet with 20 list controls
    • Two List applet with 100 list controls
  • View 4 (indicative: 640 controls in total)
    • One Form applet with 20 controls
    • Three Form applet with 100 controls
    • One List applet with 20 list controls
    • Three List applet with 100 list controls

If you want to grab the .sif file – go ahead :-) It contains the VBC, Applets, Views and Screen. You only need to register the screen in the application of your wish.

Ok, what have been my observations? Firefox is the winner. IE11 on the other end of the spectrum.

What would be your leading design practice: design & keep your views small ;-) No, really – the should be kept small if you want a view to render sub-second. And prevent at all times to enable too many list columns. The common reason “we need it for export” should be reconsidered. Where that might work in HI – in OpenUI it has severer implications. The JQGridRenderer has a noticeable overhead.

Do not forget that the timings below (in milliseconds) are measured between “PreLoad” and “PostLoad”. Those are JScript events of the OpenUI API. But these timings exclude further rendering time (such as CSS).

IEFF

FF IE11

Siebel IP2013 Patchset 10 has been released

Patch Set 10 has been released. Refer to:

Siebel Patchset Installation Guides for Siebel CRM 8.1.1.11 / 8.2.2.4 IP2013 (Doc ID 1614310.1)

Patch numbers:

19295121 (8.1.1.11.10)
19295120 (8.2.2.4.10)

A big patch set with 52 addressed issues. POO

For the manifest administration issues (18048557) a separate tool has been included which will rectify orphans.

Issue Addressed Bug ID Product Area Category
OPEN UI – SERVICE ACCOUNT FIELD FOR ASSET CANNOT BE UPDATED 18829026 Siebel Apps – Customer Order Management Open UI
MISSING POPUP APPLET IN EDIT PROMOTION USER INTERFACE AFTER ACR 652 18816318 Siebel Apps – Customer Order Management Product Promotions
MEMORY LEAK ADD-/REMOVING ITEMS IN PRODUCT DOMAIN OF PRODUCT PROMOTION PRODUCT 18750636 Siebel Apps – Customer Order Management Product Promotions
ATTRIBUTE ADJUSTMENT CAUSING ERROR ON ORDER VERIFY 18865198 Siebel Apps – Customer Order Management Quotes & Orders
SIEBEL LEAD IMPORT – EXACT MATCH NOT WORKING. 18792760 Siebel Apps – Marketing Mktg/Leads
ADDS A NEW OBJECT MANAGER FOR PARTNER PORTAL FOR VERSION 8.1.1.11 UPGRADES 18748251 Siebel Apps – PRM PRM Partner Portal
ERROR OCCURS USING CHILD SURVIVORSHIP WHEN CHILD ASSOCIATED TO A GRANDCHILD. 18750579 Siebel Apps – UCM Universal Customer Master
OPEN UI-SAVE TEMPLATE BUTTON IS CREATING EXTRA WHITE SPACES ON TOP OF THE TEMPLATE 18622823 Siebel Apps -Marketing Mktg/Campaign Mgmt
CURSOR FOCUS CHANGE TO CHAT PANEL WHEN CHAT MESSAGE FOR CHAT ON HOLD 18797497 Siebel Core – Common Components CRM Chat
NEED WINDOWS 2008 OS SUPPORT FOR SIEBEL CCA CTI DRIVER 18959377 Siebel Core – Common Components CTI
OPEN UI SMARTSCRIPT WITH RADIOBUTTON WITH SPACE OR SINGLEQUOTE HANGS 18425065 Siebel Core – Common Components CTI
PRINT PREVIEW POPS UP ERROR ‘THIS APPLET HAS NOT BEEN CONFIGURED FOR PRINTING’ 17304406 Siebel Core – Common Components Email Issues
IHELP SHOWING SERVER BUSY MESSAGE 19034422 Siebel Core – Common Components iHelp
USER CANNOT SELECT RADIO BUTTONS IN OPEN UI SMARTSCRIPTS FOR 8.1.1.10 18937087 Siebel Core – Common Components SmartScript
SMARTSCRIPTS ARE MISALIGNED 19192925 Siebel Core – Common Components SmartScript
DUPLICATE RECORDS ARE PRESENT IN MANIFEST ADMIN VIEWS AFTER REPOSITORY EXPORT/IMPORT 18048557 Siebel Core – DB Deployment and Configuration IRM
INCORRECT CONTENT LENGTH AND CONTENT –TYPE IN HTTP RESPONSE ON IPLANET 18797210 Siebel Core – EAI Integration – Transports
GC_HEAPSIZE BEING LOGGED EVEN IF SIEBEL_LOG_EVENTS IS 0 18618229 Siebel Core – Server BizLogic Script Config – Scripting
 IIS APPLICATION POOL CRASH 18750734 Siebel Core – Server Infrastructure Server Infrastructure
SBL-SRB-00047: COULD NOT ROUTE MESSAGE TO XXX WITH REGISTERED KEY 18551942 Siebel Core – Server Infrastructure Server Infrastructure
UNABLE TO SUBMIT GENTRIG JOB IN GUI MODE 16421088 Siebel Core – Server Infrastructure Server Infrastructure
SBL-DAT-00309 ERROR OCCURS DURING TASK ENTRY 18115019 Siebel Core – Server OM Frwks Business Process Framework
ONLY ONE VIRTUAL DIRECTORY IS CREATED AFTER CONFIGURATION FOR NON-ENU LANGUAGES 18815122 Siebel Engineering – Installer Install – Configuration
EXPIRING LOYALTY POINTS WITH REDEMPTION CONCURRENCY FUNCTIONALITY MISSING TXN_ID 18802469 Siebel Loyalty Redemptions
USERS CANNOT SELECT AN ADDRESS FROM A PICKLIST IF THERE ARE EXACTLY TWO ADDRESSES 19233523 Siebel Mobile Applications Mobile Framework
DB INITIALIZATION FAILURE DURING TOOLS LOCAL DATABASE SETUP 19060741 Siebel Server Remote Remote
SIEBELANYWHERE PATCH UPGRADE: INSTALLER CRASHES IF MIGRATE OPTION IS USED 18767357 Siebel Server Remote Remote
UNABLE TO QUERY BY ROOM BLOCK NAME IN QUOTE DETAIL APPLET 18995620 Siebel Travel and Transportation Diary
SERVICE CHARGE TYPE FIELD ON FUNCTION SPACE LINE ITEM DEFAULTS TO POST 19128881 Siebel Travel and Transportation Functions
FUNCTIONS COPY TO INCORRECT DAYS FOR MULTI-DAY FUNCTIONS 18995696 Siebel Travel and Transportation Functions
NEGOTIATED ROOM RENTAL DOES NOT COPY WHEN FUNCTION IS COPIED 18995438 Siebel Travel and Transportation Functions
EXPANDED SUB FUNCTIONS ARE ALSO COPIED AS PARENT FUNCTIONS 18995300 Siebel Travel and Transportation Functions
SIEBEL HIGH-INTERACTIVITY OBJECT MANAGER CRAHES UNDER HIGH LOAD ORDER MANAGEMENT SCENARIOS 18998841 Siebel UI Framework AX/HI Web UI
ORDER FIELD LINE VALUES ARE COPIED WHEN THE EXPAND METHOD IS INVOKED 18228643 Siebel UI Framework AX/HI Web UI
WITH OPEN UI, BROWSER SCRIPT IS CALLED TWICE IN FORM APPLETS 18147389 Siebel UI Framework Open UI
MANIFEST FILE IS DOWNLOADED DESPITE THE INACTIVE FLAG BEING SET TO TRUE 19178747 Siebel UI Framework Open UI
ORPHAN RECORDS IN S_UI_OBJ_EXP_FL 19244417 Siebel UI Framework Open UI
REQUIRED FIELD ERROR MESSAGE OCCURS WHEN TASKS ARE CANCELLED 18990998 Siebel UI Framework Open UI
COUNT (*) SQL CALLED IN OPEN UI: POOR PERFORMANCE OCCURS WHEN CREATING NEW RECORDS IN PICK APPLETS 18922789 Siebel UI Framework Open UI
OPEN UI: PICKLIST BUTTONS NOT ENABLED/IN CORRECT FORMAT 18841731 Siebel UI Framework Open UI
OPEN UI: APPLICATION HANGS IF APPLICATION_PRENAVIGATE HAS RAISEERRORTEXT CALL 18733979 Siebel UI Framework Open UI
OPEN UI SMARTSCRIPT WITH RADIOBUTTON WITH SPACE OR SINGLEQUOTE HANGS 18648505 Siebel UI Framework Open UI
OPEN UI: EMAIL ADDRESS DOES NOT APPEAR AS A HYPERLINK 18629177 Siebel UI Framework Open UI
OPEN UI BROWSER SCRIPT SETPROPERTY FOR READONLY IS NOT WORKING PROPERLY 18550190 Siebel UI Framework Open UI
OPEN UI: ACCESSIBILITY FEATURES CTRL+ALT+T NOT WORKING 18512296 Siebel UI Framework Open UI
OPEN UI: WHEN TABBING WITHIN FORMS/LISTS, FOCUS SHOULD NOT LEAVE FORM/LIST 18484096 Siebel UI Framework Open UI
OPEN UI: DROP-DOWN LISTS DO NOT RENDER WHEN CONFIGURED WHEN HTML ATTRIBUTES PROPERTY IS USED 18405162 Siebel UI Framework Open UI
OPEN UI: AN ERROR MESSAGE OCCURS THE FIRST TIME A TEMPLATE IS ATTACHED 17174123 Siebel UI Framework Open UI
OPEN UI: ICONS DISAPPEAR ON THE ACCCOUNT PICK APPLET 19176963 Siebel UI Framework Open UI
OPEN UI: INCORRECT OPTION FOR ASSET TO AGREEMENT 19164623 Siebel UI Framework Open UI
OPEN UI: INCORRECT MANDATORY FIELD ERROR MESSAGE DISPLAYS 19164013 Siebel UI Framework Open UI
OPEN UI: IFRAME NOT ABLE TO COMPLETE GOTOVIEW CALL FROM WORKFLOW 19154449 Siebel UI Framework Open UI

Stay up-to-date with Internet Explorer…?

Microsoft rigorously changes their support policies for Internet Explorer it seems. 

After January 12, 2016, only the most recent version of Internet Explorer available for a supported operating system will receive technical support and security updates. For example, customers using Internet Explorer 8, Internet Explorer 9, or Internet Explorer 10 on Windows 7 SP1 should migrate to Internet Explorer 11 to continue receiving security updates and technical support. For more details regarding support timelines on Windows and Windows Embedded, see the Microsoft Support Lifecycle site.

This is pretty drastic. Until today IE8 would be supported until the supporting platform (e.g. Windows 7) would be no longer supported in either mainstream or extended fashion. This means that in less 17 months IE8 support is no longer (read: security updates) available. That said, Windows 7 will move into extended support per 1st of January next year too… Extended support for 5 more years. With Windows 9 on the horizon Microsoft’s focus is to move customers in a much faster pace away from Windows 7. 

Smoothing Siebel Open UI view navigations

The default behavior Siebel respond to view navigations seems a bit odd if you look at it closely.

You see more or less the UI destroying the current view while rendering the new view.

Not very nice at all. But… there is a nice and simple solution for it using view transitions.

View transitions? You find these under “User Preferences – Behavior”.

behavior

A couple of default transitions are defined (more for fun than for anything else…). But adding one is pretty straight-forward.

What does it require? One LOV and a bit of CSS. That’s all :-)

Just add a LOV as per below. Important is the Language Independant Code. I choose “FADE” as the LIC for a “Fade In Fade Out” transition.

FadeInFadeOutNext, define the transition. You can build on the existing ones if you like.

A “transition” occurs when you leave one view and move to the next. By default, nothing special happens. The new view is loaded into the same div element as the old view. By selecting a transition, some alternative functionality is activated which first copies the existing view content to a temporary div and then loads the new view into the a new div. The way in which the the old div then switches to the new div is called a transition and is something over which you have control using CSS.

The primary view content is always held in a div with the id “_svf0“. Once a transition is in effect, the contents of “_svf0” are copied to “_svf0_temp“. Then a set of CSS classes are applied in the following order:

_svf0_temp
siebui-prev-<trans>-begin
siebui-prev-<trans>-end

_svf0
siebui-next-<trans>-begin
siebui-next-<trans>-end

<trans> is set to the LIC of the selected transition after converting to lower-case.

The CSS to be added to your custom theme:

.siebui-prev-fade-begin {
width: 100%;
height: 100%;
opacity: 1;
position: absolute;
visibility:visible;
}
.siebui-prev-fade-end {
width: 100%;
height: 100%;
opacity: 0;
transition: opacity .01s ease-out, visibility 0.01s linear;
visibility: hidden;
}
.siebui-next-fade-begin {
width: 100%;
height: 100%;
opacity: 0;
position: absolute;
}
.siebui-next-fade-end {
width: 100%;
height: 100%;
opacity: 1;
transition: opacity .01s ease-in;

Now, make sure you clear your browser cache, activate the new transition (User Preferences) and see the effect. The performance penalty is zero to none in my own testing. I have asked Oracle development to make this default behavior in IP2014, as it benefits all customers. It makes rendering much more appealing to the eye ;-)

Jeroen

Portable Browsers for Open UI testing to the rescue

You come across the problem that a feature does not longer seem to work with a certain release of a browser. The frequency at which Mozilla and Google release their browsers is at a high pace. And when software change, regressions can occur. Portable apps to the rescue. Just download your portable browser (e.g. Firefix Release x) from SourceForge. The positive side of potable browsers is that they require not an actual installation and hence you can typically also bypass any desktop policy restrictions too. Nice to run different browsers side-by-side without having to install/uninstall them. 

 

Take advantage of the SWECmd=AutoOn Siebel Test Automation feature

Documented here on MOS you will find information with regards to the net effect of adding the SWECmd=AutoOn instruction. It’s essentially a STA (Siebel Test Automation) feature, but can be handy at times to quickly identify an Object in Tools. Especially the “RN” attribute.

Quoted from My Oracle Support (Doc ID 1594954.1):

OpenUI framework would provide the automation attributes in the HTML DOM

RN – Siebel repository name of the element 
UN – Display name that logically identifies the HTML element
OT – Object type of Siebel HTML element (e.g. Button, JComboBox, etc.)

SweCmd=AutoOn is needed when you launch the application. 

DOM structure for New Button/Combobox with Automation support:
<button id=”s_1_1_7_0_Ctrl” class=”appletButton” type=”button” data-display=”New” title=”Accounts:New” ot=”Button” rn=”NewRecord” un=”New” style=””>New</button>
<input type=”text” name=”s_2_1_87_0″ value=”NY” aria-labelledby=”State_Label” aria-label=”State” style=”height: 24px; width: 120px;” maxlength=”10″ class=”ui-autocomplete-input siebui-input-popup” autocomplete=”off” role=”textbox” aria-autocomplete=”list” aria-haspopup=”true” ot=”JComboBox” rn=”State” un=”State” aria-disabled=”true” readonly=”readonly” aria-describedby=”s_2_1_87_0_icon”>

Enjoy it :-)