Friday, February 13, 2009

Siebel 8.1.1.0 on Windows Vista

So I decided to see what this Siebel 8 hype was all about. I downloaded all the necessary files from Oracle eDelivery, unzipped them, used the ImageCreator to build the network installation image (whatever that means), then proceeded to install Siebel Tools and Web Client.

All of this on Windows Vista, mind you. I had to run the installs as Administrator in Windows XP SP2 compatibility mode, otherwise, Oracle's Universal Install just disappeared as soon as files started copying.

Well, the Tools installation completed, but failed to start. The Web Client just plain didn't install. The Web Client installation failed just after checking the system prerequisites, before choosing language packs. When I attempted to continue, ignoring the error, no language packs appeared for selection.

A little searching around brought me to this Oracle doc: "Siebel System Requirement and Supported Platforms, Version 8.1 Rev. A, January 2009"

"Table 7. Software Requirements for the Siebel Developer Web Client" lists Microsoft Windows XP Professional SP2+ as required software. Does this mean that Siebel's latest release cannot run on Windows Vista? I hope not.

I hope that it's just something I did wrong, because it would be disappointing to learn that the Windows 7 Beta has already been released, and Siebel still hasn't found a way to get their Tools and Mobile Client to run on Windows Vista.

If anyone knows how to get Siebel 8.1.1.0 running on Windows Vista, drop me a line, and I'll update this posting. Meanwhile, I'll be playing with 8.1.1.0 on my other machine which is running Windows XP SP2. And FYI, it's running just fine on that.

Thursday, February 5, 2009

eScript Date Parser Bug

The Siebel eScript date parser does not correctly recognize dates in the 12AM hour in the format HH:MM:SS AM. This is a bug in some versions of the eScript engine, affecting server scripts, but not browser scripts - since browser scripts use the web browser's javascript engine. Check out the example below.

Siebel eScript (7.7.2.6 SIA [18372]):
// incorrectly evaluates to noon
// "Sat Oct 18 12:00:00 2008"
new Date ('10/18/2008 12:00:00 AM").toString ();
JavaScript engine from IE 6.0.2900.2180.xpsp_sp2_gdr.070227-2254:
// correctly evaluates to midnight
// "Sat Oct 18 00:00:00 PDT 2008 12:00:00 AM"
new Date ('10/18/2008 12:00:00 AM").toString ();
We just got a quickfix from Oracle for this nasty little bug we found, but the fix is on our private branch. So if this is affecting you, you might want to request it too. It took a few months between logging the SR and getting the patch delivered, so we had to work around the problem manually. We created a function to turn a string into a date object. In case you need it, here it is:
function StringToDate (sDateString)
{ // takes a date string, parses it using the
  // escript date parser, and returns it as a
  // date object. also works around a known
  // defect with the escript date parser
  // (siebel sr 3-765130491)

  var dt = new Date (sDateString);

  // address siebel product defect where
  // 12:XX AM dates get translated to 12:XX PM
  // in the date constructor
  if (/^[^:]*12(:\d{1,2}){0,2}\s*[Aa][Mm]/.test (sDateString))
  {
    // the time appears to be 12:XX AM,
    // so verify it
    if (dt.getHours () == 12)
    {
      // the hours are off, so fix it
      dt.setHours (0);
    }
  }

  return (dt);
}
I wonder if this problem occurs with date formats from other locales... In case you didn't know, I'm in the US.

Tuesday, February 3, 2009

Working with the Local Database

Us developers all have local databases we use to make changes before checking them into the server, right? "No, I develop directly on the server," is not the right answer. Sometimes it's useful to work directly with the local database to view or change data. Here are some basics to get your started.

Logging In

Siebel ships with a dandy SQL client you can use to log into your local database interactively. The program is located in both the "..\tools\bin" and "..\web client\bin" directories, called dbisqlc.exe.

Start this program and you'll enter directly onto a "Login" tab where you can fill in your username and password. In the "Database" tab, specify the "Database file", pointing to the local database to which you want to connect.

Once connected, running SQL statements is pretty self-explanatory.

Logging in as SIEBEL

To make schema changes, log in as SIEBEL, using the same password as when you log in as yourself. By default, the passwords are set to the same value when you get your extract.

Dropping a Column

After you delete a column from a table in the Siebel Repository, applying that change will not drop the column in your database. You'll have to drop it manually using this command:
alter table <table name> drop <column name>
Notice that there is no "column" keyword before the column name.

Unlocking Projects

When you get a locked project from the server, its copy remains locked on your local database as well. If you want to locally test some changes in that project, you're going to have to forcibly unlock it using this SQL update statement:
update s_project set locked_flg = 'N' where name = <project name>
Changing your Password

Passwords are set when you extract the database, but can be changed using this command:
grant connect to <username> identified by <password>
If you change your own password, don't forget to set SIEBEL's password to the same; otherwise you might forget it. You'll have to log in as SIEBEL to change SIEBEL's password. SIEBEL can also change your password, so you might as well log in as him.