Skip to main content

Satır Bazlı Filtreleme

Satır bazlı filtreleme işlemi yukarıda gözüken LDAP filtreleri, veri modeli üzerinde hazırlanan özel filtreler ve veri seti özelinde hazırlanan özel filtreler ile sağlanmaktadır. Kullanım detayları aşağıdaki gibidir:

1. Güvenlik Filtreleri

a. LDAP Filtreleri

Güvenlik filtreleri, Sql düzenleme ekranında yazılan sorgunun raporu görüntüleyecek kullanıcının LDAP bilgilerine göre filtreli çalışmasını sağlamaktadır. Güvenlik filtreleri yukarıdaki görselin en sol üst kısmında listelenmektedir. Ldap'ta mevcut farklı alanlara göre de yeni filtreler eklenebilmektedir.

Aşağıda filtrelerin sorgu içerisinde nasıl kullanılabileceğine dair örnek kod parçası yer almaktadır. Bu kod ilgili tablodaki create_user kolonu ile LDAP'taki username bilgisini eşleştirerek verinin dönmesini sağlamaktadır. Bu sayede kullanıcı raporu açtığında create_user kolonunda kendi kullanıcı adı olan satırların olduğu veriyi görebilmektedir. Filtreyi sql sorgusuna eklemek için sadece üzerinde tıklamak yeterlidir.

Select * from sales where create_user= :username
SUBEKODU IN (:SUBE_KODU) OR COALESCE(:SUBE_KODU,NULL) IS NULL

b.Token Filtreleri

Verinin belli değere göre otomatik filtreli gelmesi için token filtreleri kullanılmaktadır. Bunun için öncelikle keycloak'ta kullanılacak token filtresi oluşturulmalıdır. Bunun için keycloak'ta Clients->dataplatclient->Client scopes->dataplatclient-dedicated yolu takip edilerek aşağıdaki ekrana ulaşılır. Burada istenilen token eklenir.

Ardından aşağıdaki görselde olduğu gibi bir kullanıcıya veya gruba ilgili token için değer atanır. Bu görselde eğer token'dan gelen description değeri Deneme'ye eşitse veri döndürecektir. Bunun için datamodel tarafında şöyle bir kod yazılmalıdır.

select * from "REPORT" where country=:token_description

2. Dataset Özelinde Tanımlanan Özel Filtreler

Güvenlik filtrelerinde LDAP bilgileri ile satır bazlı filtreleme yapılırken, özel filtrelerde kullanıcının ihtiyacına göre tanımlanan filtreler ile satır bazlı filtreleme yapılmaktadır. Yukarıdaki ekranda yer alan Özel Filtreler sekmesi altından Filtre Ekle butonuna basılarak tanımlama yapılmaktadır. Yaratılan filtreler veriseti bazında kullanılmaktadır. Filtre Ekle butonuna basıldığında aşağıdaki pop-up açılmaktadır. Bu alanların detayları aşağıda yer almaktadır:

  • Ad: İlgili filtreye verilecek isim.
  • Tür: METİN,SAYI,BOOLEAN ve TARİH olmak üzere 4 farklı veri tipi içermektedir. Filtrelenecek kolonun türüne göre yapılmalıdır.
  • Çoklu Seçim: İlgili özel filtre ile hazırlanacak filtrenin sadece tek bir değer seçimine mi yoksa çoklu seçime mi izin vereceğini belirlemektedir. Örneğin country bilgisi ile bir filtre oluşturulduğunda eğer çoklu seçim “Evet” seçilirse önyüz tarafından Germany, Sweeden... gibi birden çok değer seçimine izin verilmektedir. Çoklu seçim “Hayır” seçilirse hazırlanan filtrenin sadece tek bir değer seçimine izin vermesi beklenmektedir.

Not: Bu seçimlerin yanında sorguların tekli veya çoklu seçimi desteklemesi veri modelini hazırlayan kişinin insiyatifindedir. Eğer burada çoklu seçim yapıp veride “in” kullanılmazsa çoklu seçimde hata olacaktır.

  • Zorunluluk: Zorunluluk “Evet" seçildiğinde ilgili filtre değer girmeden çalıştırılamaz.
  • Varsayılan Değer: Zorunluluk “Evet” seçildiğinde ilgili filtre değer girmeden çalıştırılamaz. Raporda filtre kullanılırken filtre boş geçildiğinde uyarı göstermesini sağlayacaktır. Zorunluluk "Hayır" seçildiğinde ek olarak aşağıdaki kod benzeri bir düzenleme yapılması gerekmektedir.

Bu değerler girilerek bir filtre oluşturulduğunda LDAP filtresinde olduğu gibi sorgu içerisinde kullanılmaktadır. Örneğin sales tablosundaki product kolonunu filtrelemek için prd isimli özel filtre oluşturduğumuzda, sorgu içerisinde aşağıdaki gibi kullanılır. Özel filtre içeren bir sorgu önizleme yapıldığında test değerleri girilmesi gerekmektedir.

Özel Filtreler ön izleme yapılırken aşağıda olduğu gibi örnek verilmesi gerekmektedir.

3. Verimodeli Özelinde Tanımlanan Özel Filtreler

Yukarıda veriseti özelinde tanımlanan filtrelerin aynısı veri modeli özelinde de tanımlanabilmektedir. Burada tanımlanan filtreler ilgili veri modeli içerisindeki tüm verisetleri içerisinde kullanılabilmektedir. Parametre tanımlama işlemi veri modeli ekranının sağında açılan özellikler menüsündeki parametreler sekmesinden yapılmaktadır. Aşağıda ekran görüntüsü yer almaktadır. Tanımlanan parametreler veri setleri içerisinde solda açılan menüde, veri modeli parametreleri sekmesi altında listelenmektedir. Sorgu içerisindeki kullanımı veriseti bazındaki filtreler ile tamamen aynıdır.