Tuesday, January 25, 2011

Application Deployment

“In any collection of data, the figure most obviously correct, beyond all need of checking, is the error...”

Check, Double-Check, Recheck is the mantra while depolying on production in order to avoid any goofups. Despite any technique being used for deployment including ADM or EIM a thorough sanity should be done after deploying the artifacts on the production envirnoment. This becomes quintessential in multi-project environments where roll out is in phases. Every body has its own strategy based on the environment to perform a sanity check. However the one i have been using is to perform a count of records across the environment along with ADM to deploy artifacts. While ADM ensures that artifacts have been deployed successfully the count helps in confirming that nothing is missed from the source environment.

Here is sample query which can be customized based on the specific artifacts which gives us the count of records from multiple tables such as Personalization rules, runtime events, Views, Views/Responsibility, LOV's :

SELECT
(SELECT COUNT(*) FROM SIEBEL.S_RESP) S_RESP_COUNT, -- Count of Responsibilties
(SELECT COUNT(*) FROM SIEBEL.S_APP_VIEW) S_APP_VIEW_COUNT, -- Count of Views
(SELECT COUNT(*) FROM SIEBEL.S_APP_VIEW_RESP) S_APP_VIEW_RESP_COUNT, -- Count of Resp-View association
(SELECT COUNT(*) FROM SIEBEL.S_LST_OF_VAL) S_LST_OF_VAL_COUNT, -- Count of LOVs
(SELECT COUNT(*) FROM SIEBEL.S_CT_ACTION_SET) S_CT_ACTION_SET_COUNT, -- Count of Runtime Action sets
(SELECT COUNT(*) FROM SIEBEL.S_CT_RULE_SET) S_CT_RULE_SET_COUNT, -- Count of Personalization Action sets
(SELECT COUNT(*) FROM SIEBEL.S_SYS_PREF) S_SYS_PREF_COUNT, -- Count of System Preferences
(SELECT COUNT(*) FROM SIEBEL.S_VALDN_RL_SET) S_VALDN_RL_SET_COUNT -- Count of Validation Rules
FROM DUAL


This query should be run against source and destination databases and results should be compared. The output of this query looks like:


Happy crunching!!






Tuesday, January 18, 2011

Workflow Policy Program

Workflow Policy Programs are generic events that used to trigger certain actions whenever policy conditions are met. Siebel comes with predefined set of Program types. Policy programs can be of any developer's delight if used effectively. However these Policy Programs are invoked only by workflow Policies (as per my awareness).

So the question for all siebel gladiators is whether it is possible to invoke Workflow Policy Program by any other means. Any clue on this piece of puzzle will be of great help.

Keep cracking!!

Monday, January 17, 2011

Symbolic URLs

Siebel often talks of 360 degree view across enterprise and delivers the same. We can embed external web applications in siebel application using Symbolic URLs. There are multiple scenarios when this is required mainly for reporting purposes.Even with adequate material on web, exact parameters to be used in symbolic url is more of hit and trial approach.In this post,I will take snub at couple of realtime scenarios where Symbolic URL can be of great help.

1 - Any product oriented company will have an employee application as well as portal application for external customers. In some circumstances employee may have to access portal application on behalf of customer. It will be real ease for employee to launch portal application on click, directly from the base application. Symbolic url is our alley here with below configuration.

Symbolic URL
Name: Test Portal
URL: http://host_name/application_enu/start.swe
SSO Disposition: Form Redirect

Arguments
Below arguments should be configured for the auto login from base to portal application.


2 - Lets consider another example where we want to display details of Service Request in siebel application from some other web application. For time being the id of SR in siebel is same as in web application. Sample configuration for this will look like as below:

Symbolic URL
Name: View SR
URL: http://application_url
Fixup Name: Default
SSO Disposition: IFrame

Arguments
Below arguments should be configured. The key here is "IsRecordSensitive" command. This helps in context passing for auto refresh when next record is selected in top applet.


3 - One of the more frequent usage of symbolic url is in the portal application for analytics and reporting usage. If a user wants to see a quick snapshot or preview of the Service Request, he is just click away with help of Symbolic URL. The sample configuration enables user to view additional details or the SR which are not displayed in the current view. Sample configuration for this will look like as below:

Symbolic URL
Name:Print SR
URL: http://start.swe?SWECmd=GotoView&SWEView=Test+SR+Print&SWERF=1&SWEApplet0=Test+SR+Applet&SWERowId0=SRID
SSO Disposition: Form Redirect

Arguments
In this url SRID is the parameter which will pass in the argument list as shown below:



There is documentation available on siebel support regarding how to go about configuring symbolic url in siebel applets.I will discuss more scenarios as i encounter them till then play around by opening facebook in siebel.


Tuesday, January 4, 2011

Inbound Web Services

Web Services is one of the illusive part of siebel CRM. A lot has already been written about web services but for this category more is always less. This post is not about how to create inbound web service but to help you decide how to use them based on different scenarios.

Siebel makes use of UserName token mechanism for authentication and security. Based on the requirement following options are supported while implementing an inbound web service:

1 - The basic implemenation allows the userid and password to be included in the url of webservice. This can be opted when security is not of much importance.Following is an example of passing the user name and password by way of a URL:

http:///eai_enu/start.swe?SWEExtSource=WebService&SWEExtCmd=Execute&Username=SADMIN&Password=SADMIN
If you look at the "WebService" named subsystem it will have following parameters:

AllowAnonymous = False
Impersonate = FALSE

Along with this, make sure the operations have the Authentication Type set to None.

2 - We can also use the UserName tokens where security comes into picture. In this case the URL does not reveal the user credentials. In this instance url looks like as below:

http:///eai_anon_enu/start.swe?SWEExtSource=SecureWebService&SWEExtCmd=Execute

It makes use of "SecureWebService" subsystem. If you look at the "SecureWebService" named subsystem it will have following parameters:

AllowAnonymous = False
Impersonate = True

The operations have the Authentication Type set to "Username/Password - clear text". This type requires the SOAP client to send security header information along with the request. This header information contains the userid and password.

3 - There are times when you don't want exteral system to send the userid and passwords. siebel provides us a way to create totally anonymous web service so that no credentials are required to invoke service. A sample web service url looks like:

http:///eai_anon_enu/start.swe?SWEExtSource=AnonWebService&SweExtCmd=Execute

We need to have a new NamedSubsytem "AnonWebService" with following parameters:

AllowAnonymous = TRUE
Impersonate = FALSE

Along with this, make sure the operations have the Authentication Type set to None.

Details of how to create anonymouse web service are given under support Id: 601681.1

If security is of the utmost importance, and if it is critical that the password not be provided in clear text, web services over HTTPS should be used. We will discuss more of Outbound scenarios in the upcoming posts till then keep discovering unlimited possibilities of web services.

Sunday, January 2, 2011

Query in Edit List Mode

Working on a Project without any issue is like watching batman movie without joker. An alien issue which has been bugging me from long time is how we can have different columns in list applet while opening in Query mode.

Consider an example of SR list applet. "Edit List" applet mode is being used in the View web template which displays SR Number, Status and Area but when user queries on this applet he should see Sub Area and Sub Status along with above fields in query mode. One go to solution is to use "Base" mode in View web template but this will not suffice other scenarios.

Any tip/thought/comment/break from you siebel champions will be of great help. Let the quest begins.