Learn SIEBEL-SCRIPTING with Real Code Examples
Updated Nov 27, 2025
Code Sample Descriptions
1
eScript Business Component Example
function Service_PreInvokeMethod (MethodName, Inputs, Outputs) {
var bc = TheApplication().GetBusObject("Contact").GetBusComp("Contact");
bc.ActivateField("First Name");
if(MethodName == "UpdateFirstName") {
bc.SetFieldValue("First Name", "John");
bc.WriteRecord();
}
return (ContinueOperation);
}
Update a field in a business component when a record is created.
2
VB Script Workflow Example
Set BC = TheApplication().GetBusObject("Contact").GetBusComp("Contact")
BC.ActivateField "Last Name"
BC.SetFieldValue "Last Name", "Doe"
BC.WriteRecord
Set a field value in Siebel workflow using VB Script.
3
eScript Server-side Validation
function Applet_PreInvokeMethod (MethodName) {
if(MethodName == "Save") {
var email = this.BusComp().GetFieldValue("Email Address");
if(email == "") {
TheApplication().RaiseErrorText("Email cannot be empty.");
return (CancelOperation);
}
}
return (ContinueOperation);
}
Validate that a contact's email is not empty before saving.
4
eScript Field Defaulting
function BusComp_PostNewRecord () {
this.SetFieldValue("Status", "New");
return (ContinueOperation);
}
Set a default value for a field when a new record is created.
5
Applet Field Change Script
function Applet_FieldChanged (FieldName) {
if(FieldName == "Phone") {
var phone = this.BusComp().GetFieldValue("Phone");
this.BusComp().SetFieldValue("PhoneType", "Mobile");
}
return (ContinueOperation);
}
Automatically updates another field when one field changes on an applet.
6
eScript Query with Where Clause
function QueryActiveAccounts () {
var bc = TheApplication().GetBusObject("Account").GetBusComp("Account");
bc.ClearToQuery();
bc.SetViewMode(AllView);
bc.ActivateField("Name");
bc.SetSearchSpec("Status", "Active");
bc.ExecuteQuery(ForwardOnly);
while(bc.NextRecord()) {
var name = bc.GetFieldValue("Name");
TheApplication().Trace(name);
}
}
Query accounts with a specific status using eScript.
7
eScript Calculated Field Example
function BusComp_PreWriteRecord () {
var qty = parseInt(this.GetFieldValue("Quantity"));
var price = parseFloat(this.GetFieldValue("UnitPrice"));
this.SetFieldValue("TotalPrice", (qty * price).toString());
return (ContinueOperation);
}
Compute a derived field based on two other fields in a record.
8
Workflow Invocation via eScript
function CallWorkflow () {
var wf = TheApplication().GetService("Workflow Process Manager");
var inputs = TheApplication().NewPropertySet();
var outputs = TheApplication().NewPropertySet();
inputs.SetProperty("WorkflowName", "UpdateAccountStatus");
wf.InvokeMethod("RunWorkflow", inputs, outputs);
}
Invoke a Siebel workflow process from eScript.
9
eScript Multi-field Update
function UpdateMultipleFields () {
var bc = TheApplication().GetBusObject("Opportunity").GetBusComp("Opportunity");
bc.ActivateField("Stage");
bc.ActivateField("Probability");
bc.SetFieldValue("Stage", "Negotiation");
bc.SetFieldValue("Probability", "50");
bc.WriteRecord();
}
Update multiple fields at once in a business component.
10
Applet Pre-Query Script
function Applet_PreQuery () {
this.BusComp().SetSearchSpec("Industry", "Technology");
return (ContinueOperation);
}
Modify the query criteria dynamically before executing a query on an applet.
11
eScript Error Handling Example
function Applet_PreWriteRecord () {
var name = this.BusComp().GetFieldValue("AccountName");
if(name == "") {
TheApplication().RaiseErrorText("Account Name is required.");
return (CancelOperation);
}
return (ContinueOperation);
}
Raise an error in eScript when a required field is missing.