Oracle APPS Shell Eş Zamanlı Programı İle Java Uygulaması

Share Button

Merhaba,

Daha önceki yazımda Oracle Apps için Java Eş Zamanlı program yapımını anlatmıştım. Bu yazımda ise Shell eş zamanlı program ile bağımsız Java uygulamasını geliştirme ve çalıştırma yöntemini anlatacağım.

İki yöntem arasındaki temel farklar;

Java Eş Zamanlı Programı Bağımsız Java Uygulaması
JDBC gerekliliği yoktur JDBC elle yapılandırılmalıdır
APPS_INIT hazır durumdadır APPS_INIT elle yapılandırılmalıdır
LOG yönetimi hazır durumdadır LOG yönetimi elle yapılandırılmalıdır
Kofigürasyon zordur Konfigürasyon kolaydır
Veritabanı bağlantı bilgileri gizlidir Veritabanı bağlantı bilgileri açıktır

Yazıda xlsx Excel üreten basit bir Java uygulaması yapılacaktır.

1.Öncelikle JDBC bağlantısı elle konfigüre edileceği için DRIVER’ın uygun versyonunun bulunması gerekiyor. Bunun için öncelikle veritabanı versyonu aşağıdaki SQL ile öğrenilir.

Sonuç:

——————————————————————————–
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 – 64bit Production
PL/SQL Release 11.1.0.7.0 – Production
CORE 11.1.0.7.0 Production
TNS for Linux: Version 11.1.0.7.0 – Production
NLSRTL Version 11.1.0.7.0 – Production

2. Aşağıdaki linkten ilgili versyona ait driver (ojdbc6.jar) aşağıdaki bağlantıdan indirilir.

ojdbc6

3. Aşağıdaki bağlantıdan Excel oluşturulmak için kullanılacak apache-poi API’si indirilir.

 http://poi.apache.org/download.html

4. Netbeans açılır ve menüden New Project seçilir.

sh-1

5. Java Application seçilerek devam edilir.

sh-2

6. Proje Adı ve Main Class belirlenir.

sh-3

7. Veritabanı bağlantı işlemleri için yeni bir java sınıfı yaratılır.

sh-4

 

8. Sınıf adı ve paketi belirlenir.

sh-5

9. Projeye sağ tıklanır ve proje özellikleri açılır.

sh-6

10. Libaries bölümüne geçiş yapılır. Bu adımda kullanacağımız POI ve jdbc jar dosyalarının proje CLASSPATH yani Libary altına eklenmesi gerekmektedir. “Add Jar/Folder” butonuna tıklanır.

sh-711. POI ile ilgili bütün JAR dosyaları ve ek olarak ojdbc6.jar dosyası eklenir.

sh-8

12. Excel yönetimi için yeni bir sınıf daha yaratılır.

sh-9

13. Sınıf adı ve paketi belirlenir.

sh-1014.

XXConnection: Bu sınıf Connection ve OracleConnection döndüren iki adet fonksiyondan oluşmaktadır. 21. satırda yer alan bağlantı bilgisinin host, port ve sid bilgilerini kendi veritabanı bilgilerinize göre güncelleyiniz.

14. Bu adımda bağlantıyı test etmek için Main sınıf içerisinden XXConnection objesi oluşturulur ve bağlantı test edilir.

Sonuç:

15. Excel oluştuktan sonra dosya adı, dizin ve talep numarası gibi bilgilerin veritabanında bir tabloya yazılması takip açısından daha sağlıklıdır. Aşağıdaki SQL Scripti ile veritabanında tablo oluşturulur.

16.

ExcelOperations: Bu sınıf excel’i oluşturan sınıftır. createExcel fonksiyonu Main sınıftan gönderilen SQL sorgusunu çalıştırıp, yine Main sınıftan gönderilen dosya adı ve sheet adı ile Excel’i dinamik olarak oluşturur. Dikkat edilmesi gereken noktalardan biri POI’nin Workbook dosyasının her durumda çalışacak olan finally bloğu içerisinde kapatılmasıdır. Aksi takdirde hatalı veya başarılı biten çalıştırmalarda ana makine /tmp dizini üzerinde SQL sorgunuzdan dönen satır sayısına da bağlı olarak yüklü yer kaplayan XML dosyaları oluşup, tmp dizininin dolmasına ve ERP sisteminin beklendiği gibi çalışmamasına neden olabilir.

17. Main sınıf aşağıdaki gibi düzenlenir. Dikkat edilmesi gereken nokta parametrelerin main sınıfa argüman aracılığı ile ulaşacağıdır. Bu argümanlar SH Scriptinden gönderilecektir. Dolayısıyla sırası önem arz etmektedir.

18. Program derlendikten sonra klasörüyle beraber FTP programı ile $PER_TOP/bin altına yüklenir. Projenin tamamının yüklenmesi önem arz etmektedir.

19. Bu adımdan sonra bir adet .prog uzantılı Shell Scripti hazırlanır. Dikkat edilmesi gereken noktalardan biri ilk 4 parametrenin otomatik olarak eş zamanlı tarafından sağlanmasıdır. Bunlar aşağıdaki gibidir;

$0: The shell script to be executed
$1: Oracle user/password
$2: Applications user_id
$3: Application user_name
$4: Concurrent program request_id

$5 ve sonrası parametreler eş zamanlı programda belirlenen sıraya göre devam etmektedir.

14. satırda içeri yüklediğimiz java uygulamasının jar dosyasına çağrıda bulunuyoruz.

Shell programın hatalı tamamlanması engellemek için SQLPLUS ile ilgili talebi normal tamamlandı durumuna çekiyoruz.

20. prog dosyası ve java uygulaması içeri atıldıktan sonra prog dosyasının link’lenmesi gerekmektedir. Bunun için ssh programından aşağıdaki komut ana makine unix ortamda çalıştırılır. Linkleme işleminden sonra aynı dizinde bir adet dosya oluşması gerekmektedir.

21. Çalıştırma yetkisi yok ise CHMOD ile yetkilerin tamamlanması gerekmektedir.

22. Bütün bu işlemler bittikten sonra son durumda bin klasörü görünümü aşağıdaki gibi olmalıdır.

ftp

23. Yürütülür dosya tanımı:

sh-12

24. Eş zamanlı program tanımı:

SH-13

sh-14

sh-15

sh-16

 

25. Program çalıştırılır;

sh-17

Not: Eğer program “Dosya Bulunamadı” hatası ile bitiyorsa, prog dosyasını FTP üzerinden BINARY modu kullanarak yükleyin.

26. Sonuç:

sql_res

 

sh-18

Kaynak: http:/http://oracleappsnotes.wordpress.com/2012/02/21/all-about-host-concurrent-programs/