Your message has been sent.
This article has been saved to your account.
Go to my account
This article has been emailed to your Kindle.
Send this article
Many business requirements are very detailed and complex. For example, the end user community could demand that one field is updated automatically when another field has been changed. To solve this kind of requirement in Siebel CRM, developers can define so called user properties as an extension to the standard properties of object types such as business components, fields or applets. This important configuration option allows developers to define specialized application logic while staying within safe declarative boundaries. In this article by Alexander Hansal, author of Oracle Siebel CRM 8 Developer's Handbook, we will discuss the following topics:
- Understanding user properties
- Business component and field user properties
- Applet, control, and list column user properties
- Viewing user properties
|Read more about this book|
(For more resources on this subject, see here.)
Understanding user properties
User properties are child object types which are available for the following object types in the Siebel Repository:
- Applet, Control, List Column
- Business Service
- Business Component, Field
- Integration Object, Integration Component, Integration Component Field
To view the User Property (or User Prop as it is sometimes abbreviated) object type we typically have to modify the list of displayed types for the Object Explorer window. This can be achieved by selecting the Options command in the View menu. In the Object Explorer tab of the Development Tools Options dialog, we can select the object types for display as shown in the following screenshot:
In the preceding example, the Business Component User Prop type is enabled for display.
After confirming the changes in the Development Tools Options dialog by clicking the OK button, we can for example navigate to the Account business component and review its existing user properties by selecting the Business Component User Prop type in the Object Explorer.
The following screenshot shows the list of user properties for the Account business component:
The screenshot also shows the standard Properties window on the right. This is to illustrate that a list of user properties, which mainly define a Name/Value pair, can be simply understood as an extension to an object type's usual properties which are accessible by means of the Properties window and represent Name/Value pairs as well.Because an additional user property is just a new record in the Siebel Repository, the list of user properties for a given parent record is theoretically infinite. This allows developers to define a rich set of business logic as a simple list of Name/Value pairs instead of having to write program code.The Name property of a user property definition must use a reserved name - and optional sequence number - as defined by Oracle engineering. The Value property must also follow the syntax defined for the special purpose of the user property.
Because an additional user property is just a new record in the Siebel Repository, the list of user properties for a given parent record is theoretically infinite. This allows developers to define a rich set of business logic as a simple list of Name/Value pairs instead of having to write program code.
The Name property of a user property definition must use a reserved name—and optional sequence number—as defined by Oracle engineering. The Value property must also follow the syntax defined for the special purpose of the user property.
Did you know?
The list of available names for a user property depends on the object type (for example Business Component) and the C++ class associated with the object definition. For example, the business component Account is associated with the CSSBCAccountSIS class which defines a different range of available user property names than other classes.
Many user property names are officially documented in the Siebel Developer's Reference guide in the Siebel Bookshelf. We can find the guide online at the following URL:
The user property names described in this guide are intended for use by custom developers. Any other user property which we may find in the Siebel Repository but which is not officially documented should be considered an internal user property of Oracle engineering. Because the internal user properties could change in a future version of Siebel CRM in both syntax and behavior without prior notice, it is highly recommended to use only user properties which are documented by Oracle.
Another way to find out which user property names are made available by Oracle to customers is to click the dropdown icon in the Name property of a user property record. This opens the user property pick list which displays a wide range of officially documented user properties along with a description text.
Multi-instance user properties
Some user properties can be instantiated more than once. If this is the case a sequence number is used to generate a distinguished name. For example, the On Field Update Set user property used on business components uses a naming convention as displayed in the following screenshot:
In the previous example, we can see four instances of the On Field Update Set user property distinguished by a sequential numeric suffix (1 to 4).
Because it is very likely that Oracle engineers and custom developers add additional instances of the same user property while working on the next release, Oracle provides a customer allowance gap of nine instances for the next sequence number. In the previous example, a custom developer could continue the set of On Field Update Set user properties with a suffix of 13. By doing so, the custom developer will most likely avoid conflicts during an upgrade to a newer version of Siebel CRM. The Oracle engineer would continue with a suffix of five and upgrade conflicts will only occur when Oracle defines more than eight additional instances. The gap of nine also ensures that the sequence of multi-instance user properties is still functional when one or more of the user property records are marked as inactive.
In the following sections, we will describe the most important user properties for the business and user interface layer. In addition, we will examine case study scenarios to identify best practices for using user properties to define specialized behavior of Siebel CRM applications.
Business component and field user properties
On the business layer of the Siebel Repository, user properties are widely used to control specialized behavior of business components and fields. The following table describes the most important user properties on the business component level. The Multiple Instances column contains Yes for all user properties which can be instantiated more than once per parent object:
Source: Siebel Developer's Reference, Version 8.1:
eBook Price: €32.99
Book Price: €53.99
|Read more about this book|
(For more resources on this subject, see here.)
Named Method user property
The Named Method user property can be specified on the business component and applet level. It is of major importance for implementing automated event flows in Siebel CRM applications.
For example, we can expose a button on a sales order form applet which allows the end user to send the current sales order to an external system. The complex processing of the order data and the invocation of the EAI interface are implemented as a Siebel workflow process. The invocation of the workflow process can be implemented with the Named Method user property on the business component level thus providing business logic support for all applets which are based on the business component.
The syntax for the Named Method user property on the business component level is as follows:
- Name: Named Method N
- Value: "Method Name", "Action Type", "Object", "Action Parameters"
The key words in the Value field must be enclosed in double quotes and must be separated by a comma followed by a space. In the following section, we will discuss the key words in greater detail.
- N: An integer number which defines the sequence in case there are multiple definitions for the Named Method user property. As indicated above, Siebel CRM does not allow sequence gaps greater than nine. In addition, only two-digit sequence numbers are allowed. So the maximum number of instances for a single user property name is 99.
- Method Name:The name of the method. When the method is invoked the action defined by the following parameters is executed.
- Object: Depending on the action type, the object can be a business component field or a business component against which the action is executed.
- Action Parameters:Except for the INVOKESVC action type (described as follows), only one action parameter is required. The action parameter is typically a value or an expression, in Siebel Query Language, which returns the value for the action.
- Action Type:The Siebel CRM framework provides three major types of actions, SET, INVOKE, and INVOKESVC, which are described in the following table:
Case Study Example: Using the On Field Update Set user property
One of the controls of the AHA Customer Profile Form Applet (Download code) should display the timestamp when the customer's status has been last updated. We have already placed the control, which maps to the Account Status Date field in the Account business component, on the applet but it is not yet functional.
The following procedure describes how we can create a new instance of a business component user property named On Field Update Set in the Account business component. This user property will enforce an update with the current timestamp on the Account Status Date field when the Account Status field has been updated.
- If necessary, configure the Object Explorer window so that the Business Component User Prop type is exposed.
- Navigate to the Account business component.
- Ensure that you have write access to the account business component.
- In the Object Explorer, navigate to the Business Component User Prop type.
- Query for all user properties that have names starting with On Field Update Se.
- Copy the existing user property named On Field Update Set 2.
This user property has a value of "Managers Review", "Last Manager Review Date",Timestamp() in the Siebel 8.1.1 SIA repository.
- Rename the copy to On Field Update Set 14
The highest sequence number of active On Field Update Set user properties is 5, so we can add the customer allowance gap of nine to it. If the sequence numbers in your working repository should be different for any reason, please adjust the numbering accordingly.
- Modify the value of the new user property as follows:
"Account Status", "Account Status Date", Timestamp()
Ensure that each comma is followed by a space.
- Set the Comments to Created for AHA prototype.
- Step off the record to save it.
- Navigate to the Account Status Date field and set the following properties:
- Type: DTYPE_DATETIME
- Comments: Changed Type from DTYPE_DATE to DTYPE_DATETIME for AHA prototype
- Compile the Account business component
To test the changes, we can launch the Siebel Developer Web Client and navigate to the Process Start Page view in the Accounts screen. It may be necessary to create a test customer account.
We can then continue the test cycle by modifying the customer's Status field and using the Tab key to move to the next control. We should be able to observe that the Last Status Update control now displays the current date and time.
The following screenshot shows the Last Status Update field after changing the customer's status to Contract Pending:
A Siebel Tools archive file (Account BC.sif) is provided with this articles's code files (Download code). The file represents the Account business component after the changes in the preceding section.
Field user properties
The following table describes prominent user properties which we can use to control the behavior of individual business component fields:
Source: Siebel Developer's Reference, Version 8.1
Applet, Control and List Column user properties
The Applet object type provides user properties on the applet level itself as well as on the control and list column level (for list applets only).
The following table describes some of the most important applet user properties:
Control user properties
The most notable user properties for Control objects are related to navigation events. The Url user property must be added to a button control which invokes the GotoUrl method and specifies the target URL. The View user property is a child object definition of a button control which invokes the GotoView method and defines the view to which the Siebel application navigates when the button is clicked.
List Column user properties
The List Column object type supports the DisableSort user property which allows controlling the presence or absence of sorting functionality for a specific list column rather than for all list columns in potentially many applets (when defined on the field level).
View user properties
The only officially documented user property for the View object type is DefaultAppletFocus. The value of this user property is the name of one of the view's applets. The applet will have focus when the view is loaded.
User properties are a powerful resource for defining special application behavior and business logic. They are provided as an alternative to writing custom script code by Oracle engineering.
Because user properties are often limited to certain classes, in case of business components and applets, their functionality is not always easy to understand.
In this article, we introduced the most important user properties for business components, fields, applets, controls, list columns, and views.
- Oracle Siebel CRM 8: Configuring Navigation [Article]
- Planning and Preparing the Oracle Siebel CRM Installation [Article]
- Oracle Siebel CRM 8 Installation and Management [Article]
- Managing User Accounts in Oracle Siebel CRM 8 [Article]
- Using Oracle Service Bus Console [Article]
eBook Price: €32.99
Book Price: €53.99
About the Author :
Alexander Hansal has worked as an IT professional in small, medium, and global corporations. Since 2001, Alexander works as a technical instructor and consultant for Siebel CRM and Oracle Business Intelligence in Europe. He enjoys teaching, and shares his knowledge and expertise in his classes at Oracle University and in his weblog, http://siebel-essentials.blogspot.com/