Showing posts from September, 2013

Avoid error in PRM ANI Utility Service for null value

“PRM ANI Utility Service” BS - Extract Hierarchy Structure
There are a lot of instances while working on Siebel integration we use “PRM ANI Utility Service” BS with “GetProperty” method. The issue with this is when you don’t get a proper hierarchy as expected from the previous step; your Get Property method throws an error message.
Usage: When we have a hierarchy structure and want to extract a property value from that without script.
Required Properties:

Input Arguments: Hierarchy Path - the hierarchical path to reach the desired property (for e.g.: SiebelMessage.Service Request) Property Name - the Name of the property (for e.g.: SR Number) SiebelMessage - Hierarchical structure from where we are going to extract the property value
Output Arguments: Property Value - The Value of the property.
Issue: When we are not getting the hierarchy in the desired format, which means the hierarchy path is not retrieved correctly as specified in the Hierarchy Path input argument. It throws an error stating  “…

Random Number Generation-Invoke a Service in DataMap

Need: To generate a random value to insert as unique identifier.
Approach1:Data getting in during inbound integration from external system cannot be uniquely identified.
One of the options is 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", "XYZ='12'", "RowId")
This might result in error "Access denied to invoke business service 'SIS OM PC Service' for search specification 'InvokeServiceMethod("SIS OM PC Service", "Get Next RowId", "XYZ='12'" ,"RowId")'" . This error is related to security issue. In order to use any business service with InvokeMethod we need to define that business service at following places:
1 - Mobile Web client/Dedicated client: In CFG we need to def…

Refresh Siebel Applet not Buscomp - "RefreshBusComp" Alternative

User wants to update the data being displayed on UI after performing some validation and updates via a script on the underlying BC.

A vanilla Business Service “FINS Teller UI Navigation” can be used to refresh an Applet after updating the underlying data, without breaking the current query.
      One of the most commonly used approach is to invoke the "RefreshRecord" method on the Business Component. However, this does not promise to work on all Business Components.     Another alternative is to call the BS method "RefreshCurrentApplet" on the BS "FINS Teller UI Navigation".
TheApplication().GetService("FINS Teller UI Navigation").InvokeMethod ("RefreshCurrentApplet", TheApplication(). NewPropertySet(), TheApplication().NewPropertySet());

BusComp_WriteRecord() {
Code Goes Here //TheApplication().InvokeMethod(“RefreshBusComp”);    --Commented
TheApplication().GetService("FINS Teller UI Navigation").InvokeMetho…

BCHasRows - Validation with no scripts

Need:  To do validation without using siebel scripts. 

Solutions:BCHasRows : Validation Without Scripting Scenario:           To check/search in child Bus comp field values for some validation  without scripting.
 For Example:           When the Specified Account has any "Active" child Activity, the Activity flag should be true
Implementation without scripting:           Create a calculated field

Name: Check Activity Calculated = YCalc Expression: BCHasRows("Account", "Action", '[Account Id] ="' + [Id] +'" AND  [Type] = "Active"',"All")
        This returns Y, if any child activity found.

Create a User property “On Field Update Set” to set the Activity Flag ; Value : “Check Activity”, “Activity Flag”           

Syntax:  BCHasRows ( BO , BC , search_expr, visibility)

Zero Down time SRF deployment

Need :  To replace the srf without down time.

Solution:We see it takes around 10-15 minutes for a srf replacement with a new compiled one(Incremental specially). Thought of sharing a process wherein we can reduce the server downtime to ZERO. Usually when you do an incremental compile or want to change the srf, most appropriate when several servers need this change, you have to every time stop the services and get it back after the compile. Here is an approach where in you can change the srf without getting server down.

Follow these steps: 1. Copy the new srf in the <Siebel server>/ object/<language> directory.
2. Navigate to Site Map> Server Configuration > Enterprises > Component Definitions
3. In the Component Definitions list applet (top applet), select the Object Manager you want to reconfigure, in our case Call Center Object Manager (ENU)
4.In the Menu button click Start Reconfiguration in the Component Definitions list applet. The Object Manager definition State f…

Generate Mid-Level Release

Need:         Export all the objects files for a specific release or from a specific date.

Solution:      This is a very useful functionality that can be executed from siebel tools to export all the objects those are modified from a certain date.
We have the option to export individual object sifs or one sif for all objects. that is mostly based on our requirement


Set the desired date, objects modified post this date are all exported as a part of this operation.

 Click on "Generate Mid - level Release

The window opens which will prompt you to name the export with a label and once label is named you will asked to do "Generate List". Once after this is done cross check the list of objects for the objects you have modified. Also take no extra objects are found, if so you might need to specify a correct date.

Now after checking is complete "Export" the objects to the ADM folder within which a new folder is created with the name of the label.This could be helpful t…

Exposing Save button in Siebel HI user interface

Requirement:  Expose Save Button in Siebel UI in high interactivity.

Siebel Application running in High Interactivity mode doesn't need a explicit save button as they have the implicit save functionality. Though there is option to save from the menu, we had requirement to make it easy for user to do this.
So add the button to the UI and then compile to see if the button appears. If it doesnt go the application cfg file to add an additional parameter


This parameter is located in the InfraUIFramework section of the configuration file. 
Note that the Save buttons use the WriteRecord method.

This is also a parameter in the component parameter if you configure in thin client.