Archive for March, 2007

Changing the Local Database Password

Users forget their passwords - that’s just the way it is. Without picking on anybody, certain users (cough sales guys cough) are particularly prone to this. And more often than not, they’re remote users who’ve not synchronised their local database for a week and desperately need their updates.

As with the server database, there’s no way to retrieve the current local database password. Password hashing algorithms are repeatable, but not reversible - sensibly enough. It is possible to change the password to something new though.

Connect to the local database, then run these SQL commands:

grant connect to USERNAME identified by PASSWORD
grant connect to SIEBEL identified by PASSWORD

Where USERNAME is the login for this database and PASSWORD is the new password (both in upper case). If for some reason you don’t know who the local database belongs to, the login can be retrieved with this command:

select name from SYSUSERAUTH
where name not in ('SYS','DBA','PUBLIC','SIEBEL','DBO','dbo','SSE_ROLE')

More often than not, you’ll also want to reset the server database password to match, so that you can sync up those outstanding changes. On Oracle, this is your usual:

alter user USERNAME identified by PASSWORD

There’s more info in SupportWeb TechNote 25, including scripts for different versions of SQL Anywhere to automate the process.

1 comment March 29th, 2007

Siebel Interview question

I’ve interviewed a bunch of Siebel techies and have evolved a few favourite questions, all based around the same theme: attempting to uncover technical breadth while avoiding obscure ‘gotcha’ questions. Things like this:

Q: How would you update a second field every time a first field is changed?

This is a great question: simple enough that a junior dev straight out of a tools course should come up with a few options and have some idea how they weigh up, but broad enough that a senior techie can lead you into detailed discussions about performance vs maintainability, good practices, upgrade issues, etc etc.

If the candidate’s running out of steam, leading questions can coax them toward more inventive answers. For instance:

  • What if the second field is in a different business component?
  • What if there are multiple fields to be updated?
  • What if the second update needs confirmation?
  • What if the update still has to happen for batch (EAI/EIM) updates?

To the answer: I reckon the following is not a bad list to cover-off, but there’s still a few missing…

User Properties
+ minimal config
+ real time
+ robust (mostly!)
- limited
- require srf update

Runtime Events to Workflow Process
+ most things possible with native, compiled Siebel Operations
+ declarative, flexible, upgradable without srf update
+ long-running workflows for multiple consecutive events
+ real-time, optional asynchronous
- no loops (almost) without custom business services
- overhead of instantiating the workflow first time (then cached), which can have a big impact on mobile users

Server scripts
+ simple to write
+ low overhead
- not declarative, requires srf release
- higher level than vanilla C++ services (so slower, in theory)
- limited possibility to interact with the user

Browser scripts
+ opportunity for full manipulation of DOM, real-time interactivity
- maintenance headache (generating script, keeping versions current)
- interpreted at run-time (so slower, in theory)
- limited speed, memory space etc

Workflow Policy to Workflow Process
+ fully robust database-level trigger
+ fully asynchronous
- not real time, interactive
- not declarative, requires DBA maintenance

5 comments March 26th, 2007

Locally unlocking a locked Project

With multiple developers building one application it’s inevitable that multiple developers will need to change the same project at the same time. There’s pros and cons and object-locking and change-control and build-control etc etc, but sometimes deadlines are too tight and you just have to fork.

In Siebel Tools, once one developer’s got a project locked the UI won’t let a second developer anywhere near it. To get around this you need to get into SQL Anywhere. Login to the second developer’s local database, then the following script will unlock the project locally:

UPDATE s_project
SET locked_flg = ‘N’
WHERE name = <Project Name>

The second developer can now log into Siebel Tools, manually lock the project as normal and do what she has to do. Of course, once build is done the two developers will need to go through a merge exercise to get their changes into the one repository, but that effort can be preferable to losing days of development time.

2 comments March 22nd, 2007

Tools Object Explorer options

Every Siebel 6 developer new to Siebel 7 goes through this one. Install Tools, open it up, browse around, note the handy use of drilldowns everywhere, then… “Where have all the Integration Objects/Reports/Workflow Policy Objects/User Properties/etc etc gone??! ”

The answer is that they’re hidden. For ’simplicity’, Tools 7 defaults to only showing a small subset of the repository objects. To see the rest, go to the View -> Options… dialog and click the Object Explorer tab:

Object Explorer Options

From here, you can tick away exposing all the obscure Pick Map UpdOnlyIfNulls and Workflow Policy Component Cols you want to hack around with.

1 comment March 19th, 2007

Connecting to a Local Database

SQL is my kind of fast, powerful, geekiness. I’m forever forgetting the ins-and-outs of connecting to a local database with SQL Anywhere though, so it needs noting.

There’s a pretty comprehensive SupportWeb article that covers everything you need to know. In summary:

  • for Siebel 6 use isql55.exe from the \bin directory, then username DBA and password SQL.
  • for 7.0 and 7.5 use dbisqlc.exe and the same DBA/SQL.
  • for 7.7 and 7.8 it’s still dbisqlc.exe but the login changes to DBA/<Enterprise Name> (in upper case).
  • not sure about 8 yet…

Update: those executables are all in the client\bin directory, regardless of version.

Another login option in all versions is the username SIEBEL with the local password for the database you’re connecting to (in upper case). This can be handy if somebody’s changed the database admin password, for instance…

The Watcom-SQL variant is somewhat different from Oracle or SQL Server SQL, so it’s worth keeping the SQL Anywhere User’s Guide to hand while hacking around.

2 comments March 15th, 2007

Previous Posts


Calendar

March 2007
M T W T F S S
« Feb   Apr »
 1234
567891011
12131415161718
19202122232425
262728293031  

Posts by Month

Posts by Category