Oracle EBS XML Publisher Raporunun (RDF) İçerisinden Eşzamanlının UYARI (WARNING), BAŞARILI (NORMAL) yada HATA(ERROR) Statüsünde Tamamlandırılması

RDF Raporu içerisinden concurrentın statüsünü hatalı yada uyarı  olarak tamamlama ihtiyacımız olabilir. Böyle bir durumda aynı zamanda üretilen pdf,excel gibi de outputları almak isteyebiliriz. Bu gibi ihtiyaçlarda bu yöntem oldukça başarılı bir şekilde işimizi görecektir.

Kısaca çalışma mantığından bahsedelim;

Bir RDF dosyasını normal olarak tanımladık ve RTF şablonunu XML Publisher ‘dan yükledik. Ardından başarılı bir şekilde talebimizi çalıştırdık ve ürettiği output u burada gördük. Buraya kadar herşey normal rapor üretme aşamaları..

Bundan sonra yapılacak adımlar :

1)Aşağıdaki gibi Before Report ‘ a

eklenir.  Bu raporun çalışma anında çalıştığı context i almak yani global değişkenlere fonksiyonlara ulaşabilmesi için kullanılan bir initialize  aşamasıdır. Bu işlemi yapmak zorunludur.

Bazı kaynaklarda After Report ‘ a

yazarak bu işlemi yapabileceğimiz yazmaktadır. Fakat bu işlem her Oracle versiyonunda işlem görmemektedir. Nedeni ise bazı değişkenlerin ( örnek request id ) after report zamanında alınamamasından kaynaklanmaktadır. Bunun önüne geçmek için Before Report ‘ta işlemimizi yapıyoruz ki After Report zamanına geldiğinde istenilen bilgiler elimzde olsun.

 

2) RDF içersine bir User Parameters altına  P_CONC_REQUEST_ID adında bir değişken tanımlanır. Bu değişkeni eşzamanlı parametrelerine eklemiyoruz ve kullanmıyoruz. Bu değişken tamamen override etmek için gereklidir. 1. maddede Before Report’ta yaptığımız işlem sonucunda bu değişkene otomatik olarak değer atanır. İstenildiği takdirde bu değişken raporun herhangi bir yerinde kullanılabilir.

Not : Bu değişken tanımlanmaz ise Oracle versiyonlarına göre hata alınabilir yada hiç hata alınmaz ama triggerlarda yapılan işlemlerde çalışmayabilir.

Not : User Parameters altında tanımlı olan P_BOOK_TYPE_CODE değişkeni rapor sorgusu için kullanılan bir parametredir. Herhangi bir kullanım zorunluluğu yoktur.

 

 

3)  After Report içerisinde istenilen kontrole göre status değiştirilir. fnd_concurrent.set_completion_status fonksiyonun ilk parametresi tamamlanacak statü ikinci parametresi ise concurrent açıklamasında yer alacak bilgidir.

Örnek :

 

 

Alttaki ekran görüntüsündeki yaptığım örnekte COUNT_Q1 değeri 0 ‘dan büyükse yani raporumda bir tane bile data dönerse eşzamanlı hata ile bitsin diye yapılan işlemi görmekteyiz. İhtiyacınıza göre koşullarınızı ekleyebilirsiniz.

Not : srw.message fonksiyonunu concurrent loguna bilgi basmak için kullandım. Özel bir amacı yoktur. Kullanılması zorunlu değildir.

 

Bir Cevap Yazın