Groovy在ADF BC中的常見用法之一

2021-06-23 07:43:47 字數 1732 閱讀 4947

開發執行環境:jdeveloper 11.1.2.4

1. 設定eo或vo的attribute值

(1)在employees eo上增加乙個attribute:annualsalary,expression: (salary != null ? salary : 0 ) * 12。

(2)如果需要引用entityimpl類中的自定義方法,需要加字首:adf.object。

比如:adf.object.getdefaultsalaryforgrade()。

這裡,adf.object指向的是當前entityimpl。

2. 定義在eo的attribute上的驗證規則

(1)在employees eo的salary attribute增加乙個驗證規則:

if (jobid == "sa_rep") else

return true

在驗證規則中reference乙個attribute時,attribute-level的驗證規則首先被觸發,驗證該attribute的newvalue值。newvalue是使用者輸入後改變的值,oldvalue是改變之前的值。

(2)在employees eo的salary attribute增加另乙個驗證規則,其中呼叫了entityimpl類中的自定義方法:getmaxsalaryforgrade。

if (jobid == "sa_man") else

return true

注意,reference方法前要加字首「source」。

3. 訪問entityimpl類的自有方法

(1)override create方法

/*** add attribute defaulting logic in this method.

* @param attributelist list of attribute names/values to initialize the row */

protected void create(attributelist attributelist)

這樣修改後,employeeid的值將從sequence中獲取。

(2)如果你不想override create方法,也可以直接使用groovy表示式來獲取sequence的下乙個值。

設定employeeid的expression:(new oracle.jbo.server.sequenceimpl("employees_seq",adf.object.getdbtransaction())).getsequencenumber()

注意,這裡必須寫全類sequenceimpl的路徑名。

(3)如果你覺得(2)的方式有些不直觀,可以在entityimpl中定義乙個help方法。

public oracle.jbo.domain.number nextval(string sequencename)

然後,設定employeeid的expression:adf.object.nextval("employees_seq")。

4. 訪問hints屬性

(1)如果想訪問lastname的label屬性,可以這樣寫:adf.object.hints.lastname.label。

(2)如果在error message中想訪問lastname的label屬性,可以這樣寫:source.hints.lastname.label。

adf_groovy.7z

Groovy在ADF BC中的常見用法之一

開發執行環境 jdeveloper 11.1.2.4 1.設定eo或vo的attribute值 1 在employees eo上增加乙個attribute annualsalary,expression salary null salary 0 12。2 如果需要引用entityimpl類中的自定義...

Groovy解惑 closure中的owner

groovy解惑 closure中的owner 在上篇 groovy解惑 closure中的delegate 中,我幫大家講解了delegate是什麼以及其作用。本篇將講解一下closure中的owner,以及this,delegate以及owner三者間的關係。先讓我們來看個例子 class ow...

Groovy中對xml的操作補充

android中gradle編譯器使用的是groovy語言,groovy為我們提供了一系列的工具類用於處理xml檔案。關於groovy中如何對xml文件進行操作,這裡有一處文件 在此,補充一些文件中遺漏的點 可以嘗試 import groovy.xml.類似於namespace qname以及xml...