OAF Dinamik Arayüz Formu ve Tablosu (PPR)

Share Button

Merhaba,

Bu yazıda OAF sayfalarında dinamik arayüz ve tablo içerisinde dinamik özellik değişim konularıyla ilgili örnekler yapacağım.

1. Aşağıdaki SQL çalıştırılarak veritabanı objeleri oluşturulur ve gerekli veriler tabloya doldurulur.

2. Önceden ayarlanmış bir JDeveloper OAF projesi açılır ve projeye sağ tıklanıp ADF Business Componenets -> Business Components from Tables seçilir.

 

ppr_001

 

3. Aşağıdaki adımlar sırayla uygulanarak projenin model objeleri üretilir.

ppr_002

ppr_003

ppr_004

ppr_005

ppr_006

 

4. Son durumda proje veri modeli aşağıdaki gibi olmalıdır.

ppr_007

 

5. XxPprSingleEO ve XxPprTableEO Entity Objeleri için create fonksiyonları oluşturulur.

ppr_008

ppr_009

 

 

Formlar İçin Dinamik Arayüz

Bu bölümde giriş formları için dinamik arayüz yapımından bahsedeceğim. Formlar için dinamik özellikler Partial View Object nesneleri üzerinden sağlanmaktadır. OAF içerisinde bulunan Item Bean’lerinin dinamik olarak değiştirilebileceği 4 adet özellikleri mevcuttur.

Bu özellikler aşağıdaki gibidir:

  • Rendered (true veya false): Görünürlüğün dinamik şekilde değişmesine olanak sağlar.
  • Disabled (true veya false): Herhangi bir item’ın tipini değiştirmeden değiştirilebilir veya değiştirilemez olmasına olanak sağlar.
  • Read-Only (true veya false): Herhangi bir item’ın tipini değiştirerek değiştirilebilir veya değiştirilemez olmasına olanak sağlar.
  • Required (yes, no, uiOnly, validaterOnly): Herhangi bir item’ın zorunluluk özelliğinin dinamik olarak değişmesini sağlar.

Aşağıdaki adımlarla devam edilir.

1. Server paketi altına yeni bir View Object nesnesi oluşturulur. Bu nesne PVO (Partial View Object) olarak kullanılacak nesnedir. Partial View Object herhangi bir SQL sorgusundan oluşmaz veya Entity Object nesnesinden türetilmez. İçerisinde DECLARETIVE veya PROGRAMMATIC olarak oluşturulmuş olan iki adet Attribute yer alır.

  • Anahtar alan: Number
  • Özellik Alanı: Özelliğie bağlı olarak Required ise String, diğer özellikler ise Boolean olmalıdır.

Partial View Object nesnesi sayfa açılırken sadece bir satır ve başlangıç değeri içermelidir. Sayfada istenilen aksiyon olduğunda özellik değeri bağlı olarak değiştirilir. Partial View Object nesnesi içinde yer alan özellik değeri SPEL diliyle değişmesi istenen alanın özellik bölümüne yazılır.

ppr_010

ppr_011

ppr_012

ppr_013 ppr_014

ppr_015

 

2. Partial View Object oluşturulduktan sonra Application Module nesnesine eklenmelidir.

ppr_016

3. Yeni bir OAF sayfası ve sayfaya ait bir Controller nesnesi oluşturulur.

ppr_017

ppr_018

ppr_019

ppr_020

 

 

4. pageLayout Region özellikleri aşağıdaki gibi düzenlenir.

ıd window title title AM Definition
PageLayoutRN PPR Example PPR Example xxntc.oracle.apps.per.ppr.server.XxPprAM

5. Tablomuzda bulunan alanlardan biri diğerini tetikleyecektir. Dolayısıyla tetikleyici olan alanın bir değer listesi olması çok daha mantıklıdır. Değer listesi işlemi için yeni bir View Object nesnesi oluşturulur ve Application Module nesnesine eklenir.

ppr_025

ppr_026

ppr_027

ppr_028

 

SQL Sorgusu:

6. Sayfaya yeni bir Form Region aşağıdaki adımlarla oluşturulur.

ppr_021

ppr_022

ppr_023

ppr_024

 

7. Attr1 ve Attr2 özellikleri aşağıdaki gibi güncellenir.

Item Style Picklist View Definition Picklist Display Attribute Picklist Value Attribute Action Type Event
messageChoice xxntc.oracle.apps.per.ppr.poplist.server.XxPprAttr1LovVO Value Value firePartialAction onAttr1Change
Disabled
${oa.XxPprSingleAttr2PVO1.Attr2Disabled}

8. Aşağıdaki kod düzenlemeleri yapılır.

XxPprSingleEOImpl.java

 XxPprPGCO.java

 

 XxPprAMImpl.java

9. Sayfa çalıştırılır ve test edilir.

ppr_029

 

 

Tablolar İçin Dinamik Arayüz

1. Yeni bir sayfa ve Controller nesnesi yaratılır.

ppr_030

ppr_034

ppr_032

 

2. Page Layout Region özellikleri aşağıdaki gibi güncellenir.

ıd wındow tıtle tıtle AM Defınıtıon
PageLayoutRN Table PPR Table PPR xxntc.oracle.apps.per.ppr.server.XxPprAM

3. XxPprTableEOVO Edit ile açılır ve SQL Statement bölümünde “Expert Mode” seçilerek SQL düzenlenebilir duruma getirilir. İki adet null alan (SELECTED, ATTR1_DISABLED) SQL içerisine eklenir. Attribute bölümünden Attr1Disabled alanı Boolean olarak değiştirilir. İki alan için de Updatable Always seçilmelidir.

ppr_033

ppr_039

ppr_040

ppr_041

 

SQL Sorgusu:

 

4. Sayfaya bir adet Tablo region’ı aşağıdaki adımlarla eklenir.

ppr_034

ppr_035

ppr_036

ppr_037

ppr_038

 

5. Seleced Check Box Item’ı için aşağıdaki düzenlemeler yapılır.

Inıtıal Value Checked Value Unchecked Value Actıon Type Event
N Y N firePartialAction onCheckBoxChange

6. Aşağıdaki kod düzenlemeleri yapılır.

XxPprTableEOImpl.java

XxPprTablePGCO.java

XxPprAMImpl.java

7. Sayfa çalıştırılır ve test edilir.

ppr_042

Umarım faydalı bir yazı olmuştur. 🙂