''BuildFilterProcess'' Elemanı  

Top  Previous  Next

BuildFilterProcess sayfada bir işlem bloğu içinde olmalıdır. İşlem bloğu girdi alanlarına girilen değerlerden SQL SELECT ... WHERE ifadesinde kullanmak üzere bir süzgeç oluşturmak için kullanılır

BuildFilterProcess_pe

İşlem Bloğu girdi alanlarına girilen değerler, alan adları dikkate alınarak sorgunun WHERE kısmında kullanılmaya uygun bir ifade haline dönüştürülür ve elde edilen ifade belirlenmiş olan bir hedef sembol içine aktarılır. Bu işlem sorgulama işlemini kendisi yapmaz. Elde edilen ve hedef sembol içine aktarılan ifade, bir RelDB  verikaynağı sorgusu içinde aşağıdaki gibi kullanılabilir.

SELECT * FROM products

  WHERE @vof(p:filter)

 

Girdi alanları içinde, aşağıdaki örnekte olduğu gibi mantıksal operatörler kullanmak mümkündür.

BuildFilterProcess

 
Parametreler

Süzgeçe Dahil Edilecek Alanlar (MScript kabul eder)

BuildFilterProcess elemanının içine yerleştirilmiş olduğu işlem bloğu içinde yer alan blok girdi alanlarından hangilerinin süzgeç oluşturma sırasında dikkate alınacağını belirlemek için kullanılır.

Bir alan tanımının söz dizimi:

[alan-tipi:]blok-alan-adı[/sql-alan-adı]

 
alan-tipi
Bu tanımlayıcı zorunlu değildir. Geçerli tek değer "s" karakteridir ve bu alanın metin olarak değerlendirilmesini zorlar. Eğer alan tipi verilmez ise alan tipine girdi alanına  girilen değere göre karar verilir.

blok-alan-adı

Süzgeçe dahil edilecek olan blok girdi alanının adı.

sql-alan-adı
Bu tanımlayıcı zorunlu değildir: Blok alan adı ile SQL alan adının farklı olması durumunda, blok alan adını takip eden bir "/" karakteri sonrasında kullanılır.

Örnek:

PERSNAME/p.NAME

 

Blok içinde yer alan tüm alanların süzgeçe dahil olması isteniyorsa alan adlarını tek tek yazmak yerine "*" karakteri kullanılabilir. Bu karakterden sonra yine genel duruma uymayan alan tanımları verilebilir.

Örnek:

*, s:PERSNAME/p.NAME, ID/c.ID

 

Süzgeçten Hariç Tutulacak Alanlar (MScript kabul eder)

Bu parametre ile süzgeçten hariç tutulacak olan alanlar virgüller ile ayrıştırılarak verilir.

Örnek:

Süzgeçe Dahil Edilecek Alanlar:

*

Süzgeçten Hariç Tutulacak Alanlar:

PCAT_ID, CATNAME

 

Mantıksal Bağlaç

Her bir alan için oluşturulan karşılaştırma ifadeleri arasındaki mantıksal bağlaç. Seçenekler "AND" veya "OR".

Hedef Sembol (MScript kabul eder)

Üretilen ifadenin yerleştirileceği sembol.
 
Örnekler
v:filter
p:filter
f:filter
s:/filters/filterX

 

Bu işlemin tekrarlayan bir işlem bloğunda kullanılması

Bu işlem çogunlukla tekrarlamayan bir işlem bloğu içinde kullanılacaktır. Ancak işlem, tekrarlayan bir işlem bloğu içinde kullanıldığında da işlevini yerine getirebilir. Bu durumda her bir işlem kaydı için oluşturulan filtre ifadeleri birbirleri ile OR mantıksal bağlacı ile bağlanacaktır.

İşlem nasıl çalışır?

İşlemin
- prepare() metodu çağrıldığında parametreler konfigürasyondan alınır.
- processRecord() metodunun her çağrılışında bir filtre ifadesi oluşturulur ve önceki ifade ile "OR" mantıksal bağlacı ile bağlanır.
- finalizeProcess() metodu çağrıldığında ise oluşturulan ifade hedef sembole atanır.