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