רשומות

מציג פוסטים מתאריך 2011

Happy New Year!!

תמונה
Time of year has arrived when travel plans, party plans presides over defects and status reports. So i take liberty of being non technical and thanks all readers across the globe for wonderful support and comments with very warm new year wishes. May new year brings lot of happiness with less defects,more siebel patches, hefty pay hike, hot gal friend or boy friend (only for bachelors), trimmed waistline. May you get a clean bill from your dentist, your cardiologist, your gastro-enterologist, your podiatrist, your mechanic and your plumber. May your hair, your teeth, your abs and your stocks not fall; and may your blood pressure, your cholesterol, your white blood count and your mortgage interest rates not rise. May New Year's Eve find you seated around the table, together with your beloved family and cherished friends. May every day of the new year glow with good cheer and happiness for you and your family. Happy 2k12!!

Happy Christmas and a Prosperous New Year

תמונה
I'm getting ready for my seasonal break today, so I wanted to take this opportunity to wish all my readers a Very Happy Christmas! Even if you don't celebrate the religious festival, I hope you enjoy the festive period. Thank you for reading at least some of my blog posts this year, and contributing to some very interesting requirements. I haven't been able to write something new lately, but you ca be sure of some pretty cool posts next year, Stay tuned! And, if you haven't noticed already...Its snowing :) Once again, we wish you an absolute cracker of a Christmas and a Great New Year, full of happiness!

Serialization - Sequence Generation

תמונה
Christmas has arrived a week early for us. Generating records in numeric sequence numbers can be a burning requirement in any application but not when you are working with siebel. Just when holidays were approaching and party mood was about take helm, we were asked to generate the payment requests associated with service request in sequence numbers (as third party system required that..no choice had to do it) . The first thought that struck was the usage of * Line Number (Sequence) BC based on the class CSSSequence. However the issue was for each Parent SR first payment notice starts from 1 as payment being child entity and the requirement was that sequence should start from 1000 and should be auto generated for every new record irrespective of Parent SR. Fear of ending new year eve in office can do wonders and suddenly we found that this requirement could be fulfilled using "Serialization" instead of writing a script. This technique is extensively used for generating Case Se

Hiding Custom Controls in Query Mode

"Yesterday it worked, Oops Today it is not working..." This has to be my favourite line since i started my career. I was hit by the same nuke again by my team mate where we had to hide custom controls from the users in Query Mode. Some code was written to control the visibility of the custom buttons but it was failing in some conditions. It is easy to control the above scenario when we have different applets for Edit and Query Mode. We can remove the custom button from the Query Applet and keep only on the Edit applet. However, things are little different in case we are using Edit List Mode. A custom code is viable solution but it is not full proof as there are chances that it may fail. However Siebel comes again to our ally. For lucky developers who are working on SIA tools, there is a user property by which one can hide methods in Query Mode.  Name: FINS Query Mode Disabled Method n Value: Method Name   The only catch here is the applet class should be "CSSFrameListFIN

Query within date range

Date range is one of the very common requirements across project. It eases out lot of tasks for end user, one can easily generate report or export data items within given date range. Recently we were asked to implement similar functionality by inputting From and To date from the end user and resulting in all Service Requests between the given date range. There could be multiple solutions to go about it but one potential one is detailed below. 1 - Create Two calculated fields in SR BC.FromDate and ToDate of type "DTYPE_DATE". Set the calculated value to "Today()". 2 - Expose these two fields in the Query mode of the Applet. In the Edit Mode hide these controls. 3 - Below piece of code is required for setting up the Search expression and clearing the specs on To Date and From Date. var sFromDate = this.GetSearchSpec("FromDate"); var sToDate = this.GetSearchSpec("ToDate"); if(sFromDate != "" && sToDate != "") {  var sFrSu

Session Management WebServices

This post is for one who has been bamboozled by below interview question. Question : "Can we have dynamic users for Created By/Updated By fields during upsert operations instead of SADMIN in siebel inbound webservices using standard authentication mechanism? " Soln:  Yes we can, provided we are running a version 8.0.0.4 or higher. Stateless session management siebel authorization is key here in the inbound services. Below setup is required in order to make this thing work. 1 - SessionAccessService and SiebelUserProfileService - These two webservices should be active and point to correct object manager. They should use sesssion management(i.e WSSOAP = 1) mode. The authentication type for all the methods should be set to None. 2 - Import wsdl and Consume SessionAccessService WS. Make a call to SessionAccess service and obtain the session token for a new Siebel User Session. For this PING method is used. The SessionToken value from the response message represents the unique Sess

O.C.M. revised

תמונה
Winter is approaching in this part of world, so is my hibernation mode. For a while Email templates are keeping me busy and some usage of "CreateRequest" and "SendMessage" methods of Outbound Communications Manager business service has forced me to draw a comparison between the two. It may help you to identify which one to go for sending outbound emails. Below diagram lists out the advantages of both worlds. There were situations where i felt need of passing parameters to email templates just as we pass parameters to DataMaps, DVM's at runtime. I searched for it without any success. Please feel free to comment if you have any clue about passing parameters to email templates apart from field substitutions or more points to add on above comparison list. Happy E-mailing!!

Tools Crash - Edit Web Layout

תמונה
They say software upgrade is nothing but a replacement of old bugs with new bugs. so better be prepared when you are going for machine upgrade, a working code may meet dead end. Recently one of my friend upgraded his machine to Windows 7 with IE 9. To our initial delight siebel was working fine but devil  really lies in details.  While trying to modify existing applet and view web templates siebel started crashing. Whenever "Edit Web Layout" was clicked siebel stopped working. After some search it was found that because of IE 9 that siebel was crashing. The crash was found to be due to mshtml.dll that is related to the version of the Internet Explorer. Morever it was found that Internet Explorer 9 is not listed as a supported IE version in System Requirements and Supported Platforms document for Siebel Version 8.1 (I know this should have been referred prior installation) but thought of tools crashing cause of IE version never crossed mind. After IE 9 uninstall, tools started

Siebel Mobile Connector

“Be different. Think different. Better to be a pirate than to join the navy.” - Steve Jobs, a great Visionary. In his quest of paperless and wireless world, Steve has given lot of things which has changed the way we live, we breathe. He blazed through the ever competitive zone of technology and design in a way no one ever thought of. Perhaps no one ever will. Siebel has also paced up with the changing dynamics providing lot of features enabling customers to create voice & wireless applications with Siebel business content. The Siebel Mobile Connector is a standards-based API that delivers well-formed XML from an optimized Siebel application definition.Third-party applications created with the Siebel Mobile Connector uses standard Web protocols or specific Siebel interfaces such as a Java Data Bean or the COM Data Control to send and retrieve data between users and the Siebel database. Basic siebel mobile connector architecture works as follow- 1 Using the third-party application’s

B.I.P. Report Error Guide

תמונה
We have memory , we have google and we have bookshelf but still errors keep coming to spoil evening. Recently while working with BIP reports i ran across with some issues. I have created a trouble shouting guide housing some of the errors which we got while running BIP report from siebel along with resolution. BIP Reports Troubleshooting Guide I hope this document helps someone who doesn't have access to support web or working in secure domain where access to external world is prohibited. Happy Reporting!!!

Error Workflow Process

The biggest difference between time and space is that time can't be resued. So better reuse the existing one in order to earn some time. Reusability is one the fundamental block of siebel. Be it configuration or scripting, siebel always advocate usage of existing ones. One to enrich this feature is "Error Process Name" property at the workflow level. This property is used to specify the workflow process which should be executed whenever error occurs in the base workflow. One can create a generic workflow for error logging mechanism and can specify that workflow in the "Error Process Name" property. This workflow can act as universal exception handler for logging error across the multiple workflows. One of the interesting features here is the passing process properties from the base workflow to the error workflow. It should be kept in mind in order to pass user defined process properties to the error workflow, we must redefine those process properties in the erro

Read Only Field N: Applet Version

Implementing C.R.U.D. can be cruel... Read only syndrome was bugging me for quite a while as we had a requirement of making multiple columns to be readonly on certain applets depending on multiple conditions. First thought that burst into mind was using dynamic toggles but conditions were complex and number of applets to address was huge. The worst part was underneath field should remain editable for update by interface workflows. Once again situation demanded to dive into mysterious siebel to have a simpler solution and boy, siebel seldom disappoints. I was able to achieve this by using Applet Level user property "Read Only Field N". This user property allows to make field read only on UI, by allowing field updates from workflow or scripting. The syntax goes like Name: Read Only Field 1 Value: 'FieldName', 'ConditionFieldName' where FieldName = Name of the field which we want to be readonly ConditionFieldName = Name of the field which specifies condition to b

The Lost Functions

"Wide acceptance of an idea is not proof of its validity" - Unknown Despite No-to-script being the motto of every project its usage is inevitable. Sometimes a two line code is easy to implement rather complex configuration. There are lots of methods and events exposed by siebel for developer's ease. In fix-run situations it is tough to remember all the methods/events available. Bookshelf definitely possess the entire wealth but here i will post a cheat sheet which has juiced up all the methods and events exposed by the siebel except special ones. Siebel eScript cheat Sheet This sheet can help someone to decide for which event to go who rarely use scripting or can help to better prepare for an interview. Happy Scripting!! PS: If you are not able to d/l this file let me know preferrable email id. you will have personalized copy of this.

Tips 'n Tricks for Oracle CRM On Demand

תמונה
An excellent free book providing tips and tricks fro improving your Oracle CRM On Demand application. - by Mathieu Emanuelli and Joann Alejandro Bravo Cheers!

Email Manager

תמונה
Policy programs are like cheat codes. If a requirement permit asynchronous nature then policy program is gold. The key feature of policy program is it doesn't need compilation after changes and can be modified run time. Anybody good at SQL can toy around with the powers of policy program. Recently we were asked to implement email functionality for SR status update changes. As obesessed with PP, i thought of writing new policies for it instead of modiying existing workflows. Things were smooth, life was cool and eveything was deployed successfully. However to my horror emails were not getting triggered. Policy conditions were configured correctly as record was getting created in S_ESCL_REQ table on violation. Situation worsened when email was going via F9 functionality. After some debugging it was observed that Email Manager Task was not running because of which emails were not flowing out of the system. Email Manager component in conjuction with Communications Outbound Manager is t

Generating Data to UI mappings in Siebel just got easier!

תמונה
This is one of those tasks which is fairly simple to do. However, can be very time consuming considering you have to generate a mapping for an entire/multiple repositories. We've all have had to do this at some point, not enjoying it one bit! Well, here is a code that will save you some time and your sanity :) . The below code generates a screen to Applet, and an Applet to BC mapping which can be then exported to excel. Screen to Applet -  select scr.name "Screen Name"       ,nvl(nvl(ptabi.tab_text, scri.viewbar_text), scr.viewbar_text) "Screen"       ,scrv.sequence "View Seq"       ,vw.name "View Name"       ,vwi.title "View"       ,vw.busobj_name "Business Object"       ,vwti.item_num "Item Num"       ,ap.name "Applet Name"       ,api.title "Applet"       ,ap.buscomp_name "Business Component" from   siebel.s_repository rep        inner join siebel.s_screen scr on scr.repository_id

Dynamically Skills Refresh in AM

It is a real divine feeling to watch how Assignment Manager works. One of the joys of AM is system takes care of assigning everything you have created. But as they say, Devi-lies-in-details, issue starts when you dig deep. Recently we were asked to implement AM for assignment of Service Request only to Logged in Employees. System should not assign SR to any employee which is not available in system. First look of this problem seems this to be a cake walk. We created Employee availability as skill which was updated every time when he logs in our logs out of the system. But however on actual implementation we realized that skills of employees were not getting refreshed dynamically. It required "Release" button to be pressed every time in order to flush the employee skills and to update rulecache.dat file. Once again Support Web came to rescue and job was saved. When the employees to assign are not Dynamic Candidates, AM during assignment looks into the cache for the candidate e

How to update Child BC records on update of Parent BC record?

Siebel provides various ways of achieving the same solution, but you need to do the analysis beforehand to pick the right one. Recently I got one basic requirement that: As soon as the Opportunity Sales Stage gets "Approved", all the Activities (Child of Opportunity) status should automatically set to "Approved". Any Siebel Geek can offer multiple ways to achieve this solution: 1. Write a small

BIP Reports as Siebel Attachments

תמונה
Continuing in the vein of BIP Reporting series, lets discuss another reporting requirement. "Generate the SLA for the Service Request based on the associated Agreement and add the generated SLA as attachment to the Service Request." The closest solution which i was able to achieve was based on the support web solution "Siebel BI Publisher 8 Reports Business Service [ID 823360.1]". The key idea here is to generate BIP report and associate that report as attachment to the Service Request. Below workflow was created in order to accomplish the desired task. Lets discuss each step in detail. 1 - Report Output This subprocess step invokes the "BIP Create Report Output" workflow process. This workflow creates a new record in the "Report Output BC" buscomp to be used in next step. Input Arguments SubProcess Input: Report Name Type: Literal Value: SR SLA Report The input is name of BIP Report to be executed. Output Arguments PropertyName: ReportId Type:

BI Publisher Integration

תמונה
Welcome to the world of BI Publisher. BIP reports can be soother for those who are bitten by actuate. Architecture wise both works same but the key ease is in the development of report template for BIP. A typical comparison between Actuate and BIP is depicted below. With Siebel 8.1.x.x release and BIP Enterprise server 10.1.3.4, we have tightly coupled integration with BIP reports just like actuate. However users on earlier versions can still avail benefits of BIP reports. Reports can be written in BI Publisher using web services or SQL to retrieve data from the siebel application. The reports can be executed from siebel application on button click with flexibility of passing parameters at run time. The attached document from oracle unearth the secrets of executing reports. Happy Reporting!!

Authentication for Siebel Reports

The best part from oracle is they keep coming with patches and tough part is we need to adhere them. In siebel 8.0 we were not having built in integration with BIP reports so one has to resort to either web service call or SQL strategy for executing BIP reports. With advancement of 8.1.x we have tightly coupled integration with BIP reports. With integration comes authentication. Typically there are several options to choose for configuring security and authentication for Siebel Reports. When using WebServices or SQL based reports generally "Web Single Sign-On Authentication" mechanism is used as it requires Users logging into BI Publisher via its administrative interface. However this authentication fails when one is using integration based approach which comes with Siebel 8.1. Since the release of Siebel 8.1.1.1 and BI Publisher 10.1.3.4.1 a new security model is introduced in BI Publisher, Siebel Security. When using the Siebel Security model, BI Publisher relies on Siebel

Different Query Mode in Edit List

I crunched one. This post is an addendum to one of my previous "Food for Thought" post where the main challenge was to display different columns in Query Mode when applet is displayed in Edit List Mode. with some configuration-Scripting-Luck i am able to achieve this scenario. The key ingredient here is the usage of Dynamic Toggle. Following necessary steps are required to achieve desired solution. 1 - Create a clone of the list applet which should be displayed in Query Mode. Remove unnecessary Columns which are not required to be displayed while querying. Consider two applets are: a) SR List Applet b) SR Query List Applet 2 - Make the "SR Query List Applet" as the default applet to be displayed in the view. 3 - Create a calculated field in the Service Request BC with following values: Name: QueryCalc Value: IIF(GetProfileAttr('QueryMe') = 'Y','Y','N') 4 - Now create a dynamic toggle in the "SR Query List Applet". Set the &

Child Field Read Only depending on Parent Field Value

Sometimes it happens that you get a very simple requirement to implement and in a single glance you say, "Well, this is very easy to implement" and when you actually see the result on the UI after the configuration you have done, you start scratching your head to find out the reason for not getting the result as per the expectation.Today, I am going to discuss a very simple requirement you might

SecUsernameFieldSubstitution - User Property

תמונה
Issues are inevitable as sugar and cholesterol. In my recent heist in configuring recipient groups i was dumbstruck with some untold user property. We wanted to add Person as recipient group for Service Request. As per siebel support we added desired values in the "COMM_RECIP_SRC" LOV table. Email started to flowing using this recepient group. But the interesting part is "Person" BC is not defined with the Recipient* user properties instead of that only one user property is defined as Name - SecUsernameFieldSubstitution: EMail Addr Value - Email Address Unknown of its usage thought of throwing this to siebel forum. A little insight on this user property will be of great help. Happy Cracking!!

Popup visibility - Division Based

It is very critical that one should have appropriate access to information available. Thus siebel has given comprehensive access control mechanism which helps in restricting data visibility. We can have visibility filter at multiple levels including View, Business Component, Picklists, Drilldowns, Links . However the modes which we can set is restricted to following values: All Personal Sales Rep Manager Organization Sub Organization Group Catalog Recently i was asked to have a visibility control based on the Division during the assignment of Service Request. One should see employees related to his division only when he opens employee pick applet. We opted for Personalization to implement this as it gives a flexibility to change the filter dynamically without any srf change. Steps required are: 1 - Set the Popup Visibility Type to "All" for employee buscomp. (Please check before doing this as this will impact all Picklists based on Employee BC) 2 - Create a Personalization