天天看點

Workaround for LOV on Primary Key Attribute

 There is a problem with LOV component, when it is defined on Primary Key attribute - registered Bug #8275169. Until problem will be fixed, workaround can be as following - to define second dummy transient attribute for Primary Key attribute and use it on the page. However, during commit - in doDML method on Entity to substitute real attribute value with value from transient attribute.

For example, Entity with Primary Key attribute DepartmentId:

Workaround for LOV on Primary Key Attribute

I have defined LOV for this attribute in VO and on runtime trying to use LOV:

Workaround for LOV on Primary Key Attribute

However unsuccessfully, error is generated:

Workaround for LOV on Primary Key Attribute

You can download sample application -  LOVPrimaryKey.zip , where described workaround is implemented.

To give you more light about workaround, I will explain it in detail.

First, Primary Key attributes always are with Mandatory validation rule, however I removed this rule from DepartmentID and declared it for my transient attribute DepartmentId_Dummy. It is done in order to remove unnecessary check, since we are creating mirror attribute:

Workaround for LOV on Primary Key Attribute

In getter method for transient attribute I need to return real attribute value during first load in order to display not blank values but correct ones:

Workaround for LOV on Primary Key Attribute

In overridden doDML method value from transient attribute is copied back to real attribute:

Workaround for LOV on Primary Key Attribute

DepartmentId attribute Display Hint is set to Hide - this means will not be visible in ViewController:

Workaround for LOV on Primary Key Attribute

Transient attribute will be visible with user friendly label:

Workaround for LOV on Primary Key Attribute

When developer will drag and drop Data Control on the page, wizard will not list original DepartmentId attribute, because it was set as Hide:

Workaround for LOV on Primary Key Attribute

Now LOV will work, however I strongly believe this bug will be fixed in next build and there will be no need to apply this workaround !

URL: http://andrejusb.blogspot.jp/2009/02/workaround-for-lov-on-primary-key.html

繼續閱讀