Tuesday, August 31, 2010
Monday, August 30, 2010
I am often asked by course delegates where they can find business process examples in Siebel CRM.
The generic answer is that Siebel CRM is just "a bunch of views" and the application technically does not care about the sequence in which you visit the views. The customer's business analyst team is responsible for documenting the business processes and mapping the business process steps to standard (or newly created) Siebel views.
However, there is hope for the inquisitive kind of seekers. The following list guides us to the most commonly neglected ;-) information resources when it comes to examples for business processes in Siebel.
1. Siebel Bookshelf Guides
"RTFM" as usual comes first. Each functional guide in the Siebel Bookshelf contains "scenarios" for administrators and end users which describe typical usage patterns at a high level.
For example, the Siebel Marketing User Guide describes how to create marketing plans and budget requests.
As always, Google is your friend.
2. Siebel Sample Database - iHelp
Very often I find that the Siebel Sample Database is not at all used to inspect Siebel standard behaviour. Not only that the sample database is replete with useful sample data and demo user accounts (which are described in a separate bookshelf guide). The sample database also contains dozens of iHelp items which describe detailed sample business processes.
For example, we can find an iHelp which describes how to promote a marketing event using a campaign. Click the screenshot for a larger image.
The Siebel Marketing Installation Guide even recommends to export the marketing related iHelp items from the sample database and import them in production.
3. Siebel Task UI
Inaugurated in Siebel 8.0, Siebel Task UI is the ideal vehicle to guide end users through complex business processes. It is a much neglected fact that the Siebel Repository contains ready-to-use Task definitions (a few in 8.0, many more in 8.1) which of course serve as good examples for business processes.
For example, you could open the Siebel Marketing 8.1 Demo (MMAY against the sample database), navigate to the Offers screen, click the Email Treatments link and hit the Email Setup Wizard button. This launches a task which guides the user through the process of creating a new Email Treatment.
4. Business Process Solution Library (BPSL)
Siebel veterans still remember the time when Siebel Systems announced the BPSL as a resource for customers to find best-practice business processes. The BPSL is version agnostic but it has not been updated for a long time.
We can find examples for business processes and best practices in Siebel CRM in at least four easily accessible locations. Our duty is to go get the information and study it.
Have a nice day
Friday, August 27, 2010
Oracle Business Intelligence Enterprise Edition (OBI EE) 11g has been officially launched 51 days ago. Since then, many splendid articles and blog posts have been published and it's relatively easy to learn about the major new features such as the new UI, the new BI server administration or the new action framework - to name a few.
Even if this blog is named after Siebel CRM, it has a certain tradition in Oracle BI EE as the author has been involved in Siebel Analytics (the predecessor of Oracle BI EE) since Siebel acquired nQuire.
So with the shiny and newest version 11g, I decided to post a few findings and why not stick to the number 11. I will try to keep the posts small and not discuss the big new features (I'm sure that others will do that better). Rather I will describe some features which don't get that much of attention.
The first one to open this series of posts is about suppressing chart animations.
I remember the day in May 2009 well when I first saw a live demo of OBI EE 11g. A crowd of 50 BI experts dropped their jaws at... animated charts.
Seconds after that concerns were raised whether this kind of eye candy is really a benefit.
Personally, I love the KISS principle. It has saved me a lot of time.
However, the default behaviour of charts in OBI EE 11g is to pop up in an animated manner.
If you (or your customers) belong to the group of people who don't see a benefit in chart animation, there is good news: You can turn it off.
In the Chart properties dialog, we can simply uncheck the box "Animate graph on Display" in the General tab.
Sunday, August 22, 2010
Whenever we discuss the options to adapt Siebel CRM to the customer's needs, people tend to randomly refer to "configuration" or "customization".
Image source: Green Toys
Most of us don't really care about the difference as we know what we are talking about ;-). But for those among you who want to know the difference between configuration and customization, I recently found a very good explanation which I wish to quote here.
On the allinterview.com portal, Prasadjrn answers Madan's question "What is the difference between configuration and customization with examples?" as follows (with regards to SAP):
CONFIGURATION: we will configure the system to meet the needs of your business by using the existing data.
CUSTOMIZING: we will customize or adapt the system to your business requirements, which is the process of mapping SAP to your business process.
Configuration vs. Customization:
When considering enterprise software of any type, it is important to understand the difference between configuration and customization. The crux of the difference is “complexity”.
Configuration uses the inherent flexibility of the enterprise software to add fields, change field names, modify drop-down lists, or add buttons. Configurations are made using powerful built-in tool sets.
Customization on the other hand, involves code changes to create functionality that is not available through configuration. Customization can be costly and can complicate future upgrades to the software because the code changes may not easily migrate to the new version. Wherever possible, companies should avoid customization by using configuration to meet their goals. Companies also should understand their vendor's particular terminology with regard to this issue since words like "modifications" or "extensions" often mean different things to different vendors.
I think that the difference between configuration and customization cannot be described better. With regards to Siebel CRM, any changes to the OOB system such as adding or modifying UI components (applets, views) , adding pick lists or validation logic etc. by using the existing tool set is considered configuration.
Writing tens of thousands of lines of script and reinventing access control can be considered examples for customization. The risk of adding erroneous behaviour or delaying the upgrade to a newer version of Siebel CRM is inherent in such activities.
Another splendid article on configuration vs. customization can be found on the lecorpio blog.
When it comes to adapting Siebel CRM to the customer's needs, ensure that configurational activities represent the majority of your work. Keep customization to an absolute minimum.
Have a nice day
Tuesday, August 17, 2010
Image via WikipediaAny time is upgrade time...
Be it 8.1.1 or 8.2. There are many reasons to upgrade to a newer version of Siebel CRM. An upgrade project is the ultimate litmus test for the implementation team, answering the big question:
Did we customize with the upgrade in mind?
For many it will be the first Siebel upgrade. The Oracle support team has compiled a nice page which provides all the necessary information you need when you plan and execute a Siebel CRM upgrade project.
You find the Siebel Upgrade Advisor as Document Id 259.1 on My Oracle Support.
Did I mention that Oracle University Germany offers a Siebel Upgrade Workshop with the guy who writes this blog? The workshop can be booked as a private event with any depth and duration from 1 to 5 days. Please leave a comment if you feel interested.
Have a nice day
Saturday, August 14, 2010
Image via WikipediaYes it was a long wait but now it's over.
Oracle Business Intelligence Enterprise Edition (OBI EE) 11g (Version 126.96.36.199.0) has been released by Oracle for public download.
You can download the software here.
Oracle BI EE 11g requires that the database schema is created with the Repository Creation Utility (RCU) which can be downloaded from the above site as well.
When you want to run the RCU on Oracle, ensure that you have at least Oracle DB 11g R1 Patch 7 or higher.
Have a nice (install) day
Thursday, August 12, 2010
Image via WikipediaMany thanks to those who participated in our somewhat geeky, siebel-unessentially summer quiz to answer the question:
How many records can we create in a Siebel server database before the ROW_ID "hits the wall"?
The answers showed quite a broad range of really big numbers.
So let's try to find the answer together:
The facts (nicely laid out by Bash in his answer):
- A ROW_ID value in a Siebel server database consists of a prefix (1 for the 'HQ' database) and a suffix.
- Prefix and suffix are separated by a hyphen (-).
- A ROW_ID can be 15 characters long, so 13 characters are left for the suffix.
- The suffix is in base36, consisting of upper case characters (English alphabet) from A to Z and numbers from 0 to 9.
For those with more interest in the Siebel ROW_ID, you can read up here:
Article on My Oracle Support: What is RowID/ROW_ID, and How is it Generated and Used? (Doc ID 476256.1)
As pointed out by Bash, the maximum ROW_ID ever imaginable would be
1-ZZZZZZZZZZZZZ (13 Zs)
According to the Decimal to Base36 conversion tool on translatorscafe.com a base36 string with 13 Zs translates to
whereas 3613 calculates to
Not sure which one is right but I don't wan't to appear nit-picky here ;-)
The conversion tool does not count the value zero BTW.
In addition we did not take into account that we can have ROW_IDs of different lengths (see below).
Let's use a base2 approach with the letters A and B.
If we would have only 1 character for the suffix, the possible ROW_ID values would be
1-A, 1-B (2 possible values)
For 2 characters it would be
1-A, 1-B, 1-AA, 1-AB, 1-BA, 1-BB (6 = 2 +4 possible values - where 4 = 22)
For 3 characters suffix length, the possible ROW_IDs would be
1-A, 1-B, 1-AA, 1-AB, 1-BA, 1-BB, 1-AAA, 1-AAB, 1-ABA, 1-ABB, 1-BAA, 1-BAB, 1-BBA, 1-BBB (15 = 21 + 22 + 23)
So when we extend the example to base36 and 13 characters for the suffix, we would end with
(361 + 362 + 363 + 364 + 365 + 366 + 367 + 368 + 369 + 3610 + 3611 + 3612 + 3613)
The result of this calculation is
which is a bit more than the first result (roughly 5.4 quintillion or so ;-)
My result (hopefully correct) is
175 quintillion possible ROW_IDs.
Really so many?
Bash and Lennard are completely right in mentioning that the ROW_ID generation mechanism "reserves" blocks of 100 for a session. So in real life we could end up with anything close to 1/100 of this value (still 1.75 quintillion) or even less (assuming that some sessions are closed without creating a single record).
The consequences of large numbers
Let's assume we try to store 1.75 quintillion (let's stick with this number for a while) records in a database and each record consumes 1000 bytes (highly underestimated for easier calculation).
The number of bytes needed to store this information is
1.75 zettabytes (ZB)
which translates to 1.75 billion hard drives with 1000 GB of storage.
Studies claim that the data traffic produced by internet users will reach a volume of 1 ZB by 2015.
If you would use an interface which creates 1 million records per hour, it would take
1.75 trillion hours
to complete the task of creating 1.75 quintillion records.
In other terms, if the first mammals would have had computers (and Siebel EIM) they should have been finished by now.
No need to fear that we run out of ROW_IDs in our Siebel database how many records we might be ever able to produce.
Some more: offensive ROW_IDs
As PaulH pointed out in his answer, some ROW_IDs could have an offensive meaning such as (hold your breath)
(or even worse...). According to my experience this is clearly the case. I have personally witnessed such a naughty ROW_ID for a new record to be 1-NEU (which translates to 'NEW' in english).
Oracle Support describes this behaviour (Doc ID 603077.1) and recommends to use the RowIdToRowNum() function to convert alphanumeric ROW_IDs to numeric values when the Id needs to be on screen or printed.
Have a nice day
Saturday, August 07, 2010
This is a typical vacational geek question. If your inner geek wants some brain candy here is it:
How many records can we create in a Siebel server database
before the ROW_ID "hits the wall"?
Image source: ZX Projects
Please put your answers in the comments. Please note that we are talking only about server databases (not local databases). And no, the number in the image above is not the correct answer.
Have a nice day
Tuesday, August 03, 2010
Having been announced earlier this year, a new book on Oracle's Siebel CRM is now available in a bookstore near you. The book is titled Oracle Siebel CRM 8 Installation and Management and is being published by Packt Publishing.
The author is well known in the Siebel CRM community for his passion of information sharing.
What's in it?
The book covers the following topics:
- Understand the Siebel Web Architecture
- Plan and prepare the Siebel CRM infrastructure
- Install and configure Siebel CRM software on Microsoft Windows and Linux
- Install and configure Siebel Charts and Oracle BI Publisher for Siebel
- Implement load balancing and support multi-language environments
- Manage the Siebel servers from the Siebel Web Client and the command line
- Implement LDAP authentication and Web Single-Sign-On
- Understand Siebel Access Control and Personalization
- Manage organizations, positions, and user accounts
- Use Siebel Remote to support developers and mobile users
- Install the Siebel Management Server infrastructure and use ADM to migrate configuration changes
- Monitor Siebel CRM environments for usage and performance
- Supports all Siebel 8 versions up to 8.2.x
Who is this book written for?
This book is for administrators who want to develop and strengthen their Siebel CRM skills in the areas of installation and system management. Whether you are a novice or a more experienced user, this book will teach you something new in many ways.
Can I peek inside?
Yes, you can read a sample chapter here.
Have a nice read
Monday, August 02, 2010
In response to Seema's request to supply some details on the EAI Transaction Service, I took this interesting little business service for a ride.
The EAI Transaction Service is on the official list of documented Siebel EAI Business Services, albeit it remains a bit obscure.
Quite obvious it has three methods which we can see in Siebel Tools.
The IsInTransaction method has one output argument named IsInTransaction which is set to "true" when an EAI transaction is in progress. This is the case when the EAI Siebel Adapter business service is currently processing a Siebel Message.
The BeginTransaction method can be used to set the "construction sign" or "semaphore" (see below) programatically so that other processes like workflows or scripts can react.
The EndTransaction method of course sets the EAI Transaction semaphore to "false".
The concept that one process instantiates a globally visible signpost (or semaphore) so that other processes can wait until the first process has finished working is widely used in programming. It has been popularly illustrated as the "dining philosophers problem" by Dijkstra and Hoare in the 60ties.
Image source: Wikipedia
Some weeks ago, I demonstrated how to use Siebel Workflow to create an activity when the revenue value of an opportunity is decreased.
A simple usage scenario for the EAI Transaction Service is that the activity should report when an update of this kind is made by an EAI interface rather than the end user. So I added another business service step to the workflow as follows:
Business Service: EAI Transaction Service
Business Service Method: IsInTransaction
Output Argument: Populate the WF Process Property IsEAITransaction with the value of the IsInTransaction output argument.
I also changed the Siebel Operation step which creates the activity record to include the following expression in the description text.
+ IIF([&IsEAITransaction]='true'," Update made by EAI Siebel Adapter","")
As a result, the text "Update made by EAI Siebel Adapter" will be added to the description text when EAI Siebel Adapter is currently executing a transaction upon the record.
Next, I used the Business Service Simulator to invoke EAI Siebel Adapter's Upsert operation on some opportunities and voilá, the activities were created as follows:
The EAI Transaction Service is especially useful for situations when a complete Siebel Message is treated as a single transaction (which is the default behaviour of EAI Siebel Adapter) and runtime events or scripts in "Pre" event handlers need to wait until all data operations have been committed successfully.
We can imagine that the EAI Transaction Service's IsInTransaction method can be invoked at the beginning of the respective script or workflow to determine whether the current event has been caused by an EAI transaction and then defer the script or workflow execution.
This avoids problems which occur when the "Pre" event handlers are executed for a record which is touched by EAI Siebel Adapter but later an erroneous record in the Siebel Message causes EAI Siebel Adapter to "roll back" the changes (technically correct: it does not commit).
Have a nice day
Sunday, August 01, 2010
Fellow blogger and OBIEE expert John recently provided a link to a splendid website named BlogBooker where blog authors can easily create blog books in PDF format.
Those of you who leverage the Siebel Essentials PDF archive might already have noticed, that I have started to publish both a browser print and a blogbook PDF file for each month.
BlogBooker is a free service funded by donations and a great example for creative use of open source software.
I hope you enjoy the new blog books as much as I do.
Have a nice day