Oracle Bi Publisher – Etkileşimli Parametreler

Bu yazıda publisher ürününde raporları etkileyen parametrelerin birbirlerini de etkileyebilmesinden bahsetmek istiyorum.
Öncelikle bu ihtiyacın elzem olduğunu söylemek isterim. Bir senaryo oluşturarak uygulamalı bir şekilde ilerleyelim. Sorunumuzu da somut tanımlayalım.
Etkileşimli parametreye örnek ver denince ilk akla gelen il-ilçe hiyerarşisine değinelim. Hatta bu hiyerarşinin en üstüne bir de bölge ekleyelim ama ayrı dimensionda olmasın.

Problem şu: Elinizde kişiler var personel ya da müşteri herneyse bu kişilerin lokasyon dağılımlarıyla ilgili bir rapor yapacaksınız. Bu raporda il-ilçe yoğunluğunu gösteren verilerini grafik vs ile karşılaştırma yapacaksınız diyelim.

Bu sorguyu oluşturacak örnek tablolarımız ve alanları aşağıdaki gibi olsun;

FACT_KISI_BILGILERI
kisi_id , ilce_kodu , ..vb bilgiler olsun

DIM_ILCE
ilce_adi , ilce_kodu , il_kodu

DIM_IL
il_adi , il_kodu , bolge

Bir data model oluşturacaksınız içinde bir data set ,ki bunlardan daha önce bahsetmiştik, datasete gömeceğiniz sql sorgusu basit ve şu şekilde olsun diyelim
Raporda istemcide olmasını istediğimiz bölge, il , ilçe alanlarını da parametre olarak ekleyelim

SELECT
il.bolge,
il.il_adi,
ilce.ilce_adi,
count (n.kisi_id) as nufus
FROM FACT_KISI_BILGILERI as n
INNER JOIN DIM_ILCE ilce on ilce.ilce_kodu = n.ilce_kodu
INNER JOIN DIM_IL il on il.il_kodu = ilce.il_kodu
WHERE il.il_adi in (:pIL)
AND il.bolge in (:pBolge)
AND ilce.ilce_adi in (:pILCE)
GROUP BY il.bolge,
il.il_adi,
ilce.ilce_adi

Sorgunun
‘where il.il_adi in (:pIL)
and il.bolge in (:pBolge)
and ilce.ilce_adi in (:pILCE)’
bölümüne dikkat edecek olursak pIL, pBolge ve pILCE olmak üzere 3 parametre oluşturduk.
Burada parametrenin null gelme olasılığını düşünerek null fonksiyonları içerisine alabilirsiniz.  NVL(:pBolge,’EGE’) gibi.
Ya da büyük küçük harf sorunu yaşayabilecek gibiyseniz hen datasetteki sorguya hem de list of value daki sorguya upper() fonksiyonu ekleyebilirsiniz.

Parametrelerimizi oluşturduktan sonra, List of Value tarafına geçip parametreleri doldurma işlemine geçelim.

Bölge için sorgumuz:

select distinct il.bolge from DIM_IL

Sıra il de fakat ilin bölge parametresinin seçiminden etkilenip kullanıcıya seçilen bölgedeki illeri göstermek istiyoruz.
Ozaman sorgumuz:

select il_adi from DIM_IL where bolge in (:pBolge)

Aynı işlemi ilçe için yapacağız. İl seçildikten sonra bu ile ya da illere bağlı olanların listelenmesini istiyorsak

sorgumuzu bu şekilde:

select ilce_adi from DIM_ILCE where il_kodu in (select il_kodu from DIM_IL where il_adi in (:pIL))

ya da bu şekilde:

select ilce_adi
from DIM_ILCE ilce
inner join DIM_IL il on il.il_kodu = ilce.ilce_kodu
where il_adi in (:pIL)

yazabiliriz.

Artık sıra, Parameters sekmesinde il ve bölge parametreleri için ‘Refresh other parameters on change’ seçeneğini işaretlemek kaldı.

par1

Her türlü soru için yorum bırakabilirsiniz blog çok sık ziyaret edilmektedir.

Kolay Gelsin..

Reklamlar

About ozanyay

İş Zekası ve Veri Ambarı Uzmanı
Bu yazı Oracle BI, Oracle BI Publisher, Oracle Business Intelligence, Raporlama, sql, İş Zekası içinde yayınlandı ve , , , , , , , , , , , olarak etiketlendi. Kalıcı bağlantıyı yer imlerinize ekleyin.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s