21 Haziran 2015 Pazar

QlikView Scripting 1: Veri Kaynağına Bağlantı Kurmak

  • Öncesinde bazı kısaltmaları belirtelim:
    • QVW: QlikView Worksheet
    • OLE DB: Object Linking and Embedding Database
    • ODBC: Open Database Connectivity
  • Oluşturacağınız QlikView dosyasının uzantısı .qvw olacak.
  • Veri kaynağınızla bağlantısı kurabilmek için öncesinde database türünüzün driver'ının uygulamayı kullanacağınız makinaya kurulmuş olması gerekmektedir.
  • Denetim Masası|Yönetimsel Araçlar|ODBC Veri Kaynağı Yöneticisi'nden (OLE DB için Kullanıcı DSN, ODBC için Sistem DSN)takibini yapabilirsiniz. "ODBC" diye arayarak da hızlıca bulabilirsiniz. Bit versiyonunuza uygun Yöneticisi Araçlar'ıyla çalışmayı unutmayın.
  • OLE DB; hız, bağlantı ve performans bakımından ODBC'den daha iyidir.
  • ODBC ile çalışırken uygulamanın bit versiyonuna uygun olarak driver yüklemeyi unutmayın:
    • 32bit QV kullanıyorsanız sadece 32bit'lik driver'larla çalışabilirsiniz.
    • 64bit QV kullanıyorsanız hem 32 hem 64 bit'lik driver'larla çalışabilirsiniz. Ancak 64bit QV'yi 64 bit'lik driver ile çalıştırırsanız 32 bit'likten daha etkili performans elde edersiniz.
  • Tüm bunlardan sonra QlikView uygulamasında Kod Düzenle ekranında Veri kısmından bağlantınızı kurabilirsiniz.
  • Birden fazla database bağlantısı kurabilirsiniz fakat raporunuz çalışırken kurulan her başarılı bağlantı, kendisinden önceki kurulmuş bağlantıyı keser.
Merhaba
QlikView Scripting kitabı üzerinde aldığım notları konu konu burada sizlerle paylaşacağım. Umarım, notlar işinize yarar.
İyi çalışmalar..

23 Nisan 2015 Perşembe

Birden Fazla Boyutlu Grafikte Tek Boyutun İlk 5 Değerini Listeleme

QlikView'de oluşturacağınız tek boyutla oluşturduğunuz grafikte büyükten küçüğe sıralamasında ilk 5 değeri (list top 5 value based on one dimension on the chart) gösterebileceğiniz gibi birden fazla boyutla oluşturduğunuz grafikte de bir boyutun toplamı üzerinden büyükten küçüğe sıralamasında ilk 5 değeri (list top 5 value based on one dimension on the chart with multiple dimensions)  gösterebilirsiniz.

Örnek olarak aşağıdaki veriyi ele alalım. İl bazında dönemsel olarak çeşitli sebeplerden ötürü iptal edilen abone sayıları var:
İl, dönem ve sebep kırılımında ayrı ayrı iptal sayılarını bulalım ve iptal sayısına göre büyükten küçüğe sıralayalım:
Bu oluşturduğumuz üç grafikten herhangi birinde ilk 5 değeri göstermenin iki yolu var. Her iki yolu açıklama altına eklediğim videolarda "Sebep Kırılımda İptal Adetleri" isimli grafiğin benzerlerini oluşturup göstereceğim.
1. Yol: Önce Sırala (Sort) sekmesinde formulümüzü birinci sıraya taşıyıp azalana göre sıralama yapmak ve sonrasında Sunum (Presentation) sekmesinde kısıt koymak:
2. Yol: Boyut Sınırları (Dimension Limits) sekmesinde kısıt koymak. Eğer geri kalan değerleri de göstermek isterseniz değerlerinizi 5 yerine 6 ile kısıtlayıp Seçenekler (Options) kısmında diğerlerine isim vermeniz gerekiyor ki ben videoda "OTHERS" diyorum. Diğerlerini göstermeyecekseniz 5 ile kısıtlamanız gerekir. Videonun sonunda kontrol amaçlı sıralama yapıyorum:

Grafiğinizde birden fazla boyut var ise ve siz bunlardan birini esas alarak ilk 5 değeri göstermek istiyorsanız videoda gösterdiğim gibi 2.yoldan gidip sonrasında Seçenekler (Options) kısmında Global Gruplama Modu (Global Grouping Mode) kutucuğunu işaretlemeniz gerekmektedir. Sonuç olarak baktığımızda ilk 5 değere sahip değerlerin her il ve dönemdeki verisinin geldiğini göreceğiz:

Çalışma dosyasını buradan indirebilirsiniz.

İyi çalışmalar..

Kümülatif Tekil Saydırma

Bildiğiniz gibi QlikView'de raporun sorgusunda yapmak isteceğiniz bazı işlemleri set analysis yardımıyla önyüzde oluşturacağınız objeler üzerinde de yapabilirsiniz. Özellikle son kullanıcılar (end-users) için excel'de yapabildikleri ve yapamayacakları birçok işlem için set analysis yardımcı olmaktadır. Şimdi sizinle set analysis'in en güzel örneklerinden birini paylaşacağım.

Örnek olarak müşteri sayısını ele alacağız. Dönemsel olarak kümülatif tekil müşteri adedini (cumulative distinc customer id count by period) saydırmak isterseniz "island approach" dediğimiz yöntemi kullanmanız gerekmektedir. 

Elimizde aşağıdaki veri olsun. Ekran görüntüsünde yer alan "Dönemsel Tekil Müşteri Adedi" isimli grafikte dönemsel tekil müşteri adedini buluyoruz:

Geriye dönük kıyaslamayı yapabilmek için sorgu (script) kısmında [Ctrl+E kısa yoluyla kod düzenle (edit script) ekranına kolayca ulaşabilirsiniz] elimizdeki dönemleri tekil olarak tutan bir tablo daha oluşturmamız gerekiyor: 
Şimdi grafiğimizde yapmamız gereken değişiklikler:
  • Boyutlar'da (Dimensions) yer alan dönem objesini [bizim örneğimizde PERIOD] sonradan oluşturduğumuz tabloda yer alan tekil dönem objesi [bizim örneğimizde PERIOD2] ile değiştirmeliyiz.
  • Dönemsel kümülatif tekil müşteri adedini bulmak için İfadeler'e (Expressions) yeni bir ekleme yapacağız: COUNT(DISTINCT IF(PERIOD <= PERIOD2, CUST_ID))
Ve "Dönemsel Kümülatif Tekil Müşteri Adedi" adıyla grafiğimizi tamamladığımızda sonuç:
Çalışma dosyasını buradan indirebilirsiniz.

İyi çalışmalar..

20 Nisan 2015 Pazartesi

Başlarken

Bugün itibariyle yaklaşık 10 aydır Türkiye'nin önde gelen bir kurumunda QlikView adminliği yapıyorum. Yetki verme, sunucularla ilgilenme, raporlardaki veriyi kontrol etme, rapor hazırlama, raporları güncelleme... Bir QlikView raporuna dair herşeyle ilgileniyorum.
Aslında sürecin başında böyle bir blog tutma planım vardı. Fakat işi öğrenme sürecindeki telaşımdan ötürü bugüne dek ertelemek zorunda kaldım. Daha fazla ertelemeden başlamak istiyorum.
Blog'da neler yer alacak? Blog'da işyerinde bana gelen sorulara ve sorunlara bulduğum yanıtları Türkçe olarak paylaşacağım. Öğrendiğim pratik çözümleri görsel destekli olarak aktaracağım. Yani bir QlikView eğitim blogundan daha çok orta düzey bir QlikView kullanıcısı için karşılaşacağı sorunların çözümlerini içeren bir blog olacak. Bu blog, raporu hazırlayan kadar raporu kulananlar için de kullanışlı olacak. 
Yazılarımda programda kullanılan alanları Türkçe paylaşacağım, yanında parantez içinde İngilizce karşılığını da italik yazıyla belirteceğim. Ekstra belirtmek istediğim durumları köşeli parantez içinde paylaşacağım. Elimden geldiğinde yazılarım görsel destekli olacak. Umarım her iki taraf da faydasını görür.

İyi çalışmalar..