5 ways to make a field read-only in Siebel

Siebel is what it is because of the multiple ways in which you can achieve a given task. As I never fail to mention, this can be a boon or a bane depending on the developer carrying out the configuration. A case in point – there are multiple ways to make a field read-only in the application.


1. Set the Read-Only flag

Sorry, couldn’t resist this. All you have to do please set the read-only property against the field to true. Once set the field will become read-only for ever – for your users as well as for the back-end routines.

read-only field in Siebel tools

You could also set the flag at the applicable so that the field is not editable for a typical user, but can continue to be updated from backend.


2. “Field Read Only Field” and “Read Only” user properties

These two user properties make a field conditionally read-only. They should easily be one of the most used user properties in typical configuration.

Field read only field user property

“Field Read Only Field” is a business component user property. Syntax is simple enough –

“Read Only” Is used at the field user property level, and is less common than its BusComp counterpart.

Although these user properties behave similarly, you can provide design guidance on when to use what based on a thumb rule. Use field level user prop when there are <=2 dependent fields. Use BusComp level for the rest.


3. Parent Read Only Field

Conditionally make the field read-only depending on a field in the parent BC. You can either specify the BC by name, or keep it generic.

The parent field must evaluate to Y/N or TRUE/FALSE.

Another variation of this property-

conditional read-only depending on parent BC field

This is similar to the description provided earlier, except that you specify the business component within value. The field value from the parent/grandparent has to be available to drive the expected behaviour.

Set “Link specification” to TRUE on the parent (or grandparent) BC field so that the value is available when the child instance is active.


4. Aspect BC Read Only

Of course you can make the entire PC read-only to prevent editing the field. You can either check the read-only flag against the BC, or use user properties like “BC Read Only Field”. This is fairly simple to understand and debug, but people do ignore the Aspect user property that can have the same end result.

You can make the entire BC and all fields read-only using Aspect user properties. Aspect is a pretty nifty feature where you can drive to conditional read-only behaviour based on the active UI.

aspect read-only

You can set any value against the aspect property, and set the same value in the applet.

You can also make the child entities read-only through related user props through “Aspect Child BC ReadOnly”.


5. Conditionally allow field updates

One of the design decisions is whether to inform user why exactly the system does not allow field updates at any given time. This is similar to the decision where you choose to keep a button disabled, or show an error message on click. Making a field read-only conditionally works if the driving factors are straightforward to understand. Else, you’re better of having an editable field with logic to conditionally allow updates.

The logic to determine whether field is updatable can be through a runtime event, workflow, client/server business service, or script in the applet/BC.


Know of any other ways to make a field read-only? Comment and let me know 🙂

Leave a Reply

2 Comments on "5 ways to make a field read-only in Siebel"

newest oldest most voted
Notify of
Cini Varghese
Hi Prashant, it’s great to see this wonderful post. I would like to add few more options to the above list:- 1. Applet level – No Insert, No Update properties and Control/Column level RO flag. 2. State Model – No Update property: This is least known but highly useful property when one wants to make the entire parent BC and its child BCs RO; except for a single parent field. Eg: When Account Status = Closed, all Account fields except Status should be RO and also all its child entities. Setting the No Update property in State Model for the… Read more »