Toggling with the Search Specification in Applet
I came across a blog posted by Mr. Mahendran on Search Specification with a critical scenario…
Please read the blog here… LINK
want to show a * on a field in Siebel which is not marked as REQUIRED
Picklist – Long List Property
A number of pick lists that are not based on the List of Values do not have the Long List property defined. Where the property is set to FALSE, Siebel will attempt to position the cursor on the matching row in the pick applet. In the case of Standard Interactive applications, a query will be issued against the picklist BC if the record is editable. This query is performed when the record is displayed.
Consequence: Where the list is long, Siebel will search through the result set to position the cursor resulting in potential performance problems. This is also true where the picklist field does not possess a value.
Recommendation: Set the Long List property of the picklists to TRUE if they will return a large result set (> 30). If this is done, the picklist can no longer be a static picklist and needs to be exposed using a pick applet. Generally only picklists based on LOVs should have the Long List property set to FALSE.
Giving Access to another User for Single Object Locking
Problem Description: When Siebel ships its products, the user who has the access to modify the “Allow Object Locking” flag is hard coded in the Business Component and hence the User SADMIN has access to modify this flag. However when we test on Siebel Tools pointing to a Db2 390 where the primary responsibility is with the user QADMIN, this feature is not available or exposed to this user and hence we can’t carry out the operation of modifying the “Allow Object Locking” (AOL) Flag.
Solution: With the help of the following configuration, we can provide access to any user other than the default SADMIN. E.g., please follow the below mentioned steps to give access to QADMIN.
Navigate to Business Component “Repository Project”. Expand it to expose its fields. Query for “OL RO” field. Set the Calculated value for this field to
Then copy the Siebel.srf file in the tools\Objects\enu folder and compile the changes against the copied file.
Launch Tools connected to the compiled srf. The user should be able to modify the AOL flag now by logging to the Siebel Tools as QADMIN.
Make Field Read-Only based on View
Step1) Create a calculated field which will be used in BusComp UserProperty (Field Read Only Field: FieldName
Name: ReadOnlyFlag
Calculated: TRUE
Value: GetProfileAttr(“ReadOnly”)
Step 2) Create Field Read Only Field User Property in the BusComp User Proeprty
Name: Field Read Only Field:<FieldName>
Value:ReadOnlyFlag
Step3) Write a script at Application_PreNavigate event where the attribute vaue is set
TheApplication().SetProfileAttr(“ReadOnly”,”N”);
if(ViewName == “<Name of the view for which for which the field has to be made read only>”)
{
TheApplication().SetProfileAttr(“ReadOnly”,”Y”);
}
return(ContinueOperation)
Read GMT/UTC Time
A simple way to read the GMT/UTC server time is to use a calculated field to read the time as follows:
On the Business Component (BC), create a calculated field – ‘Current Time’ with a calculated Value of ‘Timestamp()’. Set the Type to DTYPE_DATETIME.
The script would read the field like this:
var sDateTime = this.GetFieldValue(‘Current Time’);
For performance reasons, users may want to copy a BC just for this purpose, since the field is recalculated every time a row is read.
Exposing more List Columns in List Applets
Scenario: Requirement to expose more List Columns in the List applets.
Solution: For exposing more List columns in List applet we have to change the “count” property in the “For” loop of the CCListBody.swt and CCListHeader.swt files.
We can add any number of List columns in List applet. But for performance and usability reasons, a maximum of 40 list columns should bound to a list applet web template.
Overriding Database Column size for Text fields
Scenario: In certain cases there will be a difference in column sizes between Siebel Database and External Systems which ends up in some confusion in Integration part.
Solution: The field user property, “Text Length Override” uses the field’s Text Length property to define the maximum field length instead of the database column size. The property should have same value as the Text length property of the field in the BC.Use only for Text type fields.
Immediate Post Changes
Calculated fields are not automatically refreshed when a related field value changes; they are refreshed only after committing the record. To have them refresh immediately after the fields have been changed the Immediate Post Changes property of the field needs to be set to TRUE.
Property Description
A TRUE or FALSE value.
Field data is posted to the server when the focus moves off of the field and then the data is refreshed. Setting this property to TRUE causes an immediate roundtrip to the server.
When set to True the browser script PreSetFieldValue event is bypassed.
Typically used for constrained drop-down lists and calculated fields.
Default Sensitivity and CaseInsensitive
A TRUE or FALSE value.
For fields of type DTYPE_ID
Queries are case-sensitive if
Use Default Sensitivity is TRUE and
CaseInsensitive setting in the CFG file is FALSE.
Queries are case-insensitive if
Use Default Sensitivity is TRUE and
CaseInsensitive setting is TRUE.
For Id fields not exposed in the business component (such as the ID field in Opportunity), the User Default Security property cannot be set.