Oracle APPS Integrated SOA Gateway Web Servis Yapımı

Share Button

Merhaba,

Oracle EBS üzerinde servis yayını yapmak için en doğru yöntem Integrated SOA Gateway kullanılmasıdır. Integrated SOA Gateway modülünün DBA’ler tarafından Oracle EBS üzerinde kurulması gerekiyor.

Servis yapmak ve yayınlamak için SOA Gateway farklı yöntemler sunmaktadır. Bu örnekte PL/SQL ile Takım ve Futbolcular oluşturan bir servis yapacağız.

Servisi yapmak için aşağıdaki adımlar uygulanır.

1. BUSINESS_ENTITY arama koduna yeni bir CUSTOM ENTITY tanımlanır. 4. adımda bu tanımlama kullanılacaktır.

soa_gw_1

2. Veri yapısını tutan tablolar aşağıdaki SCRIPT ile oluşturulur.

XXNTC_ANIL_TEAMS tablosu takımları, XXNTC_ANIL_TEAM_PLAYERS tablosu da oyuncuları tutmak için tasarlanmıştır. XXNTC_ANIL_TEAM_RESULTS tablosu ise servis sonuçlarının yazıldığı tablodur ve servisi çağıran talebe dönüş yapmak için kullanılır.

3. Servise veri yapısını yansıtabilmek için Pl/Sql OBJECT ve TABLE TYPE tipindeki objelerden yararlanmak gerekir. Mantıksal yapımızı yansıtacak objeleri aşağıdaki SCRIPT’ler ile oluşturuyoruz.

XX_PLAYER: Oyuncu bilgilerini tutan obje.

XX_PLAYER_TABLE: Birden fazla oyuncu gönderimini sağlamak için XX_PLAYER objesinden TABLE TYPE oluşturulur.

XX_TEAM: Takım bilgilerini tutan objedir. Birden fazla oyuncu bilgisini aynı takım altında alabilmek için takım objesinin içine oyuncu tablo tipi ayrıca eklenir.

XX_TEAM_TABLE: Birden fazla takım gönderilmesini/alınabilmesini sağlayan tablo tipidir.

XX_TEAM_RETURN: Takımın oluşup oluşmadığına dair sonucunun dönüş yapıldığı obje tipi.

XX_TEAM_RETURN_TABLE: Birden fazla takıma ait dönüş yapabilmek için oluşturulan tablo tipidir.

4. Obje yapısı tamamlandıktan sonra veritabanı paketinin SPEC bölümü oluşturulur.

Dikkat edilmesi gereken nokta normal SPEC dosyalarından farklı olarak, çeşitli ANNOTATION etiketleri kullanılarak, servisin kendisinin ve içindeki fonksiyonların tanımı yapılır. Paket yaratma komutunun hemen altında HEADER bilgisi yer alır. HEADER bilgisnin hemen altında boşluk olmadan servis başlık tanımı yapılır. PRODUCT olarak CUSTOM uygulama yazılımı seçilebilir veya belirli standart bir modül için yapılan servis ise, ilgili modülün kısa kodu da seçilebilir. CATEGORY kısmına ise eğer yapılan iş var olan BUSINESS ENTITY verileri ile anlamlandırılamıyorsa, 1.adımda oluşturulan CUSTOM ENTITY seçilebilir.

Serviste kullanılması istenilen her prosedür veya fonksiyonun üzerine boşluk olmadan başlığa benzer şekilde ANNOTATION tanımları yapılır. Paketin SPEC dosyası pks uzantılı değil pls uzantılı lokal ortama kaydedilir.

Paket BODY dosyası standart dosyalar ile aynıdır ve uzantısı pkb’dir. BODY prosedür ve fonksiyonların implementasyonları gerçekleştrilir.

BODY yazılırken dikkat edilmesi gereken noktalardan biri “replace” fonksiyonunun kullanımıdır. Fonksiyon chr(0) yani null karakterleri replace etmek için kullanılmıştır. Bazı CLIENT talepleri boş tanımı olarak C dilindeki “\0” yani NULL karakterini yollamaktadırlar. Oracle bu durumda alanı NULL görmemektedir ve olası IF kontrollerinizi bozmaktadır. Dolayısıyla her ihtimale karşı replace edilmesi gerekir.

5. Paket dosyaları APPS üzerinde derlenir.

6. PLS uzantılı SPEC dosyası FTP ile uygulama sunucusu /tmp klasörüne UPLOAD edilir.

7. Uygulama sunucusuna SSH ile bağlanılır ve aşağıdaki komut ile PLS uzantılı dosya, hazır tanımlı bir PERL script ile PARSE edilir ve ILDT uzantılı dosya oluşturulur. ILDT dosyasının oluşacağı dizin isteğe bağlı değiştirilebilinir.

8. Yeni oluşan ILDT uzantılı dosyaya yetki verilir.

9. ILDT uzantılı dosya FNDLOAD programı yardımı ile veritabanına aktarılır.

10. EBS uygulamasına SYSADMIN kullanıcı ile giriş yapılır ve Integrated SOA Gateway -> Integration Repository adımı seçilir.

soa_gw_2

11. Açılan ekranda “Search” butonun basılır.

soa_gw_3

12. Arama bölümünde Internal Name bölümüne servisin kısa adı yazılır ve “Go” butonuna basılır.

soa_gw_4

 

13. Açılan ekranda “Generate WSDL” butonuna basılarak Web Servis tanım dokümanı (WSDL) oluşturulur.

soa_gw_5

soa_gw_6

14. Servise güvenlik eklemek için EBS kullanıcılarından birine veya rol grubuna yetki verilir.

soa_gw_7

15. “Authentication Type” yanında bulunan “Username Token” işaretlenir ve “Deploy” butonuna basılır. Bu özellik servise wsse:security ekleyecektir.

soa_gw_9

16. View WSDL linkine tıklanarak WSDL görüntülenir.

soa_gw_10

 

Test Etmek İçin

1. Bilgisayara SoapUI ücretsiz versyon kurulur.

2. Üretilen WSDL linki SoapUI programında servis projesi olarak oluşturulur.

3. Request bölümüne aşağıdaki XML yapıştırılır.

4. Talep gönderilir.

5. Response aşağıdaki gibidir.

6. Aşağıdaki sorgularla tablolar kontrol edilir.

Sonuç:

 

Sonuç:

 

Sonuç:

 Servisi Silmek İçin