I’ve been around Siebel for nearly 20 years now. Yes, I know I don’t look old enough, but that would be the fresh Scottish air. Siebel has evolved over that time but never to any sort of degree that truly made life better for a Siebel developer. Now, with the release of IP 2017, and just in time for me to move away to do other things, Oracle have given us a game changer: Siebel Workspaces and the SRF’less World.
The clear goal, though a goal that’s not quite achieved, of Web Tools in IP 2017, is to allow configuration of the Siebel Application through the thin client UI. For simple changes, this is largely successful, though Oracle has a lot of work to do to do away with Siebel Tools altogether.
Here’s a walkthrough of the steps to add a new field and expose it on an applet, just to show you how neat Web Tools can be.
- Log into Siebel Web Tools
- Click the “Workspaces” icon in the top right
- From the “Main” branch, click “Create” to create a new Workspace instance, giving it a name and a description
- Close the Workspace window, with the big “X” in the top right
- Click on “Business Component” and query for “Contact”. Note that, now you have an active Workspace, everything is now editable in Web Tools
- Click “Fields” and add a new field:
Name: OLI Life After Siebel Flag
- Now go to “Applets” and query for “Contact List Applet” and click “List” then “List Column” and add a new record:
Name: OLI Life After Siebel
Field: OLI Life After Siebel
Display Name String Override: Life After Siebel?
HTML Icon Map: CHECK
HTML Type: CheckBox
- Go to “Applet Web Template”, click on “Edit List” and click the “Edit” button
- Drag our new list column to placeholder 540
- Our changes are done – easy peasy!
- Now to publish the changes
- Go to the Workspace page again
- Select your “In Progress” workspace and click “Version” – now this is actually called “Checkpoint” in Siebel Tools but it doesn’t the same thing
- Give the checkpoint a name and click the “Version” button
- You’re ready to deploy the change!
- With your “In Progress” Workspace selected, click the “Submit” button then click the “Deliver” button
- Give the delivery a name and click “Deliver” – Web Tools will do its thing!
- Now get into your Siebel application, Siebel Call Center in my case
- Navigate to “Site Map”, then “Contacts” and finally “Contact List”
- Behold your new field – all without an SRF or server restart in sight!
Web Tools is finally on the right path to deliver agility in Siebel development. It’s very clunky in places and you’re still bound to Siebel Tools for many tasks. However, this is a massive leap forward and I can’t wait to see what IP 2018 brings in this space.
A couple of people have asked me recently about the inactive “Edit Web Layout” menu item in Siebel Tools. Well, that functionality is gone – web templates are no longer stored locally in files, but in the database, and so the ability to access this function in Siebel Tools has simply been deactivated. However, all is not lost – “Edit Web Layout” is still available, but you’ll have to access that function through the new Web Tools.
To make matters even more entertaining, that function is not enabled by default nor is it enabled automatically via any of the Patch Sets currently available (up to 17.6 at the time of writing). However, 17.6 does dump a little gem into your Siebel Server BIN folder for you to stumble across, if you happen to read the entire contents of the “Known Issues” section of the patch release notes. Here’s a quick summary of what you have to do, in a Windows environment, to work around “Bug Id 27113012”:
- Install the latest Patch Set (17.6 is what I’ve been using) to your Siebel Enterprise
- Open a command line and change directory to the Siebel Server installation BIN folder (e.g. <SIEBEL_HOME>\ses\siebsrvr\bin\)
- Execute the batch file named “EditWebLayout.bat”
- After executing the batch file, you will be prompted to enter the following information:
Full path of ODBCSQL: <Siebel Server BIN Location>
ODBC Data Source: <ODBC DataSource Name>
Table Owner Name: <Table Owner User - 'SIEBEL' in most cases>
Table Owner Password: <Table Owner Password>
TBLO Name: <A cryptic one this. The batch file gives some garbage about ORAPQ100, or some such. I just used the table owner again, 'SIEBEL'>
Repository Name: <Repository Name - '"Siebel Repository"' in most cases. Yes, you have to put the quotes around it or the batch file will fail>
- Check the output of the command in the log file, EditWebLayout.log, and you’ll see that a bunch of seed data has been loaded
- Clear the browser cache and re-login to the Web Tools application
- Navigate to your Applet then Applet Web Template
- You’ll see an “Edit” icon in the bottom right (cunningly, the tooltip says “Preview” – great job, Oracle!)
Here’s the “Edit Web Template” button
- Click this and you’re back on familiar(ish) ground
And… edit away!
Some wee observations:
- Why do Oracle insist on disabling functionality before they fully implement an alternative?
- Why do Oracle still find it so difficult to deliver repository and seed data fixes, outside of horribly written, unintuitive, manually executed batch scripts that I have to hunt in their obscure documentation to find?
Ho hum, I guess this sort of hack-around is what we’ve come to expect and accept from Siebel releases these days.
I’ve put together many tools and apps over the years, mostly to help me learn the C# language, but also to help me on my quest to get the most out of Siebel. The Siebel Store was an experiment in “commoditizing” these tools and my code, and it hasn’t really worked very well given the nature of what we expect (i.e. everything for free) and how niche developers work together as a community (through mutual sharing).
In the true hacker spirit, therefore, I’m making all the tools completely free to download from now and for ever more. Simply head on over to the Software Store and choose your downloads – you don’t even need to be a registered user. I’m giving away:
Siebel Performance Log Analyser
Quickly see poorly performing SQL in your client or server SQL logs
Siebel Error Log Analyser
Quickly and easily identify critical “SBL” errors in your log files
Dynamic dedicated web client logging – and yes, it supports Siebel IP 17!
Advanced Microsoft MSMQ queue management in one handy app
I hope these tools help you on your own journey’s towards Siebel greatness!
Now that the Siebel 17 installation is complete, we can start the logical configuration and deployment process. It’s at this point you’ll want to apply any Patch Sets or whatever – just remember to shutdown the containers for the AI and Enterprise (via the applicationcontainer\bin\shutdown.bat script) and stop the Gateway service.
Before starting with the logical deployment, quickly check the regional settings on your host, if you’re running Windows. This must be set to “English (United States)” or the deployment process will fail. Oracle are fixing this under bug 27348563.
The Siebel Management Console is where all the activities take place. Think of this as an abstraction over the old configuration batch files, the shortcuts for which used to be installed in your start menu. There’s an order to the deployment tasks, so let’s go through them one by one.
Deploy the Enterprise
- First up, create a Siebel Fileshare folder somewhere on the host. I used “D:\Siebel\siebel_fs”
- Start the deployment process by navigating to the Profiles > Enterprise tab on the left side of the Siebel Management Console (hereafter referred to as SMC)
- Clone the sample profile and give it a name, for example “siebel_enterprise_profile”. The clone button is the one with two squares overlapping
- On the first tab, set the primary file system to the absolute path of the fileshare folder that you created. For example, “D:\Siebel\siebel_fs”. Enter the SADMIN username and password in the authentication section
- On the next tab, enter your database platform details. See an example from my Oracle Database Server below:
- On the next tab, select the “Gateway” authentication profile that you created when first logging in to the SMC
- On the last tab, you can leave the encryption type field unchanged
- Now submit the profile
- Now click the Deployment tab on the left of the SMC, and click the “+” button to create a new deployment action. Click the “Enterprise” item
- Select your Enterprise profile, give it a name, and select the “Deploy” radio button before submitting the activity
- After a great deal of whirring and clunking, your new Enterprise will be deployed into the ZooKeeper keystore and made available within the Gateway. You’ll also see a file system structure in place, a Gateway service and an ODBC datasource
Deploy the Siebel Server
Deployment of the Siebel Server is more of the same.
- Start the deployment process by navigating to the Profiles > Siebel Server tab on the left side of the SMC
- Clone the sample profile and give yours a name. For example, “siebel_server_profile”
- Enter the SADMIN username and password and the GUESTCST username and password, as you setup in your database
- Pick which Component Groups you want to enable and leave the port numbers as is
- On the last tab, leave everything as is. You’re all set to submit the profile
- Now click the Deployment tab on the left of the SMC, and click the “+” button to create a new deployment action. Click the “Siebel Server” item
- Select your Siebel Server profile, and enter your FQDN and HTTS port number. For example, “SIEB17.siebel-tech.com:9021”
- Give your Siebel Server a name, pick your languages and you’re ready to submit your Siebel Server deployment
- With a bit of luck, you’ll find a Siebel Server Services awaiting you!
Deploy the Application Interface
There’s a bit more to do to deploy the Application Interface, the replacement for the Siebel Web Engine.
- Start the deployment process by navigating to the Profiles > Application Interface tab on the left side of the SMC
- Clone the sample profile and give yours a name. For example, “ucm_appinterface_profile”
- You don’t need to worry much about what’s here, but you’ll want to specify the GUESTCST password as you defined it during the database setup
- Pick your object manager and specify your REST response base URL. For example, “https://SIEB17.siebel-tech.com:9011/siebel/v1.0/”
- On the second tab, give the application a name, for example “ucm” and choose the object manager. I’ve gone for “ucmobjmgr_enu”. Update the anonymous GUESTCST user password as before
- The third and forth tabs can remain unchanged. Simply submit your profile
- Now click the Deployment tab on the left of the SMC, and click the “+” button to create a new deployment action. Click the “Application Interface” item
- Specify the FQDN and HTTPS port number again. For example, “SIEB17.siebel-tech.com:9021”
- Select your profile and give the new AI a name and description before submitting the deployment
- You should see green lights all around!
You can now access your Siebel 17 user interface using your host plus the name of your AI profile. For example, “https://sieb17.siebel-tech.com:9011/siebel/app/ucm/enu”
It has been rather quiet of late, I’m afraid. The trials and responsibilities of everyday life continue to thwart my efforts to update the blog and keep you appraised of all things “after Siebel”! However, Siebel 17 is not forgotten and I’ve been working closely with Oracle to iron out a bug or two in the IP 2017 deployment process as well a running a project to deploy IP 2017 as part of a large Enterprise programme. More on all that shortly.
In the meantime, I wanted to put the question of self signed certificates to bed and show you how to produce keystore and truststore files for an IP 2017 installation.
You’ll have to install OpenSSL and a Java SDK somewhere on your machine. The machine itself must have a Fully Qualified Domain Name: “MySiebelHost” will not do, it must be “MySiebelHost.mydomain”. In Windows, you can easily get around this without having to actually create a domain and register your machine on it by setting the “Full computer name” in the System Properties:
Anyway, without further ado, I give you “MakeKeys.bat”:
rem CHANGE_ME! :)
rem DO NOT CHANGE
rmdir %SIEBEL%\keys /s /Q
rmdir %SIEBEL%\ca /s /Q
%JAVA%\keytool -genkey -alias siebel -keystore %SIEBEL%\keys\siebelkeystore.jks -keyalg RSA -sigalg SHA1withRSA -dname "cn=%FQDN%" -storepass %PASSWORD% -keypass %PASSWORD%
%JAVA%\keytool -list -v -keystore %SIEBEL%\keys\siebelkeystore.jks -storepass %PASSWORD%
%JAVA%\keytool -certreq -alias siebel -keystore %SIEBEL%\keys\siebelkeystore.jks -file %SIEBEL%\keys\siebelkeystore.csr -storepass %PASSWORD%
%SSL%\openssl req -new -keyout %SIEBEL%\ca\cakey.pem -out %SIEBEL%\ca\careq.pem -subj "/CN=%FQDN%" -passout pass:%PASSWORD%
%SSL%\openssl x509 -signkey %SIEBEL%\ca\cakey.pem -req -days 3650 -in %SIEBEL%\ca\careq.pem -out %SIEBEL%\ca\caroot.cer -extensions v3_ca -passin pass:%PASSWORD%
%JAVA%\keytool -printcert -v -file %SIEBEL%\ca\caroot.cer
echo 1234 > %SIEBEL%\ca\serial.txt
%SSL%\openssl x509 -CA %SIEBEL%\ca\caroot.cer -CAkey %SIEBEL%\ca\cakey.pem -CAserial %SIEBEL%\ca\serial.txt -req -in %SIEBEL%\keys\siebelkeystore.csr -out %SIEBEL%\keys\siebelkeystoreCASigned.cer -days 365 -passin pass:%PASSWORD%
%JAVA%\keytool -import -alias ca -file %SIEBEL%\ca\caroot.cer -keystore %SIEBEL%\keys\siebelkeystore.jks -storepass %PASSWORD% -noprompt
%JAVA%\keytool -import -alias siebel -file %SIEBEL%\keys\siebelkeystoreCASigned.cer -keystore %SIEBEL%\keys\siebelkeystore.jks -storepass %PASSWORD%
%JAVA%\keytool -list -v -keystore %SIEBEL%\keys\siebelkeystore.jks -storepass %PASSWORD%
move %SIEBEL%\keys\siebelkeystore.jks %SIEBEL%\siebelkeystore.jks
echo Use the following path for both keystore and truststore in all Siebel installations: %SIEBEL%\siebelkeystore.jks
echo Use the following password for both keystore and truststore: %PASSWORD%
Simply save to a .BAT file (this is Windows, but should work with small mods on a Linux environment) and set the parameters appropriately. Execute the file and use the resulting “siebelkeystore.jks” file for both the keystore and truststore in your Siebel installations, across all components on that machine.