רשומות

מציג פוסטים מתאריך יולי, 2010

Defined()

Most of us might be aware of this function but i came it across quite recently. There can be multiple scenarios in scripting where we need to check whether any variable is defined in the code or not. Defined() method does the trick here. This can come handy before you nullify any object. More of this function details are available on support web. Basic Syntax is defined(AnyVariable) Output: returns True/False based on whether Object/variable is defined or not. Example Usage: if(defined(sAccountBO) sAccountBO = null;

Mapped List Columns/Controls

As the chineese saying go "Ink is better than the best memory", documentation is key to success for any project. UIS,LLD, HLD are generally part of Document deliverables. We will not discuss these specs here rather this blog will focus more on getting extract from siebel tools for future reference. This tip may be useful for LLD spec. For most of the objects siebel gives direct export from tools. But consider a scenario when you want export of columns/controls which are mapped to applets. Direct export from list Columns or controls will give you all columns available in the applet and not the mapped one. An export from applet Web Template item will only give columns which are mapped but not the other desired properties like pickapplet or mvg applet. Following SQL will help to extract list columns which are mapped to list applet in edit list mode. Anybody can change the name of Applet in the query for which columns need to be extracted. select D.NAME, D.AVAILABLE_FLG, D.DISPLA...

Implicit Printing

There are certain scenarios when user may request for printing of reports without opening the report when the report content is quite huge on click of button.I was not able to find any OOB business service which prints BIP report on client machine. There is business service for actuate report that does printing task but that can't be used for BIP reports. One of the alternate way to print BIP reports without opening them is to fetch content of report in the code using shell and fire verbex print. Please find below the code snippet to achieve this. This can be used for silent printing for any document. function WebApplet_PreInvokeMethod (MethodName) { if(MethodName == "Printer") { var TargetFolder = "D:\Program Files\Siebel8\Files "; //This is the folder name where report document is kept var oShell = COMCreateObject("Shell.Application"); //Creating Shell var objFolder = oShell.Namespace(TargetFolder); var objItem = objFolder.ParseName("A...

Building Link as a Join??

The very first expression that any Siebelized person would have after reading the title of this post would be, "hey, what is that?? Join and Link are two different objects in Siebel. Join used for building 1-1 and M-1 relationship and link is being used for building 1-M and M-M relationship. So how come you can build a link via join??".......I knowwww and I am there with you what you just thought

HasViewResponsibility

Not more than often it is required to find whether logged in user has access to any particular view. Siebel gives us a vanilla business service which returns "T" if user has access to any particular view or returns "F" it doesn't have access to that view. Details of business service are : Business Service Name: Mobile Device Method: HasViewResponsibility Input Arg: PersonId Input Arg: View Output Arg: HasViewResponsibility PersonId is the rowid of the user under question. View is the name of the view to be checked. T or F is returned as output in HasViewResponsibility argument.

System Preferences

Configurable system is need of any project and for that "System Preferences" can be real gold diggers. System Preferences if used properly could be as effective as LOV's giving, sometimes more,flexibility then LOV's. By its own Siebel gives lot of system preferences values which helps in governing the siebel behavior. LOV's are first choice when one think of having a dynamic system where values can be changed on runtime without server restart or doing an extra srf push. But LOV's do have there own length limitations. You can't have display value more than 30 characters. Here we will discuss some the commonly used OOB system preferences available and how we can best use System Preferences for our requirements. Suppress Scripting Error Code : With due respect to configuration lovers, Scripting is something which can't be avoided in any project. As a result Error handling becomes an integral part of any code. This system preference could be used to suppre...

Siebel Encryption

Encryption is one term which gives you goosebump no matter what your mood is. There are many scenarios which involves data movement across multiple system using web services, http adapters or queues. Security remains a concern whichever option you go for and if data is related to real time transaction number or payment number then it becomes extremely important that data is encrypted while travelling across the system. There was one of the requirements which involved encrypted and unique number generation so that new number couldn’t be guessed by looking at existing values. I tried to find any OOB business service that siebel might provide in order to encrypt data while sending to external system but unfortunately I was not able to found any OOB user property or any business service which could do trick for me. However I found Some Field level user Properties which does encyption of field while storing in database and while rendering that field is decrypted back. Encrypt Key Field an...

Purging Vs Deleting Workflow Process Instances

This is one of the important information you might be interested in, if you frequently debug a Workflow Process at run-time by increasing the Monitoring Level under "Administration - Business Process -> Workflow Deployment" view.Whenever you increased the Monitoring Level to "4-Debug", system starts capturing the WF steps details along with the each Process Property at each step, to give a better

SWEPersonalizationGotoview

תמונה
Many of us have used “SWEPersonalizationGotoview” function during our projects. In my current project I came across an interesting requirement for the application home page/landing page. The requirement was to display count of open activities for the logged in user on application home page and when user clicks on that count he should be navigated to the My activities view and only open activities should be displayed in that. But when user directly clicks on My activities view he should see all records. There could be multiple ways to achieve this but idea which we implemented is to use “GetNumBCRows” to count number of records and “SWEPersonalizationGotoview” function in the personalization rule to go to destination view. The challenge here was to restrict the records while navigating from home page to My Activities view on click of count. The catch here is to set some profile attribute on click and based on its value to apply filter on “My Activities” View. After some analysis I found...

How to create Inbound Web Service in Siebel?

In the last post, we talked about creating an Outbound Web Service in Siebel where we receives the WSDL file from other system and consume it into Siebel Tools to generate necessary artifacts. Today I found a very nice tutorial for creating an Inbound Web Service in Siebel. In this post you will find how to publish the WSDL from Siebel and let the outside world do data manipulation inside

Create an HTML email in Oracle CRM On Demand

תמונה
12" name="Generator"> Hey Folks, For any business, It's very important to keep your customers happy at all times.You need to constantly keep them updated on how their service requests are being processes. Below is one such example I recently came across a requirement in which my client wanted to have some functionality in which, when a new SR is created, a Service Representative should be able to generate a neatly formatted email with all the required information and send it across to a Customer, so they know that the SR is being looked into, something like a SR Acknowledgment. Here's what I did for them! Solution: Step 1: Build the Report Create a Narrative Report that will contain all the required fields that is required to send out an email. In Step 2 on the reports wizard add only a Narrative View Save the report Step 2: Create a Weblink and add to the Layout Create a Weblink field in the Service Request Object. Ed...