SSRS ilə hesabatlılıq: Excel faylı məlumat mənbəsi kimi

Bu məqalədə mən dünən dostumun qarşılaşdığı problemdən söz açacam. O işi ilə bağlı hər gün müəyyən qovluğa qoyulan 10-15 Excel fayl üzərində iş aparmalı olur, daha ətraflı:

  • Olan 10 ekzel faylı bir fayla birləşdirməli
  • Məlumatı təmizləməli (NULL, regional formal fərqləri və sair)
  • Məlumat üzərində hesablamalar aparmalı
  • Müxtəlif sortlama, filtr imkanı yaratmaq
  • Qrafiklər əlavə etmək
  • Şirkət direktoruna göndərmək

Dostum bu işin avtomatlaşdırılması üçün İT şöbəsi əməkdaşlarının ( yalnız bu iş ilə məşğul olan işçilər var) 1 ay tələb olunduğunu bildirdi və bu müddətin nə qədər adekvat olduğu haqqında sual verdi. Mən bu işin nəzəri olaraq çətinlikdən aslı olaraq 3 saatdan 3 günədək vaxt ərzində etmək mümkün olduğunu bildirdim. Amma əlbəttə ki şirkətdən şirkətə fərq olduğunu, digər dedlayn və səbəblərin ola biləcəyini də qeyd etdim.

Məqaləmdə sözügedən 6 punktdan 3 , 4, 5, 6 icra edəcəm. Digər 1-ci və 2-ci punktları gələcək SSIS dair (SQL Server Integration Services) məqalələrimdə icra edib göstərəcəm çünki:

Hər bir işi bu iş üçün nəzərdə tutulmuş alətlə etmək daha yaxşıdır və effektivdir.

Mən bunu birinci 2 punktu da lazım olduğu halda dolayı yollar ilə SSRS ilə icra etmək mümkün olduğundan amma bunun üçün nəzərdə tutulmadığından yazdım. Təcrübəmdən deyim ki bu məqalə üçün SSIS proyektin hazırlanması və cədvəl üzrə icrası üçün tələb olunan vaxt – 20 dəqiqə, dostumun problemi üzrə SSIS proyekti üçün isə – 4-5 saat təşkil edir.

Başlayaq!

Deyək ki SSIS artıq üzərinə düşən işi icra edib və “FULL_FILE.xls” faylı serverin “FaylServer/Şöbə/ƏməkdaşAdı” qovluğunda yerləşir. İndi bizə ekzel fayla qoşulmanı təmin etmək və oradan məlumatı götürüb vizual işlərə başlamaq lazımdır.

Qeyd edim ki bu halda Məlumat Mənbəsi olaraq Ekzel faylı istifadə etməkdənsə əvvəlki addımlarda SSIS vasitəsi ilə ekzelləri  məlumat bazasında yaradılmış bir müvəqqəti, hər gün yenilənən cədvələ eksport etmək daha effektiv və az iş tələb edən strategiya sayıla bilərdi, amma deyək ki hesabat verən adamın Məlumat Bazasına DML(SELECT/INSERT/UPDATE) haqları yoxdur, və o səbəbdən o dəyişiklikləri məlumat mənbəsi olan Ekzel faylında edəcək, əlavə olaraq istifadə edəcəyimiz yol mənim Sizə standart “Microsoft SQL Server” qoşulma tipi əvəzinə “Ekzel”-dən necə istifadə etmək mümkün olduğu göstərməyə imkanın verəcək.

Hissə 1: Ekzel faylı məlumat mənbəsi kimi.

Məqalə üçün məlumatı “US Mass Shootings Last 50 Years (1966-2017)” faylın Kaggle saytından götürdüm və oradan 100 sətr yazıdan istifadə edəcəm.

Project–>Reports–>Add New Report

Qoşulma tipi olaraq “ODBC” seçib “Edit” tıklayırıq.

Hesabat proyekti üçün yeni qoşulmanı yaratmağa başlamaq üçün”Build” düyməsinə tıklamaqdan başlamaq lazımdır.

Yeni açılan pəncərədə “New” tıklamaq ilə Data Source Name (Məlumat Mənbəsi Adı) yaratmağa davam edirik

Verilmiş seçimdən ingilis dilində “Microsoft Excel Driver (*.xls)” seçirik və “Next” ilə davam edirik.

Qoşulma sazlamaları saxlanacaq qovluğu seçib, MMF faylın adlandırıb “Save” tıklayırıq.

İndi isə istifadə olunacaq “Select Workbook” vasitəsi ilə istifadə olunacaq “FULL_FILE.xls“-ya keçid alıb seçirik və “OK” basırıq və işi bitiririk.

Budur, artıq Excel-ə qoşula bilərik, “OK”-ları basaq, Məlumat mənbəsi yaradılması pəncərəsinə qayıdaq və “Next” tıklayaq.

Növbəti pəncərədə öyrəşdiyimiz SQL Sorğunu yaza bilərik.

Nəzərə alsaq ki lazımsız sütunlar SSİS etapında təmizlənib artıq sadəcə

SELECT * FROM [Datatable$A1:I100]

yazıb dalbadal 4 dəfə NEXT ilə davam edə bilərik. Qeyd edim ki sorğuda istifadə olunan “Datatable$A1:I100”-də “Datatable” Excel səhifəsinin adın, “A1:I100” isə əhatə olunan aralığı  bildirir.

Istifadə olunacaq sütunlar:

  • Titile
  • Location
  • Date
  • Fatalities
  • Injured
  • Total victims
  • Mental Health Issues
  • Race
  • Gender

 

Hissə 2: Hesabatın ilkin vizual görüntüsünün yaradılması və qrafiklərin əlavəsi.

İndi isə hesabata ilk dəfə baxaq:

Hesabata 5 dəqiqə ayırıb xanaları hala salıb, sortlama əlavə edəndən sonra. Necə edilməsi üçün keçən məqalələrimə baxa bilərsiniz.

Ölüm, yaralanma sayından aslı olaraq rəng dəyişmək funksiyası, qrafiklər və orta ədədləri əlavə edəndən sonra (bu funksiyalar haqqda bəhs edən məqaləmə link: )

 

Budur, hesabat hazırdır, serverə yerləşdiririk:  Solution Explorer–>Reports–>Shooting_Report.rdl–>Sağ maus kliki–> Deploy

Hissə 3: Hesabatın grafik üzrə məhsul şəxslərə göndərilməsi

Beləliklə hesabat serverə yerləşdirildi, indi isə keçək SSRS portalındaki hesabat qovluğuna: Shooting_Report–>Manage—Subscriptions–>Create subscripton. Yeni açılacaq pəncərədə:

Delivery type: Email

To: Məktub alan şəxsin meylı (məs: [email protected])

Subject: @ReportName hesabatı @ExecutionTime-da icra olundu.

Format: Excel

Xanaları doldurandan sonra hesabat vaxtın və cədvəlin “Create Schedule”-dən seçib “OK” tıklayırdınız. Hazır!

 

Burada məqalənin əsas yaranma səbəbi olan “SSRS-də Ekzel məlumat mənbəsi kimi” problemin həll etdiyimdən işimi bitmiş sayıram və növbəti məqalələrə qədər sağollaşıram.

Səs: +20. Bəyənilsin Zəifdir

Müəllif: Omar Bayramov

Şərh yazın