June 23, 2016

Just one Elastic applet?

Oracle introduced wonderful elastic list applets with IP16,  this feature shrinks list applet size if there are no or less records needs to be displayed. However this doesn't always looks nice, specially in MVG applets and pick applets.
Default Elastic Applets in IP16
 
This feature can be turned off by setting "Enable Elastic Grid" system preference, but it is turned off for entire application. That makes me think is there any way we can make only one applet as elastic applet?  Answer is yes :)

Neel on Siebel Unleashed published beautiful trick to back port elastic applets into IP15. Absolutely splendid! This trick can be extended to make only few applets Elastic. 

To make all list applets Elastic add following in custom CSS file:
.ui-jqgrid-bdiv{max-height:340px !important; height:auto !important;}
To make only one applet Elastic (After turning of the system preference) add following CSS :
div[title="Line Items List Applet"] div.ui-jqgrid-bdiv { height: auto !important}

By preceding another div selector to the CSS rule we can instruct browser to apply CSS style only if applet name is : "Line Items List Applet". One can use this trick to change other UI attributes for specific applets and apply different styling.


Happy Styling :)

June 21, 2016

Siebel Tools and Windows 10

Those who have been following blog closely would know from my latest demo video that I have been using windows 10 and Siebel IP16 for experimentation.

One can easily install Siebel Tools and client on windows 10 and run it on Oracle XE with Sample database, however Siebel IP16 being a new release it has some quirks which are not very developer friendly.

Here are some problems that I get everytime:

1. All workflows by default are not valid :(
Workflow simulator will error out straight away even if there is nothing wrong with workflow. Validator might say workflow is not fully connected.
Workflow simulation on Windows 10

What's the fix? Just edit the workflow once and move around workflow steps. And then simulate again, this time it will work just fine.

2. Tools wont boot and authentication subsystem will reject your login.
An internal error has occurred within the authentication subsystem for the Siebel application. Please contact your system administrator for assistance.(SBL-DAT-00565)
SBL-DAT-00565

Oracle XE is either crashed or booting up just give it few minutes have a coffee or something.


3. Dedicated client wont start
A system error occurred trying to start the command 'siebel.exe /c "C:\Siebel\16.0.0.0.0\Client\BIN\enu\scomm.cfg" /b "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" /u SADMIN /p SADMIN /d SAMPLE_XE /h'.(SBL-DEV-00127)
Cant start dedicated client.

Just run tools as administrator and you will be fine.

Hope it helps.

My current setup includes: Windows 10, Siebel IP16, Oracle XE, Oracle Virtual Box containing : Windows 2008 Server which is hosting  > MSSQL Server + IIS + Siebel Server IP16.

June 17, 2016

Scriptless Challenge : How to constrain association list applet dynamically?

Association applet let's you associate records from an existing list of records. Unlike pick applets these association list applets doesn't have any out of the box way of constraining records.

Consider scenario: When opportunity type is internal, system should only show internal marketed products for opportunity in product association list applet and for opportunity type external system should show only external marketed products. Products are marked as internal and external by product type field.

Challenge: According to oracle there is no other way then scripting on web load of association applet to filter the records. Script can look something like following. And it works flawlessly.

Can you suggest any script less alternative?

function WebApplet_Load ()
{
var BO;
var ParentBC;
var BC;
var AccountId;
BO = TheApplication().ActiveBusObject();
ParentBC = BO.GetBusComp("Opportunity");
if(ParentBC.Name = "Opportunity")
{
    AccountId = ParentBC.GetFieldValue ("Account Id");
    BC = this.BusComp();
    with (BC)
    {
        ClearToQuery();
        ActivateField("Account Id");
        SetSearchSpec ("Account Id", AccountId);
        ExecuteQuery();
    }
}
ParentBC = null;
BC = null;
BO = null;
}


June 16, 2016

How to hide disabled buttons in Siebel Open UI?

With IP 15 and 16 Open UI themes have inclined towards bigger controls and more blank space on page, which is not bad thing but too much of it is making UI cluttered specially on small screens.

To fix this issue one can hide all disabled controls and all the white space around it. this can be done by simply adding following CSS and Open UI framework takes care of the rest.

button.appletButtonDis {
    display: none;
}

Further on to hide disabled menu items add :

li[aria-disabled=true]{
    display: none;
}

Siebel adds these classes and attributes to all the buttons on all applets and menus including new/query/delete icons to show them as disabled. Thus this change effects the entire application.

This post is contributed by esteem reader from down under via siebel-developers slack community. Register today to read more discussion like this.

June 06, 2016

Siebel Admin [Cheat Sheet]

I see many Siebel consultants(including me) searching web everytime to get correct syntax for Siebel server manager commands.

Although the syntax is so simple we still somehow manage to forget it :) I have created this cheat sheet from list of commands which I use day in day out. List contains command to increase log levels, shutdown startup components, creating components, starting server manager.

Feel free to download and print one for your desk.Download Here

Hopefully no more searching for commands to increase log level of siebel components :) cheers!