November 01, 2013

JSON and Siebel


JSON(JavaScript Object Notation) is a new lightweight integration message format which is replacing XML in thin client integrations. There are no meta tags and data description in JSON as in XML, it is just a string representation of JavaScript Object, it is designed to help javascript code to convert data to string and string to data without considerable overhead.


JSON vs XML


Many companies have started replacing XML with JSON in APIs. All the APIs of Google (Maps,Mail,Calendar, plus etc are now serving JSON), Twitter API,  Facebook apps and interfaces are built using JSON.
Read more on JSON on : http://www.json.org/

Siebel lacks in support of JSON on server side. Oracle support recommends use of workarounds such as using custom scripting to parse JSON response received by Siebel.

So how to interpret json in Siebel? Answer lies in the escript engine of Siebel. Siebel eScript as we know is actually ECMA script which was basis of Javascript. That is why the syntax of Javascript and eScript closely matches each other.
ECMA adopted JSON before it became standard in javascript. Thus our well known Siebel eScript also have some support.

October 19, 2013

How to Pre-populate CC or BCC in Siebel F9 Functionality?

Siebel F9 Email Client no doubt is one of best out of the box functionality of Siebel. It has lot of its logic built into the classes thus presents some limitations. In our previous post we saw how we can bring data from child business component data into email body.

In this posts lets see how we can pre-default CC or BCC recipients using some scripting. Out of the box
when ever Send Email method is invoked from on any Siebel Applet, Send Communication Applet is opened, and "To" email field is populated with the value of the field specified in Recipient Email Address Field  user property on the BC.

However there is no way we can pre-default CC and BCC fields out of the box. With the help of small script on  Send Communication Applet can set the value of To Email, CC, BCC and Email Body as well. This can be useful little customization that can help to pre-populate data which can not be achieved using email templates and recipient groups.

function WebApplet_Load ()
{
    var oBC = this.BusComp();
    oBC.SetFieldValue("Email BCC Line","a@a.com");
    oBC.WriteRecord();
}

Siebel Email Client - Siebel 7.8
Hope it helps

-Jim

October 18, 2013

Property Set Value is marked as binary data - SBL-EXL-00109

Error: PropertySet GetValue call failed. PropertySet Value is marked as binary data, starting with: 'PropertySet GetValue call failed. PropertySet Value is marked as binary data, starting with: '(SBL-EXL-00109)

This error occurs when Siebel script tries to manipulate the data from external interface which is not UTF-16, as GetValue or GetProperty Methods are build to return on UTF-16 data. I was getting this error when I was trying to GET some data using EAI HTTP Transport Service.

There are two solutions which can be used to resolve this issue.
First: Use Transcode Service, Convert Method, and using EncodingToString and SourceEncoding as CP1252. Read more on: http://learnfrommike.blogspot.com.au/2012/08/read-response-from-invoking-siebel-crm.html

Second: EAI HTTP Service provides conversion directly from the service. We can provide
CharSetConversion input property to convert the output to required encoding. I was successful using following code:

function Service_PreInvokeMethod (MethodName, Inputs, Outputs)
{
var bs = TheApplication().GetService("EAI HTTP Transport");
var inp = TheApplication().NewPropertySet();
var op = TheApplication().NewPropertySet();
inp.SetProperty("HTTPRequestMethod","GET");
inp.SetProperty("CharSetConversion","UTF-8");inp.SetProperty("HTTPRequestURLTemplate","");
bs.InvokeMethod("SendReceive",inp,Outputs);
return (CancelOperation);
}

Hope it helps.

Part4: Patching Siebel 8.1.1.10 Client

This step is the  last and simplest step of the Siebel installation.The only two point to make sure in this step are:
Select the right oracle home for patching, by default it create another oracle home and might not complete as installation file does not contain all the data.
Second verify Summary which is shown just before installation,  it should read as below.


See the complete list of steps : Installing Siebel 8.1.1.10 on Windows 8

Part 3:Installing Siebel 8.1.1 Client on Windows 8

After downloading the jar files and creating Siebel Install Image, task that remains is to install Siebel 8.1.1 Tools and client and patching  with 8.1.1.10. There are only few hiccups with this installation.

Pre-Installation steps:
1. Create Siebel folder, and share this folder with every user with full access. - although it is not required but it helps to avoid file write errors.
2. Change oui.exe comapatibility setting to run it in Windows XP(Service Pack 3) mode.

Installation steps:
1. Run oui.exe and select Run as administrator option, select the folder created for installation.
2. Installer might report some warnings as part of Pre-requisite checks, check the flags to skip them.
3. Select Developer web client in next prompt.
4. After this step, installer asks for parameters for server configuration, which is used for server management screens of the application. These parameters are not required to populate now, one can safely skip to next steps keeping the “CHANGE_ME” value.
5. In final step installer displays all your inputs to confirm your responses, and provide option to install.
6. To install Active X, installer opens up the internet explorer, if installation of Active X fails, installation can get corrupted and you can get the following error, to avoid this error click allow button on ie for installation of active x and close the browser when requested.

Errors you might face:
---------------------------
siebel
---------------------------
SSACommonDllInit failed for enu(SBL-GEN-02505)
---------------------------
OK  
---------------------------
Click play to view screencast for the installation


Steps to download Siebel Tools 8.1.1.0