Get a back-door when making fields read-only

Get a back-door when making fields read-only

There are several ways to make a field read-only.

In fact I had written about the glorious ways to make a field read-only in Siebel .

While you can apply any method you like as long as they work (and, they do work), developers often forget the fact that “a back door is needed in more ways than one”.

  • Users can mistakenly update a field and make the entire field read-only
  • You may start getting support requests to change one or more fields on read-only records since the “TPS reports” are now showing correct data (click here for a laugh if you don’t know what is TPS )
  • Some developer was testing something in production, and the world came crashing down since he pressed Ctrl+S (sorry, no references or jokes. You should know Ctrl+S, else you are wasting time here)

Typically you try to avoid read-only fields, but play around with a few alternative methods.

1. Use read-only at the UI level

Just flag the read-only flag against the Applet control or List Column. You could make the entire applet read only if you are in a mood to do something dangerous. Well, there is no “read only” flag at the applet level - unfortunately. You would have to check the “No Update” flag.

read only at applet, control, or list column level in siebel

2. Use conditional read-only user property in Business Components or Fields

At the BC level, use the following user property.

Name: Field Read Only Field: [Target Field]
Value: [Field name that drives read-only behaviour]

Worst case you can make the field read-only for every condition by just providing an expression that evaluates to TRUE (e.g. “1=1”, or a simple TRUE!).

You can then provide the back door for sneaky updates using Admin Mode view. Conditional read-only properties do not work in views that are enabled in “Admin Mode”.

admin mode view to override read only fields

This is one of the popular ways of enabling updates on read only fields for administrators. You can typically find them in the Data Administration views.

3. Use Aspect user properties

Set Aspect at the applet level, and use Aspect user property to manipulate read-only behaviour at the BC level.

Name: Aspect BC Read Only
Value: [Aspect value]

aspect read-only

What if mistakes are committed in the past?

If you have already made the field read-only, and desperately struggling to find your way out, help is here -

Use Alternate Business Components

Find a different BC on the same table. Get hold of the relevant field, and start updating it via any available UI. If no UI is available, create a client business service, or a simple workflow to read from file and update the given field.

Use Client Business Service

The client business service is useful when you have a conditional read-only field.

You could simply say -

[BusComp].InvokeMethod("SetAdminMode", TRUE);

SetAdminMode in script has saved me in the past.

Use EIM

Enterprise Integration Manager enables batch integration. You could write a quick script to update a field and easily bypass the business layer read-0nly specification.

Finally, all these are just work around solutions. You would of course queue this as a change request for a future release.

Tags :
    Comments powered by Disqus

    Related Posts

    New Javascript Certification by Salesforce

    New Javascript Certification by Salesforce

    Salesforce.com does a good job of defining certification paths and encouraging people to become certified.

    Read More
    Small data - Why does it not make sense?

    Small data - Why does it not make sense?

    The world loves its terminologies and nomenclature. IT and CRM are no exception.

    Read More

    Salesforce API Example Collection

    If you always wanted to learn salesforce.com APIs and what you could do with them, but too afraid to ask.

    Read More