Thursday, November 20, 2014

On Siebel Tools Wizards


The other day I was debugging a business component configuration to identify the cause of wrong data appearing in the UI, as well as a degradation in performance. After spooling the SQL, I found the reason was that some Multi-Value-Fields were configured incorrectly. I showed the developer an easier and more accurate way of doing configuring MVFs, turns out he or no-one in the team knew about Siebel Tool's many wizards.


To add an MVF to , say the Service Request BC:

1: Lock the BusComp, and right click.

 FADV Go Live Test 032

2: Choose the "New MVG" option from the menu:

FADV Go Live Test 033

3: Now you just need to follow the Wizard. Enter the Detail Business Component name and name for the MVL:

FADV Go Live Test 035

4: The link has to be configured ahead and should be available in the next screen. Here I am adding a BusComp for BIP reporting purpose. There is a small bug in this Wizard, it shows the caption of Link's SearchSpec and SortSpec are swapped. so that Sortspec is actually the link searchspec.

FADV Go Live Test 037

If there is no direct link between the entities, the Wizard will allow you to use indirect links, where you have to specify the Source field from the Master Business Component



5: The next screen is the most important, it allows setting of Primary options in the MVL:

FADV Go Live Test 038

6: Further configuration in the link, since this is a reporting link, I have made it read only by setting NoInsert,NoUpdate and NoDelete to true.

FADV Go Live Test 039

7: Now the MVL is configured, you can start configuring which all fields from the Detail Business Component should appear in the Master Business Component, in this case, Service Request:

FADV Go Live Test 040

8: That's it !

FADV Go Live Test 041

9: On Clicking Finish, Tools will start another Wizard to help you configure the MVG applets. After the first screen , the rest is similar to the Applet Wizard.






When I need to find in which applets a certain field is exposed, I use the similar PickList Wizard to find that out quickly.

1: For instance, to see all applets where the "Abstract" field of Service Request BC is exposed, simply right click on the field and choose "Add Picklist"



2:  The first screen of the Wizard shows all the applets where this field is exposed:


3: Nope, the list cannot be exposed from the wizard, you can only see the applet names. But if there are too many applets, I use Sys Exporter (that's a bad name for useful software) to export out the list into CSV:



There are rumours that in future releases, Oracle might remove Siebel Tools completely, I just hope they retain all those wizards to speedup development.

Friday, November 7, 2014

BIP: If , then ,else


Looks like whole of the Siebel community has moved onto Open UI, but I am spending more and more time into Siebel-BI Publisher reports and their Integration. I had to setup a really, really complex report template for our Order Management module. The final report has 65 for loops and 162 if conditions , and 85 set_variables ! Though BIP’s function set is nicely documented, there are times, I felt, when a requirement could not be implemented as easily as it seemed. Specially when it comes to condition checks. Here are a few pointers if you get lost.

1: If condition: The function is

<?end if?>

The actual condition has to be provided after the colon (:) after the if statement. The statements to be executed are to be provided before the <?end if?> tag. For some reason, BIP inserts a new line in the report whenever it sees an if tag.

2: If Inlines:

<?end if?>

Same as the if condition above, but @inlines statement prevents BIP from inserting a new line in the output report.

3: If @row  and @column. 

<?end if?>

<?end if?>


These are to be used in grid layouts/tables to ensure the output of the condition is printed in the same row or column. Otherwise the output gets wrapped into next rows/columns.

4: If @ context.

<?end if?>

The '@incontext' is a useful addition to the 5.6.3 release shortening code requirements further to update attributes, when dealing with text output.

As long as the condition checks are straight, these functions prove enough. But things start getting tricky when you need the else clauses , or to build else-if ladders.

5: if-else. Syntax

<?xdoxslt:ifelse([condition],[true statements],[false statements])?>

A simple if-else check, this function is in the xdoxslt namespace. the [true statements] are executed if the condition is evaluated to true, and [false statements] are executed if not. New lines are not inserted for this function.

6:  else if ladder. Syntax

<?xdofx:if [condition 1] then [true 1] else if [condition 2] then [true 2] end if?>

This xdofx function is used when complex else-if ladders need to be built. It can also be used as simple if else condition, so the second if [condition 2] is not required. New lines are not inserted for this function.


The @inlines, @incontext, @row, @column statements can only be used with for-each loops, to avoid the newlines inserted automatically by BIP

eg:  <?for-each@inlines:



Hope this is useful, Happy BIP !