Wednesday, May 18, 2016

Date difference - Goovy

Directly subtract date fields. Bookingdate_c - today() > 0

Oracle Sales Cloud - Groovy

1. Use getPrimaryRowState().isNew() instead of getPrimaryRowState().isNew()==true

2. Don’t use variable to do get and then set , Instead use setAttribute('AccountName_c',nvl(var_record.getAttribute('AccountName_c'),''))

3. Use PartyId or RecordId instead of other fields for search when searching across objects

4. Set Dynamic Choice list field using Id instead of directly setting field

5. Where there is direct Read only not based on any condition we should use Page Composer instead of 1==2

6. Always make sure that code in BeforeUpdate is conditional. It should not get trigger everytime update is happening

Monday, May 16, 2016

Oracle Sale Cloud - Goovy Syntax

Following are some syntax of groovy used in OSC- Oracle Sales Cloud while doing scripting.

1. setAttribute('FieldName_c',var) - Set a Field value of Object

2. getOriginalAttributeValue("Priority_c") - This syntax is to get Original value of Field commonly useful for Audit requirements.

3. def var=getAttribute('Field1_c') - To get value of a field.

4. PreferredDistributor_Obj_c?.Country - To get value of Country of a object

5. getEstimatedRowCount() - To get number of records.

6. def user = adf.context.getSecurityContext()?.getUserProfile()?.getUserID(); - To get Login user detail.

7. def sNewOpty = adf.userSession.userData.NewOpty - To get Session Attribute

8. def Role = getSelectedListDisplayValue('Role_c'); - Returns Display value of LOV

9. def PartnerId = adf.util.getUserPartnerCompanyId(); - Partner detail

10. throw new oracle.jbo.ValidationException('Budget field is required.') - throws error message

Oracle Sales Cloud

Started working on Oracle Sales Cloud, A cloud based application for Sales. It is very light application with less features. May be in next versions Oracle will come up with more features.

Monday, April 21, 2014

Siebel OpenUI Mobile & Barcode Reader

Recently, I worked to integrate siebel openui mobile application to read Barcode through camera & populate part fields. User would be able to read Barcode from camera and part pick applet should be populated automatically.

Friday, October 4, 2013

Siebel Grant users in Loacl Database without extracting Db for all users

1.Connect your locala database with SQL utility with Siebel User/Password

2. Run below SQL Script.

grant connect to SSE_ROLE

grant connect to identified by

grant group to SSE_ROLE

grant membership in group SSE_ROLE to

Wednesday, January 30, 2013

SBL-DAT-00359: The value '%1' cannot be converted to a date time value.

SBL-DAT-00359: The value '%1' cannot be converted to a date time value.

Some time when we do query in siebel on Date field  of applet with following value (Including Time)

> "1/24/2012 11:00 AM" AND < "1/25/2012 11:00 AM"

We get the SBL-DAT-00359 Error. Work Around is, use following format Hour:Minute:Second

> "1/24/2012 12:00:00 AM" AND < "1/25/2012 12:00:00 AM"

Sunday, March 4, 2012

Creates Siebel Technical Design Doc in Seconds...!!!

Connects with Local Data Base, If you want Technical Design Doc in MS-World then copy Tables from Excel Sheet to MS-World Manually.


Wednesday, November 16, 2011

Siebel: Unable to reduce the height of the labels after certain limit in a form applet.

Delete Siebel Preference File(.spf) in web client bin folder. Allow you to reduce the height. A new .spf file will be created again.
                   e.g. "SADMIN&Siebel Call Center.spf"

Sunday, November 6, 2011

Siebel : Calculate 18 years age Flag including leap years

Ways to calculate 18 years age Flag including leap years:

1. Create Calculated Field of todays date in YYYYMMDD Format:
e.g: Formatted Today Date : ToChar(Today(),'YYYY') + ToChar(Today(),'MM') + ToChar(Today(), 'DD')
       Field Type: DTYPE_NUMBER

2. Create another Calculated Field Birth date in YYYYMMDD Format:
e.g: Formatted Birth Date : ToChar([Birth Date], 'YYYY') + ToChar([Birth Date], 'MM') + ToChar([Birth Date], 'DD')
       Field Type: DTYPE_NUMBER

3. Set the Calculated Age Under 18 Flag as mentioned below:
        Age Under 18 Flg : IIf(([Formatted Today Date] - [Formatted Birth Date]) < "180000", "Y", "N")
        Field Type: DTYPE_TEXT

Siebel Hierarchical Pick list by using List Of Values Dynamic (REL)

1.Create Pick List for Field1

Name: Pick List Field1 Demo
BusComp: PickList Generic
Type Value: FIELD1_DEMO

2. Create Pick List for Field2

Name: Pick List Field2 Demo
BusComp: List Of Values Dynamic (REL)

"List Of Values Dynamic (REL)" business component has fields named "Parent Value" and "Parent Type".

Search Specification: [Parent Type] = ' FIELD1_DEMO'
Type Value: FIELD2_DEMO

3. Configure Siebel FIELD1 on  business component

Name: FIELD1
Immediate Post Change: TRUE
This property needs to be set to TRUE for parent field.
Picklist: Pick List Field1 Demo

Field: Field1
Picklist Field: Value

Field: Field2
PickList Field: NULL (leave this field as blank).

(This pick map is configured to set the  Field2 to NULL Field1 is changed)

4. Configure Field2 on business component

Name: Field2
Picklist: Pick List Field2 Demo

Field: Field1
Constrain: TRUE
This property is set to constrain Filed2 by Field1.
Picklist Field: Parent Value

Field: Field2
Picklist Field: Value

5. Compile the changes

6. Set up the Parent/Child List of Value (LOV) relationship between field1 and field2 at the client level. Without setting the Parent/Child relationship properly, the hierarchical Pick List does not work as expected. Please refer above image.

Friday, September 2, 2011

OPA - Oracle Policy Automation / Siebel

Step to create OPA/Siebel Project :
Assumption : OPA determination server, Siebel server & Siebel Connector installation is already done with all seed data. Currently OPA 10.2 version is for siebel.
Steps :
1. Create mapping in Siebel
2. Export Siebel Mapping
3. Create project in OPA
4. Import Siebel Mapping in OPA-Project
5. Create Rules in DOC/EXCEL
6. Build
7. Test it on integrated Oracle web Determination
8. Deploy it on Production Server(Tomcat/Weblogic Server)
9. Create port in siebel (Outbound Web Service)
10. Test

Friday, May 6, 2011

RunTime Event & WorkFlow

Recently, I came across a situation where I need to call a WF on some BC fields value conditions, I prefer Workflow policies for Siebel Integration only, not always for Config. Hence, I would have only two options Scripting or Runtime.BC has already a lot of scripting and no place remains for new script.
Condition Sub-Status = "Dis Approved" + ... on SR BC.
So, I implemented this by using RunTime Events. If you have to call a WF from Runtime Event do't go for Administration -> RunTime, Use WF process events and use conditions inside WF process. Attached image is property window of start branch of WF. This process will be called at PreWriteRecord of SR.

Siebel automatically creates record in Admin->Runtime with Row_id of WF. And don't forget to click Reload runtime from Administration -> RunTime.

Boolean Values in Siebel Expressions

In Siebel expressions,
Bool has three values NULL, Y & N. Hence, If you are using bool in any expression, make sure you are taking care all three values."Y" & "N' does not work every time.

Tuesday, September 28, 2010

Current Record Refresh

Current Record Refresh

Sometime we do some scripting and update current record but updated value does not reflect immediate, we need to do again query and go.
We can solve this issue by using following scrip at the end.

TheApplication().GetService("FINS Teller UI Navigation").InvokeMethod("RefreshCurrentApplet",TheApplication().NewPropertySet(), TheApplication().NewPropertySet());

The SRF file specified is not compatible with this version of the application.(SBL-DAT-00145)

The SRF file specified is not compatible with this version of the application.(SBL-DAT-00145)

Application version and tool version should be in sync. This issue comes when we do incremental compilation and tool version is different then client.

check version
C:\Program Files\Siebel\8.0\web client\UPGRADE\base.txt
C:\Program Files\Siebel\8.0\tool\UPGRADE\base.txt

Siebel Tool : unable to load dictionary

Disable Antivirus and try again.

Tuesday, August 31, 2010

Siebel Remote Flow/ Details

Siebel Remote Flow/ Details


Following Oracle links are very useful to understand Siebel remote flow , that describes all used processes as well.

Master Transaction Log
Transaction Processor
Transaction Router
Inbox / Outbox
DX files (.dx)
TOC files (.toc)
Remote clients process transactions in their local database
synchronization process
Transaction Merger

Siebel Remote data flow Digrame / Siebel Remote processes details

Remote up flow diagram

Remote Downflow Diagram

Wednesday, August 18, 2010

You can not continue to work on this page because the state of this page can not be restored on server

if you create a new record in Siebel eService, populat newly record and saved, Moved to next page.

Now you want to do some update on newly created record, you might come back by Using BACK Button of browser. The moment you will click Back button, you will find following error message.

I have implemented and fixed this by two ways.

1.By using cookies(javaScript) : You can set cookies the way that the moment it goes to defaulter page it should redirect to some other page.

2.Delete History : After saving newly created record, user will go to next page, the moment user click Next Page, bu Using delete History u can delete defaulter page from cache.


The selected record has been modified by another user since it was retrieved. Please continue.(SBL-DAT-00523)

While working with eService-Standard Interactivity,

User needs to populate all detail on one page then needs to proceed next page .(eg: On first Page populates Contact Details, Next Page Populates Income Details.)

if user wants to come back on previous page(eg: contact) then he can use BACK button of browser.

But when he does some changes on previous page (eg: on Contact) and click save button, a error message prompts as follow,

The selected record has been modified by another user since it was retrieved. Please continue.(SBL-DAT-00523)

Solution :

What I did , Goto browser script of applet, Write following script

function Edit__0__Control__WriteRecord__onclick (applet, id)
Top().SWECount = Top().SWEServerCount;

SWECount is page count & SWEServerCount is server request count.


Wednesday, March 31, 2010

Profile Attribute

Profile Attribute :

You can find out value of any profile attribute by just using following code in URL of Siebel Application.

javascript: alert(theApplication().GetProfileAttr("Is Anonymous"));


Monday, March 22, 2010

Siebel Audit Trail : Basics

Audit Trail :

1. Can keep tracks of Read,Update,Delete,new and export on BC.
2. Internally it uses "Audit Trail Engine" BS. Hence BS user property : Enable should be TRUE.
3. Audit trail works on BC having class "CSSBCBase" or inharited by this class.

Enabling Audit Trail :

EnableAuditing system preference should be TRUE.
EnablEimAuditing system preference to TRUE for EIM purposes.

Create a new record in Administrator -> Audit Trail
Significant of property are as follow :

1. Assoc : Specify parent Child relationship Audit

2. Delete : Audit for Deletion.

3. End Date : end date for audition.

4. New : Audit for new operation

5. Restriction Type :Specify condition that determine which should be audited.

6.Update : Audit for update operation.

7.Export : Audit for Export Operation.

Create a record in Field on child Applet, that has to be audited.

1.Read Field Value : Field that you want to store at the time of record reading.
2.Reading : check if you want to audit read operation.

Saturday, February 27, 2010

Table Apply Activate issue in Siebel Tool

Table Apply Activation Issue in Siebel Tool :

Some time when we do Table Apply Activate, Siebel tool hangs and required restart.
Few times, It hangs each and every time.

So you can use following approach to avoid it.

1. Do spool and check which column(Column_Name) is not present in underline database.

2. Find out table(Table_Name).

3. Simply run following sql statement with DBO privilege.
Alter Table Siebel.Table_Name
Add Column_Name DATA_TYPE

Data_Type could be Varchar, Date etc. Take data_type as per requirement.
It works fine.
As per my understanding above is good approach to avoid siebel hang on Table Apply.

Your feed back would be appreciable.

Tuesday, February 23, 2010

Adding Custom View to Vanilla Responsibility

Currently, I came across a requirement, where I needed to add a custom View in Vanilla Responsibility.
It is not possible through UI. Vanilla Responsibility never allows to add any custom views.

But you can add custom view in Vanilla responsibility by using following parameter(/editseeddata) in command line, As;

/U Username /P Password /s c:\spool.txt /editseeddata

Friday, January 29, 2010

Siebel thick Client URL Issue - FQDN

Siebel thick Client URL Issue:

Whenever, we open siebel thick client(local) it takes URL automatically as

http://(machine name)/start.swe

but when we move from local network to Client network by using VPN or whenever we change port or IP. Siebel thick client disconnected and we get message 'Page not found' and need to restart thick client again.This can be avoided by using following two parameters of cfg file under section [Siebel]

FQDN = localhost

Thursday, January 14, 2010

Command Line for Siebel Application

Command Line Parameter for Siebel Application.

/c : Configuration file

/h : Debugger mode

/d : Default database.

/s : Spool

/u : UserId

/p : Password

Note: For Spooling in WF simulator process, Need to pass /s before /h in debug arguments in Siebel tool.

Friday, January 8, 2010

Siebel Client / Tool / system Performance

Siebel Client / Tool / System Performance

Siebel Tool and Client should run smoothly otherwise it irritates a lot on work.
As per my understanding, Apart from my previous post, For improving performance of Siebel Tool / Client And System, you need to regularly delete all *.log ,*.txt and *.dmp and spool.txt of Siebel Log directory on your local.

Also delete all temporary files of your local system, That resides in TEMP Folder.You can check your temp file directory.
Go to Run and Type %TEMP%
Delete all file of this dir, but don't delete structure. Means don't delete any folder only files should be deleted.You can use Dos CMD for same.
I have written following bat file that regularly delete all temp file as well as all siebel logs after a time interval.



REM Delete Log and temp file



cd C:\Program Files\Siebel\8.0\web client\LOG

del /F *.txt

del /F *.log

del /F *.dmp


cd C:\Program Files\Siebel\8.0\Tools\LOG

del /F *.log

del /F *.dmp



On Production Server,You can use environment variable SIEBEL_LOG_ARCHIVES = 3, It will keep only recent 3 copy of a log and will delete old.

You can use window scheduler to schedule this after a regular time interval(Like reboot).

Thursday, January 7, 2010

Dataexp / Dataimp utilities

As per my understanding, Siebel repository resides in around 148 tables.For better access,there is also a binary form of repository called SRF,compiled and stored on all siebel servers.

1.Seed data
2.Repository Data
3.User Data

Siebel database utilities
Dataexp/Dataimp utilities :
As per my understanding, This utility is very nice for importing data from one db to other.but this utility has not been documented anywhere.So before doing any migration, take proper backup.It needs to be used on siebel instruction only.But It works very well all time.No matter what is source database and what is destination data can import data base from production to local, local to prod .Before import, Truncate table that removes all old records and sync with new.
Close thick client and tool as well.
Cmd syntax:
C:\Program Files\Siebel\8.0\Tools\BIN\Dataexp /U USERNAME /P PASSWORD /C "ODBC NAME" /D SIEBEL TABLE OWNER /F C:\export.dat /L c:\log.txt
It imports table by table and continuously prompt for table name.
Same for import.

Monday, January 4, 2010

Siebel Tool / Client Performance / Hangs

Siebel Tool / Client Performance/ Hangs

1.Always Close siebel tool/client from file->Exit, Because improper close of siebel tool, Kept log of all transaction and don't delete all after tool close. When you close tool from file->Exit, it removes/ deletes all transaction log saved in S_DOCK_TXN_LOG

2.Truncate table S_DOCK_TXN_LOG .It will delete all transaction log that has not been deleted automatically because of improper exit of siebel tool.
S_DOCK_TXN_LOG : Keep tracks of all DB changes(field level) through application.
3.Make AutoStopDB = TRUE in tool.cfg and client.cfg

4.Don't remove server name from odbc,that is readyment server.

5.Remove additional parameter of local ConnectString

ConnectString = C:\PROGRA~1\Siebel\8.0\Tools\LOCAL\sse_data.dbf -q -m -x NONE

6.In ODBC, Supply user id and password of SIEBEL.

Monday, December 28, 2009

Workflow Policy Conditions

Policy Condition

If a new row is added for workflow policy component, then trigger this workflow policy to be examined.
If it is used in conjunction with standard comparisons, IS ADDED can also be triggered when a record is updated.

When specify a child workflow policy component in the Condition field, and nothing is specified in the Condition value.
A child workflow policy component is a workflow policy component that is associated with a parent workflow policy component in Siebel.

Above both comparison don't work on field/column level

When IS UPDATED is not present, the Workflow Monitor Agent only invokes the policy if conditions defined in the policy are violated. However, if an IS UPDATED comparison is included as criteria on a field, then other fields in the Policy conditions are never be present on trigger.sql. But at run time workmon checks other condition of policies.

Ref : Siebel Bookself

Anonymous said...

As per my understanding, All Above Comparison uses OR, not AND, Opposite to common behavior of policies.

Tuesday, December 22, 2009

Query LOV

Hi ,

There is a vanilla Function for querying LOV.

TheApplication.InvokeMethod("LookupValue", type, lang_inde_cd);
it returns 'Value' .

var LOV_Val=TheApplication().InvokeMethod("LookupValue","SR_SUBAREA","WASIN");

So don't query on LOV BC, use this vanilla BS.

List Of Value

In List Of Vaue , Dispaly Value(Value) and name (Language Independen Code) should be unique.

You can use Description,ORder or High and Low for data saving but (Name and Value) should be unique.

Currently, I have to save Postal Code and Area Name and need to fetch Area name on basis of Zip code but more then one zip code can have same Area name.hence ,I can't Use (name,Value) Pair instead i have used Descriptioon Field.

high and low column in 'LSt Of val' is also useful for saving values.

Friday, December 11, 2009

Siebel Tool / thick Clien Installation Problem

Some time when we install Siebel Tool/Application, Siebel installation hangs when it reaches to language pack installation.

This happens because of default web Browser.

Simple set default web browser as IE. Restart System.

Control Panel -> Add remove Program -> Set Program Access and Defaults

OS : Window

It will work.

Case Insensitive Search - Siebel

Case Insensitive Search

Thin Client :
Application Level Parameter-'DSCaseInsensitiveFlg' of the Data source Named Subsystem.

Dedicated Client :
'CaseInsensitive' parameter in cfg file.

Wednesday, December 2, 2009

AutoQuery Mode (Applet) / Prefetch Size (BC)

1. Recently I have a requirement to open an applet in Query mode by default.

Use Applet property: AutoQuery Mode = 'True' , it is working properly.Mode on view level as Query is not working.

2.If you have to fetch more then 10,000 record then you need to set BC property Pre fetch size = -1,If you are using SIA BC Utilities and it is fetching more then 10000 records and you don't set prefetch size =-1 , then it raises exception.

3.Avoid using TheApplication().RaiseErrorText() in BS , try to use raise exception instead and try to handle raised exception on more higher level.

Immediate Post Change

When This set to 'Y', Browser script PreSetFieldValue event is bypassed.

PreSetField Event does not work for Contact BC in Siebel 8.0.To make it work you need to set immediate post change true.

Monday, November 30, 2009

Query on BC in Workflow Process

Query on BC in a workflow may have following three scenario.

1.Query on Primary BC of BO :
We can not use Siebel Operation for this, We can use 'SIA BC Utility' Vanilla BS for same.
Input Parameters:
Business Component Name=Contact,
Forward Only=Y,
From First=Y,
Search Specification='[Id] is not NULL'

2.Query on Child BC of same BO:
For this scenario,We can simply use Siebel Operation.

3.Query on some other BC , not part of BO:
For this scenario, we need to use 'Inbound E-mail Database Operations' BC method: FindRecord.
Input Parameters:
QueryFields = Type,Status
ValueFields = Priority
Type = 'Abc'
Status = 'Open'
Output Parameters:
ProcessProperty1 = Priority
*Input Argument query fields need to pass , and value field can be collected as output.

XML Basic

As per my understanding ,
1. XML is subset of SGML
2. IE4+ supports XML
3. Common logical Structure
4. Consist root element
5. Pro log of the XML doc contains instruction of handling the document.
6.XML syntex is case sensitive.
*Its good practice to include the XML version.

DTD: Contain rules that specify what element an xml doc contain, act as a template.

If XML doc does not refer any external DTD, then XML is stand alone.

We can have both external as well as internal DTD.Internal DTD is always being refereed first and it takes precedence first.

XML Contain : 1. Pro log 2. Root Element

Error In XML Doc: 1. Well Formed document 2.Valid Document

Well formed Document : Confirms the rule of XML syntex

Valid Doc : validate against DTD.

Saturday, November 28, 2009

Invoking Business Service through Browser Script

Invoking a business service through browser script , it is necessary to make a entry in cfg file under section [swe].
Better Create a single generic BS and used that BS to invoked other BS internally .
Generic BS would be a wrapper BS for other BS, and You don't need to make entry for every BS in CFG.

Friday, November 27, 2009

Unlock Project from Back End

When we unlock project locally, following column need to populate null:

These colmuns are part of S_PROJECT TABLE.


Friday, November 20, 2009

Assignment Manager-Siebel

Static And Dynamic Candidate: Candidates are uploaded at start up of processing, for Dynamic, at run time determined.
*An assignment object can be employee based or Position Based not both.
*(Employee candidate or Position candidate) and Organization candidate.
Teams versus individual Candidate: Team is a group of employee or position. Assignment Object can be team-based, individual based, or both.
Primary Assignees : Highest score assignee .
Assignment Rule Sequencing: In ascending order, you can limit that only first 5 high priorities rule should only execute. If passed , then stop all next rules.
Assignment Scoring: Score of Assignment Rule will be added to qualified candidate score. You can set minimum pass score.
Administration->Assignment – Server key Mappings:Specify rule group and corresponding server for load balancing. All rules of that group executes on corresponding server.
Availability-Based Assignment: First check calander.
Component Requires?
  • Batch Mode: Rule Group and AsgnBatch Runs requie only
  • Dynamic: Default Group and don’t use Asgn Server and AsgnBatch component as well
  • Interactive: Default, Rule Group and AsgnSrvr component requires.
Processing Assignment Rules:
  • Reporting Mode
  • Production Mode