Wednesday, June 9, 2010

Local Database - For Multiple Users

We had to show a demo to the Client, our server got some issues and was getting restarted every now and then. We had only one environment set up at that time. We needed something if Server will not be up then how can we show demo to the client. The option was Local Database. We needed something like what we can do with the sample database where multiple users can login into the application using same database.

In our application, we were using Position and Organization based visibility for the Cases. Call Center user creates a record and assign it to an Organization and Position. Then the users who have that position has to work on that case. We needed to show the functionality where multiple users can login into the application.

How we can create multiple users login into Local Database. One of co-author of this blog and my friend Nikhil found something. On behalf of him, I am writing down steps to run some sql commands and multiple users can login into Local databases.
  1. Open the dbisqlc with User ID Siebel and password of the user with whose Id local was extracted.
  2. Then in dbisqlc, Grant permissions for users to use the Siebel application.
  3. Run SQL 'grant connect to SSE_ROLE'.
  4. Run SQL 'grant connect to identified by '.
  5. Run SQL 'grant group to SSE_ROLE'.
  6. Run SQL 'grant membership in group SSE_ROLE to '.
 NOTES:
  • The must already exist in the database and the must be SSE_ROLE.
  • The and in the grant command must be in UPPERCASE
Now you can grant multiple users the access to the Database. 

Sharing is the power.

Tuesday, June 1, 2010

Incremental Compile - Popup Visibility Auto All Issue

I have heard many times that there could be problem with the Incremental Compile Issue of the SRF.
I have also seen some times that there are some inconsistent issues because of Incremental Compile. Today , I saw it having issues with Incremental Compile and it has also been documented on Oracle Support aka metalink.

As we know that on BC level, there are two of the properties like Popup Visibility Auto All and Popup Visibility Type. 
Ideally, It should work like if Popup Visibility Auto All is TRUE and the Login User has responsibility to see All Across Organization View, then "Popup Visibility Auto All" will override the Popup Visibility Type value.

For eg. Let's say User ANWALIA(myself) has responsibility to see All Contact Across Organization View. The Contact BusComp has Popup Visibility Auto All as TRUE and Popup Visibility Type as Organization.
Now because I have All Contact Across Organization View, in any popup applet used by Siebel like Associate Applet, Pick Applet etc. I should be able to see all contacts across organizations.

Here is a catch of Incremental Compile, If any buscomp has the above kind of configurations and you lets say recompilation of the Contact Screen is done, hen Popup Visibility Auto All would not work as expected. It will work based on Popup Visibility type.

This can be avoided if you compile the whole project or do a full compile.

Sharing is the power.

Tuesday, May 18, 2010

Case sensitive and Insensitive Query

Siebel earlier used to have one Field Level Property Use Default Senstivity. This property is obsolete now.

To provide Case Insensitive Query on the Fields, Siebel 8.1 version has introduced a CIAI (Case and Accent Insensitive). Accent Insensitive does not work in Siebel 8.1.1.2 vesrion. You can use SoundsLike Operator for the Accent based query.
On the column level, right click at Column.
Siebel will run you through a wizard and create a new column and indexes to support the Case Insensitive Query.

Note: You need to lock the project to run through the wizard.

Calculate Commit Time using Business Hours

 This post is a supplement to one of my previous post Calculate Business Hours

I had one requirement where I need to calculate the Date Time, user has to finish the work.
The time taken should not include the Holidays. It should only consider Working Hours to calculate the time taken.

As I told you in my previous post that the Business Service 'FS Holiday API Service' provides 3 methods:
   1. GetElapsedBusinessTime
   2. GetResponseTime
   3. IsHoliday

GetElapsedBusinessTime: It majorly requires input as the below:
  • Service Calender Id
  • Start Time
  • End Time
As the result it provides you the time spent in between the Start and End Time excluding Holiday and including only working hours.
Note: This method has a bug in Siebel 8.1.1.2 (21215):
Defined our Schedule from Sunday to Thursday, time from 7 AM to 7 PM. The timezone is (GMT+04:00) Abu Dhabi, Muscat. It is observed that whenever there is data like:
Start Time: 4/15/2010 10:31:34
Schedule Time Zone: (GMT+04:00) Abu Dhabi, Muscat
Calender Id: <>
End Time: 4/18/2010 08:31:33
Time Unit: Hours.
And the end time is coming on Sunday. like April 18, 2010, April 25, 2010 or 2 May 2010.
It is failing and crashing the server.

GetResponseTime: It majorly requires input as the below:
  • Service Calender Id
  • Start Time
  • Response Time
As the result it provides you the Date time or Commit Time, for example time till which user has to finish the work excluding Holiday and including only working hours.

IsHoliday: 
  • Calender Id
  • Date Time
As a result, it gives if that Date Time is lying on Holiday.

Oracle does not provide any OOTB functionality in OBIEE 10.1.3.4.1 (reporting) to cater this requirement. Our OBIEE team has to write a Procedure.

Sharing is the power.

Saturday, May 1, 2010

SoundsLike Operator

Searching for exact Contacts in Call Centre with First and Last Names is not that much easier as we may think.Different people uses different spelling for their names for example John can be spelled like Joan, Jon, Joanne, Joann.

How to search a contact with similar pronouncing name. This was one of the requirement I came across. One of my friend Jalaj suggested SoundsLike Operator. Siebel provides a SoundsLike Operator which can be used to find the similar pronouncing names.
Let me show you how it works, you need to query in the Applet Field with SoundsLike('John').
In return or clicking on Go, it will give results like in below.
This Operator can also be used to BusComp Prequery event to modify the searchexpr with SoundsLike Operator.

Sharing is the power

Saturday, April 10, 2010

Localization - Multi-Lingual Application

I was very much amazed with the application which was set up in multilingual. I never had this kind of experience in my earlier projects. In new project, most of us was never worked in Multilingual application.

We have to work for English and Arabic Languages. We have categorized that there will be following object where we need to work for multilingual applications.
  1. Static List of Values.
  2. Data Validation Manger.
  3. Symbolic Strings.
  4. Alerts in Browser Script.
  5. Error Messages in Server Script.
  6. Email Templates.
  7. Dynamic List of Values.
Testing of the applications in English and Arabic. For the Arabic Applications testing and the label names, we had to call a Translator and we used Google Translator also.

Apart from installing the Application set up in both languages and language packs. Some of the facts are like:-
  • The Arabic application and English application, both use different Object Managers. 
  • To compile the SRF also.You need to change the language setting of the Server tools. 
  • You also need to set one Language parameter at Object Manager level. 
  • For each static LOV, you need to mention the LOV and Translate Table at Column level.
  • Use LookupValue in Calculated Field and TheApplication().InvokeMethod("LookupValue", ) for script.
  • For each language,Validation Messages for DVM
  • Symbolic Strings for labels on User Interface.
  • Object Message Category- Error Messages
  • Administration Communication - Email Templates - Languages.
  • Choose the right Parent LIC for Hierarchical Picklist Like if the Child is in Arabic then Choose the Parent LIC also as Arabic only(we were careless while doing this and had to face issues)
Sharing is the Power.