11Reference Information for Siebel Open UI

Life Cycle Flows of User Interface Elements

This topic includes flowcharts that you can use to determine the methods that Siebel Open UI uses during various steps in the life cycle of a user interface element. The flowcharts are described in the following subtopics.

Life Cycle Flows That Save Records

This topic describes the life cycle flows that Siebel Open UI uses to save records.

Flow That Saves Records If the User Uses a_Shortcut

The following figure illustrates the life cycle flow that Siebel Open UI uses to save a record if the user simultaneously presses the CTRL and S keys. The numbers in the diagram indicate the sequence that Siebel Open UI uses during this flow. The A connector connects to the flow described in Flow That Saves Records If the User Uses the Save Menu.

Flow That Saves Records If the User Uses a Shortcut

Flow That Saves Records If the User Uses the Save_Menu

The following figure illustrates the life cycle flow that Siebel Open UI uses to save a record if the user clicks Menu, and then the Save Record menu item. The A connector connects to the flow described in Flow That Saves Records If the User Uses a Shortcut.


Flow That Saves Records If the User Uses the Save Menu

Life Cycle Flows That Handle User Navigation

This topic describes the life cycle flows that Siebel Open UI uses when the user navigates through various items in the client.

Flow That Siebel Open UI Uses if the User Clicks an Applet in a View

The following figure illustrates the life cycle flow that Siebel Open UI uses if the user clicks an applet in a view.

Flow That Siebel Open UI Uses if the User Clicks an Applet in a View

Flow That Siebel Open UI Uses if the User Navigates to a View

The following figure illustrates the that Siebel Open UI uses if the user navigates to a view.


Flow That Siebel Open UI Uses if the User Navigates to a View

Flow That Handles Focus Changes in Form Applets

The following figure illustrates the life cycle flow that Siebel Open UI if the focus changes for a field in a form applet. For example, if the user tabs out a field, clicks outside the field, minimizes the window, saves the record, and so on.


Flow That Handles Focus Changes in Form Applets

Flow That Handles Focus Changes in List Applets

The following figure illustrates the life cycle flow that Siebel Open UI if the focus changes for a field in a list applet. For example, if the user tabs out a field, clicks outside the field, minimizes the window, saves the record, and so on.


Flow That Handles Focus Changes in List Applets

Life Cycle Flows That Send Notifications

This topic describes the life cycle flows that Siebel Open UI uses to send notifications.

Flow That Notifies the Siebel Server

The following figure illustrates the life cycle flow that Siebel Open UI uses to notify the Siebel Server.

low That Notifies the Siebel Server

Flow That Sends a Notification State Change

The following figure illustrates the life cycle flow that Siebel Open UI uses to send a notification state change. For more information about the notifications that this flow describes, see Notifications That Siebel Open UI Supports.


Flow That Sends a Notification State Change

Life Cycle Flows That Create New Records in List Applets

This topic describes the life cycle flows that Siebel Open UI uses to create a new record in a list applet.

Flow That Creates New Records in List Applets, Calling the Siebel

The following figure illustrates the life cycle flow that Siebel Open UI uses during the call that it makes to the Siebel Server when it creates a new record in a list applet. Siebel Open UI typically calls the following methods during this flow: NewRecord, DeleteRecord, EditField, WriteRecord, and so on. For more information, see DeleteRecord Method, WriteRecord Method, and NewRecord Method.

Flow That Creates New Records in List Applets, Calling the Siebel Server

Flow That Creates New Records in List Applets, Processing the Server

The following figure illustrates the life cycle flow that Siebel Open UI uses when it processes the reply that it gets from the Siebel Server when it creates a new record in a list applet. This figure illustrates the flow that occurs after Siebel Open UI receives the reply.


Flow That Creates New Records in List Applets, Processing the Server Reply

Flows That Create New Records in List Applets, Updating the User Interface

The following figure illustrates the life cycle flow that Siebel Open UI uses to update the user interface. The numbers in the diagram indicate the sequence that Siebel Open UI uses during this flow.


Flow That Creates New Records in List Applets, Updating the User Interface

Flow That Creates New Records in List Applets, Updating the Proxy

The following figure illustrates the life cycle flow that Siebel Open UI uses to update the proxy and presentation model.


Flow That Creates New Records in List Applets, Updating the Proxy and Presentation Model

Life Cycle Flows That Handle User Actions in List Applets

This topic describes the life cycle flows that Siebel Open UI uses depending on an action that the user does in a list applet.

Flow That Handles Navigation to Another Row in List Applets

The following figure illustrates the flow that Siebel Open UI uses if the user navigates to another row in a list applet.

Flow That Handles Navigation to Another Row in List Applets

Flow That Handles the Pagination Button in List Applets

The following figure illustrates the flow that Siebel Open UI uses if the user clicks the pagination button in a list applet.


Flow That Handles the Pagination Button in List Applets

Flow That Handles a Column Sort in List Applets

The following figure illustrates the flow that Siebel Open UI uses if the user sorts a column in a list applet.


Flow That Handles a Column Sort in List Applets

Flow That Handles a Cell Click in List Applets

The following figure illustrates the flow that Siebel Open UI uses if the user clicks a cell in a list applet.


Flow That Handles a Cell Click in List Applets

Flow That Handles a Cell Edit and Blur in List Applets

The following figure illustrates the flow that Siebel Open UI uses if the user edits a cell in a list applet, and then navigates away from this cell.


Flow That Handles a Cell Edit and Blur in List Applets
Flow That Handles a Drilldown in List Applets

The following figure illustrates the flow that Siebel Open UI uses if the user clicks a drilldown field in a list applet.


Flow That Handles a Drilldown in List Applets

Notifications That Siebel Open UI Supports

This topic describes notifications that Siebel Open UI supports. It includes the following information:

For more information about configuring Siebel Open UI to use notifications, see AttachNotificationHandler Method.

Summary of Notifications That Siebel Open UI Supports

The following table describes the notification types that Siebel Open UI supports. For more information, see New Notification User Interfaces.

Table Notification Types That Siebel Open UI Supports

Notification Type Description

NotifyBeginNotifys

SWE_PROP_BC_NOTI_BEGIN

Notifies the client business component that the request that Siebel Open UI sent to the Siebel Server resulted in at least one notification from a business component.

NotifyStateChanged

SWE_PROP_BC_NOTI

_STATE_CHANGED

Specifies a top-level notification for more than one state change that occurs in the business component level. Siebel Open UI uses the following properties to identify the change and to get the data associated with the change:

  • state

  • value

Siebel Open UI can provide summary or detailed state information. For more information, see NotifyStateChanged Notification Type.

NotifyGeneric

SWE_PROP_BC_NOTI_GENERIC

Identifies the predefined and custom notifications that the Siebel application must send. Siebel Open UI addresses most predefined generic notifications to a particular applet.

You can use NotifyGeneric to get the exact type for a generic notification. Siebel Open UI provides actual information of the changes as an encoded argument set.

NotifyNewSelection

SWE_PROP_NOTI_SELECTED

Notifies the client business component that a change occurred in the selection status. Siebel Open UI calls NotifyNewSelection two times for each selection status change:

  • One time a value of false for the last row selected

  • One time with a value of true for the new row that Siebel Open UI is selecting

You cannot use NotifyNewSelection with a multi-select.

You can use the following syntax in the property set that Siebel Open UI sends:

SWE_PROP_BC_NOTI_ACTIVE_ROW = index 
SWE_PROP_NOTI_SELECTED = Boolean 

where:

  • index identifies the index of the row that Siebel Open UI is activating or deactivating.

  • Boolean is true or false.

NotifyNewActiveRow

SWE_PROP_BC_NOTI_

NEW_ACTIVE_ROW

Notifies the client business component that a change occurred on an active row of the corresponding business component on the Siebel Server. Siebel Open UI usually uses NotifyNewSelection with NotifyNewActiveRow.

You can use the following syntax:

SWE_PROP_BC_NOTI_ACTIVE_ROW = row 

where:

  • row identifies the row that Siebel Open UI is activating or deactivating.

NotifyDeleteRecord

SWE_PROP_BC_NOTI

_DELETE_RECORD

Notifies the business component in the client that Siebel Open UI deleted a record from the current set of records on the Siebel Server. Siebel Open UI might use this notification two times for a single record deletion.

You can use the following syntax in the property set that Siebel Open UI sends:

SWE_PROP_BC_NOTI_ACTIVE_ROW = index 
bUp = Boolean 

where:

  • index identifies the index of a record that resides in the current set of records that Siebel Open UI is deleting.

  • Boolean is one of the following values:

  • true. Shift records up after the delete.

  • false. Shift records down after the delete.

For an example usage of this notification, see Customizing the Presentation Model to Handle Notifications.

NotifyDeleteRecordSet

SWE_PROP_BC_NOTI

_DELETE_WORKSET

Notifies the business component in the client that Siebel Open UI is deleting a record from the current set of records in the client. Does not correspond to a method invoke. Siebel Open UI sends a separate notification for each record that it deletes.

You can use the following syntax in the property set that Siebel Open UI sends:

index:index 
NumRows/nr:number 

where:

  • index identifies the start index of the record that Siebel Open UI is deleting.

  • number identifies the number of rows that Siebel Open UI must delete.

For more information, see Using Notifications with Operations That Call Methods.

NotifyInsertWorkSet

SWE_PROP_BC_NOT

I_INSERT_WORKSET

Notifies the business component in the client that Siebel Open UI is inserting a new record in the current set of records in the client.

You can use the following syntax in the property set that Siebel Open UI sends:

index:index_value  
SWE_FIELD_VALUE_STR:child  
SWE_PROP_VALUE_ARRAY:array  

where:

  • index identifies the index of the record that Siebel Open UI is inserting.

  • child identifies the child property set that contains the record data.

  • array is an array that contains the field values of the record that Siebel Open UI is inserting. This array must use the same sequence that the business component uses when it lists these field values.

For more information, see Using Notifications with Operations That Call Methods.

NotifyNewData

SWE_PROP_BC

_NOTI_NEW_DATA

Notifies the business component in the client that Siebel Open UI is modifying the current set of records. Siebel Open UI sends this notification only if it modifies a record. It does not send this notification if it only modifies a field value.

NotifyNewPrimary

SWE_PROP_BC_

NOTI_NEW_PRIMARY

Sets the primary record in a multi-value group. The RepopulateField notification calls NotifyNewPrimary.

NotifyNewRecord

SWE_PROP_BC_

NOTI_NEW_RECORD

Notifies the client business component that Siebel Open UI is creating a new record in the current set of records on the Siebel Server. You can use the following syntax in the property set that Siebel Open UI sends:

SWE_PROP_BC_NOTI_ACTIVE_ROW = index 
bInsertBefore = Boolean 

where:

  • row identifies the index of the record that Siebel Open UI is creating.

  • Boolean is one of the following values:

  • true. Place the new record before the previous active row.

  • false. Place the new record after the previous active row.

For a similar usage of this notification, see Customizing the Presentation Model to Handle Notifications.

NotifyNewRecordData

SWE_PROP_BC_NOTI_

NEW_RECORD_DATA

Sets the do populate flag.

NotifyNewDataWorkSet

SWE_PROP_BC

_NOTI_NEW

_RECORD_DATA_WS

Updates a record in the current set of records.

NotifyNewFieldData

SWE_PROP_BC_NOTI_

NEW_FIELD_DATA

Notifies the client business component that Siebel Open UI modified a field value on the Siebel Server, and that Siebel Open UI communicated this modification to the client through the NotifyNewDataWorkset notification.

You can use the following syntax in the property set that Siebel Open UI sends:

SWE_PROP_NOTI_FIELD = field 

where:

  • field identifies the name of the field that Siebel Open UI is modifying.

NotifyNewDataWorkset

SWE_PROP_BC_NOTI_

NEW_DATA_WS

Notifies the client business component of a field value that Siebel Open UI modified for a field that resides on the Siebel Server.

You can use the following syntax in the property set that Siebel Open UI sends:

SWE_PROP_NOTI_FIELD = field    
SWE_PROP_FIELD_VALUES = child 

where:

  • field identifies the name of the field that Siebel Open UI is modifying.

  • child identifies the name of the child property set that contains the modification details.

You can use the following syntax in the child property set:

SWE_PROP_FIELD_ARRAY:string1
SWE_PROP_VALUE_ARRAY:string2 

where:

  • string1 is an encoded string that identifies the field index.

  • string2 is an encoded string that identifies the field value.

NotifyNewFieldList

SWE_PROP_BC_

NOTI_NEW_FIELD_LIST

Refreshes the entire view internally.

NotifyNewRecordDataWS

SWE_PROP_BC_NOTI_

NEW_RECORD_DATA_WS

Updates the values in the record set. Siebel Open UI updates the dirty flag during previous notifications.

NotifyChangeSelection

SWE_PROP_BC_

NOTI_CHANGE_SELECTION

Sets the update conditionals flag and the row counter.

NotifyEndNotifys

SWE_PROP

_BC_NOTI_END

Notifies the client business component that Siebel Open UI is ending the notification, and that no more server notifications exist for the current transaction.

NotifyBeginQuery

SWE_PROP_BC

_NOTI_BEGIN_QUERY

Notifies the client business component that Siebel Open UI started a query on the business component on the Siebel Server.

NotifyNewQuerySpec

SWE_PROP_BC_

NOTI_NEW_QUERYSPEC

Siebel Open UI uses the NotifyNewQuerySpec notification if the user refines a query. If the business component search specification is empty, then NotifyNewQuerySpec clears all field search specifications.

NotifyNewFieldQuerySpec

SWE_PROP_BC_NOTI_

NEW_FIELD_QUERYSPEC

Notifies the client business component that Siebel Open UI is doing one of the following to query the fields of the current business component on the Siebel Server:

  • Using a default query specification

  • Starting or running a query

This situation can occur through a predefined or custom configuration, or in reply to a query that the user performs.

You can use the following syntax in the property set that Siebel Open UI sends:

SWE_PROP_NOTI_FIELD = 
fieldSWE_PROP_VALUE = search 
specification" 

where:

  • field identifies the name of the field that Siebel Open UI is querying.

  • search specification identifies a query specification that is defined on this field.

NotifyEndQuery

SWE_PROP_BC_

NOTI_END_QUERY

Notifies the client business component that Siebel Open UI is ending a query on the business component on the Siebel Server. This situation can occur if the ExecuteQuery method or the UndoQuery method runs.

NotifyExecute

SWE_PROP_BC

_NOTI_EXECUTE

Notifies the client business component that Siebel Open UI is running a business component on the Siebel Server.

You can use the following syntax in the property set that Siebel Open UI sends:

srt = sort specifications 

where:

  • sort specification identifies the sort specification that Siebel Open UI runs.

  • search specification identifies the search specification that Siebel Open UI runs.

NotifyScrollAmount

SWE_PROP_BC_

NOTI_SCROLL_AMOUNT

Sets the scroll folder and the amount for a mobile swipe operation.

NotifyPageRefresh

SWE_NOTIFY_PAGE_REFRESH

Updates the urltogo with the URL that Siebel Open UI uses to refresh a view. Siebel Open UI gets this URL from a subsequent executeurltoGo notification.

Using Notifications with Operations That Call Methods

It is recommended that you do not use some notifications with an operation that calls a method. For example, if the user paginates to the next page in a set of 10 records, and if you use NotifyInsertWorkSet with the method that calls this pagination, then Siebel Open UI will create 10 separate NotifyInsertWorkSet notifications.

NotifyGeneric Notification Type

The following table describes the subtypes of the SWE_PROP_BC_NOTI_GENERIC type that the NotifyGeneric notification type uses. It includes the predefined and custom notifications that a Siebel application must send.

Table Notify Generic Notification Type

Sub Type Description

SWEICanInvokeMethod

Enables the refresh button.

SWEICtlDefChanged

Modifies the definition for a control. You can customize Siebel Open UI to dynamically modify the definition that a control uses. For example, modifying a definition from JavaScript text box to a JavaScript combo box.

SWEIPrivFlds

Specifies a list of private fields. For example, the Find controls that Siebel Open UI displays in a dialog box. A private field is a type of field that only allows the record owner to view the record. For more information, see Siebel Object Types Reference.

SWEICanUpdate

Specifies to display data-driven, read-only behavior.

SWEICanNavigate

If a list applet displays zero records, and if the user adds a new record, then the SWEICanNavigate subtype displays the drilldown links.

SWEIRowSelection

Sends the set of selected rows that exist in the current set of records to a list applet. You can use the following syntax in the decoded array:

argsArray[0] = applet name
argsArray[1-x] = value 

where:

  • applet name identifies the name of the applet where Siebel Open UI sends the notification.

  • value is one of the following:

    • 1. Indicates selected.

    • 0. Indicates not selected.

SWEAInvokeMethod

Adds an operation in the life cycle that the InvokeMethod method uses. For example, assume you configure an OK button in an association applet, and that this button closes a dialog box. You can use the SWEAInvokeMethod subtype to configure this button to make a subsequent call to the CreateRecord method if the user clicks OK.

You can use the following syntax in the decoded array:

argsArray[0] = applet
argsArray[1] = method 

where:

  • applet identifies the name of the applet that Siebel Open UI calls during the first operation.

  • method identifies the name of the subsequent method that Siebel Open UI calls.

For more information, see InvokeMethod Method for Presentation Models.

DeletePopup

Deletes a popup applet. The DeletePopup subtype does not close an applet in the user interface. You can use ClosePopup to close an applet.

SetPopupBookmark

Sets the context for a popup bookmark to use the state of the parent applet that resides on the Siebel Server.

GetQuickPickInfo

Sends the values of a picklist to an applet. You can use the following syntax in the decoded array:

argsArray[0] = placeholder
argsArray[1] = view
argsArray[2] = applet
argsArray[3] = identifier 
argsArray[4] = control
argsArray[5-x] = string 

where:

  • placeholder is a placeholder array that you can you use.

  • view identifies the name of the view where Siebel Open UI displays the picklist.

  • applet identifies the name of the applet where Siebel Open UI displays the picklist.

  • identifier identifies the HTML identifier of the control that requested the picklist values.

  • control contains one of the following values:

    • true. Picklist is associated with the control.

    • false. Picklist is not associated with the control.

  • string contains the values of the picklist.

BegRow

Sends the starting row that the Object Manager uses to display the current row in the client. You can use the following syntax in the decoded array:

argsArray[0] = applet name
argsArray[1] = value 

where:

  • applet name identifies the name of the applet where Siebel Open UI sends the notification.

  • value contains the value of the beginning row.

GetCurrencyCalcInfo

Gets a currency notification from the currency metadata.

GetCurrencyCodeInfo

Gets a currency notification from specific currency data.

CloseCurrencyPickApplet

Sends a notification to close a currency applet.

ClosePopup

Notifies an applet that Siebel Open UI is closing a popup that is currently open on this applet. You can use the following syntax in the decoded array:

argsArray[0] = applet 

where:

  • applet identifies the name of the applet.

NotifyStateChanged Notification Type

The following table describes the subtypes of the NotifyStateChanged type.

Table NotifyStateChanged Notification Type

Sub Type Description

activeRow

Identifies the active row of the business component. You can use ar (active row) to abbreviate activeRow.

bCanDelete

Returns a Boolean value that includes one of the following values:

  • 0. The business component can delete a field.

  • 1. The business component cannot delete a field.

You can use cd (can delete) as an abbreviation for bCanDelete.

bCanInsert

Returns a Boolean value that includes one of the following values:

  • 0. The business component can insert a field.

  • 1. The business component cannot insert a field.

You can use ci (can insert) as an abbreviation for bCanInsert.

bCanInsertDynamic

Returns a Boolean value that includes one of the following values:

  • 0. The business component can insert a dynamic field.

  • 1. The business component cannot insert a dynamic field.

You can use cud (can insert dynamic) as an abbreviation for bCanInsertDynamic.

bCanMergeRecords

Returns a Boolean value that includes one of the following values:

  • 0. Merge is available in multi select mode.

  • 1. Merge is not available in multi select mode.

You can use cm (can merge) as an abbreviation for bCanMergeRecords.

bCanQuery

Returns a Boolean value that includes one of the following values:

  • 0. The business component can query a field.

  • 1. The business component cannot query a field.

You can use cq (can query) as an abbreviation for bCanQuery.

bCanUpdate

Returns a Boolean value that includes one of the following values:

  • 0. The business component can update a field.

  • 1. The business component cannot update a field.

You can use cu (can update) as an abbreviation for bCanUpdate.

bCanUpdateDynamic

Returns a Boolean value that includes one of the following values:

  • 0. The business component can update a dynamic field.

  • 1. The business component cannot update a dynamic field.

You can use cud (can update dynamic) as an abbreviation for bCanUpdateDynamic.

bCommitPending

Returns a Boolean value that includes one of the following values:

  • 0. A commit is pending on the business component.

  • 1. A commit is not pending on the business component.

You can use cp (commit pending) as an abbreviation for bCommitPending.

bDelRecPending

Returns a Boolean value that includes one of the following values:

  • 0. A delete is pending on the business component.

  • 1. A delete is not pending on the business component.

You can use dp (delete pending) as an abbreviation for bDelRecPending.

bExecuted

Returns a Boolean value that includes one of the following values:

  • 0. Siebel Open UI finished processing the business component records.

  • 1. Siebel Open UI did not finish processing the business component records.

You can use ex (executed) as an abbreviation for bExecuted.

bHasAssocList

Determines whether or not the business component is an association business component. An association business component is a type of business component that includes an intertable.

bInMultiSelMode

Returns a Boolean value that includes one of the following values:

  • 0. The business component is in multiselect mode.

  • 1. The business component is not in multiselect mode.

You can use ms (multiselect) as an abbreviation for bInMultiSelMode.

bInQueryState

Returns a Boolean value that includes one of the following values:

  • 0. The business component is in a query state.

  • 1. The business component is not in a query state.

You can use qs (query state) as an abbreviation for bInQueryState.

bInverseSelection

Returns a Boolean value that includes one of the following values:

  • 0. An inverse of selection is occurring on the business component.

  • 1. An inverse of selection is not occurring on the business component.

You can useis (inverse selection) as an abbreviation for bInverseSelection.

bNewRecPending

Returns a Boolean value that includes one of the following values:

  • 0. A new record is pending on the business component.

  • 1. A new record is not pending on the business component.

You can use np (new record pending) as an abbreviation for bNewRecPending.

bNotifyEnabled

Returns a Boolean value that includes one of the following values:

  • 0. The business component is not enabled for notifications.

  • 1. The business component is enabled for notifications.

You can use n (enabled) as an abbreviation for bNotifyEnabled.

NumRows

Returns the number of rows that Siebel Open UI has currently identified. You can use nr (number of rows) as an abbreviation for NumRows.

NumRowsKnown

Returns the number of rows that Siebel Open UI has currently identified for a search specification. You can use nrk (number of rows known) as an abbreviation for NumRowsKnown.

NumSelected

Returns the number of rows that are currently in multiselect mode. You can use ns (number selected) as an abbreviation for NumSelected.

Example Usages of Notifications

This topic describes example usages of notifications.

Example of the NotifyBeginNotifys Notification

The following code is an example usage of the NotifyBeginNotifys notification:

this.AttachNotificationHandler(consts.get("SWE_PROP_BC_NOTI_DELETE_RECORD"), 
function (propSet){
// Change has occurred at server BC. Do something here:    
this.SetProperty ("Refresh_Renderer", true);    
}); 

Example of the NotifyNewSelection Notification

The following code is an example usage of the NotifyNewSelection notification:

this.AttachNotificationHandler(consts.get("SWE_PROP_NOTI_SELECTED"), function 
(propSet){    
if (propSet.GetProperty(consts.get("SWE_PROP_NOTI_SELECTED")) === "false")    
this.SetProperty ("rowBeingUnselected", 
propSet.GetProperty("SWE_PROP_BC_NOTI_ACTIVE_ROW"));    
}    
}); 

Example of the NotifyNewFieldData Notification

The following code is an example usage of the NotifyNewFieldData notification:

this.AttachNotificationHandler(consts.get("SWE_PROP_BC_NOTI_NEW_DATA_WS"), 
function (propSet){    
var field = propset.GetProperty(consts.get("SWE_PROP_NOTI_FIELD"));    
if (field === "Customer Last Name"){    
// Notify my extension that shows this value in a different way.    
this.SetProperty ("RefreshExtn", true);    
}    
} 

Example of the NotifyNewDataWorkset Notification

The following code is an example usage of the NotifyNewDataWorkset notification:

// Trap an incoming change to the field value to do some flagging.     
this.AttachNotificationHandler(consts.get("SWE_PROP_BC_NOTI_NEW_DATA_WS"), 
function (propSet){    
var field = propset.GetProperty(consts.get("SWE_PROP_NOTI_FIELD"));    
if (field === "Discount Percentage"){    
var childPS = propSet.GetChildByType (consts.get("SWE_PROP_FIELD_VALUES"));    
var value;    
CCFMiscUtil_StringToArray 
(fieldSet.GetProperty(consts.get("SWE_PROP_VALUE_ARRAY")), value);    
if (parseFloat(value) > 20){    
// Greater than 20% discount? Something fishy!    
this.SetProperty ("flagCustomer", true);    
}    
}     
}); 

Example of the NotifyNewData, NotifyInsertWorkSet, and

The following code is an example usage of the NotifyNewData, NotifyInsertWorkSet, and NotifyDeleteRecordSet notifications:

// First let's check if there's any change to the client workset.    
this.AttachNotificationHandler(consts.get("SWE_PROP_BC_NOTI_NEW_DATA"), function 
(){    
// Yes indeed.    
this.SetProperty ("primeRenderer", true);    
});    
// Now let's say our business is with the 4th record. We want to track if this record 
is replaced.    
// First we see if this 4th record is being deleted.    
this.AttachNotificationHandler(consts.get("SWE_PROP_BC_NOTI_DELETE_WORKSET"), 
function (propSet){    
if (propSet.GetProperty("index" === 3){// 3 because count starts at 0    
if (propSet.GetProperty("nr") === 1 || propSet.GetProperty("NumRows") === 1){    
if (this.Get("primeRenderer")){    
this.Set("deleted", 4);    
}    
}    
}    
});    
// Next to the insertion    
this.AttachNotificationHandler(consts.get("SWE_PROP_BC_NOTI_INSERT_WORKSET"), 
function (propSet){    
var underReplacement = this.GetProperty ("deleted");    
if (this.Get("primeRenderer") && propSet.GetProperty("index") === 
this.GetProperty("deleted")){    
// All conditions met. Now we'll get some info from what is being added.    
var childPS = propSet.GetChildByType (consts.get("SWE_FIELD_VALUE_STR"));    
var fieldArray;    
CCFMiscUtil_StringToArray 
(childPS.GetProperty(consts.get("SWE_PROP_VALUE_ARRAY")), fieldArray);    
this.SetProperty ("New_Name_Value", fieldArray[2]);    
this.SetProperty ("primeRenderer", false);    
} 
}); 

Example of the NotifyBeginQuery, NotifyNewFieldQuerySpec, and

The following code is an example usage of the NotifyBeginQuery, NotifyNewFieldQuerySpec, and NotifyEndQuery notifications:

// Let's see a simple example involving all the three. First we will take up the 
query start.    
this.AttachNotificationHandler(consts.get("SWE_PROP_BC_NOTI_BEGIN_QUERY"), 
function (){    
// Query begins - The renderer will use this notification to show a bubble box having 
a number of choices. This might be driven off of a dropdown in the actual applet - 
we already have the choices.    
this.SetProperty ("showBubble", true);    
});    
// Now we'll attach to Field Spec. If that dropdown has a pre default value, then 
we can highlight that choice in our bubble.    
this.AttachNotificationHandler(consts.get("SWE_PROP_BC_NOTI_NEW_FIELD_QUERYSPEC"), 
function (propSet){    
if (propSet.GetProperty(consts.get("SWE_PROP_NOTI_FIELD") === "Customer Type"){    
var value = propSet.GetProperty(consts.get("SWE_PROP_VALUE");    
var bubbleValues = this.Get (bubbleValueArray);    
this.SetProperty ("SetBubbleHighlightIndex", bubbleValues.indexOf(value));    
}    
});    
// Next the obvious. The death of the bubble.    
this.AttachNotificationHandler(consts.get("SWE_PROP_BC_NOTI_END_QUERY"), function 
(){    
this.SetProperty ("showBubble", false);    
}); 

Example of the NotifyEndNotifys Notification

The following code is an example usage of the NotifyEndNotifys notification:

this.AttachNotificationHandler(consts.get("SWE_PROP_BC_NOTI_END"), function (){    
// No more notifications. Mark for UI Refresh.    
this.SetProperty ("refreshUI", true);    
}); 

Example of the SWEIRowSelection Notification

The following code is an example usage of the SWEIRowSelection notification:

this.AttachNotificationHandler(consts.get("SWE_PROP_BC_NOTI_GENERIC"), function 
(propSet){
var type = propSet.GetProperty(consts.get("SWE_PROP_NOTI_TYPE"));    
if (type === "SWEIRowSelection"){    
var argsArray;    
CCFMiscUtil_StringToArray (propSet.GetProperty(consts.get("SWE_PROP_ARGS_ARRAY"), 
argsArray);    
if (argsArray[6] === "1"){    
this.SetProperty ("SixthRowSelected", true);    
}    
}    
}); 

Example of the BegRow Notification

The following code is an example usage of the BegRow notification:

this.AttachNotificationHandler(consts.get("SWE_PROP_BC_NOTI_GENERIC"), function 
(propSet){|    
var type = propSet.GetProperty(consts.get("SWE_PROP_NOTI_TYPE"));    
if (type === "BegRow"){    
var argsArray;    
CCFMiscUtil_StringToArray (propSet.GetProperty(consts.get("SWE_PROP_ARGS_ARRAY"), 
argsArray);    
this.SetProperty ("beginRow", parseInt(argsArray[1]));    
}    
}); 

Example of the GetQuickPickInfo Notification

The following code is an example usage of the GetQuickPickInfo notification:

this.AttachNotificationHandler(consts.get("SWE_PROP_BC_NOTI_GENERIC"), function 
(propSet){
   var type = propSet.GetProperty(consts.get("SWE_PROP_NOTI_TYPE"));
   if (type === "GetQuickPickInfo"){
      var argsArray = [];
      CCFMiscUtil_StringToArray
      (propSet.GetProperty(consts.get("SWE_PROP_ARGS_ARRAY")), argsArray);
      if (argsArray[5] === "MyValue"){
         // The dropdown contains a value that we don’t like..
         // Let us disable it.
         this.SetProperty ("disablePick", true);
      }
   }
});

Example of the ClosePopup Notification

The following code is an example usage of the ClosePopup notification:

this.AttachNotificationHandler(consts.get("SWE_PROP_BC_NOTI_GENERIC"), function 
(propSet){ 
var type = propSet.GetProperty(consts.get("SWE_PROP_NOTI_TYPE"));    
if (type === "ClosePopup"){    
// The below is just an example. PM's should not alert anything. Leave that to the 
PRs.    
alert ("Make sure you have collected all details. You next operation will save the 
record!");    
}    
}); 

Example of the SWEAInvokeMethod Notification

The following code is an example usage of the SWEAInvokeMethod notification:

this.AttachNotificationHandler(consts.get("SWE_PROP_BC_NOTI_GENERIC"), function 
(propSet){ 
var type = propSet.GetProperty(consts.get("SWE_PROP_NOTI_TYPE"));    
if (type === "SWEAInvokeMethod"){    
if (argsArray[1] === "NewRecord"){    
// Ah so there's going to be a new record that has happened as a chain.    
// Let's set a property so that we can do an AddMethod on this NewRecord,     
// and extend it to our liking    
this.SetProperty ("isChained", true);    
}    
}    
}); 

Example of the NotifyStateChanged Notification

The following code is an example usage of the NotifyStateChanged notification:

this.AttachNotificationHandler(consts.get("SWE_PROP_BC_NOTI_STATE_CHANGED"), 
function (propSet){ 
var type = propSet.GetProperty("type");    
var value = propSet.GetProperty("value");    
// This is just an example. Switch-case is preferred if multiple types need to    
// have custom logic    
if (type === "cr" || type === "CurRowNum"){    
// Current Row has changed at the server.    
if (value === this.Get("MyPreviouslyStoredActiveRow")){    
// Or not! What's going on. Something wrong with my logic?    
}    
}    
if (type === "nr" || type === "NumRows"){    
if (parseInt(value) > 1000){    
// Woah, this user seems to be going through a lot of records!    
// Shouldn't she be using the query function?    
this.SetProperty ("AlertUser", true);    
}    
}    
...    
...    
}); 

Property Sets That Siebel Open UI Supports

The following table describes the property sets that Siebel Open UI supports. Siebel Open UI uses the Handle Response

property set for navigation controls, such as the predefined query, drop down menus, screen tabs, and view tabs. Siebel Open UI handles the toolbar during setup because it does not dynamically update the property set.

Table Property Set Types That Siebel Open UI Supports

Property Set Description

SWE_PROP_NC_PDQ_INFO

Child property set for the Predefined Query (PDQ). It includes the list of PDQ items that Siebel Open UI displays. It uses the following properties:

  • SHOW_EMPTY_STRING. Display an empty PDQ entry.

  • SWE_PROP_NC_CAPTION. Identifies the caption that Siebel Open UI displays for the PDQ.

SWE_PROP_NC_VISIBILITY_INFO

Defines the beginning of the visibility property set.

It uses the following properties:

  • SWE_PROP_NC_ITEM_INFO. Identifies the item start property.

  • SWE_PROP_NC_SCREEN_NAME. Identifies the screen name.

  • SWE_PROP_NC_VIEW_NAME. Identifies the view name.

  • SWE_PROP_NC_CAPTION. Identifies the display value for the caption.

  • SWE_PROP_NC_SCREEN_TAB_ICON. Identifies the icon name to use for the screen tab.

You can use the VisDropDownItem property as the predefined bubbled handler to do user interface binding.

SWE_PROP_NC_SCREENCTRL

_INFO

Defines information for the first level in a screen.

It uses the all the same properties that the SWE_PROP_NC_VISIBILITY_INFO property set uses except it does not use the SWE_PROP_NC_ITEM_INFO property.

You can use the GetTabInfo property as the predefined bubbled handler.

SWE_PROP_NC_FLOATING

_TAB_INFO

If Siebel Open UI already displays a screen, and if the user clicks an empty tab, then SWE_PROP_NC_FLOATING_TAB_INFO adds a new tab. It uses the GetTabInfo property.

SWE_PROP_NC_AGGREGATE_INFO

Describes Amazon link information.

It uses the GetTabLinkInfo property.

It uses the following properties:

  • SWE_PROP_NC_VIEW_NAME. Specifies the view name that Siebel Open UI displays.

  • SWE_PROP_NC_CAPTION. Specifies the caption that Siebel Open UI displays.

SWE_PROP_NC_SUBDETAIL_INFO

Specifies information for the fourth level link.

It uses the same properties that the SWE_PROP_NC_AGGREGATE_INFO property set uses.

SWE_PROP_NC_DETAIL_INFO

Specifies the view tab information that Siebel Open UI displays to start.

It uses the GetTabInfo property. It uses the following properties:

  • SWE_PROP_NC_VIEW_NAME. View name that Siebel Open UI displays.

  • SWE_PROP_NC_CAPTION. Caption that Siebel Open UI displays.

You can use the following properties as predefined bubbled handlers:

  • GetDataReloadDirty. Specifies the flag property.

  • GetSelectedTabKey. Selection of tabs.

  • GetSelectedTabLinkKey. Selection of links underneath tabs.

  • GetTabInfo. All tabs.

  • GetTabLinkInfo. All links.

Siebel CRM Events That You Can Use to Customize Siebel Open UI

This topic describes the Siebel CRM events that you can use to customize Siebel Open UI. The jQuery library binds actions to JavaScript events, such as mouse down, mouse over, blur, and so on. It also provides its own events that are part of the jQuery library and not part of Siebel Open UI. Siebel Open UI uses some Siebel CRM events that jQuery does not define, such as the postload event. This topic describes these Siebel CRM events. Note the following:

Events That You Can Use to Customize Form Applets

The following table describes the events that you can use to customize a form applet.

Table Events That You Can Use to Customize Form Applets

Event Description

PHYEVENT_APPLET_FOCUS

Siebel Open UI triggers the PHYEVENT_APPLET_FOCUS event when an applet receives focus. You can use it to trigger custom code when Siebel Open UI sets the focus to the presentation model that the applet references as the result of a user action. No objects are available with this event. The following code is an example usage of this event:

"this.AttachEventHandler(siebConsts.get(""PHYEVENT_APP
LET_FOCUS""),
  function () {
    // My applet recived focus.
    this.SetProperty (""AppletInFocus"", true);
    return (true);
  });"

PHYEVENT_CONTROL_FOCUS

Siebel Open UI triggers the PHYEVENT_CONTROL_FOCUS event when a control in an applet comes into focus. You can use this event to update the value for this control or to call code according to this value. You can use it with the following objects:

  • control. The control object that receives focus.

  • value. The value of the control object that receives focus.

The following code is an example usage of this event:

this.AttachEventHandler(siebConsts.get("PHYEVENT_CONTR
OL_FOCUS"),
  function (control, value) {
    if (this.Get("AppletInFocus"){
      var controlArray = this.Get("FlaggedControlSet");
      if (controlArray.indexOf(control) >= 0){
        // This is a flagged control.
        var valueObject = this.GetProperty 
("FlaggedControlsValue");
        if (value > maxValue){
          // Value higher than allowed when receiving 
focus. Let's flag this.
          this.SetProperty ("FlagHigher", true);
        }
      }
    }
    return (true);
  });

PHYEVENT_CONTROL_BLUR

Siebel Open UI triggers the PHYEVENT_CONTROL_BLUR event when a control in an applet goes out of focus. You can use this event to update the value for this control or to call code according to this value. You can use it with the following objects:

  • control. The control object that lost focus.

  • value. The value of the control object that lost focus.

The following code is an example usage of this event:

"this.AttachEventHandler(siebConsts.get(""PHYEVENT_CON
TROL_BLUR""),
  function (control, value) {
    if (this.Get(""AppletInFocus""){
      var controlArray = 
this.Get(""FlaggedControlSet"");
      if (controlArray.indexOf(control) >= 0){
        // This is a flagged control.
        var valueObject = this.GetProperty 
(""FlaggedControlsValue"");
        if (valueObject[ control.GetName() ] !== value){
            // Value change. Need to update internal 
storage, and fire any potential extensions attached to 
the property.
            valueOjbect[ control.GetName() ] = value;
            this.SetProperty (""FlaggedControlsValue"", 
valueObject);
          }
        }
      }
    return (true);
  });"

PHYEVENT_INVOKE_CONTROL

Siebel Open UI triggers the PHYEVENT_INVOKE_CONTROL event when it calls a method that is associated with a control. Siebel Open UI makes this call in reply to a user action. You can use this event to configure Siebel Open UI to call a method at the physical layer before it makes this call at a proxy layer. You can use this event with the following objects:

  • method. The method that Siebel Open UI calls.

  • inputPS. The input property set that Siebel Open UI sends to the method that it calls.

The following code is an example usage of this event:

"this.AttachEventHandler(siebConsts.get(""PHYEVENT_INV
OKE_CONTROL""),
  function (method, inputPS, ai) {
    if (method === ""WriteRecord""){
      var valueObject = this.GetProperty 
(""FlaggedControlsValue"");
      var min = this.Get(""MinRangeForFlagged"");
      for (var value in valueObject){
        if (value < min){
          alert (""Invalid Values. Think again!"");
          return (false);
        }
      }
    }
    return (true);
  });"

PHYEVENT_INVOKE_PICK

Siebel Open UI triggers the PHYEVENT_INVOKE_PICK event when it calls a pop-up control for a picklist. Siebel Open UI makes this call in reply to a user action on the keyboard or mouse. You can use this event to configure Siebel Open UI to handle the action that the pop-up control requests. You can use it with the following objects:

  • control. The control object of the picklist that Siebel Open UI called.

The following code is an example usage of this event:

"this.AttachEventHandler(siebConsts.get(""PHYEVENT_INV
OKE_MVG""),
  function (control) {
    if (control === this.GetProperty(""AddressMVG"")){
      varhighValue = this.Get(""HighVal"");
      if (highValue < this.Get (""MinRangeForFlagged""){
        alert (""Sorry, can't popup this MVG"");
        return (false);
      }
    }
    return (true);
  });"

PHYEVENT_INVOKE_MVG

Siebel Open UI triggers the PHYEVENT_INVOKE_MVG event when it calls a pop-up control for a multivalue group. Siebel Open UI makes this call in reply to a user action on the keyboard or mouse. You can use this event to configure Siebel Open UI to handle the action that the pop-up control requests. You can use it with the following objects:

  • control. The control object of the multivalue group that Siebel Open UI called.

The following code is an example usage of this event:

"this.AttachEventHandler(siebConsts.get(""PHYEVENT_INV
OKE_MVG""),
  function (control) {
    if (control === this.GetProperty(""AddressMVG"")){
      varhighValue = this.Get(""HighVal"");
      if (highValue < this.Get (""MinRangeForFlagged""){
        alert (""Sorry, can't popup this MVG"");
        return (false);
      }
    }
    return (true);
  });"

PHYEVENT_INVOKE_DETAIL

Siebel Open UI triggers the PHYEVENT_INVOKE_DETAIL event when it calls a pop-up details control. Siebel Open UI makes this call in reply to a user action on the keyboard or mouse. You can use this event to configure Siebel Open UI to handle the action that the pop-up control requests. You can use it with the following objects:

  • control. The control object of the pop-up details control that Siebel Open UI called.

The following code is an example usage of this event:

"this.AttachEventHandler(siebConsts.get(""PHYEVENT_INV
OKE_DETAIL""),     
  function (control) {    
    if (control === this.GetProperty(""City"")){    
      varhighValue = this.Get(""HighVal"");    
      if (highValue < this.Get (""MinRangeForFlagged""){ 
        alert (""Sorry, can't use this Details"");    
        return (false);    
      }    
    }    
    return (true);    
  });" 

PHYEVENT_INVOKE_EFFDAT

Siebel Open UI triggers the PHYEVENT_INVOKE_EFFDAT event when it calls a pop-up effective dating control. Siebel Open UI makes this call in reply to a user action on the keyboard or mouse. You can use this event to configure Siebel Open UI to handle the action that the pop-up control requests. You can use it with the following objects:

  • control. The control object of the effective dating pop-up control that Siebel Open UI called.

The following code is an example usage of this event:

"this.AttachEventHandler(siebConsts.get(""PHYEVENT_INV
OKE_EFFDAT""),     
  function (control) {    
    if (control === this.GetProperty(""AccountTrail"")){    
      varhighValue = this.Get(""HighVal"");    
      if (highValue < this.Get (""MinRangeForFlagged""){    
        alert (""Sorry, can't open this Dating Popup"");    
        return (false);    
      }    
    }    
    return (true);    
  });" 

PHYEVENT_INVOKE_COMBO

Siebel Open UI triggers the PHYEVENT_INVOKE_COMBO event when it calls a combo box or dropdown list. Siebel Open UI makes this call in reply to a user action on the keyboard or mouse. You can use this event to configure Siebel Open UI to handle the open action that the combo box or dropdown list requests. You can use it with the following objects:

  • control. The control object of the combo box or dropdown list that Siebel Open UI called.

The following code is an example usage of this event:

"this.AttachEventHandler(siebConsts.get(""PHYEVENT_INV
OKE_COMBO""),     
  function (control) {    
    if (control === this.GetProperty(""Designation"")){    
      varhighValue = this.Get(""HighVal"");    
      if (highValue < this.Get (""MinRangeForFlagged""){    
        alert (""Sorry, can't open this Dropdown"");    
        return (false);    
      }    
    }    
    return (true);    
  });" 

PHYEVENT_INVOKE_CURRENCY

Siebel Open UI triggers the PHYEVENT_INVOKE_CURRENCY event when it calls a popup currency calculator. Siebel Open UI makes this call in reply to a user action on the keyboard or mouse. You can use this event to configure Siebel Open UI to handle the open action that the currency calculator requests. You can use it with the following objects:

  • control. The control object of the currency calculator that Siebel Open UI called.

The following code is an example usage of this event:

"this.AttachEventHandler(siebConsts.get(""PHYEVENT_INV
OKE_CURRENCY""),     
  function (control) {    
    if (control === 
this.GetProperty(""RevenueControl"")){    
      varhighValue = this.Get(""HighVal"");    
      if (highValue < this.Get (""MinRangeForFlagged""){    
        alert (""Sorry, can't open this currency 
field"");    
        return (false);    
      }    
    }    
    return (true);    
  });" 

PHYEVENT_INVOKE_TOGGLE

Siebel Open UI triggers the PHYEVENT_INVOKE_TOGGLE event when it calls a control that includes a toggle layout configuration. Siebel Open UI makes this call in reply to a user action to toggle the layout. You can use this event to configure Siebel Open UI to handle the action that the toggle layout requests. You can use it with the following objects:

  • value. Contains the value of the toggle control that exists after the user action.

The following code is an example usage of this event:

"this.AttachEventHandler(siebConsts.get(""PHYEVENT_INV
OKE_TOGGLE""),     
  function (value) {    
    if (value === this.GetProperty(""FlaggedControl"")){    
      varhighValue = this.Get(""HighVal"");    
      if (highValue < this.Get (""MinRangeForFlagged""){    
        alert (""Sorry, change the Range value to 
toggle"");    
        return (false);    
      }    
    }    
    return (true);    
  });" 

PHYEVENT_DRILLDOWN_FORM

Siebel Open UI triggers the PHYEVENT_DRILLDOWN_FORM event when it calls a drilldown control that resides on a form applet. Siebel Open UI makes this call in reply to a user click on the drilldown. You can use this event to configure Siebel Open UI to handle the action that the drilldown requests. You can use it with the following objects:

  • control. Identifies the control object that contains the destination of the drilldown control.

The following code is an example usage of this event:

"this.AttachEventHandler(siebConsts.get(""PHYEVENT_DRI
LLDOWN_FORM""),     
  function (control) {    
    if (control === this.GetProperty(""AccountDrill"")){    
      varhighValue = this.Get(""HighVal"");    
      if (highValue < this.Get (""MinRangeForFlagged""){    
        alert (""Sorry, change the Range value to 
drilldown"");    
        return (false);    
      }    
    }    
    return (true);    
  });" 

PHYEVENT_ENTER_KEY_PRESS

Siebel Open UI triggers the PHYEVENT_ENTER_KEY_PRESS event when the user presses the Enter key. Siebel Open UI triggers it only if a control is in focus. You can use this event to handle an Enter key press before the proxy layer uses the default configuration to handle it. You can use this event with the following objects:

  • control. Identifies the control object where the user used the Enter key.

The following code is an example usage of this event:

"this.AttachEventHandler(siebConsts.get(""PHYEVENT_ENT
ER_KEY_PRESS""),     
  function (control) {    
    if (control === this.GetProperty(""Salary"")){    
      varhighValue = this.Get(""HighVal"");    
      if (highValue < this.Get (""MinRangeForFlagged""){    
        alert (""Sorry, change the Range value to 
commit"");    
        return (false);    
      }    
    }    
    return (true);    
  });" 

PHYEVENT_ESC_KEY_PRESS

Siebel Open UI triggers the PHYEVENT_ESC_KEY_PRESS event when the user presses the Esc (Escape) key. Siebel Open UI triggers it only if a control is in focus. You can use this event to handle an Esc key press before the proxy layer uses the default configuration to handle it. You can use this event with the following objects:

  • control. Identifies the control object where the user used the Esc key.

The following code is an example usage of this event:

"this.AttachEventHandler(siebConsts.get(""PHYEVENT_ESC
_KEY_PRESS""),     
  function (control) {    
    if (control === this.GetProperty(""Salary"")){    
      varhighValue = this.Get(""HighVal"");    
      if (highValue < this.Get (""MinRangeForFlagged""){    
        alert (""Sorry, change the Range value to undo"");    
        return (false);    
      }    
    }    
    return (true);    
  });" 

PHYEVENT_TAB_KEY_PRESS

Siebel Open UI triggers the PHYEVENT_TAB_KEY_PRESS event when the user presses the Tab key. Siebel Open UI triggers it only if a control is in focus. You can use this event to handle a Tab key press before the proxy layer uses the default configuration to handle it. You can use this event with the following objects:

  • control. Identifies the control object where the user used the Tab key.

The following code is an example usage of this event:

"this.AttachEventHandler(siebConsts.get(""PHYEVENT_TAB
_KEY_PRESS""),     
  function (control) {    
    if (control === this.GetProperty(""Salary"")){    
      varhighValue = this.Get(""HighVal"");    
      if (highValue < this.Get (""MinRangeForFlagged""){    
        alert (""Sorry, change the Range value to undo"");    
        return (false);    
      }    
    }    
    return (true);    
  });" 

Events That You Can Use to Customize List Applets

The following table describes the events that you can use to customize a list applet.

Table Events That You Can Use to Customize List Applets

Event Description

PHYEVENT_SELECT_ROW

Siebel Open UI triggers the PHYEVENT_SELECT_ROW event when the user chooses a row in a list applet. You can use it to determine whether or not the user clicked a row that is not the current row. Using this event might cause the state of objects that reside on the Siebel Server to be inconsistent with the state of objects that reside in the client.

You can use this event with the following objects:

  • rowIndex. Contains the index of the row that the user clicks. It uses 0 as the index for the first row.

  • shiftKey. Contains a Boolean value that indicates if the user pressed the Shift key while choosing a row.

  • controlKey. Contains a Boolean value that indicates if the user pressed the Ctrl key while choosing a row.

The following code is an example usage of this event:

"this.AttachEventHandler(siebConsts.get(""PHYEVENT_SELECT
_ROW""),
  function (rowIndex, shiftKey, controlKey) {
    if (rowIndex === 0 && shiftKey){
      alert (""Do not multiselect all rows."");
      return (false);
    }
  });"

PHYEVENT_COLUMN_FOCUS

Siebel Open UI triggers the PHYEVENT_COLUMN_FOCUS event when a column in a list applet comes into focus. You can use it to identify the column that is in focus, and to call custom code. You can use this event with the following objects:

  • rowIndex. Contains the index of the current row. It uses 1 as the index for the first row.

  • control. Identifies the column control object that comes into focus.

  • value. Contains the value of the column control object.

The following code is an example usage of this event:

"this.AttachEventHandler(siebConsts.get(""PHYEVENT_COLUMN
_FOCUS""),
  function (rowIndex, control, value) {
    if (rowIndex > 5) {
      return (true);
    }
    if (this.Get(""AppletInFocus""){
      var controlArray = this.Get(""FlaggedControlSet"");
      if (controlArray.indexOf(control) >= 0){
        // Declare the flagged control.
        var valueObject = this.GetProperty 
(""FlaggedControlsValue"");
        if (value > maxValue){
          // Flag value that is higher than allowed when receiving focus.
          this.SetProperty (""FlagHigher"", true);
        }
      }
    }
    return (true);
  });"

PHYEVENT_COLUMN_BLUR

Siebel Open UI triggers the PHYEVENT_COLUMN_BLUR event when a column in a list applet goes out of focus. You can use it to identify the column that is going out of focus, and to call custom code. You can use this event with the following objects:

  • rowIndex. Contains the index of the current row. It uses 1 as the index for the first row.

  • control. Identifies the column control object that is going out of focus.

  • value. Contains the value of the column control object.

The following code is an example usage of this event:

"this.AttachEventHandler(siebConsts.get(""PHYEVENT_COLUMN
_BLUR""),
  function (rowIndex, control, value) {
  if (rowIndex > 5) {
    return (true);
  }
  if (this.Get(""AppletInFocus""){
    var controlArray = this.Get(""FlaggedControlSet"");
    if (controlArray.indexOf(control) >= 0)) {
      // This is a flagged control.
      var valueObject = this.GetProperty 
(""FlaggedControlsValue"");
      if (value > maxValue){
          // Value higher than allowed when receiving focus. 
Let's flag this.
          this.SetProperty (""FlagHigher"", true);
        }
      }
    }
    return (true);
  });" 

PHYEVENT_DRILLDOWN_LIST

Siebel Open UI triggers the PHYEVENT_DRILLDOWN_LIST event when the user clicks a drilldown link in a list applet. You can use it to call custom code when the user clicks a drilldown link. You can use this event with the following objects:

  • rowIndex. Contains the index of the current row. It uses 1 as the index for the first row.

  • colName. Contains the name of the column where the drilldown link resides.

The following code is an example usage of this event:

"this.AttachEventHandler(siebConsts.get(""PHYEVENT_DRILLD
OWN_LIST""),
  function (colName, rowIndex) {
  if (name === ""Type"")){
    varmaxOptyArray = this.Get(""mO"");
    if (maxOptyArray[rowIndex] >         
this.Get(""HigVal"")){
        alert (""Fix opportunity value before drilldown."");
        return (false);
      }
    }
    return (true);
  });"

PHYEVENT_VSCROLL_LIST

Siebel Open UI triggers the PHYEVENT_VSCROLL_LIST event when the user clicks the next page or previous page control in a list applet or tile applet. You can use it to call custom code when the user clicks one of these controls. Siebel Open UI does not trigger this event if the user uses a keyboard shortcut to do the pagination. You can use this event with the following objects:

  • direction. Includes one the following values that describes the type of pagination that the user attempted:

    • PAG_NEXT_RECORD. (Prior to Siebel Innovation Pack 2017 only) User paginated to the next record.

    • PAG_PREV_RECORD. (Prior to Siebel Innovation Pack 2017 only) User paginated to the previous record.

    • PAG_NEXT_SET. Displays the next record in the set.

    • PAG_PREV_SET. Displays the previous record in the set.

    • PAG_FIRST_SET. Displays the first record in the set.

    • PAG_LAST_SET. Displays the last record in the set.

    • PAG_SCROLL_UP. User scrolled up.

    • PAG_SCROLL_DN. User scrolled down.

The following code is an example usage of this event:

"this.AttachEventHandler(siebConsts.get(""PHYEVENT_VSCROL
L_LIST""),
  function (direction) {
  if (direction 
===SiebelApp.Contants.Get(""PAG_NEXT_SET"")){
      alert (""Jump record by record. Not sets."");
      return (false);
    }
    return (true);
  });"

PHYEVENT_SORT_LIST

Siebel Open UI triggers the PHYEVENT_SORT_LIST event when the user sorts a list column. You can use it to call custom code when the user does this sort. You can use this event with the following objects:

  • colName. Identifies the name of the column that the user is sorting.

  • direction. Identifies one of the following directions:

    • SORT_ASCENDING. The user is sorting the column in ascending order.

    • SORT_DESCENDING. The user is sorting the column in descending order.

The following code is an example usage of this event:

"this.AttachEventHandler(siebConsts.get(""PHYEVENT_SORT_L
IST""),
  function (colName, direction) {
  if (colName === ""Type""){
    if (direction === 
SiebelApp.Constants.Get(""SORT_ASCENDING"")){
        alert (""You cannot sort this column."");
        return (false);
      }
    }
    return (true);
  });"

PHYEVENT_HIER_EXPAND

Siebel Open UI triggers the PHYEVENT_HIER_EXPAND event when the user expands a row in a hierarchal list applet. You can use it to call custom code when the user does this expansion. Siebel Open UI uses this event only with hierarchal list applets. You can use this event with the following objects:

  • rowNum. Contains the row number that the user is expanding. It uses 0 as the number for the first row.

The following code is an example usage of this event:

"this.AttachEventHandler(siebConsts.get(""PHYEVENT_HIER_E
XPAND""),
  function (rowNum) {
  if (rowNum === 0)){
    varhighValue = this.Get(""HighVal"");
    if (highValue < this.Get (""MinRangeForFlagged""){ 
        alert (""Sorry. Change the Range value to expand this row."");
        return (false);
      }
    }
    return (true);
  });"

PHYEVENT_HIER_COLLAPSE

Siebel Open UI triggers the PHYEVENT_HIER_COLLAPSE event when the user collapses a row in a hierarchal list applet. You can use it to call custom code when the user does this collapse. Siebel Open UI uses this event only with hierarchal list applets. You can use this event with the following objects:

  • rowNum. Contains the row number that the user is collapsing. It uses 0 as the number for the first row.

The following code is an example usage of this event:

"this.AttachEventHandler(siebConsts.get(""PHYEVENT_HIER_C
OLLAPSE""),
  function (rowNum) {
  if (rowNum === 2)){
    varhighValue = this.Get(""HighVal"");
    if (highValue < this.Get (""MinRangeForFlagged""){
        alert (""Sorry, change the Range to collapse this row."");
        return (false);
      }
    }
    return (true);
  });"

Languages That Siebel Open UI Supports

This topic lists the languages that Siebel Open UI supports. It supports the i18N internationalization standard. In most situations, it does not hard code strings, and it uses language independent values for each LOV (list of values) instead of translated values. For more information about how to customize Siebel Open UI to support multiple languages, see Displaying Control Labels in Different Languages.

Languages That Siebel Open UI Supports for Windows, AIX, Oracle Solaris, and HP-UX

The following table lists the languages That Siebel Open UI supports for Windows, AIX, Oracle Solaris, and HP-UX. The Lang column lists the language_code.

Table Languages That Siebel Open UI Supports for Windows, AIX, Oracle Solaris, and HP-UX

Lang Codepage Windows AIX Oracle Solaris HP-UX

ARA

1256

Arabic (Saudi Arabia)

AR_SA.UTF-8

ar_SA.UTF-8

ar_SA.

utf8

CHS

936

Chinese, Simplified

ZH_CN.UTF-8

zh_CN.UTF-8

zh_CN.utf8

CHT

950

Chinese, Traditional

ZH_TW.UTF-8

zh_TW.UTF-8

zh_TW.utf8

CSY

1250

Czech

CS_CZ.UTF-8

cs_CZ.UTF-8

univ.utf8

DAN

1252

Danish

DA_DK.UTF-8

da_DK.UTF-8

univ.utf8

DEU

1252

German, Standard

DE_DE.UTF-8

de_DE.UTF-8@euro

de_DE.utf8

ENU

1252

English, American

EN_US.UTF-8

en_US.UTF-8

univ.utf8

ESN

1252

Spanish, Modern

ES_ES.UTF-8

es_ES.UTF-8@euro

es_ES.utf8

FIN

1252

Finnish

FI_FI.UTF-8

fi_FI.UTF-8@euro

univ.utf8

FRA

1252

French, Standard

FR_FR.UTF-8

fr_FR.UTF-8@euro

fr_UR.utf8

HEB

1255

Hebrew

HE_IL.UTF-8

he_IL.UTF-8

univ.utf8

ITA

1252

Italian, Standard

IT_IT.UTF-8

it_IT.UTF-8@euro

it_IT.utf8

JPN

932

Japanese

JA_JP.UTF-8

ja_JP.UTF-8

ja_JP.utf8

KOR

949

Korean

KO_KR.UTF-8

ko_KR.UTF-8

ko_KR.utf8

NLD

1252

Dutch, Standard

NL_NL.UTF-8

nl_NL.UTF-8@euro

univ.utf8

PTB

1252

Portuguese, Brazilian

PT_BR.UTF-8

pt_BR.UTF-8

univ.utf8

PTG

1252

Portuguese, Standard

PT_PT.UTF-8

pt_PT.UTF-8@euro

univ.utf8

SVE

1252

Swedish

SV_SE.UTF-8

sv_SE.UTF-8

sv_SE.utf8

THA

874

Thai, Thailand

TH_TH.UTF-8

th_TH.UTF-8

th_TH.utf8

RUS

1251

Russian

RU_RU.UTF-8

ru_RU.UTF-8

ru_RU.utf8

TRK

1254

Turkish

TR_TR.UTF-8

tr_TR.UTF-8

tr_TR.utf8

PLK

1250

Polish

PL_PL.UTF-8

pl_PL.UTF-8

pl_PL.utf8

Languages That Siebel Open UI Supports for Linux RH, Linux SuSe, Enterprise Linux, and Java Locale Code

The following table lists the languages that Siebel Open UI supports for Linux RH, Linux SuSe, Enterprise Linux, and Java Locale Code. The Lang column lists the language_code.

Table Languages That Siebel Open UI Supports for Linux RH, Linux SuSe, Enterprise Linux, and Java Locale Code

Lang Codepage Linux RH Linux SuSe Enterprise Linux Java Locale Code

CHS

936

zh_CN.utf8

zh_CN.utf8

zh_CN.utf8

zh_CN

CHT

950

zh_TW.utf8

zh_TW.utf8

zh_TW.utf8

zh_TW

CSY

1250

cs_CZ.utf8

cs_CZ.utf8

cs_CZ.utf8

cs_CZ

DAN

1252

da_DK.utf8

da_DK.utf8

da_DK.utf8

da_DK

DEU

1252

de_DE.utf8

de_DE.utf8

de_DE.utf8

de_DE

ENU

1252

en_US.utf8

en_US.utf8

en_US.utf8

en_US

ESN

1252

es_ES.utf8

es_ES.utf8

es_ES.utf8

es_ES

FIN

1252

fi_FI.utf8

fi_FI.utf8

fi_FI.utf8

fi_FI

FRA

1252

fr_FR.utf8

fr_FR.utf8

fr_FR.utf8

fr_FR

ITA

1252

it_IT.utf8

it_IT.utf8

it_IT.utf8

it_IT

JPN

932

ja_JP.utf8

ja_JP.utf8

ja_JP.utf8

ja_JP

KOR

949

ko_KR.utf8

ko_KR.utf8

ko_KR.utf8

ko_KR

NLD

1252

nl_NL.utf8

nl_NL.utf8

nl_NL.utf8

nl_NL

PTB

1252

pt_BR.utf8

pt_BR.utf8

pt_BR.utf8

pt_BR

PTG

1252

pt_PT.utf8

pt_PT.utf8

pt_PT.utf8

pt_PT

SVE

1252

sv_SE.utf8

sv_SE.utf8

sv_SE.utf8

sv_SE

THA

874

th_TH.utf8

th_TH.utf8

th_TH.utf8

th_TH

RUS

1251

ru_RU.utf8

ru_RU.utf8

ru_RU.utf8

ru_RU

TRK

1254

tr_TR.utf8

tr_TR.utf8

tr_TR.utf8

tr_TR

POL

1250

pl_PL.utf8

pl_PL.utf8

pl_PL.utf8

pl_PL

Screens and Views That Siebel Mobile Uses

Screens and Views That Siebel Consumer Goods Uses

The following table lists the predefined screens and views that Siebel Mobile uses for Siebel Consumer Goods.

Table Screens and Views That Siebel Consumer Goods Uses

Screen View Name in Client View Name in Siebel Tools

Accounts

Addresses

CG Account Addresses View - Mobile

Calls

CG Account Calls Views - Mobile

Contacts

CG Account Contacts View - Mobile

Accounts

CG Account List View - Mobile

Notes

CG Account Notes View - Mobile

Orders

CG Account Orders View - Mobile

Retail Audits

CG Account Product Audits View - Mobile

Product Distribution

CG Account Products View - Mobile

Contacts

Addresses

CG Contact Addresses View - Mobile

Best Call Time

CG Contact Best Call Times View - Mobile

Contacts

CG Contact List View - Mobile

Routes

Route Accounts

CG Routes Accounts View - Mobile

Routes

CG Routes List View - Mobile

Calls

Assessment

CG Call Account Assessment View - Mobile

Notes

CG Call Account Notes View - Mobile

Merchandising Audits

CG Call Merchandising Audits View - Mobile

Orders

CG Call Orders View - Mobile

Retail Audits

CG Call Retail Audit List View - Mobile

Calls

CG Outlet Visit Activities List View - Mobile

Call Items

CG Visit Call Items List View - Mobile

Orders

Orders

CG Order List View - Mobile

Returns

Returns

CG Return Order List View - Mobile

Screens and Views That Siebel Sales Uses

The following table lists the predefined screens and views that Siebel Mobile uses for Siebel Sales.

Table Screens and Views That Siebel Sales Uses

Screen View Name in Client View Name in Siebel Tools

Accounts

Accounts

SHCE Account List View - Mobile

Account Contacts

SHCE Account Contacts View - Mobile

Account Opportunities

SHCE Account Opportunity View - Mobile

Account Address

SHCE Account Address View - Mobile

Account Activities

SHCE Account Activities View - Mobile

Account Team

SHCE Account Team View - Mobile

Contacts

Contacts

SHCE Sales Contact List View - Mobile

Contact Opportunities

SHCE Sales Contact Opportunities View - Mobile

Contact Team

SHCE Contact Team View - Mobile

Contact Addresses

SHCE Contact Address View - Mobile

Leads

Leads

SHCE Sales Lead List View - Mobile

Lead Opportunities

SHCE Sales Lead Opportunities View - Mobile

Opportunities

Opportunities

SHCE Opportunities List View - Mobile

Opportunity Contacts

SHCE Sales Opportunities Contacts View - Mobile

Opportunity Products

SHCE Sales Opportunities Products View - Mobile

Opportunity Quotes

SHCE Sales Opportunities Quotes View - Mobile

Opportunity Activities

SHCE Sales Opportunities Activities View - Mobile

Opportunity Team

SHCE Sales Opportunities Opportunity Team View - Mobile

Quotes

Quotes

SHCE Quote List View - Mobile

Quote Items

SHCE Quote QuoteItem View - Mobile

Quote Orders

SHCE Quote Order View - Mobile

Quote Team

SHCE Quote Team View - Mobile

Orders

Orders

SHCE Sales Orders List View - Mobile

Order Items

SHCE Sales Order line Item View - Mobile

Activities

Activities

SHCE Activity List View - Mobile

Activity Contact

SHCE Sales Activity Contact Form View - Mobile

Activity Employee

SHCE Sales Activity Employee Form View - Mobile

Screens and Views That Siebel Service Uses

The following table lists the predefined screens and views that Siebel Mobile uses for Siebel Service.

Table Screens and Views That Siebel Service Uses

Screen View Name in Client View Name in Siebel Tools

Activities

Service Activities

SHCE Service Activity Home Page View - Mobile

Activity Contacts

SHCE Service Activity Contact Form View - Mobile

Activity Recommended Part

SHCE Service FS Activity Recommended Parts Tools - Mobile

Activity Steps

SHCE Service Activity FS Steps View - Mobile

Activity Instructions

SHCE Service Activity FS Instructions List view - Mobile

Activity Part Tracker

SHCE Service FS Activity Part Movements View - Mobile

Activity Time Tracker

SHCE Service Activity Time View - Mobile

Activity Expense Tracker

SHCE Service Activity FS Expense View - Mobile

Activity Invoices

SHCE Service FS Invoice - Auto Invoice View - Mobile

Service Requests

Service Requests

SHCE Service Service Request View - Mobile

Service Request Orders

SHCE Service SR Orders View - Mobile

Service Request Activities

SHCE Service SR Activity View - Mobile

Service Request Invoices

SHCE Service SR Invoices View - Mobile

Accounts

Accounts

SHCE Service Accounts View - Mobile

Account Contacts

SHCE Service Account Contacts View - Mobile

Account Service Requests

SHCE Service Account SRs View - Mobile

Account Assets

SHCE Service Account Assets View - Mobile

Account Entitlements

SHCE Service Account Entitlements View - Mobile

Browser

Part Browser

SHCE Service My Part Browser View - Mobile

Part Browser Availability

SHCE Service Part Browser Availability View - Mobile

Part Browser Substitutes

SHCE Service Part Browser Substitute View - Mobile

Orders

Orders

SHCE Service Orders List View - Mobile

Order Line Items

SHCE Service Order line Item View - Mobile

Invoices

Invoices

SHCE Service Invoice List View - Mobile

Invoice Line Items

SHCE Service Invoice line Item View - Mobile

Assets

Assets

SHCE Service Asset List View - Mobile

Asset Measurements

SHCE Service Asset Measurement View - Mobile

Asset Warranty

SHCE Service Asset Warranty View - Mobile

Asset Entitlements

SHCE Service Asset Entitlements View - Mobile

Asset Readings

SHCE Service Asset Reading View - Mobile

Screens and Views That Siebel Pharma Uses

The following table lists the predefined screens and views that Siebel Mobile uses for Siebel Pharma.

Table Screens and Views That Siebel Pharma Uses

Screen View Name in Client View Name in Siebel Tools

Accounts

Addresses

Pharma Account Addresses View - Mobile

Affiliations

Pharma Account Affiliations View - Mobile

Calls

Pharma Account Calls View - Mobile

Contacts

Pharma Account Contact View - Mobile

Accounts

Pharma Account List View - Mobile

Relationships

Pharma Account Relationships View - Mobile

Contacts

Addresses

Pharma Contact Address View - Mobile

Affiliations

Pharma Contact Affiliations View - Mobile

Best Time

Pharma Contact Best Contact Times View - Mobile

Calls

Pharma Contact Call View - Mobile

Contacts

Pharma Contact List View - Mobile

Relationships

Pharma Contact Relationships View - Mobile

State Licenses

Pharma Contact State Licenses View - Mobile

Calls

Attendees

SIS HH Pharma Account Call Attendee View - Mobile

Product Details

SIS HH Pharma Professional Call Products Detailed View - Mobile

Promotional Items Dropped

SIS HH Pharma Professional Promotional Items View - Mobile

Samples Dropped

SIS HH Pharma Professional Samples Dropped View - Mobile

Calls

LS Pharma Professional Call Execute View - Mobile

(No Title)

LS Pharma Call Signature Capture View - Mobile

Validation Results

LS Pharma Call Validation Results View - Mobile

Controls That Siebel Open UI Uses

This topic describes the controls that Siebel Open UI uses.

Predefined Controls That Siebel Open UI Uses

The following table describes the predefined controls that Siebel Open UI uses.

Table Predefined Controls That Siebel Open UI Uses

Control Name Description Where Defined

Currency

Sets the currency.

controlbuilder.js

DetailPopup

Displays more information for a field.

EffDat

Sets the effective date.

Mvg

Chooses more than one value.

PhoneCtrl

Enters a phone number.

Pick

Chooses a value.

SelectCtrl

Makes a selection.

List UI

Displays records in a list.

jqgridrenderer.js

btnControl

Displays a button.

phyrenderer.js

chartControl

Displays a chart.

checkBoxCtrl

Displays a check box.

comboControl

Displays a combobox.

fileControl

Uploads files.

imageControl

Displays an image.

ink

Captures a signature in a mobile environment.

label

Displays a label.

link

Displays a link that navigates to another view.

mailToControl

Sends an email message.

plainText

Displays the contents of a field that is not editable, is not navigable, or does not possess a state. For example, a label.

radioButton

Displays a radio button.

text

Displays text.

textArea

Displays a text area.

urlControl

Displays an external URL. For example, http://www.google.com.

Map UI

Displays a map.

siebelmaprenderer.js

Tiles UI

Displays records in a tile.

Tilescrollcontainer.js

Other Controls That Siebel Open UI Uses

The following table describes other controls that Siebel Open UI uses. It uses all these controls in the controlbuilder.js file in addition to the files that the Where Defined column lists.

Table Other Controls That Siebel Open UI Uses

Control Name Description Where Defined

DatePick

Sets the date.

datepicker-ext.js

DateTimePick

Sets the date and time.

jquery-ui-timepicker-addon.js

Calculator

Displays a calculator.

jquery.calculator.zip

RTCeditor

Enters rich text.

ckeditor_3.6.3.zip

ckeditor-custom.zip

FileUploader

Uploads files.

jquery.fileupload.js

Browser Script Compatibility

Siebel Open UI supports your existing browser script. However, it is recommended that you customize a presentation model instead of using browser script. It is recommended that you gradually move any logic that you implement through your existing browser script to the presentation model.

You can write a browser script in JavaScript. This script can interact with the Document Object Model (DOM) and with the Siebel Object Model that is available in the Web browser through a shadow object. You can script the behavior of Siebel events and the browser events that the DOM exposes.

Siebel Open UI uses a JavaScript environment that allows you to implement browser scripting. This JavaScript API can dynamically refresh page content and instantly commit customization modifications. If your implementation currently uses browser scripting, then you can refactor JavaScript to move from your existing employee application to Siebel Open UI. Refactoring is the process of modifying the internal structure of existing code without modifying the external behavior of this code. For more information about this JavaScript API, see Application Programming Interface.

Sequence That Siebel Open UI with Custom Browser Script

The following pseudocode describes the sequence that Siebel Open UI uses if your deployment includes custom browser script:

PR calls a PM method or event    
PM method or event calls an applet proxy method    
applet proxy method calls Applet_PreInvokeMethod on browser script     
applet proxy uses Call-Server to run applet method on Siebel Server    
PM runs Attach Pre Proxy binding for this applet method    
applet proxy calls Applet_InvokeMethod that resides in browser script    
PM runs Attach Post Proxy binding for this applet method    
applet proxy method ends    
PM method or event ends    
PR call ends 

where:

  • PR is the physical renderer

  • PM is the presentation model

For example, the following pseudocode describes the sequence that Siebel Open UI uses if the user clicks New in an applet, and if your deployment includes custom browser script that uses a method named NewRecord:

PR calss PM.OnControlEvent    
PM.OnControlEvent calls Applet.InvokeMethod    
Applet.InvokeMethod calls BrowserScript.Applet_PreInvokeMethod    
Applet.InvokeMethod calls Siebel Server to run NewRecord method on applet    
PM calls PM.AttachPreProxyExecuteBinding for the NewRecord method    
Applet.InvokeMethod calls BrowserScript.Applet_InvokeMethod    
PM calls PM.AttachPostProxyExecuteBinding for the NewRecord method    
Applet.InvokeMethod ends    
PM.OnControlEvent ends    
PR call ends 

How Siebel Open UI Handles Custom Client Scripts

Siebel Open UI uses browser script through a JavaScript shadow object, which is a type of object that Siebel Open UI uses for client scripting. All other client objects include a corresponding shadow object, except for the PropertySet. For example, the JSSApplet object includes the JSSAppletShadow shadow object. Siebel Open UI exposes this shadow object to scripting. When Siebel Open UI prepares to display the applet, SWE determines whether or not a browser script is defined for this applet. If this script exists, then Siebel Open UI downloads the browser script file that contains the definition of the shadow object from the Siebel Server to the client.

For example, assume you write a browser script for an applet to handle the PreInvokeMethod event. At run-time, Siebel Open UI creates a JavaScript object that it derives from the JSSAppletShadow object. It runs the PreInvokeMethod event and the event handler of the shadow object before it calls the DoInvokeMethod event. Each shadow object includes a reference to the underlying object. The shadow object sends the call to this underlying object, if necessary. For more information about deriving values, see Deriving Presentation Models, Physical Renderers and Plug-in Wrappers.

How Siebel Open UI Creates Shadow Objects for Applications

Siebel Open UI creates an application shadow object with the following application object during application startup:

Application InvokeMethod    
......................    
bRet = this.*FirePreInvokeMethod*(methodName, inputPS);    
;return from here if the return value of the PreInvokeMethod is CancelOperation    
; continue to invokemethod if the return value is ContinueOperation    
......................    
this.DoInvokeMethod (methodName, args);    
this.*FireInvokeMethod*(methodName, inputPS); 

How Siebel Open UI Creates Shadow Objects for Business Objects

Siebel Open UI uses a business object shadow object only in other shadow objects, such as an application shadow object, applet shadow object, or business component shadow object.

How Siebel Open UI Creates Shadow Objects for Applets, Business

Siebel Open UI does the following to create a shadow object for an applet, business component, or business service:

  • Siebel Server. Siebel Open UI creates the ObjInfo (SWE_PROP_SHADOW) shadow when it encounters an object that includes a custom script that you write. The server gets the class name and the file name of the shadow from the Siebel Runtime Repository. It packages the class name and file name into the SWE_PROP_SHADOW, and then sends it to client.

  • Client. Siebel Open UI gets the class name and the file name from SWE_PROP_SHADOW, loads the script file, creates the shadow object with the retrieved class name, and then stores the shadow pointer in the applet object or the business component object.

The process is the same for a business service except Siebel Open UI uses the SWE_PST_SERVICE_SHADOWS shadow.

How Siebel Open UI Creates Shadow Objects for Controls

Siebel Open UI does the following to create a shadow object for a control:

  • Siebel Server. Siebel Open UI creates the ObjInfo (SWE_PROP_SHADOW) shadow object if it encounters a control that includes a script that you write. It gets the event name of the control from the Siebel Runtime Repository. It packages event names into the SWE_PST_SCRIPTS shadow, and then sends it to client.

  • Client. Siebel Open UI gets the list of control events from the SWE_PST_SCRIPTS shadow, and then calls these methods from the corresponding predefined methods.

Browser Script Object Types

You can use the following object types in browser script:

  • Application

  • Applet

  • Control

  • Business object

  • Business component

  • Business service property

Event Handlers You Can Use to Handle Predefined Events

The following table describes the event handlers that you can use in browser script to handle a predefined event for a Siebel object type.

Table Event Handlers You Can Use in Browser Script for a Siebel Object Type

Object Type Event Handler

Application

You can use the following event handlers:

  • Application_InvokeMethod

  • Application_PreInvokeMethod

Applet

You can use the following event handlers:

  • Applet_ChangeFieldValue

  • Applet_ChangeRecord

  • Applet_InvokeMetohd

  • Applet_PreInvokeMethod

  • Applet_Load

Business component

You can use the following event handler:

  • BusComp_PreSetFieldValue

Business service

You can use the following event handlers:

  • Service_InvokeMethod

  • Service_PreCanInvokeMethod

  • Service_PreInvokeMethod

Event Handlers You Can Use to Handle Predefined DOM Events

The following table describes the event handlers that you can use in browser script to handle a predefined DOM event for a Siebel control object type.

Table DOM Event Handlers You Can Use in Browser Script for a Siebel Object Type

Object Type Event Handler

Control in the Siebel Open UI client.

You can use the following event handlers:

  • OnBlur

  • OnFocus

Methods You Can Use in Browser Script

The following table describes the methods that you can use in a browser script for each Siebel object type that Oracle’s Siebel Open UI can use.

Table Methods You Can Use in Browser Script for Each Siebel Object Type

Object Type Method

Applet

You can use the following methods:

  • ActiveMode

  • BusComp

  • BusObject

  • FindControl

  • InvokeMethod

  • Name

  • ReInit

Application

You can use the following methods:

  • FindApplet

  • ActiveApplet

  • ActiveViewName

  • ActiveBusObject

  • ActiveBusComp

  • FindBusObject

  • GetProfileAttr

  • GetService

  • InvokeMethod

  • IsReady

  • Name

  • NewPropertySet

  • SWEAlert

  • ShowModalDialog

  • SeblTrace

Business Component

You can use the following methods:

  • BusObject

  • GetFieldValue

  • GetFormattedFieldValue

  • GetSearchExpr

  • GetSearchSpec

  • InvokeMethod

  • Name

  • SetFieldValue

  • SetFormattedFieldValue

  • WriteRecord

Business Object

You can use the following methods:

  • FirstBusComp

  • GetBusComp

  • Name

  • NextBusComp

Business Service

You can use the following methods:

  • InvokeMethod

  • Name

  • SetProperty

  • PropertyExists

  • RemoveProperty

  • GetProperty

  • GetFirstProperty

  • GetNextProperty

Control

You can use the following methods:

  • Applet

  • BusComp

  • GetValue

  • Name

  • SetValue

  • SetReadOnly

  • SetEnabled

  • SetVisible

  • SetProperty

  • GetLabelProperty

  • GetProperty

  • SetLabelProperty

Property Set

You can use the following methods:

  • AddChild

  • Copy

  • GetChild

  • GetChildCount

  • GetFirstProperty

  • GetNextProperty

  • GetProperty

  • GetPropertyCount

  • GetType

  • GetValue

  • InsertChildAt

  • PropertyExists

  • RemoveChild

  • RemoveProperty

  • Reset

  • SetProperty

  • SetType

  • SetValue