DİA’nın rapor tasarım aracı, doğrudan veritabanı üzerinde SQL çalıştırabildiği için standart raporların cevap veremediği sorulara çok hızlı cevap üretir. Ancak rapor motoru SQL’inizi olduğu gibi çalıştırmaz; önce kendi kalıbına yerleştirir, sonra parametreleri doldurur. Bu yüzden düz bir veritabanı aracında sorunsuz çalışan sorgu, DİA’da beklenmedik hatalar verebilir.
Sahada en sık karşılaştığımız durumları derledik.
1. Yorum satırı kullanmayın
DİA, yazdığınız sorguyu bir alt sorgu olarak başka bir SELECT içine sarar. Satır sonuna kadar geçerli olan -- yorumları bu sarmalamada sorgunun geri kalanını da yorum haline getirebilir ve sözdizimi hatası alırsınız. Açıklama gerekiyorsa rapor tanımının açıklama alanını kullanın.
2. Sonda noktalı virgül olmasın, her rapor tek sorgu olsun
Sorgunun sonuna ; koymak ya da arka arkaya iki sorgu yazmak rapor motorunda hata verir. Özet ve detay gerekiyorsa iki ayrı rapor tasarlayın veya özeti aynı sorguda GROUP BY ile üretin.
3. Süslü parantez kullanmayın
Rapor motoru {secilifirma}, {bastar}, {bittar} gibi parametreleri süslü parantezle tanır. Sorgunuzun içinde parametre dışı bir süslü parantez geçerse, örneğin bir düzenli ifadede [0-9]{10} tekrar sayısı ya da '{}' gibi bir metin, motor bunu da parametre sanır ve hata verir. Tekrar sayısı yerine [0-9]+ ile birlikte uzunluk kontrolü kullanmak işe yarar.
4. Süreçlerde köşeli parantezden kaçının
DİA iş akışı (süreç) tanımlarında köşeli parantez süreç değişkeni anlamına gelir. Süreç içinde kullanılan SQL’de [0-9] gibi bir karakter sınıfı yazarsanız “değişken bulunamadı” hatası alırsınız. Sayı kontrolü için translate(alan, '0123456789', '') = '' gibi alternatifler kullanılabilir.
5. Hız için ham tabloları tercih edin
Liste görünümleri (view) pratik ama ağırdır; çok sayıda ilişkili tabloyu her seferinde birleştirir. Büyük veride rapor yavaşlıyorsa, fatura ve fatura kalemi gibi ham tablolardan sadece ihtiyacınız olan alanları seçmek ve ilişkileri kendiniz kurmak raporu belirgin şekilde hızlandırır.
6. Sıfıra bölmeyi güvenli yazın
Kârlılık ve oran raporlarında payda sıfır olabilir. Bölme işlemini NULLIF(payda, 0) ile yazmak hem DİA’da hem de düz veritabanı araçlarında aynı şekilde çalışır ve raporu hata vermekten korur.
DİA’da size özel rapor mu gerekiyor? Satış, kârlılık, cari yaşlandırma, stok ya da mali tablo raporlarınızı DİA’nın içinde, hızlı çalışacak şekilde tasarlıyoruz. DİA rapor ve süreç tasarımı hizmetimizi inceleyin ya da bize ulaşın.