July 16, 2013

SBL-SCR-00128 : Script compilation failed at line Expected '}'


Siebel Tools Error

Script compilation failed at line 36 in procedure 'BusComp_WriteRecord':
Syntax error at Line 368 position 35:Expected '}'
(SBL-SCR-00128)


This is one of the compile time error which can waste a lot of time, the worst thing about this error is that it does not indicate the actual problem and point to unrelated section of the code.


This error can occur because of multiple reasons, and can force developer to check the whole code. Some of tips that one can use to resolve this error are:

July 15, 2013

Siebel Open UI - Oracle Open World Presentation

This is the official presentation of Siebel Open UI on Oracle Open World.



Siebel CRM: Open UI from Ilya Milshtein

Showing screenshots for  : Native Print Preview
Multiple File Upload/Download
Lists and forms
Pick and MVG Applets
Calculator
Currency
Calendar control
LOV quick fill
Explorer Control
Product configurator
Notifications
Sitemap finder
Smart Script and TBUI
CTI
Email F9

 

July 05, 2013

Discussion with Tom Siebel

Ever wondered what Tom Siebel is doing after selling Siebel CRM suite to Oracle in 2005? We hardly heard anything from him except his last accident with elephant in 2009.


June 28, 2013

Salesforce.com and Oracle Announce New Strategic Partnership - WTH?

Salesforce.com [NYSE:CRM] and Oracle [NASDAQ:ORCL] announced today a comprehensive nine-year partnership encompassing all three tiers of cloud computing: Applications, Platform and Infrastructure.

“We are looking forward to working with salesforce.com to integrate our cloud with theirs,” said Larry Ellison, CEO, Oracle

print from http://www.oracle.com/us/corporate/press/1964798

Salesforce.com plans to standardize on the Oracle Linux operating system, Exadata engineered systems, the Oracle Database, and Java Middleware Platform

Don't you guys are already running on OEL? It was declared since birth of salesforce that it runs on Oracle databases and have support licenses from Oracle, what has changed now?   

Oracle plans to integrate salesforce.com with Oracle’s Fusion HCM and Financial Cloud, and provide the core technology to power salesforce.com's applications and platform. Salesforce.com will also implement Oracle’s Fusion HCM and Financial cloud applications throughout the company. - 
Why would competitors will agree to use opposition's technology behind the scenes, it just makes one sense, Oracle has just added another cloud CRM to his CRM suite which is already overflowing with Siebel, Peoplesoft, Fusion and some cloud based CRM OD and Fusion cloud applications.

 Seems to me like coverup for Larry Ellison's next acquisition, he just can't tolerate any competitor in his area.

Makes me wonder how much he would have spent on this? any ideas?

This operation is not available for read only field 'Template'.(SBL-DAT-00402)

---------------------------
Siebel
---------------------------
This operation is not available for read only field 'Template'.(SBL-DAT-00402)
---------------------------
OK 
---------------------------

This is one of most common error of every siebel implementation.Usually this error is followed by :
Cannot set a value for field %1 because it is not active. (SBL-EXL-00147)
The first thing which we tend to do is to set the force active property of field to true and recompile and end up getting this error in logs:


(omextlng.cpp (4682)) SBL-DAT-00402: This operation is not available for read only field 'Template'.

In my case I tried several things but couldn't pass through this error, until I noticed provided whereIndicator in New Record Command. Once I made this change both the error were resolved.

.....
bc.ExecuteQuery(ForwardOnly);
var ap = bo.GetBusComp("Activity Plan");

ap.InvokeMethod("SetAdminMode", "Y");
ap.ClearToQuery();

ap.ExecuteQuery(ForwardOnly);
ap.NewRecord(NewAfter);

ap.SetFieldValue("Template","AP1");
ap.WriteRecord();
...

Using where indicator is only one of the reason for SBL-DAT-00402 error. Please share your experiences if this helps.

Date manipulation in Siebel Workflows - Contd

In continuation of Incrementing date in workflows.
See latest post on Date functions Siebel eScript

This article explains how to compare two dates type process property in Siebel Workflows.

Everything seems to work as expected, the only point is to make sure you have set the property type of the property holding date as "Date"

To add number of days to a date: [&Date] +30
To subtract number of days from a date : [&Date] - 4
To find if date is passed: [&Date] < Today()
To find if date is future date: [&Date] > Today()
To Add 1 Sec to a date: [&Date] + (1/(24*60*60))

Comparing Date in Siebel Workflow Expression
Comparing Date in Siebel Workflow Expression

Julian days also seems to work perfectly in Siebel Workflow Expression.

To get current Julian month use: JulianMonth(Today())
To get Julian Year: JulianYear(Today())
To get Julian Week: JulianWeek(Today())

Julian Month in Siebel Workflow Expression
Julian Month in Siebel Workflow Expression
Output:
Siebel Workflow Process Output
Workflow Process Output
Today(): returns current system date without timestamp.
Timestamp(): returns date with time stamp

hth

June 24, 2013

How to increment date in Siebel workflows?

It is supposed to be the one of the toughest task in e-script is to handle date fields and manipulate the data. Recently I learned it is fairly simple to manipulate the date values in Siebel Workflows as compared to e-script.

This revelation goes to Naresh Lalam from siebel.ittoolbox . After his one of the comments I went up and verified that date fields can be simply manipulated from expression of Workflow Process

Provided :
1: Process Proerty storing Date is of type : Date
2: Number of days which needs to subtracted to added should be integer.
Output Arguments








On simulating these expression it results extremely simple output.

Workflow Process Properties












Credit : Naresh

cheers :)

How to make field conditionally editable in Siebel?

Requirement: To make Siebel Fields editable only from certain views or certain users?

This sort of customization could come up when business would like to update fields from certain views only and make then read only from elsewhere.

Solution: This requirement can be achieved in many ways, listing script-less solutions here:

1. Clone the Applet and views and make the control read only by setting the read only flag on Applet

Benefits: As the solution makes copy of UI layer, it does not impact the business layer. If there is any script which is updating the field as part of another process it wont require any changes as field on the BC remains unchanged.
Drawbacks: Duplicate objects make application complex and difficult to manage.


2. Create Field Read Only Field user property to make the read only if the active view name is not same as the intended view.
This can be done by using : GetProfileAttr('ActiveViewName').
Benefits: No new object created thus keep the keep maintenance simple and keep the business logic at one location.

3. Use GetProfileAttrAsList in calculated field to check the responsibility of user.
If user has the responsibility then field will be editable and for all other users field will be read only. This responsibility can be added to SADMIN as well so that background workflows can only update this field.

syntax of calculated field:
IIf(InList(“EditableField”,GetProfileAttrAsList(“User Responsibilities”)))
If you have come across any other  scenario in which you were forced to write script then please share it with us in comments below.

Restrict certain queries on BC/EBC/VBC : GetSearchExpr()

Recently someone posted requirement on it toolbox to capture and change the queries executed by user on certain Siebel business components.

Few consultant suggested use pre query event of business component to change the search spec using GetSearchExpr and SetSearchExpr, however it is not possible to achieve this without releasing srf.

Perhaps there was a solution which could be achieved without releasing srf.In such type of requirements we can use Siebel Run Time events and client side business services which are independent of srf release.

June 22, 2013

Siebel Tools and Client is not responding?

Have you done something innovative and Siebel Client have stopped responding? Even task manager is stuck?

Do not restart your machine, instead try these commands from command prompt to force kill the exe:

taskkill /IM siebel.exe /F
taskkill /IM siebdev.exe /F
taskkill /IM iexplore.exe /F
taskkill /IM taskmgr.exe /F

Force kill siebel.exe