Sunday, March 11, 2012

Siebel 8 Script Libraries

 

Quick question; will the following code snippet work ?

Business Service : BS1, contains only this code

function function1 ()
{
TheApplication().RaiseErrorText("function1  triggered");
}

There is no code in any other event/function of this BS. And now, the attempt is to trigger this BS via the following code:

var bs = TheApplication().GetService("BS1");
bs.function1();

Now there is something wrong about the second code snippet, right ? This is not the usual way to invoke a Business Service Method.  The practise is to use the InvokeMethod command, passing property sets for input and output.  But here is the output of running these in Siebel 8

image

 

This is an example of Script Libraries feature from Siebel 8 onwards. Developers can write multiple functions in business services, and then these functions get exposed , and the functions can be invoked directly as you would do on C/C++/Java. There is no need of adding code in  Service_PreInvokeMethod  event to expose the functions.

There are limitations though, such a business service’s functions can be invoked only via scripting. They cannot be used in WFs or BRPs. But if your functionality calls for lots of scripting, this feature surely comes in handy.

 

The ever friendly Oli has been posting some really tricky pieces of code for his code challenges. Head over there to learn scripting mistakes that creep up in code.

Happy Scripting !

Friday, March 9, 2012

View Refresh when clicking New Record in a view with Dynamic Toggle

 

Dynamic toggle applets were probably the first piece of automation a Siebel developer gets to work on; switch the applet depending on some field value. No scripting, nothing at the BusComp level, just Applet toggles. But issues crop in when the logged in user tries to create new record on the applet. Sometimes the view jumps or refreshes, specially when there are lots of applets stacked in the view. The user has to manually scroll down back to this target applet.

Oracle has a work around for this ‘defect’ documented here [ID 541100.1] , which involves loads of scripting at the applet and BusComp level. But I tried to come up with something with fewer lines of code.

Resulting solution: add the following code in the WebApplet_PreInvokeMethod section of the base applet as well as its toggle applets:

 

if (MethodName == "NewRecord")
{
this.BusComp().NewRecord(NewBefore);
return (CancelOperation);
}

 

Yep, I know, the code does not make sense at all. But for some reason, it works ! The view does not jump and the new record gets created right there in the applet. At at just 3 lines of code, it beats oracles long and elaborate code version.

Saturday, February 11, 2012

Desk.Com- Service Cloud for SMBs

On Jan 31st Salesforce unveiled its customer service application for small & medium business enterprises.
It is called Desk.com & is based on Salesforce's acquisition of Assistly.
Desk.com is a cloud based offering for SMBs to support their customers.

Key Features -


  • Build with keeping the Salesforce Social theme in the core, Desk.com allows the companies to support their customers over the major social channels like Facebook & twitter.

  • Integration with Facebook & Twitter is the standard feature of the product and it takes few clicks to link organization's FB & Twitter accounts with Desk.com.

  • Any or all the Tweets & FB posts on the linked accounts can be created & tracked as cases in Desk.com.

  • Desk.com also supports all the traditional customer support channels like Phone, Chat & Email.

  • Organizations can create a knowledge bank which can be made available to customers via their websites. This knowledge bank can act as the 1st step for the customers to resolve their issues.

Salesforce has also launched Desk.com for Mobile platforms. Desk.com for mobile is a HTML5 based application which supports all the major mobile platforms. Agents can respond to the customer while on move. All the major case management functionalities like sending responses, changing case priority, escalating the case etc. are available via Desk.com Mobile.

Pricing - 1st user license is completely free, create your account & start using it. After that it's US$ 49 per agent per month for unlimited usage. For part time support agents there is a flexible pricing option available which is US$ 1 per hour per user.

In this fast changing digital world where people spend a huge chunk of their time on internet nobody can ignore or deny the power of Social media.
But if Salesforce is targeting SMB's for this product then I am not sure how much the social part can be utilized by these organizations. Social interactions require a dedicated team to respond to Social media and if the responses are not handled by the experts then it can boomerang on the company and can have lasting negative impacts.

SMBs generally have very small customer service teams and they would like to respond to the actual customers/prospects rather than people posting random thoughts and queries on social media websites.
So I believe initially Desk.com will primarily be used for its traditional channel support & when the company grows in size and has enough support staff then they can start using the Social part of Desk.com.


Reference -http://www.youtube.com/watch?v=gFEbcDojo1A&feature=related

Monday, February 6, 2012

eScript–Nested ‘with’ has problems in 8.1.1.5


Recently we had the friendly guys from Oracle come over and review our current project. Over the years, we have had review comments coming from such reviews and now know what to expect. But this time, there was a new entry in the document.
Siebel eScript developers and basically anyone who has worked on ECMA style languages must have used the ‘with’ statement. The with statement assigns a default object to a statement block, so you need to use the object name with its properties and methods. Its makes coding easier when you need to do multiple actions on the same object. But nesting with statements , it seems, is not a good idea if you are planning to upgrade to version 8.1.1.5 which came out last year.
The With statement structure indicates that all methods within its block will be based primarily on the indicated object. When With blocks are nested, it is not immediately obvious which object’s method will be invoked. The code execution may not do what the developer intended.
with(firstbc)
{
ClearToQuery()
ExecuteQuery();
with(secondbc)
{
ClearToQuery()
ExecuteQuery();
}
}
If the script remains unchanged prior to upgrading to 8.1.1.5, there is a known defect where runtime errors will occur. Although this is currently considered a defect and intended to be corrected, nested With blocks are not a recommended scripting practice. All of the methods invoked in the second With block would also work on the object in the first With block. In this script, the developer was actually done using the firstbc object prior to starting the nested With, but simply chose not to close the block.
Now oracle says that :It is not recommended to nest With blocks. The first With block should be close prior to initiating a new With block or the object variables should always be used.
Now we have used countless nested with statements it handle complex business logic, and have never faced an issue. But we are now rewriting the code eliminating nested withs and using the complete object names. This is because we do have plans to upgrade some time in future, and its best to steer clear of rework then.
with(firstbc)
{
ClearToQuery()
ExecuteQuery();
secondbc.ClearToQuery()
secondbc.ExecuteQuery();
}

Update: Oracle SRs are here and here

Saturday, January 28, 2012

New Year, first post.

 

Happy New year ,everyone. Yeah, I know, this post is long overdue.  I changed jobs some time last year, and the work at the new place is not exactly what I expected.  Crazy deadlines, unrealistic requirements, last minute changes…the works.

But I did get to learn more about this whole CRM world.. And here’s hoping I find more time to share more of what I learn.

I began my career on Siebel 5 years ago, and it has been my bread and butter. The tried and tested On-Premise mode of CRM installation has always been popular with the blue chip and Fortune 500 clients I had the opportunity to work for.  Although cloud based applications are gaining foothold, most of my employer’s clients steered away from sharing mission critical data on the web. They seem to feel more comfortable maintaining and storing their customers data in company’s storage rooms. A lot of them have have simply said no to SalesForce CRM because they don”t get to secure their customer’s data. But all that is changing.

SalesForce.com has understood this customer concern, and the have decided to do something about it. This year, they will introduce a new feature called Data Residency Option or DRO. Simply put, DRO will enable On Premise storage of mission critical data on Cloud.com servers, which can be setup inside client office locations.

DRO will be a part of database.com - a cloud database Salesforce made generally available. It gives an option to the customers of Salesforce to store their mission critical data at their own location and hence keeping complete control of the inward and outward flow of the data across the customer firewall.

The technique developed by Navajo, also called Virtual Private Saas, provides the cloud vendor, Salesforce.com in this case, a key that enables it to translate the encrypted data as it passes through its cloud application. The data is then re-encrypted as it leaves the cloud vendor's solution and returns to the customer's data source. The corporate data is unreadable on cloud provider's servers during this entire operation. VPS is available both as a cloud service, as well as an appliance sitting on the customer's local or Wide area network. With VPS, the customer is solely responsible for its data security as it will hold all the encryption keys.

The flip side to using such a technique would be the security of the encryption and decryption keys used for the process. It is highly critical to properly manage the keys as once the key is lost, the encrypted data can no longer be accessed. Hence, this calls for robust key management to avoid any such eventuality.

But, barring the above, In my view, this technique will overcome the most important impediment to cloud adoption and will be a foundation of technological acceptance as it addresses the key customer fear i.e. about potential data threats in the cloud.

Coming to the acquisition, Navajo systems, founded in 2009 was one of the existing encryption service providers for Salesforce. Salesforce decision to acquire Navajo hence made a lot of sense when other cloud based CRM tools such as Sugar CRM already has possible options for deployment on public clouds (Amazon EC2, Rackspace etc.), private clouds such as VMWare and also on-site behind customer firewalls.

According to a recent report from IBIS World, one of the world's largest independent publishers of U.S. industry research, CRM industry today stands at 60% on-premise deployments and 40% cloud based solutions (1). For customers who are looking for new purchases or upgrade of their legacy applications, DRO might just be the key decision influencer. Let's wait and watch!!

References:

(1) http://www.destinationcrm.com/Articles/Columns-Departments/Insight/Are-CRMs-Worst-Years-Behind-It-79254.aspx

Monday, December 26, 2011

Happy Christmas to One and All

Happy Christmas to One and All:

Wishing everyone who reads this a very happy Christmas and a prosperous New Year!

Wednesday, November 16, 2011

How To Restore Sharing Options And Old List Spacing In Google Reader

How To Restore Sharing Options And Old List Spacing In Google Reader:

share from google readerGoogle sure has been busy lately. Gmail has a brand new look, Google+ received some new add-ons and even YouTube is getting a facelift. But did you notice the changes to Google Reader? If you’re a regular user, you must have noticed how the color scheme changed, how the spacing changed in list mode, and to top it all off, that you can’t share items anymore, unless you use Google+.

As opposed to Gmail, where you can control the spacing between items in the new look, no such option has been added to Google Reader. This means your screen is now less utilized and you can see less items in your feed, just because of added padding. And if you were used to sharing items via Reader’s sharing options, they no longer exists. The only way to share is via Google+. So what are avid Google Reader users to do?

Here are two add-ons that will help you restore some of these features and get your good old Reader back.

Reader Sharer [Chrome]

share from google reader

Reader Sharer is a simple Chrome add-on that restores the sharing functionality to Google Reader. If you want to continue sharing through Google Reader with its own sharing configuration, or if you simply don’t have Google+ and don’t feel like opening an account just so you can share, you should definitely try out Reader Sharer.

google reader sharing

Once you install the add-on, head over to Reader and check if your sharing buttons have been restored. You might need to refresh the page to get them back. But sure enough, here they are!

google reader sharing

Reader Sharer restores the entire Reader sharing interface. You can set up who you want to share with, and then share items or share with note, exactly like it used to be. The sharing settings are now back on your sidebar where they used to be, between “All items” and “Explore”.

google reader sharing

Reader Sharer comes in two versions. One that simply adds the sharing options (linked above), and another one which also takes care of the new spacing problem in list mode. Using the second version, you can kill two birds with one rock – get your sharing options back and fix the spacing.

Reader Sharer [Firefox]

Reader Sharer Monkey for Firefox comes in just one version, the one that also takes care of the spacing problem. This is not a Firefox add-on, but a Greasemonkey userscript. In order to get it, you have to first install Greasemonkey, and then head over to the userscript page and install the script.

sharing from google reader

Now, when you open Google Reader, all your sharing options will be back, and the extra spacing in list mode will be reduced.

sharing from google reader

FixStyleSheet [Chrome]

If you’re OK with Google+ sharing, and don’t want to mess with sharing options, try FixStyleSheet for GoogleReader. This is a simple Chrome extension that does just one thing: it changes the new spacing in Google Reader and lets you use your screen efficiently again. Here is what Google Reader looks like in list mode with the new look:

sharing from google reader

It’s not that this looks especially bad, but many people have lots of different feeds, and the more items you have on your screen, the easier it is to scan through them and find what you really want to read. The extra spacing also makes the post excerpt smaller, which makes it just a bit harder to understand what the post is about without clicking.

If you’re ready to fix this, download FixStyleSheet, and take another look at Google Reader. The change is automatic, you don’t even have to refresh.

See how much more compact it is? On my 15’’ screen, it increased the number of posts I can see without scrolling from 13 to 23! That’s a lot of wasted space recovered.

Another small thing FixStyleSheet does is make the post view a bit wider and a bit more compact. This is what it normally looks like:

And this is what it looks like after installing the add-on. The title is now smaller, and the whole post stretches over a somewhat wider area, so it takes up less room on your screen.

share from google reader

The change is not huge here, but if you’re minimalistic and don’t care much for formatting, it’s a nice change.

Bottom Line

Changes to the user interface of a product you use regularly is always a tough ride. We all have our way of doing things, and when a company comes in and changes everything on us, we’re bound to be looking for ways to soften the blow. This doesn’t mean the change is necessarily bad.

Making users share only through Google+ is quite a different move, and is not necessarily meant to improve our experience as users, but to improve Google+’s standing. So don’t be shy, if you’ve been using the share option in Google Reader, get the add-on and resume your normal sharing routine.

What do you think of all these changes from Google? Do you like the changes to Reader, or are there other elements to the change you don’t like? Share in the comments!