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.