Oracle ADF Task Flow Parametre Geçişi

Share Button

Merhaba,

Bu yazıda Oracle ADF ile basit bir Bounded Task Flow uygulaması ve Task Flow akışları arasında parametre geçiş yöntemini göstereceğim. Uygulama herhangi bir DML işlemi içermeden sadece veriyi göstermek amaçlı olacaktır.

JDeveloper Versyon: 11.1.2.2.0

1. Aşağıdaki SQL çalıştırılarak uygulamanın tablo yapısı ve verileri hazırlanır.

2. Veritabanı bağlantısı JDeveloper içerisinden oluşturulur. İlk defa bağlantı oluştururken Binding Style olarak ben Oracle Domain tercih ediyorum. Eğer Oracle Domain seçerseniz veritabanındaki NUMBER alanlarınız karşılığı oracle.jbo.domain.Number olur aksi taktide BigDecimal veya Integer olarak oluşurlar.

tf-1

tf-2

3. JDeveloper açılır ve New Application seçilir. Applications bölümünden Fusion Web Application (ADF) seçilir.

tf-3

 

tf-4

 

4. Application Name bölümü BoundedTaskFlowParam olarak değiştirilir. Kalan adımlarda değişiklik yapılmadan son adıma geçilir ve Finish denilir. Rutin bir ADF uygulamasında Model ve View olmak üzere iki adet katman vardır.

tf-5

tf-6

 

5. Kurulumunu yaptığımız veritabanı modelini BC4J objeleri olarak oluşturmak için aşağıdaki adımlar izlenir.

tf-7

tf-8

tf-9

tf-10

tf-11

tf-12

6. ViewController katmanına sağ tıklanır ve New seçilir. Web Tier -> JSF/Facelets bölümünden ADF Task Flow seçilir.

tf-13

tf-14

 

7. Task Flow aşağıdaki özelliklerde oluşturulur.

tf-15

 

8. Task Flow açılır ve Component Palette bölümünden bir adet View sürükle bırak yöntemi ile oluşturulur.

tf-16

 

9. Yeni bir Task Flow daha oluşturulur ancak bu sefer “Create with Page Fragments” tiki kaldırılır. Bunun amacı ikinci task flow objesini birincinin üzerine pop-up olarak açacak olmamızdır. Pop-up lar için JSF kullanılması gereklidir.

tf-17

tf-18

 

 

10. ViewCalisanlarBTF Input parametresi aşağıdaki gibi ayarlanır ve task flow objesine de bir adet View Sürükleyip bırakılarak oluşturulur.

tf-50

tf-19

 

11. Tekrar ViewDepartmanBTF task flowuna dönülür ve daha önce oluşturduğumuz view objesine çift tıklanarak bir adet jsff (fragment) aşağıdaki özelliklerde oluşturulur.

tf-20

 

12. Oluşturulan ViewDepartmant.jsff sayfacığına Component Palette bölümünden bir adet “Panel Collection” sürüklenip bırakılır. Bu panel tablolar için en kullanışlı paneldir. Ancak içine eklenen tablounun genişliğini alması için tabloya stil verilmesi gereklidir.

tf-21

 

13. “Panel Collection” paneline “Data Controls” bölümünde yer alan, uygulama için en başında oluşturduğumuz CalisanlarAM application modülü altındaki “DepartmanlarEOVO1” objesi sürüklenip bırakılarak ADF Read-Only Table olarak aşağıdaki özelliklerde oluşturulur.

tf-22

tf-23

tf-24

tf-25

 

14. Tabloya “Context Menu” yani pop up menü yapmak için Context Menu Facet’i altında bir adet Pop-Up, Pop-Up altında bir adet Menu ve Menu altına da bir adet Menu Item aşağıdaki gibi oluşturulur.

tf-26

tf-27

tf-28

 

 

15. ViewDepartman.jsff sayfacığında Design bölümünden Bindings bölümüne geçiş yapılır. Be Bindings katmanına bir adet Attribute Binding aşağıdaki özelliklerde oluşturulur.

tf-29

tf-30

tf-31

 

16. ViewController projesine sağ tıklanır ve yeni bir Java sınıfı oluşturulur. Bu sınıfı ViewBean olarak parametre geçmek için kullanıyor olacağız.

tf-32

 

17. Bu oluşturduğumuz JAVA sınıfı ViewDepartmanBTF objesine Managed Bean olarak eklenir.

tf-33

 

18. Tekrar ViewDepartman.jsff sayfacığına dönülür ve az önce eklediğimiz Menu Item üzerine bir adet sağ panelde bulunan Set Propert Listener’ı eklenir ve özellikleri aşağıdaki gibi değiştirilir. Bu listener aksyion olduğu anda eklenen binding değerini Java sınıfındaki alana yazar.

tf-34

 

19. ViewCalisanlarBTF task flowuna daha önceden eklediğimiz View üzerine iki kere tıklanır ve sayfa oluşturma sihirbazı açılır. Bu noktada dikkat edilmesi gereken husus bu eklenen sayfanın jsff değil jsf olduğudur. Çünkü bu sayfa pop-up olarak açılacaktır.

tf-35

 

20. Bu sayfa içerisine de bir adet Panel Collection ve altında CalisanlarEOVO1 objesinden Read-Only Table oluşturulur.

tf-36

 

21. CalisanlarEOVO View Object nesnesi açılır. Query bölümünden bir adet Bind Variable aşağıdaki özelliklerde eklenir.

tf-37

tf-49

 

22. Query sorgu bölümü Edit ile açılır ve aşağıdaki gibi güncellenir.

tf-38

 

23. ViewCalisanlarBTF task flowu açılır ve Data Controls bölümünde yer alan CalisanlarEOVO1 objesi altındaki ExecuteWithParams task flow üzerine sürükle bırak ile aşağıdaki özelliklerde oluşturulur. Dikkat edilmesi gereken husus pSelectedDepId alanının #{pageFlowScope.selectedDepartmanId} şeklinde değer almasıdır. ExecuteWithParams  task flowun default aktivitesi olarak değiştirilir.

tf-39

tf-40

 

24. ViewDepartmanBTF task flowu açılır ve ViewCalisanlarBTF’u bu task flow içine sürüklenip bırakılır. Behaviour bölümünden özellikleri aşağıdaki gibi güncellenir. Önemli hususlardan biri Child Task Flow’a gidecek parametrenin #{viewScope.ViewDepartmanBTFViewBean.selectedDepartmanId} şeklinde düzeltilmesidir.

tf-41

tf-42

 

25. ViewDepartman.jsff sayfasına eklediğimiz tablonun pop-up menu itemının özellikleri aşağıdaki gibi güncellenir. Bu sayede açılan sayfa pop-up olarak aşağıdaki özelliklerde açılacaktır. Action bölümü ise Task Flowdaki çağrıdır.

tf-43

tf-44

 

26. adfc-config Task Flowu açılır ve bir adet View sürüklenip bırakılır. İki kere tıklanarak MainPG.jsf isminde ana bir sayfa oluşturulur.

tf-45

 

27. MainPG.jsf içerisinde ViewDepartmanBTF objesi sürüklenip bırakılarak Region olarak oluşturulur.

tf-46

 

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

tf-47

 

tf-48