רשומות

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

Session TimeOut

An idle mind is Devil's workshop...an orphaned session is inefficient resource allocation... "SessionTimeout" is one of the parameters in the eapps.cfg that is more to do with competent usage rather performance. This specifies the time in seconds when the session times out in case of inactivity. The larger the value the longer it takes for the orphaned session to timeout. Orphaned sessions are undesirable beacuse they occupy AOM task slots preventing other users to use that slot. There are instances when session never times out despite setting this parameter. Following parameters should be kept in mind before setting SessionTimeout parameter. 1 - "Application Message Bar Update Interval" This parameter is used in Message Broadcasting feature. The value of this parameter should be set to greater than the SessionTimeout parameter. 2 - "Alarm Manager Load Frequency" The "Alarm Manager Load Frequency" system preference determines how frequently t

"IS UPDATED" in Workflow Policy

תמונה
Statuary Warning: This is not for the old horses. My romantics with siebel goes on and so Siebel mysteries. Newbies better be careful while using "IS UPDATED" condition in the workflow policies. It can lead to undesirable/wrong results. Lets consider below problem statement. "Any service request which is not worked within 2 hours of assignment, i.e. Assigned status , should be escalated." The obvious solution which comes in mind is to configure workflow policy with duration and Owner Id update condition. Unfortunately it didn't work for me. The issue when using "IS UPDATED" criteria in combination with Workflow duration is that criteria is considered only at the time of the first update by the user. Until the configured policy duration has completed, all subsequent updates to the record are discarded by Workflow Policy Manager. As a result at any point of time only one record is available in "S_ESCL_STATE" table for this policy. At the end

DVM on drilldown

Recently we encountered a scenario which involved certain validations on drilldown. The go to solution was to invoke DVM on drilldown method. Lets consider a basic example of SR list applet where we need to perform certain validations when user clicks on SR-Number. Following steps are required to achieve desirable. 1 - Create a DVM rule set with name "Test Orchestration". Add desired rules as per validation requirement. 2 - Create User Property on the SR business component with following values: Name: Named Method 1 Value:"SRDrill", "INVOKESVC", "Service Request", "Data Validation Manager", "Validate", "'Rule Set Name'", "'Test Orchestration'", "'Enable Log'", "'Y'", "'Object Id'", "[Id]" 3 - Navigate to SR list applet and edit server side script. Add following code in PreInvokeMethod event : if (MethodName == "Drilldown&q

Launching a Workflow Process from a Business Component

One way to replace business component scripting with more declarative configuration is by using Siebel Workflow. A workflow process can perform many of the same operations that you can configure with eScript. If you want to execute a workflow when a BusComp field is updated, you can invoke it from scripting in the SetFieldValue event of the business component. There is, however, the option of using business component user properties for a completely declarative solution. An example of using the applet version of the Named Method n user property to invoke a workflow process can be found in Siebel Bookshelf . The same user property is available for business components. An example of a named method declaration follows: User Property Name: Named Method 1 User Property Value: "MyInvokeWFMehod", "INVOKESVC", "Employee", "Workflow Process Manager", "RunProcess", "'ProcessName'", "'The Do Something Cool Workflo

ORA-03135: connection lost contact

November started with blues. I recently encountered very strange issue with the custom workflow components. I am not underrating the term strange here but i am in habit of landing into these troubles frequently. My workflows were failing on server intermittently with error log suggesting ObjMgrLog Error 1 000000044ccc6f90:0 2010-10-31 11:27:23 (oracon.cpp (3255)) SBL-DBC-00108: An error has occurred preparing a Sql statement. SQLParseAndExecute Execute 5 000000044ccc6f90:0 2010-10-31 11:27:23 ORA-03135: connection lost contact I was not sure what was causing this failure as there was no issue in the workflow as it was working fine in other environment. The more concerning factor was that there was no specific pattern for the failure of this workflow. But the best part with siebel is regardless of issue your luck never runs out. I found similar post on the siebel support[ID 762888.1] and resolution was to set the below parameter on the custom workflow process manager componen

Skype - Siebel Custom Integration

תמונה
Want to call one of your contacts/prospects in Siebel without a lot of manual effort? now you can... Here are a few simple steps of how you could integrate Skype with your siebel application. Thank you Bernard for sharing this ! Configuration Steps - (for this example I am going to use the contacts applet) Step 1: Create a custom Business service called 'OS Skype Integration' and assign it to a locked project. place the below code in the PreCanInvokeMethod event of the Business Service function Service_PreCanInvokeMethod (MethodName, &CanInvoke) {     if(MethodName == "GetField")     {         CanInvoke="TRUE";         return(CancelOperation);     }     else if(MethodName == "TransformToSkype")     {         CanInvoke="TRUE";         return(CancelOperation);     }     else     {         return(ContinueOperation);     } } place the below code in the PreInvokeMethod event of the Business Service function Service_PreInvokeMethod (Meth

DVM - Length Restriction

Things can be real stinging when something works perfectly on your local and crashes on server. Recently i dated an error of database nature, which i always dread. "Error retrieving next record from the database (SBL-DBC-00104)" was constantly coming on server when we did query on our applet. It was working perfectly fine on my local machine. Server logs were not of much help as it constituted same error. Things are not always what we see.After some hunting i discovered that issue was because of "Text Length Override" user property which was recently added. We wanted to restrict user with certain character limit in description field but there were existing records in that table where count of characters was greater than the limit which we gave in the user property for Description. So eventually the option of using this user property was ruled out as this Table was common across mulitple BusComps. Once again DVM came to the rescue. We created rule set with expression

Data Validation Manager - Count

Siebel always give multiple ways to achieve desired solution. Recently we got a requirement which could be accomplished using different methods. We approached solution using "Data Validation Manager". Problem Statement : User should not be able to Approve request if there is any activity associated in Open State. Soln : A little configuration and DVM rule was good enough to run business. a) Create a MVL in SR bc using with following Values Name: Open Activity Destination BC: Action Destination Link: Service Request/Action Type Field: Status Type Value: Open Compile BC. b) Navigate to Application - Data Validation. Create a new rule set based on the BO Service Request. Go to Rules Tab. Create a new rule with following values. Sequence: 1 Name: Open Check Expression: Count("Open Activity") = 0 Business Component: Service Request Apply To: Current Record Return Code: The key here is the name of the MVL."Count" function is directly used in the evaluation with

UMF - Reloaded

תמונה
Welcome back to the next (!last) post in UMF series. In this we will discuss how we can capture responses and perform actions from the popup applet. It basically involves two steps: 1 - Creation of business service with different methods which needs to be invoked on selecting responses from message applet.Create a new business service "ResponseService". Add three Methods to this BS: AddInfo AssignRequest OpReq function Service_PreInvokeMethod (MethodName, Inputs, Outputs) { switch(MethodName) { case "AssignRequest": fnAssignReassign(Inputs, Outputs); return(CancelOperation); case "AddInfo": fnAddInfo(Inputs, Outputs); return(CancelOperation); case "OpReq": fnOpReq(Inputs, Outputs); return(CancelOperation); } return(ContinueOperation); } The best part is entire payload of the message is passed to the response thus allowing us to use them in response functions. 2 - Now its time to map the business service and met

Unified Messaging Service Framework: Wealth of Messages

תמונה
Many times we have resorted to browser scripts for displaying message and based on the input given have decided steps to follow but with the introduction of UMS the dependency on the browser script can be avoided. We can do wonders with the UMS framework which can really help in orchestration of system. UMS is highly used in Order Management however Siebel is kind enough to allow us to use this for any other standard BO. However we need certain level of customization and scripting to achieve this. The main advantage of this framework is to invoke popup applets from workflow. I was not sure whether it was possible or not but as they say absence of evidence is not evidence of absence. A more than little help from support web and universal buddy Google made it. The details of Unified Messaging Service is available in OrderManagement guide. Here we will try to construct and invoke message from Service Request List Applet. It will display snapshot of Service Request which will help SR agent

Generating unique numbers in DataMap

Sometimes data coming in inbound integration from external system cannot be uniquely identified.Similar scenario struck me and was forced to generate unique number at siebel side. One of the option was to parse incoming XML and add unique identifier using Scripting or XSL. Another option was to use "SIS OM PC Service" business service in datamaps and the generated output row_id could be used as user key during the insertion. In the field map following expression is used: InvokeServiceMethod("SIS OM PC Service", "Get Next RowId","Test='123'" ,"RowId") However the enigma was not ended here. Further twist was error "Access denied to invoke business service 'SIS OM PC Service' for search specification 'InvokeServiceMethod("SIS OM PC Service", "Get Next RowId","Test='123'" ,"RowId")'" . After some hunting on the support web i realised this security issue. In or

Launching iHelp with eScript

Hey Folks, I had a requirement with one of my clients to have a button on a Form Applet that opens the iHelp . "My Oracle Support" has a few SR's that are related, and I had tried various things including trapping the method calls that are triggered when clicking on the iHelp button on the Toolbar, then repeating them on my custom button but with no luck. Oracle support seems to confirm you can't Launch iHelp with Script in Siebel 7.7, but doesn't mention Siebel 8.1 (which probably means you can't do it!) This however is possible through script. You could use the below code on the button to toggle the iHelp from a custom button. Code: function WebApplet_PreInvokeMethod (MethodName) {     if(MethodName == "LaunchiHelp")     {         var oBS = TheApplication().GetService("Task Assistant UI Service");         var psInputs = TheApplication().NewPropertySet();         var psOutputs = TheApplication().NewPropertySet();         oBS .Invoke

FINS Data Transfer Utilities

תמונה
The best thing while working on siebel is you are never short of options. Recently we had requirement of updating a Service request from contact. Finally we did that using "EAI Siebel Adapter" business service. However during that time i came across another business service "FINS Data Transfer Utilities" popularly known as DTU business service. As i was not having prior knowledge of it going by the rule of not learning swimming lessons while drowning i decided not to go for it. Lately i have tried to explore this service and trust me it can do wonders. Here is a sample example update of Service Request from contact. We need to follow below steps in order to understand strength of this business service. 1 - Navigate to Site Map. Go to Administration - Application -> Data Map Administration tab. Create a new Record with following options: Name: Service Request Test Source Business Object: Contact Destination Business Object: Service Request Here the source business