Social Icons

Pages

Subscribe:

Saturday, 30 August 2008

Ask the Expert 01


Question :
Hi,
I have been following your site for quite sometime and its great.
Wanted to have a clear idea on the Siebel EMail Response module.
I did go through the bookshelf which gives a very good idea but still wanted to know if there are some practical implementation done.
Requirement is that a service request or an activity needs to be created from an email.


Response :
From what i understand of your requirement, please find the following reply to your query. Once the email is triggered using the Outbound Communication Manager BS, an activity gets generated as per the Siebel vanilla functionality. The activity of Type Email-Inbound or Email-Outbound will get created provided the Email templates, Email server, Outbound Communication Manager component is configured properly.
If one wants to generate customized activity / SR post the email is triggered, then e-scripts or VB scripts have to be used. For e.g The email has to be sent to the customer on updation of customer’s demographic info. The e-script written on appropriate event(s) can be called. This code will further invoke an email Workflow (WF). After the WF has been invoked, another chunk of code/Workflow has to be invoked for generating activity / SR by creating a new record in the custom BC.

To know more about Ask the Expert

Introduction of External Business Component (EBC)


In almost all the implementation of Siebel Application we come across the requirement as – “Bring the data from the external source and display” well for that in Siebel the solution is External Business Component (EBC) and Virtual Business Component (VBC). In this Blog the content is specific to EBC, so let me give the defination of EBC first then the process of creating it –

Defination:
EBC is a method used when there is a need to display data which is external to siebel. The external schema is imported into siebel tables using a wizard. Once the exteranal schema is imported, to display this data in an applet, the configuartion is going to be the ame as creating a BC, an Applet,a View etc.

Steps of Creating:
1. get the DDL file for your external table.
here is how a sample ddl file will look like:
CREATE TABLE TPMS.EBC_VEC
(
demo1 VARCHAR2(20),
demo2 VARCHAR2(20),
demo3 NUMBER(10)
)
2. Use siebel object creation wizard to create this table.
File –> New Object –> External Table Schema Import
3. The wizard will ask for following inputs:
i. Select Project this table will be part of from the list -
ii. Select the database where external table resides – Enter the database, for this example it is Oracle Server Enterprise Edition
iii. Specify full path of the file where table definition resides -
iv. Specify a 3 digit batch code for this import – eg 001
v. Click on Next and then click on Finish
4. This will create your External table. with a name like EX_001_0000001. The names of External tables begin with “EX_” the next 3 characters are batch codes and the rest is just a serial number.
* The Type field will be “External” for this table.
* You will also have to map one of the table columns to the Siebel’s Id field. to do this: go to the desired table column and in the “System Field Mapping” column select “Id”
5. Changes to be made in cfg file now follow the below steps
  • create an entry for a new datasource under [DataSources] section
TPMS = TPMS
  • add a new section [TPMS] to describe the datasource params:
[TPMS]
Docked = TRUE
ConnectString = VECDEV
TableOwner = TPMS_INT
DLL = abc.dll
SqlStyle = OracleCBO
DSUserName = vecdev
DSPassword = vecdev
  • Now that you have defined the Datasource in cfg file, go back to siebel tools and add the datasource to your external table. Go to your external table, and go to the Data Source and add a new record:
    Name = TPMS
  • External table is now ready for use in a EBC.
Use siebel object wizard to create a BC based on this table. Once the BC is created, change the Data Source property of the BC to “TPMS” .You are now ready to use this BC in a applet/view.
In the above process the description is about an external data source called TPMS and we are fetching the  data from TPMS to Siebel.

But what if we come across a bit more complex requirement … suppose the data is in siebel but it should not be modified from the front end or from the back end (unless and untill one has right to do so) just like an external data source schema. Or let me put it as can we make EBC on the same database we are working i.e. Siebel Database???

The answer and solution is the same Yes we can create an EBC based on the same database but for that we need to create a different DSN and then follow the steps given above.
Please feel free to put comments/questions/ideas

To know more about External Business Component

Friday, 29 August 2008

Dynamic MTD / YTD Measures in Siebel Analytics


Definition:

MTD: Acronym for Month to Date. MTD value of a certain measure would be the aggregated total of the measure from the start of the month till the defined date. For example: For the date 15th August 2008, MTD Dollars would be the total dollars from starting of August 2008 i.e. 1st August 2008 to 15th August 2008.

YTD: Acronym for Year to Date. YTD value of a certain measure would be the aggregated total of the measure from the start of the year till the defined date. For example: For the date 15th August 2008, YTD Dollars would be the total dollars from starting of 2008 i.e. 1st January 2008 to 15th August 2008.

Situation:
The client required MTD YTD metrics for a few reports. The twist in the requirement was the calculation based on user specified dates supplied from the dashboard prompt instead of the usual current date MTD YTD metrics. This means capturing the date value entered by the user and applying its relation to the concerned request.

Solution:
After a lot of brainstorming and trying out N number of unsuccessful RPD and Answers permutations and combinations, the solution was arrived at with the help of “Filter based on other request” option in the Answers section and a dummy request to capture the prompted date.

Implementation:
Step1:  Creating the dummy report
Dynamic MTD
This dummy request is used to capture the Transaction date. As seen, the Transaction Date column is prompted and the dashboard prompt date value is fed to this request. We also take Month and Year columns for MTD YTD calculation purposes.
Step2: Creating the MTD Request
Dynamic MTD
The request shows Amount by Pay Type. We want to calculate MTD amount for a date specified by the user. The Date filter columns of the dummy and the main request should be same.
Step3: Creating MTD specific filters
Dynamic MTD
Using the “Filter based on Another Request”, we specify the filters for MTD calculation.
Step4: Creating the dashboard prompt
Dynamic MTD
It’s always a good practice to specify a default value to the dashboard prompt so that the dummy request is initialized to some value. Needless to say, the dashboard prompt, the dummy request and the main request should come from the same subject area.
Step5: Displaying and verifying the MTD metrics
Dynamic MTD
The MTD request has been placed on the dashboard along with the normal reporting date request. This way one can verify the MTD results quite efficiently.
Conclusion:
  • The YTD metrics can be calculated in a similar manner. The month filter won’t be applicable for YTD. Rest remains unchanged.
  • Combine request feature of Answers should be used if the reporting date, YTD and MTD metrics need to be shown together in one single request.
  • This dummy request feature is an excellent way of capturing the user entered prompt values of any data type and manipulating the report metrics on the fly based on the captured prompt value in the dummy request.
To summarize, via this method, we get the power of the presentation variables of OBIEE, strictly to just some extent, in Siebel Analytics.

To know more about Siebel Analytics

Monday, 25 August 2008

Toggling with the Search Specification in Applet


Working with Siebel, I have come across many challenging requirements. Keeping in mind the Siebel Best Practices, the challenge gets tougher. In this post, I will share such a requirement. 

The requirement was to put search specification in a Toggle Applet. Sounds very practical and easy but trust me it was not. About the toggle applet, Siebel Tools Help says:If two applets are defined with the same business component and both have a search specification, then the search specification for the applet in lowest sector is used.

Do not specify different search specifications where several applets in one view are based on the same business component. All of these applets should have the same or an empty search specification.

Going by the above mentioned documentation, I thought of two immediate approaches:
1. Copy the BC and Map one applet which is having the search spec.
I had already made a copy of the BC and creating a third copy, to map to the two given applets, was not an intelligent approach.
2. As per the Siebel Help content we can give the search specification in a form applet.
The Applets we were dealing with were List applets and not Form applets. So the second approach was not applicable either.
Hence the best alternative was to write a script which is as follows:
Set profile attrib in two applets when the user is going to toggle or executed query or SortAscending or SortDescending.
APPLET 1:
if (MethodName == “ExecuteQuery” ||  MethodName == “SortAscending” ||  MethodName == “SortDescending”)
{
TheApplication ().SetProfileAttr (“UserDoingQuery”, “Y”);
}
if (MethodName == “ToggleTo”)
{
TheApplication().SetProfileAttr(“Uni Tgt Team ToggledBackToAdmin”, “2″);
}
APPLET 2:
Use the same code as above and,
Set Profile Attribute as “Uni Tgt Team ToggledBackToAdmin” = 1.
In Event method of Business Component (BusComp_PreQuery   event)
Get the profile Attrib and give the search spec as per your requirement and clear the profile Attribute.
if ((TheApplication().GetProfileAttr(“Uni Tgt Team ToggledBackToAdmin”) == “2″) || (TheApplication().SetProfileAttr(“UserDoingQuery”) == “Y”))
{
this.SetSearchSpec (“Name”, “XYZ”);
TheApplication().SetProfileAttr (“Uni Tgt Team ToggledBackToAdmin”,”");
}
if ((TheApplication().GetProfileAttr(“Uni Tgt Team ToggledBackToAdmin”) == “2″) || (TheApplication().SetProfileAttr(“UserDoingQuery”) == “Y”))
{
this.SetSearchSpec (“Name”, “ABC”);
TheApplication ().SetProfileAttr (“Uni Tgt Team ToggledBackToAdmin”,”");
}
This script helped in enabling the search specification in a toggle applet. Hence, another challenging requirement was successfully met.
To know more about Toggle Applet

Thursday, 31 July 2008

Auditing Best Practices on a button Click – EScript doc


Prevention is better than precaution” An audit (ES Review) was conducted for the previous project and the report stated that most of the Siebel best practices were not implemented which led to poor performance of the application. Sometimes we used to perform the hectic job of copying each and every script manually to a word document for script documentation.

After the project was over, a thought came into my mind, why not to prepare a tool that would scan the script, check for the Siebel best practices implementations and would generate a word document regarding the same, in addition to this if this tool would also copy the script into word document then it would be like a “red cherry on the cake.” So I prepared a tool named escript doc aud
  • eScript Auditor is an audit tool developed in VB .Net 2005 which checks whether the script has followed Siebel Best practices and documents the entire code in a word document
Escript
Features:
The major feature of the escript doc aud is that it documents and audits every script written at the following level:
  • Application
  • Business Service
  • Business Component
  • Applet
Working:
Search for the required object script for which you need to mention the object name in search textbox shown above with selecting appropriate script type and click “Go” button
Respectively a script will be displayed under script area also with all the non followed best practices (highlighted in red shown in above picture)
If required hit “Create Script Area Doc” button to generate a word document for that particular script along with its non followed best practices.
Advantages:
  • Can copy thousands of lines of code (LOC) in couple of minutes.
  • Reduces the manual effort required.
  • In fraction of second audits the entire script.
Script Doc Aud gives the customer friendly GUI to see each script and perform best practice violation check up.
To know more about EScript doc

Hexalyzer- An analyzer tool to view Siebel repository


The ever changing needs and requirement of Business Process makes it imperative for the clients to upgrade from their previous Siebel versions to the latest one.Besides providing better usability and customer satisfaction, upgradation also provides access to new functionality and software applications.

Upgradation facilitates compliance at a lower cost of maintenance and ongoing operations. By providing “out-of-the-box” solution to requirements upgradation helps to increase the efficiency of the applications and businessWhile we were upgrading from Siebel 7.8 to Siebel 8.0, we faced various challenges during the upgrade such as:-
Analyze Repository and generate detail report of the customized Siebel objects

In order to find the information about customized objects every time users are required to fire a query which slows the response time and increases the load on database.
Unfortunately due to time constraint and unavailability of Hexalyzer tool forced us to perform various lengthy but important tasks manually. This was the time when we realized to come up with a tool which would help the upgrade process to take place faster thereby saving lots of time.
The thought process results in Hexalyzer, to generate the report of all the customized objects based on Inactive objects

Count-list of new and modified objects
Hexalyzer has the major advantage of reducing the overload of bulk operations performed on the database.
Hexalyzer
Hexalyzer automates many such steps and helps the customer to get a broader view of the entire repository. For example by clicking the “New Applet” button the tool will generate an excel sheet with the information of all the new applets created during Upgrade process. Similarly, if one clicks “Modified Views” the information exported to the excel sheet contains the entire modified Views name during the Upgrade process.
This tool is now the part of Post Upgrade task for me and my team. Hexalyzer identifies and reports all the customized objects from the start baseline date for the repository.

Solutions / questions / comments are always welcome.

Thanks for reading this blog.To know more about Hexalyzer

Wednesday, 30 July 2008

Siebel Business Solution Tool – Adding value for our customers


As a Siebel Consulting firm, our sales team hunts for prospective clients. Once the client is acquired, cost estimation and resource allocation are vital processes before kick starting the project. After lots of hard work and hurdles (difficulties / issues) the development team comes up with the product.

Do the developers ponder on the modules they developed and its viability for client ? Do they go back and see how end users are using it? What value the Client is deriving, out of the application/product’s usage?
One day the above unanswered questions resurfaced on my head. By gathering some techno-functional expertise, I attempted to answer the above questions. I shared these views with my seniors, and eventually got the nod to work on Development of a Business Solution Tool. Some of the salient features of this Business solution tool are as follows:
  • Automated Siebel CRM Tool that captures the usage details of the application.
  • It keeps track of every user’s login details to the application and the number of views that are traversed by the user.
The above requirement was a challenge and I was looking forward to develop something which would give add-on value for our Clients.
Few of these challenges were:
  • Calculating cost effectiveness – capturing the time spent by the end user on a particular view of the application.
  • Keeping Track of time spent by each user in the application.
  • Statistics w.r.t the heavy and sparing use of the views in the application.
After overcoming the obstacles faced, the development of the Business Tool was done in 2 weeks time. After testing, re-tesing and ensuring the product was bug-free, the Tool was served on the platter of our client. Couple of features of the Tool was cited as below followed by the screenshot:
  • Keeps track of Login details of the users. “Login name” and “Application In-Out time.
  • Keeps track of Time spent by each user in a particular view. “View In-Out time”.
Siebel Business Solution Tool
This Tool will be helpful for the Client to find out the usage of application by their customers. Sometimes navigation becomes difficult to understand for the end users in Siebel. For e.g. The user is unable to some views due to the lack of knowledge of navigation. This tool fulfills that requirement too.
After the development of an Application, the most important benefit our Client derive out of this tool is as follows:
  • Calculate Cost Effectiveness of Siebel System with respect to Time and Efficiency.
Solutions / questions / comments are welcome.
Thanks for reading this blog. To know more about Siebel Business Solution Tool

Tuesday, 29 July 2008

AUTO SAD-Siebel Administration Automation Tool


Auto Sad is a production support tool that automates and provides a faster mechanism to perform Siebel Administrative Tasks on clicks of some buttons on multiple servers.

Siebel Architecture involves the following Servers
  • Siebel Server
  • Siebel Gateway Name Server
  • Siebel Web Server
These servers may or may not be on the same machine.
As a system administrator, one often has to do repetitive tasks such as
  • Bouncing of Services(Starting or stopping services)
  • Migrating SRF from one location to another
  • Compilation of Siebel Repository File(SRF)
  • Generate Browser Scripts.
To perform these tasks the Siebel Administrator needs to login into each server remotely and then execute them. If there are only a handful of servers, this task may not be very intimidating, but there are many times when there are many servers installed on separate machines. This is where Auto Sad comes into the picture which automates the whole process. Using Auto Sad, a Siebel Administrator can perform all the basic tasks by entering required values in their profile and then by click on buttons those tasks can be performed.
AUTO SAD tool involves various steps such as:
  1. Login through sadmin credentials
  2. Create/Edit Environment Profile
  3. Generate batch Files for individual tasks
  4. Execute Batch Files for the required tasks
  5. Launch Siebel Thin Client
AUTO SAD Siebel Administration Tool
From the above screenshot, it is clear that the various administrative tasks can be performed easily by simply click of buttons thereby facilitating the Siebel administrator to work efficiently.Any organization implementing Siebel can make use of this tool to achieve faster and convenient way to perform Siebel Administrative Tasks thereby saving 30% of the time for deployment process.

Read More about AUTO SAD

Computer and Telephone going hand in hand


Computer Telephony Integration (CTI) as the name suggests, is a technology that allows the interactions between a computer and a telephone to be integrated or synchronized.
CTI systems can take several types of inputs including a voice input from Interactive Voice Response systems (IVR) or email, fax and web etc.
Where is CTI used?
Depending on the business type and real time interactivity, we need to decide whether we can go with this approach.
For e.g. In an Online, Help/Solution providing firm, Tele-marketing centers or a Call Center the telephone usage would be high. This means if the business is telephone intensive then we might use this approach so that it would be easy to trace the calls and the caller information.
How to implement CTI in Siebel?
Depending on the business requirements either of the following approaches can be used to implement CTI setup for Siebel Call Center Application
It’s a faster approach as compared to the second one. It uses the vendor specific library which has the configuration parameters required for the setup.
This includes the development of certain customized web services and usage of the ASI s.
Computer Telephony Integration
Example: Scenario where IVR triggers CTI
In our scenario, various methods of customized Business service for IVR trigger the middleware and the middleware further invokes the CTI module.
These methods need to be exposed as web services to publish them on the web at the host address. This host address is specified by the path which is same as the one where we need to get the CTI toolbar and CTI services enabled.
In all, the Business service methods act as the traversing points through which the CSR can navigate to the specified view, taking the output arguments from the function as the input CED (Caller Entered Digit) data for the CTI system.
CTI Applications:
Computer Telephony Integration

What CTI can do and why is it preferred?
  • Displays the complete call information
  • Authenticates the caller
  • Agent state information can also be displayed
  • Can receive fax messages and route it to respective recipients
Greater efficiency
Dialing out automatically with a single mouse click from a computer saves time and is more accurate.
Staff can handle more calls in a given period of time.
Logging calls, allows monitoring the effectiveness of :
  • Operating procedures
  • Individual staff members.
  • Improved Customer Service
  • Receiving customer details on screen at the same moment you receive the incoming call.
  • Automatically seeing key details about that customer.
  • Automatic call distribution (ACD) automatically answers calls with a voice menu, and uses caller responses to route incoming calls.
Challenges in setting up a CTI Systems:
If IVR is used for triggering purposes, then the Web service response time can be a hurdle in case of screen pops configured in the CTI system.
There could be some cases, where the vanilla views can’t be used for displaying the complete info, so lot more customizations are to be done.
Navigating between various screens could be time consuming.Screen transfer between agents could be difficult to implement.As the implementation (Middleware used) is Vendor dependent, the functionalities and services provided also differ. Hence, there is a difficulty in choosing among the various vendors.
As the CTI services are server dependent, there is always a difficulty in maintaining those IC servers
Network congestion could also hamper the CTI response time.

Monday, 28 July 2008

Sales Cycle & Siebel Sales Application



Introduction to Sales Cycle
Sales Cycle plays a critical role in Customer Relationship Management. It is critical in a way because it is the initial point of contact for any customer. For any CRM application it is important to understand the Sales Cycle. The Sales Cycle starts from Prospecting and ends when a deal is closed and the revenue is realized.
There are various steps involved in an end-to-end Sales Cycle.
Siebel Sales Application
  1. Prospecting:It involves creating the target database.
  2. Lead Generation: A lead is an expressed interest shown by the prospects. It is used by a sales agent to determine whether there is a potential for some sales opportunity.
  3. Opportunity Creation: nce a lead is qualified, an opportunity is created.
  4. Quote Generation: Sales agent prepare quotes to communicate prices, discounts and special offers that are associated with a product/service which is part of a sale.
  5. Order Creation:Once the quote is accepted it is converted into an order.
  6. Closure:The deal is closed once the order is created.
The Sales Cycle may differ to some extent depending upon the type of business. But a typical sales cycle would follow the above mentioned steps.
Mapping the Sales Cycle with SIEBEL Sales Application
Following are the important business entities involved in Siebel Sales Application:
  1. Accounts
  2. Contacts
  3. Opportunities
  4. Quotes
The lead that is generated through various sources is captured in Accounts screen. It captures the details like – Account Name, Address, Status of the Account (i.e. whether the Account is active/inactive, Qualified, contract pending etc), Account Type (i.e. whether the Account holder is an existing customer, Business, Competitor or Vendor etc.) within the Account Screen.
The Accounts Screen is then linked to Opportunities, Contacts and Quotes.
The Opportunities Screen will have the details such as opportunity name, account name to which it is associated, revenue that could be generated from the opportunity, sales stage (prospecting, qualification, closing, lost), name of sales team, lead quality(excellent, very high, high, fair, poor) etc.
The Contacts Screen will have details such as name of the person, phone number, job title, name of the account, address etc. The Quotes Screen will have details related to the quotes that have been generated for a particular order.
The quotes may undergo some iteration if there is any negotiation between the two parties. A Quote Screen will typically have the Quote name & number, Revision, date of creation, name of the account to which it is associated, name of sales rep, Status (whether the quote is approved, accepted, in-progress, active etc.)

Advantages of Siebel Sales Application
Following are the advantages of Siebel Sales Application:
  1. Siebel Sales simplifies and optimizes the task of planning and managing the sales process by providing complete visibility into the sales cycle, helping companies to plan and manage effective selling activities.
  2. By bringing business activity information closer to the user, displayed in one place, sales people can find what they need to work on and then quickly navigate to that object within the application.
  3. Each organization may use slightly or sometimes greatly different terminology. Often applications will use industry standard terminology that is not necessarily applicable to a particular organization. Customization allows each customer to use their own chosen terminology. This way it cuts down on time that is required to train users on what each field is for and thus allowing for a more seamless transition to a new application.
Read More about Siebel Sales Application


Friday, 25 July 2008

BI Publisher Highlighted


I want a single application to print my reports, invoices, checks, labels etc. and also want the same application to send these to different destinations like printer, fax and e-mail. These reports should contain:
  • Graphs
  • Tables in highly formatted fashion like table headers should be repeated on each page
  • Section totals
  • Page totals
  • Should have headers and footers
  • Should have conditional formatting
  • Cross Tab Support
  • Easy to create templates

These are my requirements for reporting. All of these can be fulfilled very easily in Analytics dashboards, but, when it comes to printing, dashboard is not a very good choice. For these reports BI Publisher is a perfect solution. Oracle BI Publisher is a Standalone and Platform Independent reporting tool which creates highly formatted printable reports. Oracle BI Publisher uses Template for formatting purpose .Templates can be created in MSWORD, ACROBAT, EXCEL and many other Formatting Tools.
It takes the data from the source, formats it suitably using Template and prints it in different formats such as PDF, EXCEL and HTML.
The Formatted Reports can be published over Printer, Fax or Internet.Oracle BI Publisher overcomes the shortcomings of Siebel Analytics when it comes to Printing of a Report. It provides a unified solution to the above mentioned requirements, hence reduces cost, complexity and manpower.
It can use data from any source which provides JDBC connection like HTTP XML feeds, web services, file data sources. It is pre integrated with OBIEE Suit. You can also use requests developed in OBIEE as the sources of data for BI Publisher.
Data sources for BI Publisher.
BI Publisher can have many sources like OBIEE, Oracle Database, SQL Server, XML and various other data sources are supported by BI Publisher.
  • SQL Query: A connection to a database has to be specified for SQL Query. Then a query to retrieve the required data is fired on the database. Bi Publisher also provides a feature called Query Builder.
  • BI Answers: It uses Dashboard requests as the data source.
  • Web service: It uses a web service which returns data as its data source.
Creating report templates in BI Publisher
Report templates can be created in RTF Format as well as PDF format. To create templates in RTF format you need to have any text editor with RTF support like MS Word, for PDF template, you need to have any tool which gives facility of PDF creation like Adobe Acrobat Professional.On installation, the BI Publisher Template Builder integrates itself with MS Word.
To create a simple RTF template, load the XML containing your sample data by clicking Data->Load XML Data on Template builder toolbar. Once the data is loaded, you can put the data fields in the template. You can provide groupings, conditional formatting and conditional regions. We can also use the wizard to create tables, crosstabs, and charts. Preview of the report is possible with sample data available in PDF, RTF, PPT, HTML and Excel formats. After creating these templates, these templates have to be uploaded to the server to be used by the report. The output format of reports can also be restricted; we can tell the BI Publisher to output report as only PDF and no other format.
Other features of BI Publisher
  • Provides a facility of LOV (List of Values) so that data in a report can be filtered according the value selected in LOV.
  • Different layouts for same report are supported.
  • Bursting, split a report based on a key in the report data and deliver a report based on the second key in the report data.
– Inputs from Anand M
Read More about BI Publisher

Oracle Fusion Middleware


Applications can be integrated using either of the following integration solutions:
  • P2P (Point To Point) – It involves creating a direct connection between each pair of application to be integrated.
  • Hub-and-Spoke – It involves connecting each application to a central integration server running middleware.
In comparison to P2P integration strategy, Hub-and-Spoke methodology is preferred. Adding an additional application requires only one new data transport to and from the integration server. The numbers of data transports are reduced from n² to n.
Oracle provides a strong Integration Server architecture known as Oracle Fusion Middleware Service Oriented Architecture (SOA) suite. This architecture comprises of Oracle Application server, Enterprise Service Bus (ESB), Business Process Execution Language Process Manager (BPEL PM) and other components for security, BI, administration, monitoring etc.
  1. Oracle Application Server provides a J2EE container for other applications and third party applications.
  2. ESB is an engine which routes and transforms the data. It can have multiple data entry points.
    Example – The source and target systems are having different schemas. Data transformation can be done using Siebel data mapper and can be transported using the Business Service. The same requirement can also be solved using ESB service. Apart from this, ESB service can be initiated from Siebel CRM after importing the “wsdl” of the Outbound Web Service.
  3. BPEL PM automates the business processes across multiple applications. It uses a visual coupled with programmatic constructs.
    Example – Combined information from Siebel CRM, Credit Card Company and a shipping company to generate final form of order. BPEL PM can be used to orchestrate and automate these multiple applications using a single entry point.
SOA suite resides on the Integration Server (IS). Siebel CRM lies on one side of the IS and third party applications reside on other side of the IS. Siebel can thus behave as a Sender or Receiver.
Read More about Oracle Fusion Middleware

Thursday, 3 July 2008

Ask the Expert


Do you have a question on Siebel Upgrades, Implementation or just about the best Siebel business practices in general? No hassles! Submit your question in the comments section below.

Experts from our Siebel practice will answers your questions twice a week and the answers will be published in the Ask the Expert Section

Read More about Ask the Expert

Monday, 30 June 2008

Task Based UI and its Usage


In all the Applications a particular task requires performing several steps to complete it which leads to common issues. Some issues are as follows:
  • Users may not be familiar with the sequence of steps
  • Users may inadvertently skip a step
  • Users often require additional training to complete the task.
Many clients prefer implementing a user interaction style that assists end users in completing such tasks.
The latest version Siebel 8.0 provides a feature called as Task Based UI, which enables us to use wizard-like interface( in this we can Use a wizard- like interface) to guide users through steps in a task. This helps in completing the tasks in (leads to complete some steps of a task in) a prescribed order. It supports forward and backward navigation through a sequence of views. In addition to this we can use the pause facility.
In TBUI one can implement the Branching conditions based on the users input. This can be achieved with the use of Transient BC (TBC). The mechanism behind TBC is that-data is collected and used during the execution of a task but not saved afterwards i.e. Transient data disappears when the task ends.
I worked upon a scenario i.e. Quote Generation which processes the Quotation, Opportunity and Account Information for each and every Quote. Following is the description
Requirement
The Process starts with the enquiry raised by the customer to the Customer Service Representative (CSR) for the same he/she will
  • Create an Opportunity by adding a Customer Account.
  • Create the Product for the same Opportunity from Administration – Products.
  • Create an Quote for the Opportunity.
  • Add the Price list for the Quote; this price should be available for the Line Items (product).
  • Generate the Quote information along with the Opportunity and Account.
Finally that will be delivered to the customer (Account Holder) through mail.
Development
Task, Task Group & Task Pane View: I created a new “Task Group” & a “Task”. Then added that “Task” to the “Task Group”. Later added the “Task Group” to the “View Task Group” named “Task Pane View”.
Views & Applets
I used vanilla Applets such as – Opportunity Entry Applet, Product Form Applet, Quote List Applet, Recipient List Applet etc. Made new Objects by copying the above mentioned applets and then used them on the corresponding Task Views. Also I inactivated the fields in the applet which was not supposed to be displayed.
Configuring TBC & Auto Quote functionality:
There is no change in the BC’s. I used Siebel provided “Auto Quote” functionality for the Quote creation. Due to the requirement of giving a choice to add multiple recipients for the Correspondence I created a Transient Business Component.
Adhoc functionality: All the Adhoc functionality which I used here was vanilla provided.
Pulling Data from Quote to Recipient:The biggest challenge was to pull Quote fields in Recipient BC through indirect Joins. First I created Link between Quote and Correspondence then with the help of Link Specification I pulled the Quote Row Id in the Correspondence then to the Recipient BC. Now by configuring a join in Recipient BC and Quote BC using the pulled Quote Row Id, I pulled all the desired fields of Quote BC.The Below Diagram will help you to understand it more clearly,
Task Based UI
The Final Version of Task flow was looking like the below figure:
Task Based UI
Finally, everything shaped up well and I delivered my first Task Based UI successfully on time. Please put your comments / suggestions.
Inputs from Abhinav A.
Read More about Task Based UI

Missing script for OBIEE Upgrade (7.8.5 to 10.1.3.3.1)


I did OBIEE upgrade with the help of the document Oracle® Business Intelligence Applications Upgrade Guide Version 7.9 February 2007 b31980.pdf
It was configured successfully but I encountered an error in the process of the final testing by running the provided out of box workflow through informatica. The workflows failed showing an ‘INVALID IDENTIFIER’ error indicating that some of the columns in the warehouse tables were missing. Hence I referred the document again.
As per the document the, warehouse Schema has been upgraded with the following mentioned scripts:-
UPGRADE.ctl script.
790_UPGRADE_PRE_CTL_SCRIPT.sql script.
DW.ctl script.
790_UPGRADE_PRE_DIMENSION_SCRIPT.sql script.
Though the above mentioned scripts were successfully executed, the workflows failed with the same error ‘INVALID IDENTIFIER’
Hence I figured out that one more script is required to resolve the above problem.
So after running the script placed at OracleBI\DAC\conf\sqlgen\ctl-file\ oracle_bi_dw.ctl
(DDLimp utility) the issue was resolved.
This script contained all the missing columns.
To run the Script use the following command:-
Here DDLimp is the utility provided by Siebel to run this Script.
Execute the following Command in the CMD Prompt:
—-DDLimp /U USER /P PASSWORD /C <Connect string i.e. system DSN> /G SSE_ROLE /I N /R Y
F <Path for the oracle_bi_dw.ctl Script>/L (location where you want to store log file)
Where,
U is Database Table owner name.
P is Database Table owner Password.
C is System DSN.
For G, I and R use the Default as given.
F indicates the path of the Script.
L indicates the path were the log file is to be stored.
Finally to my relief the upgrade completed by running the above mentioned script!
Inputs from Alok Chowdhary

Read More about OBIEE Upgrade

Friday, 20 June 2008

Haley’s in a Nutshell


INTRODUCTION:
CRM applications are based on various complex business processes that need to be coded in the application.They can change with time and this can be very often.Implementing the changes can have adverse effects on those parts that weren’t changed!!! Implementing Decision tress can be a nightmare through actual programming…with hundreds of If else conditions which is very difficult to maintain and foolish to code in the first place.
Haley Systems, Inc
has been the recognized global leader in rule-based programming. Haley’s Authority is a Rule authoring tool which allows you to write your Business rules in simple English, maintains them, executes them and allows testing them all in no time. Assume it as a programming language which uses simple English to code. The sentence “Set student’s grade to Distinction if he scored at least 70 in all subjects” can One needs to get back to school grammar to construct English sentences.
About Haley Authority: Mind your language (Grammar)
Get familiar with Nouns, Verbs, Adjectives, Adverbs, Prepositions, Conjunctions, Determiners, Phrases, Sentences, Subjects, Predicates and Direct & Indirect Objects.Haley adds few more terms such as Concepts, Entities, Relations, Phrasings, Statements, Conditions, Modules, Knowledge Base. With just an initial brush up on these topics you can get going with the wonderful tool.
Integrating with Siebel
Find below the Haley <- -> Siebel Integration Architecture.
Rule authoring tool
Siebel Object Importer
The concepts and relations needed to define rules on Siebel objects are created by importing the selected subset of the Siebel object model into Haley’s.
Siebel Deployment plug-in
Rule modules created in Haley Authority are compiled and stored into runtime tables
Rules Runtime Administration screen
It is used to activate, deactivate, and configure deployed rule modules.
Haley Authority knowledge base
It stores Haley Authority’s metadata, including Object Importer-created Siebel object definitions and rules
Haley inference engine
It executes rules.
Proxy Service
  • It is a proxy to the rules engine functionality at runtime.
  • It manages Haley’s runtime objects
  • It manages deployed rule modules
  • Interfaces with Siebel object manager for data
  • Interfaces with Haley’s inference engine for rule execution
  • Manages the rule execution results from Haley’s inference engine
THE PROS :
  • All the business logic can be isolated in a separate database (Knowledge base).
  • It can reduce scripting to a great extent.
  • Flexible to change the rules, policies on the go
  • Allows testing of the Rules created in Haley before actual deployment.
  • Easy to understand/write/maintain English Statements than blocks and blocks of code.
THE CONS:
  • Need to learn the GRAMMER. Haley Authority cannot write a poem or a play.
  • It can not replace all of your code but most of it.Remember everything is built for a purpose.
  • There’s no Check in Check out here.Maintaining a development environment where n developers are using Haley’s for constructing rules becomes difficult as only one Knowledge base per environment is supported.
Reader’s Take:
Consider the following scenario wherein an Insurance claim is to be ACCEPTED, PARTIALLY ACCEPTED, REJECTED based on the below decision tree.
Rule authoring tool
Rule authoring tool
I leave the answer to the readers to select between
  • A. Coding a mesh of 1000’s of If Else Statements
  • B. Using HBR
Comments welcome !
– Inputs from Pinank K.
Read More about Haley’s in a Nutshell

Thursday, 19 June 2008

Look before you leap – Is an assessment necessary before a Siebel upgrade ?


In today’s project execution scenario, upgrade assessments have gained much more importance than ever before.
Yet, IT managers face a lot of push back from their customer when they are faced with the cost associated with executing an upgrade assessment
The client wonders, why can’t we directly start with upgrade and move to a newer version. Why spend on an upgrade assessment?
Listed below are some of the arguments in favor of doing an assessment before going in for an upgrade. This applies equally to any package and not only Siebel.
1. Why we require Assessment?
If you do an upgrade assessment with a sample area of the functionality, you will be in a position
  • To measure the precise scope of the upgrade exercise: What has to be done, when and how long it will take.
  • To get a feel for the technical complexity of the upgrade – The vendor may tout the upgrade as a one click exercise that will be completed in half an hour while the users are out to lunch. The reality may be different.
  • To judge which of the new “features” are absolutely essential to get your users back on the road with minimum fuss and low cost
  • To assess the technical complexity of the upgrade – How much of your application will still work after the upgrade? Trust me, a lot of things will break.
  • To assess the gaps & issues highlighted by a focus group of users – You could let key users preview the result of upgrade exercise and see what they think about it.
  • To estimate the time and effort required to do the actual upgrade
  • To decide on a GO/NO-GO: The assessment will give you enough information to decide whether the upgrade is a good idea or not after all. It’s a good idea to get the assessment done by an independent party without bias to the software supplier
2. Continuing benefits of Assessment during the upgrade
Once a GO decision has been made, the upgrade assessment will continue to give you returns when executing the actual upgrade in the form of the below artifacts
  • Knowledge repository: You will have a good understanding of the pitfalls faced by the assessment team.
  • A realistic and re-usable Project Plan : Planning and precursor activities completed during POC will reduce actual upgrade timeline
  • Knowledge of Pre-requisites : Identification of upgrade tasks specific to Application/infrastructure
  • Compressed critical path: You will know which activities take a long time and fine tune upgrade processes to squeeze the timeline.
  • Resource readiness : You will know exactly what kind of resources are required to execute the upgrade and be ready to start upgrade on short notice
In conclusion, an assessment gives client an accurate method of determining if an upgrade is the right route to take, and gives precise estimation of the scope, schedule, resources and cost associated, which in turn lead to speedy decision making.
Inputs from Jagdish

Wednesday, 28 May 2008

Siebel moves to the SOA world


Siebel Web Services (SOA enabled) provide platform independent integration and rely on Internet development standards and protocols (XML, SOAP, WSDL etc) for communication. There are two type of Siebel Web Service known as Inbound Web Service and Outbound Web Service and Siebel provides host of pre-built ASI (Application Service Interface) which can be used for two way integration between external and Siebel Applications. Inbound Web Services are used to expose existing Siebel Business Service and Workflows to Web Service which will be consumed by external system. Outbound Web Service relies on a WSDL file provided by the external system to define the external service definitions to enable Siebel to invoke the Web Service.

An existing Siebel business service or workflow process can be exposed as an Inbound Web Service to be consumed by an external application. Siebel Outbound Web Services framework can also consume a Web Service Definition Language (WSDL) file provided by an external application and have the Siebel application invoke that Web Service. The diagram below depicts Siebel-External system integration using Siebel EAI/Web Service.

Soa_ws_tech
The OracleAS Adapter for Siebel uses the same Siebel Web Services Framework (introduced in Siebel 7.5).
Options
• ORACLE offered pre-built (release independent) ASI to functions such as Account and Opportunity
• Custom built ASI (release dependent) from the Siebel exposed business services
• ORACLE AS adapter
• Exposing Pl/SQL stored procedures as Web Services
• The iWay Adapter for to integrate Siebel application system with any other legacy system, DBMS, ERP, SCM, or CRM application on any platform
• Oracle Fusion middleware which support SOA and BPM for platform independent integration.
Methods
• ASI Exposes Siebel business services and workflow processes as Web Services which can be consumed by external system for further processing.
Inbound ASI: The Siebel application allows enterprises to publish any Siebel business service or business process as a Web Service. This process is also known as creating an Inbound Web Service for external application invoking Siebel exposed ASI as a web service (ORACLE financials synching ORACLE Order status to Seibel Sales Order).
Outbound ASI: Siebel apps invoking external web service. (Siebel sales order applet invoking ORACLE ERP to query quantity available.)
System Requirements for ASIs
• Siebel server environment, with the Siebel Web Server Extension (SWSE) set up.
• Application server
• Siebel Enterprise Application Integration (EAI) component group must be enabled.
• Access to the Web Services Administration view for this application, like using Siebel Client.
Soa_ws_tech
Inbound Web Service Strategy: The published Siebel Web Service will be consumed by External. The above diagram illustrates steps involved:
• The WSDL document for the active Siebel Web Service will be published as Inbound Web Service.
• WDSL will be generated for Siebel business service/Workflow and will be published on net. The published WSDL will be consumed by external system for further processing.
• The external system will send SOAP request to Siebel Application.
• The Siebel Inbound Web Service dispatcher will convert SOAP request into property sets and pass it to Siebel Business Service or Workflow for further processing.
• The property sets will be returned from business service or business process to the Siebel Web Service inbound dispatcher.
• The response will be converted into SOAP message and sent to the external system Web Service as a response.
Siebel Outbound web service integration strategy: External systems can publish Web Services/SOA WSDL file which will be consumed by Siebel. The above diagram illustrates steps involved:
• The WSDL document for the active Web Service will be published as outbound Web Service.
• The generated WDSL from outer system will be consumed by Siebel Outbound Web Services for further processing. Siebel Tools will be used to mapping and processing of external request.
• The Siebel will send SOAP request to external system.
• The Siebel Outbound Web Service dispatcher will convert SOAP response into XML and pass it to external system for further processing.
• The property sets will be returned from business service or business process to the Siebel Web Service outbound dispatcher.
• The response/request will be converted into SOAP message and sent to the foreign system Web Service as a response/request.
OracleAS: The OracleAS Adapter for Siebel supports the following integration access methods:
• Siebel Java Data Bean for services involving Siebel Business Components or Siebel Business Services. • Siebel COM Data Interface for services involving Siebel Business Components or Siebel Business Services.
• Siebel XML for events and services involving Siebel Integration Objects.
Actuate iServer exposes its functions as Web Services; which can be accessed by Actuate Web Services API or through WSDL published by Actuate.
PL / SQL Stored Procedures – to be exposed as web services.
Service Enabling Reference Architecture tools
• Workflow and business services are exposed as web services.
• Web service dispatcher handles inbound web service calls from consumers.
• Web services outbound proxy handles invocation of external web services to be consumed by Siebel.
Siebel 7.5.3
• SOA support
• SOAP 1.1
• WSDL 1.1
• XSD support
• ASI (application service interface) introduced.
Siebel 7.7
• SOA support
• SOAP 1.1
• WSDL 1.1
• XSD support
• WS-I
• Workflow and Business service based ASI
• WS-security
Siebel 7.8.2
• SOA support
• SOAP 1.1
• WSDL 1.1
• XSD support
• Interoperability validation
• Access control
Siebel 8.0
• WS-I attachment
• Customer order management exposed as web service
• SOA support
• SOAP 1.1
• WSDL 1.1
• XSD support
• Enhanced ASI (application service interface)
• Fusion Middleware (SOA and BPEL Support)
Inputs from Sanjeev Patel

Tuesday, 27 May 2008

Prune days and Change Capture in DAC


Here is a question I often get from customers regarding change capture by DAC when it is used for extracting Siebel data. The problem is equally valid for non-Siebel data sources if the default change capture mechanism provided in DAC is used for identifying changes in source data.
How can we ensure that data committed with an update timestamp between the start of an ETL run and the end of the extract is not excluded by the next ETL?
  • DAC stores a value called LAST_REFRESH_DATE at the end of an ETL extract.
  • During the next run, DAC captures changes to the source data by comparing this LAST_REFRESH_DATE with the LAST_UPD date of records in the source.
  • So if the LAST_REFRESH_DATE is less than LAST_UPD of a source record, then the record being processed has either been updated or created between the time of last execution and the current run
  • But what will happen if a record in the source is committed between the time of starting the data extract and completing the extract with a commit date that is less than the LAST_REFRESH_DATE
Prune days to the rescue!!! The solution to the above problem is to set the PRUNE_DAYS parameter.
If the prune days parameter is set to 1 for example, the change capture process will use LAST_REFRESH_DATE – Prune days as the cutoff timestamp for change capture
Here is an example of such a scenario
  • Let us assume that there is a table called S_CUSTOMER in transaction database with 2 records created during business hours on the 1st of January.
  • On the January 1st, Extraction of Customer Data begins at 1700 hours and completes at January 1st, 1800 hours into a customer Dimension called WC_CUSTOMER.
  • LAST_REFRESH_DATE stored is January 1, 1800 hours
  • Change capture in DAC
  • Now, a new customer is created between 1700 and 1800. But it is committed to the database AFTER the extract is completed with a timestamp of January 1st, 17.30
  • Change capture in DAC
    Change capture in DAC
  • More customers are added to the transaction database during the next working day. As a result the following is the condition of the source table at the time of the next ETL Extract i.e. Jan 2, 12:00 am
  • Change capture in DAC
    Change capture in DAC
    Change capture in DAC
    Change capture in DAC
  • Now the change capture process in DAC will compare the stored LAST_REFRESH_DATE with the update timestamp of the records in the source data and pull only the records updated after this LAST_REFRESH_DATE i.e. Jan 1, 1800 hours into the target table. Unfortunately for the 3rd record depicted below, the LAST_UPD is Jan 1, 1730 i.e. it is before the LAST_REFRESH_DATE. So, it does not qualify for the incremental extract and we have a missing record in the target table.
  • Change capture in DAC
    Change capture in DAC
  • g) But if we had set the PRUNE DAYS parameter to 1, the cutoff date used to identify changes in source data would be .Dec 31, 1800 hours i.e LAST_REFRESH_DATE – 1 day . If this ploy is used, all the records with LAST_UPD > Dec 31, 1800 hours will qualify for the incremental extract and we will have a complete set of data in the target table
Change capture in DAC
Change capture in DAC
Change capture in DAC
Change capture in DAC
Change capture in DAC
Change capture in DACThe Prune days parameter can be used to ensure that DAC Change Capture does not miss out data created around the time of data extraction.
Set it with care to a reasonable value to avoid increasing the volume of data selected by incremental load process.
New Feature in DAC 7.9 for non-Siebel Sources
For source systems other than Siebel, the Prune Days setting is used in the same way except that the DAC subtracts the number of prune days from the LAST_REFRESH_DATE of a given source and supplies this as the value for the $$LAST_EXTRACT_DATE parameter.
Inputs by: Raghunatha Yadav & Sanjay Rao

Monday, 26 May 2008

A test drive with the Siebel 8 ST engine


A new script engine i.e. the Siebel ST eScript engine has been made the default scripting engine in Siebel 8.0.
In case you did not know, Siebel eScript is a scripting or programming language that application developers use to write simple scripts to extend Siebel applications. Till recently, the default script engine for Siebel Tools and Client Applications was the T eScript engine. And ST for the uninitiated stands for Strongly Typed.
If you stayed awake through your programming classes, you might remember that strongly typed languages bind variables to a particular data type. So if you declare a variable to be of type Dog, you cannot abruptly decide to assign a Road-Roller to the variable midway through the program. The good thing about this is you cannot call invalid methods like Road-Roller.bark() or Dog.BlockTrafficAndAnnoyCommuters() by mistake.
The bad thing is that you need to declare more variables and therefore need more runtime memory when using a strongly typed language instead of a weakly typed languages. There are proponents for both types of programming languages. But that is not the issue that interests us here.
What did interest me is that Siebel claims that the ST eScript engine provides the following enhancements:
  • Improved performance and self documentation due to strong typing of variables
  • ScriptAssist utility and
  • Fix and Go feature
I decided to take the ST engine out for a test drive to see if the above claims are indeed true.
In my little experiment, I decided to use a COMCreateObject to pull the data from an external source, in Excel and update the Siebel database. The excel file contained some new records that and some changes to existing records. The update would be triggered on the click of a button which would in turn invoke a Business Service which comprises of many functions.
Here are my findings:
ScriptAssist
I loved the new Script Assist Feature which makes the life of the programmer much easier providing auto-complete, auto-indentation, method listing, and method signature capabilities.
There is no longer a need to remember all the methods related to an object. Just press Ctrl+Space or “.” and ScriptAssist will display a dropdown of all methods and properties available for that particular object.
This is a big timesaver and is highly appreciated by us.
Auto-complete is another nifty feature that helped us avoid a lot recompilation. Just enter the first 2-3 alphabets of a method and it shows the available method name. For example, when I started off with the letters “BusC”, the editor offered to save me the effort of typing in the remaining 5 letters in “BusComp()”. This is similar to IntelliSense technology from Microsoft.
Fix and Go
With Fix and Go enabled, there is no need to compile the .srf to restart the debugger after making a change.
This was a big pain in the bad old days. With fix and go, I hope to have a lot more time to spend on “strategic meetings” near the coffee machine.
Performance improvement because of Strong typing:
I tried to see if I would get any performance improvements by using ST Script by putting an equivalent piece of code created in ST-Engine with another piece of code in Siebel 7.8 T-Engine
Although we ran the code through some 10,000 iterations, we did not see a major difference in the execution time.
However, there should in theory be a performance improvement on account of saving time on type-checking at run-time and compile time.
Also, the code should be more robust as it would not be possible to call invalid methods as it would be in a weakly typed language
So, should I throw away all my T-script Engine code and embrace the new ST-Script Engine ?
It depends on the amount of scripting you have done in your Siebel Installation. If you have heavily customized your objects with scripting, it is going to be a major exercise to verify that the code is working correctly in the new environment.
But once, the upgrade is done, there should be a performance improvement and your application will be more robust because there is a lower likelihood of getting those errors because of calls to invalid methods.
Inputs from Sajid Attar and Abhinav Anand.

Friday, 23 May 2008

Siebel Smartscript


Business Scenario
Call center/helpdesk agents have customer interactions, in which they address customer issues, ask questions and resolve problems. The chances of the customer coming back become higher if the interaction has been satisfying. Thus, in order to serve the customer better, capturing the flow of interaction becomes vital. In such real time scenarios, Siebel Smartscript helps call center agents to define application workflow and capture customer interactions.
Siebel Smartscript and its usability
Siebel SmartScript guides agents through each customer interaction, suggesting solutions based on the customer’s profile, environment, current requirements, and buying patterns. Siebel Smartscipt GUI includes questions in the right pane and tree structure summarizing the questions and answers in the left pane. In order to build this UI developer needs to include the script, page(s), question(s) and answer(s).
The answers of Smartscript can be stored in a BC, few values can be updated, and some business logic or functionality can be extended based on these answers. For such customizations script can be written at question or script object level. Smartscript programs can be coded in VBScript or escript. Some additional syntax has been provided by Siebel only specific to Smartscript usage.
Why Siebel Smartscript?
It is user-friendly having a very intuitive GUI. Programmers having basic knowledge of coding can graphically create Smartscript. The scripts written for pages, questions and script objects can be re-used and can have multiple language translations. Using SmartScripts the customer interactions become more personalized and effective in nature.
Alternatives to Siebel Smartscript
Using customized applets and embedding scripts is an alternative to Siebel Smartscript. This alternative has demerits of increased development time and cost, weaker GUI and upgrade difficulties.
New features in Siebel Smartscipt 8.0
In Siebel 8.0, Smart script can be invoked using a hyperlink. Also in the newer version Business services and Siebel Assignment manager can be invoked from Siebel Smartscript. Siebel Smartscript 8.0 has an improved GUI too.
Inputs from Shardul Trivedi