Özel SQL Araçları (Custom SQL Tool)

Genel Bakış

Özel SQL Araçları, kullanıcıların arama editörlerine (BankSearch, ItemSearch vb.) özel SQL sorguları bağlamasına olanak tanır. Bir sayfada bu editörlerden biri yüklendiğinde, tanımlı bir sorgu varsa editörün yanında bir ikon görünür. İkona tıklandığında, editörün mevcut değeri parametre olarak kullanılarak SQL sorgusu çalıştırılır ve sonuçlar bir popup grid’de gösterilir.


Yönetici Kılavuzu: Tanım Oluşturma

Tanım Sayfasına Erişim

/CustomSqlTool adresine gidin. Bu sayfa tüm özel SQL araç tanımlarını listeler.

Yeni Tanım Oluşturma

  1. Yeni Kayıt butonuna tıklayın
  2. Açılan modalda aşağıdaki alanları doldurun:
    • Kod: Otomatik oluşturulur (salt okunur)
    • Açıklama: Tanımın amacını açıklayan metin
    • Partial Adı: Hedef arama editörünün klasör adı (örn: BankSearch, ItemSearch, CustomerWithAccountsSearch)
    • SQL Sorgusu: Çalıştırılacak SELECT sorgusu (@Id parametresi kullanılmalı)
    • Pasif mi?: Tanımı geçici olarak devre dışı bırakmak için
  3. Alan Ekle butonu ile sonuç sütunlarını tanımlayın:
    • Alan Adı (fieldName): SQL sorgusundaki sütun adı ile birebir eşleşmeli
    • Ekran Adı (displayName): Grid’de görünecek başlık
    • Sıra (index): Sütun sırası (0’dan başlar)
  4. Kaydet butonuna tıklayın

Tanım Düzenleme

Grid’de ilgili satırdaki düzenle ikonuna tıklayın. Mevcut değerler modal’da yüklenir.

Tanım Silme

Grid’de ilgili satırdaki sil ikonuna tıklayın. Tanım pasif yapılır (kalıcı silinmez).


Kullanıcı Kılavuzu: Sayfalarda Kullanım

Nasıl Çalışır?

  1. Bir sayfa yüklendiğinde, sayfadaki tüm arama editörleri otomatik taranır
  2. Tanımlı bir özel SQL aracı olan editörlerin yanında mavi bir veritabanı ikonu (📊) görünür
  3. Editörde bir değer seçtikten sonra ikona tıklayın
  4. Sonuçlar bir popup grid’de gösterilir

Dikkat Edilmesi Gerekenler

  • İkona tıklamadan önce editörde bir değer seçilmiş olmalıdır
  • Değer seçilmemişse uyarı mesajı görüntülenir
  • Sonuçlar anlık olarak veritabanından çekilir

SQL Sorgusu Format Gereksinimleri

Temel Kurallar

  1. Sorgu SELECT veya WITH (CTE) ile başlamalıdır
  2. Parametre olarak yalnızca @Id kullanılır (GUID değeri otomatik bağlanır)
  3. Aşağıdaki komutlar yasaktır: INSERT, UPDATE, DELETE, DROP, ALTER, CREATE, EXEC, EXECUTE, TRUNCATE, MERGE

Örnek Sorgular

Basit Sorgu

SELECT AccountNumber, IBAN, BranchName 
FROM BankAccounts 
WHERE BankId = @Id AND IsActive = 1

CTE ile Sorgu

WITH AccountSummary AS (
    SELECT BankAccountId, SUM(Amount) as TotalAmount
    FROM Transactions
    WHERE BankId = @Id
    GROUP BY BankAccountId
)
SELECT ba.AccountNumber, ba.IBAN, s.TotalAmount
FROM BankAccounts ba
JOIN AccountSummary s ON s.BankAccountId = ba.Id

Alan Metadatası Eşleştirme

  • Tanımdaki her fieldName, SQL sorgu sonucundaki sütun adı ile birebir eşleşmelidir
  • SQL sorgusunda tanımda belirtilmeyen sütunlar sonuçlarda gösterilmez
  • Sıralama index değerine göre yapılır

@Id Parametresi

  • @Id parametresi, kullanıcının editörde seçtiği kaydın GUID değerini alır
  • Parametre her zaman güvenli şekilde (parameterized query) çalıştırılır — string birleştirme yapılmaz
  • Sadece tek bir parametre desteklenir

Güvenlik

  • SQL sorguları kayıt sırasında ve çalışma zamanında doğrulanır
  • Yalnızca SELECT/WITH sorguları kabul edilir
  • @Id her zaman parametrik olarak çalıştırılır (SQL injection koruması)
  • Tanım oluşturma yetkisi sadece yetkili kullanıcılara aittir