Showing posts with label Tools. Show all posts
Showing posts with label Tools. Show all posts

Tuesday, August 16, 2016

Importing WSDLs with cyclic references into Siebel

Siebel has some issues consuming WSDLs which had a little complicated schema structure. Like cyclic references. That is when one of the children elements of a complextype is the same complextype again.

In this example schema, element "LineItemARBOType" has a child of type "LineItemARBOType" again.
This WSDLs poses no problem when consumed into a programming language like .NET or Java, because the parser simply creates a class and references itself in it. But these kind of WSDLs were not supported in Siebel. Trying to import a WSDL with cyclic references would result in this error from tools.:
There are no web service definitions to be generated.(SBL-EAI-04340)
Following are warnings generated in the process:
Service 'xx' can not be imported, because none of its ports could be imported.(SBL-EAI-04333)
Port 'xx' can not be imported. PortType 'xx' can not be imported. The 'xx' was ignored. Error importing XML schema via method 'xx' for 'element' 'xx' in 'xx'(SBL-EAI-08009)
Cycle detected in the 'xx' schema: xx 'xx' has a cycle (SBL-EAI-09008).

But turns out, Oracle has fixed this issue in IP2014 ( release of Siebel. Via bug:Bug 10539615. WSDLs with cyclic references can be consumed into tools IP2014 and upwards. But it creates hundred of integration component entries (sometimes even thousands).

Monday, July 11, 2016

SQLFiddle (for Oracle) is broken. Try Oracle Live SQL


BI Publisher reporting work involves a lot of SQL. And often (in the Oracle world) one needs a quick way to try an Oracle function in a quick sandbox like system. For  long time, I have been using SQLFiddle, which provides a simple browser UI to create schema and run SQLs on them. But for many months now, the Oracle support on SQLFiddle has been broken. And I was looking for alternatives.

Turns out, Oracle themselves provides an excellent replacement tool to create schemas and run SQLs. Free for anyone who has an login. That includes all customers and vendors working on their products.

Go to Oracle Live SQL. The SQL worksheet page there can be used to run any SQLs, and its on a 12c DB server.



There is a simple schema designer to create schema. Or you can also use standard DDL functions. Turns out , this is actually a simple Apex application.



Friday, November 6, 2015

How to get Windows 7 Weather Gadget to work again


The weather here in Bangalore, India is acting funny again. Rain destroyed the city for the last three days, and just when the met department predicted more rain for two more weeks, it stopped raining. It is now bright and sunny (and dusty).  You have to depend on Google weather to find out the predictions for the coming days. When Windows 7 shipped, they had this cool new thing called Windows Live, and the sidebar, which had gadgets. And the weather gadget was my favourite, it would just stay there un-intruding your  work but tell you the weather outside. About two years ago, Microsoft killed the weather gadget's service, because they wanted to focus on stupid Windows 8 and 10…and this meant killing the ecosystem of 7. The weather gadget stopped workings, and simply showed the error : "Service not Available".

Here is how you can get it working again.

Step 1. You have to replace the cache file for the weather gadget with an older one. Download this file.

Step 2. On your Windows 7 machine, go to [\AppData\Local\Microsoft\Windows Live\Services\Cache]. Delete/Backup the  Config.xml file present there with the one in the downloaded zip file.

Step 3. Now go to the desktop and drag the Weather gadget back into the desktop


Thats it !

Now the default location will be New York. And changing the location from the gadget wont work. To change the location to your own, you will need these additional steps.

Step 4. Open up your task manager ( Ctrl + Shift + Esc) , and kill the sidebar.exe app.


Step 5. On your Windows 7 machine, go to [AppData\Local\Microsoft\Windows Sidebar]. Delete/Backup the Settings.ini file there

Step 6. Open up the Settings.ini file in a text editor and change the code of WeatherLocationCode to the code of the place you want to see.

Step 7. You can get the code from Just to there and search for the place, and take the code from the generated URL.

For instance, the code for Bangalore is INXX0012.


Step 8. Save the Settings.ini file.


Step 9. Open task manager again. And go to File -> New Task -> and run sidebar.exe.

Voila !


Have fun !

Saturday, May 16, 2015

Stop Using Tail -F (Mostly)


I still see a lot of people using tail -f to monitor files that are changing, mostly log files. If you are one of them, let me show you a better alternative: less +F

The less documentation explains well what this +F is all about:

Scroll forward, and keep trying to read when the end of file is reached. Normally this command would be used when already at the end of the file. It is a way to monitor the tail of a file which is growing while it is being viewed. (The behavior is similar to the "tail -f" command.)

So it says that it's similar to tail -f, but why I think it's better?

Simply put, it allows you to switch between navigation and watching mode. We all have been there: You are watching a file with tail -f, and then you need to search for something in this file, or just navigate up and down. Now you need to exit tail (or open a new shell), and ack this file or open it with vim to find what you are looking for. After that, you run tail again to continue watching the file. There's no need to do that when you are using less.

Let's say you want to watch the file production.log:

$ less +F production.log


Waiting for data... (interrupt to abort)

Here you have pretty much the same behaviour you'd get with tail.

Now let's say something interesting appears, and you want to search all the occurrences of "foo". You can just hit Ctrl-c to go to "normal" less mode (as if you had opened the file without the +F flag), and then you have all the normal less features you'd expect, including the search with /foo. You can go to the next or previous occurrence with n or N, up and down with j and k, create marks with m and do all sort of things that less(1) says you can do.

Once you are done, just hit F to go back to watching mode again. It's that easy.

When you need to watch multiple files at the same time, tail -f can actually give you a better output. It will show you something like this:

$ tail -f *.txt

==> file1.txt <==
content for first file

==> file2.txt <==
content for second file

==> file3.txt <==
content for third file

When a change happens, it prints the file name and the new content, which is quite handy.

With less, it would be like this:

$ less +F *.txt

content for first file

It shows the content of just one file at a time. If you want to see what's happening in the second file, you need to first Ctrl-c to go to normal mode, then type :n to go to the next buffer, and then F again to go back to the watching mode.

Depending on your needs, it might still be worth to use less for multiple files, but most of the time I just go with tail for these cases. The important thing is to know the tools that we have available and use the right one for the job at hand.

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.

Thursday, July 24, 2014

Siebel Tools


The ever helpful Oli has put together a nice list of things we should hate about Siebel Tools

Check it out.

Saturday, November 24, 2012

Tools–SIF from multiple objects

Siebel Tool’s “Add to Archive” feature which creates SIF files is a real lifesaver when code needs to be migrated in development phase.  You can create a SIF from different selections in one object selection, eg: you can SIF multiple applets together:


Or you can create a SIF from an entire project, in which case all the different objects in that project get added into a single file.

But is it possible to create a SIF file from different objects in different projects ? Siebel Tools documents how this can be done in its help system, but generally developers are not aware of this feature.
First select the first objects types to be added into the archive file, here it’s applets :
Next, without closing the popup applet in front, use the object explorer to navigate to the other object type which needs to be added. Here, I am adding Business Components from a totally different project. Again , select the business components to be added , right-click and select ‘Add to Archive’
The selected objects also get added to the same archive file, even if they are from different projects.
This can be repeated for all repository objects , giving a single file with required objects. However, on the target tools system, all the different projects have to be locked for object insertion. Tools will tell you which project needs to be locked  during the import process.

Saturday, August 6, 2011

Siebel 8 Local DB Encryption & Backend Access


Anyone who has worked on the Siebel version 8 flavours is bound to have run into problems with its new local db encryption feature. As a default setting, Siebel encrypts the local db with an RSA encryption key, which means the local db thus extracted, cannot be accessed via the backend. Tools and the locally installed client will continue to work, but if you need to actually debug data entry issues in the database, the system will just respond saying incorrect password.

Traditionally, there is a tool called dbisqlc, an executable present in the Tool\Bin folder, which is mean to access Sybase databases. I have used this tool numerous times in the past to debug data entry issues and run spooled SQL statements. But if your localdb is encrypted, you will need to provide some more inputs to dbisqlc so that it can open up the dbf file.

Thankfully, there are helpful documents on suppportweb here and here which explains everything in detail.


    1. Determine the location of the local database that user wants to connect to and note down the full path of the database file for example %SIEBEL_CLIENT_ROOT%\local\sse_data.dbf.
    1. Launch dbisqlc.exe from the %SIEBEL_CLIENT_ROOT%\bin directory to bring up the Connect to Adaptive Server Anywhere dialog. On the Login tab fill out the following fields.NOTE: The values for the User ID and Password have to be in upper case:



User ID



<Enterprise Name> in ALL CAPITALS

NOTE: The default DBA password value is the enterprise name. If the enterprise name has less than 8 characters, the name is padded with consecutive digits 1234. For example:

o If the Enterprise Name is Siebel2005, then the DBA password is SIEBEL2005.

o If the Enterprise Name is Siebel, then the DBA password is SIEBEL12.


On the Database tab fill out the following field:



Database File


NOTE: Starting in Siebel version 8.0, you will need to run the following query to retrieve the encrypted value for the local database owner and enter this value on the Encryption Key field. 

SELECT PREF_CD, VAL FROM S_NODE_PREF s1, S_NODE s2 WHERE s1.PREF_CD ='RemLocSec:PlainKey' AND s1.NODE_ID = s2.ROW_ID AND s2.NAME='<mobile client name of the local database';

    1. After clicking on the OK button, the user will connect to the local database. A message "Connected to database" should appear in the Statistics sub-window.


Knowing the DBA password for your local db can also be useful when the tables need to be extended.  Sometimes in Siebel tools, when you do an apply activate, the tools wizard goes into a hang and refuses to come out. I found that when I entered the userid as DBA and corresponding password generated as in the steps above, the tools system was able to complete the apply DDL step easily.


Also refer to this excellent post which explains how to reset forgotten passwords.

Siebel IP 18 - 2018 SOD

Oracle is going ahead and staying with Siebel. For now. They have just released the statement of direction for IP 2018. At a high level th...