Siebel Object Interfaces Reference > Interfaces Reference > Business Component Events >

BusComp_PreSetFieldValue Event


The PreSetFieldValue event is called after a value is changed in the user interface (when the user attempts to leave the field) or through a call to SetFieldValue, but before any field-level validation is performed. This event is intended to allow the developer to introduce complex validation before any repository validation is applied.

Syntax

BusComp_PreSetFieldValue(FieldName, FieldValue)

Argument
Description

FieldName

String containing the name of the changed field

FieldValue

String containing the changed value

Returns

ContinueOperation or CancelOperation

Usage

The PreSetFieldValue event is called each time a field is to be changed or populated for a given business component.

When using a picklist to populate multiple fields, PreSetFieldValue is fired for each field that is populated. For example, you have an applet that you use to populate Last Name, First Name, and Contact ID. Therefore, PreSetFieldValue fires three times, once for each field.

CancelOperation stops the execution of the underlying Siebel code associated with the event. However, if there is code in the same script following CancelOperation, that code runs regardless of the CancelOperation. In the preceding example, if your script returns CancelOperation for a field, that field is not populated. However, PreSetFieldValue still fires for the other two fields populated by the picklist.

NOTE:  To prevent infinite recursions, if the PreSetFieldValue event is running it does not run again for the same business component instance, even if used on a different field in the business component.

Used With

Browser Script, Server Script

Example

This Siebel VB example uses the PreSetFieldValue event to check if a quote discount is greater than 20 percent, and to take appropriate action if it is. For other examples of BusComp_PreSetFieldValue, read LoginId Method, and ExecuteQuery Method.

Function BusComp_PreSetFieldValue (FieldName As String,
               FieldValue As String) As Integer
'Routine to check if a quote discount>20%
'if it is, notify user and cancel operation
Dim value as Integer
Dim msgtext as String
   If FieldName = "Discount" then
      value = Val(FieldValue)
      If value > 20 then
          msgtext = "Discounts greater than 20% must be approved"
         RaiseError msgtext
         BusComp_PreSetFieldValue = CancelOperation
      Else
         BusComp_PreSetFieldValue = ContinueOperation
       End if
End If
End Function

The following is the equivalent example in Siebel eScript:

function BusComp_PreSetFieldValue (FieldName, FieldValue)
{
   var msgtext = "Discounts greater than 20% must be approved";
   if (FieldName == "Discount")
   {
      if (FieldValue > 20)
      {
         TheApplication().RaiseErrorText(msgtext);
      }
      else
      {
         return (ContinueOperation);
      }
   }
   else
   {
      return (ContinueOperation);
   }
}

Siebel Object Interfaces Reference Copyright © 2008, Oracle. All rights reserved.