IBM Cognos ile Raporlama Nasıl Yapılır?

By -

Herkese merhaba sizlere bu yazımda BI sektörünün tool’ları arasında kendini farkettiren bir tool olan IBM COGNOS ‘tan bahsedeğim. Bilindiği gibi her sektörün kendine has dinamikleri vardır, bu nedenle de büyük datanın kullanımı sektörden sektöre farklılık gösterebilir.

Veri miktarları artık sadece sosyal medya ve internet üzerinde büyümüyor, aynı zamanda kurumların sahip oldukları veri miktarları da giderek artıyor. Yapılan araştırmalara göre, büyük verilerden en çok etkilenecek sektörün finans ve sigortacılık sektörü olacağı belirtiliyor. Sigortacılık/Emeklilik sektöründe Raporlama ve Analiz açısından değerlendirilirken diğer sektörlerden ayrı ve özel ele alınması gerektiğini düşünüyorum.

Ben de bir sigortacılık şirketinde çalıştığım için IBM Cognos‘u anlatırken aldığım ekran görüntülerinde sıkça poliçe, zeyl, poltantar, polbastar, tantar, polid gibi ifadelere rastlayabilirsiniz; fakat bunların anlamını bilmeniz tabi ki de gerekmiyor :)

Şimdi IBM in Cognos’u satın alması ile girmiş olduğu İş Zekası alanına neler getirdiğini bu yazımda hep birlikte inceleyelim.

 

IBM Cognos Report Studio

qq

Report Studio Genel Görünümü

 

Content Pane

Source   1   Raporda kullanılacak veya hesaplanacak olan, içinde data item’ları içeren paketlerden oluşan kısım diyebiliriz.

Data Items 2Raporda calculationları hesaplamak için kullanılır. (If/Else – Case/When)

Toolbox 3Rapora ekleyebileceğimiz text, block, char, crosstab gibi nesneleri içerir.

 

Properties Pane

Explorer Bar

  • Page explorer  5Oluşturacağımız raporun kaç sayfadan oluşmasını istiyorsak o kadar page ekleyebiliriz.
  • Query explorer  6Query’lerimizi oluşturup, raporun hangi Query’den besleneceğine karar veririz.
  • Condition explorer 7Bu kısmı aşağıda anlatacağım “no found ReportOutput” örneği ile açıklayacağım. 

 

Data Source İkonları

aa
Raporumuzu çalıştırmadan önce syntax hatası olup olmadığına bakmak için rapor VALIDATE 11 edilir. Raporu çalıştırmak için çalıştıracağımız sayfayı seçip RUN diyoruz.

a1

 

Chart

IBM COGNOS report studio da kullanabileceğiniz birden fazla chart tipi vardır:  column, bar, area, line charts vs..

12 13 14

 

Rapora başlarken

Öncelikle Launch -> Report Studio seçiyoruz . Daha sonra çıkan ekranda eğer boş bir sayfa oluşturmak istiyorsak Blank ya da raporumuzun list şeklinde görünmesini istiyorsak list seçeneğini seçiyoruz.

7

 

Eğer ad-hoc raporlama (sürükle bırak) yapacaksak ,  kullanacağımız paketi belirleyip seçtiğimiz objeleri raporumuza sürüklüyoruz. Daha sonra bu raporumuzu kaydetmek istediğimizde IBM Cognos’un bizim için belirlediği iki tab ile karşılaşırız. Birincisi Public Folder ikincisi My Folder’dır. Eğer geliştirdiğimiz raporun herkes tarafından görünmesini istiyorsak Public’e , sadece kendi çalışmalarımız arasında kalmasını istiyorsak My Folder’a raporumuzu kaydedebiliriz.

 

 

 

Ad-Hoc Rapor Örneği :

8

 

Daha sonra raporumuzu direkt çalıştıracağımız gibi aşagıdaki formatlarla da çalıştırabiliriz. (Html,Pdf,Csv… )

10

Sürükleyip bıraktığımız alanlar arka tarafta bir Query objesi içinde tutulur.  Yani biz raporu list şeklinde oluştur dersek arka tarafta kendisi bu query’i otomatik olarak oluşturur;  ancak raporumuzu blank şeklinde oluşturursak bizim bu query objesini sürükleyip içerisine raporda kullanacağımız item’larla doldurmamız gerekir. Çünkü raporlar bu query’lerden beslenir. Bu query’ler üzerinden join / union gibi tablo birleştirme işlemleri de yapılabilmektedir.

Rapor oluştururken izleyeceğimiz adımlar:

  1. Query Explorer’dan bir query objesi seçip rapora aktarılır.
  2. Source kısmından raporda kullanılacak objeler belirlenip query’nin içine alınır.
  3. Page Explorer’dan raporda kullanılacak sayfaya gelip,  data items sekmesinde bulunan Querymizin içinde ki data item’ları raporumuza sürükleyip bırakıyoruz.

 

9

 

Şimdi yukarıda anlattığımız chart ve ad-hoc mantığını birleştiren örnek  bir rapor hazırlayalım :

13

 

 

Prompt Page Yapısı

22

Date Prompt ve Value Prompt

 

Rapora bir Prompt page eklenerek iki tarih arasında bir seçim yapılması istenmiştir. Ve Value Prompt ile de Zeyl Tipinin seçilmesi istenmiştir. Bunun için DATE PROMPT , VALUE PROMPT ve  bir  PROMPT BUTTON eklenmiştir.

Promptlardan Date Prompt‘un iki tarih arasındaki değerleri getireceği için iki parametreye ihtiyacı vardır. Bunlara ?Tantar? ve ?Tantar1? şeklinde parametreler atarsak, Details Filters kısmında tarih aralığının seçtiğimiz değişkenler arasında olması için query’nin Expression Defination kısmına  “[TANTAR] between ?Tantar? and ?Tantar1?” ifadesi yazılır.

 

5

 

25Prompt page’deki bir diğer prompt Value Prompt olan ZEYLTIP :

Zeyltiplerini çekip, kullanıcıların bunların arasında bir işlem yapmasını istediğimiz için bunu Query’den beslemek durumundayız. Zeyl tipin properties özelliklerinden kullandığı Query’nin Zeyl1 olduğu, kullandığı değerin ZEYLTIP olduğu, parametre olarak atadığımız değerin ?pzeyltip? olduğunu, birden fazla seçme işleminin gerçek olması için Multi-Select özelliğinin YES olması gibi özelliklere dikkat edilmelidir.

Ve burada birden fazla Zeyltip seçmek için [T_ZEYL].[ZEYLTIP] in (?pzeyltip?) “in” komutunu kullandık, sadece tek bir değer seçmesini isteseydik “=” ifadesini kullanacaktık.

 

Raporumuzu çalıştırdığımızda ilk çalışacak sayfa her zaman varsa Prompt Page’dir.

26

Hazırlamış olduğumuz prompt ekranlarının görünümü

 

Genel Notlar :

Şimdi sizlere rapor geliştirirken kullandığım birkaç filtre ve calculationdan bahsedeceğim . Aşağıda anlatacağımız filtrelerimiz ile ilgili özellikleri Detail Filters kısmına ekliyoruz.

www

 

Örnek Kod Parçacıkları

  1. Örneğin yılbazında bir chart oluşturacaksak query’imize bir Dataitem ekleyip Expression Defination kısmına to_char ([Tarih] , ‘YYYY’) ay bazında oluşturmak istersek de to_char ([Tarih] , ‘MM’) yazabiliriz.
  2. Ocak ayının ilk günü ile bulunduğum ayın son günün 2 ay öncesi gibi bir filtre   [POLTANTAR] Between to_date(‘01.01.2014′;’DD.MM.YYYY’) And to_date(_add_months (_last_of_month ({sysdate});-2);’DD.MM.YYYY’)
  3. Bu ayın başlangıcı ve bulunduğum günü [POLTANTAR] Between to_date(‘01.01.2014′;’DD.MM.YYYY’) And to_date ({sysdate}; ‘DD.MM.YYYY’) şeklinde ifade edebiliriz. (Raporda Prompt kullanmadan da belirlediğimiz iki tarihi raporumuza gömüp filtre olarak kullanabiliriz).
  4.  Row Number Kullanımı : count ( distinct [OrderDetailQuantity] )
  5.  [TARIHI] between ‘01.01.2014’ and ‘30.06.2014’ şeklinde filtre olarak belirlediğimizi iki tarih aralığını raporumuza gömebiliriz.
  6. [POLTANTAR] = to_date( ‘01.01.2012’;’DD.MM.YYYY’) Direkt bir tarihe eşitleyebiliriz.
  7. [Sözleme Adedi]>=5  filtrelerimizde mantıksal operatörler kullanabiliriz.
  8. [POLBITTAR]=({ sysdate }) sysdate in içinde saati de aldığı için, bunu trunc komutu ile kesmemiz gerekir . [POLBITTAR]= to_date(trunc({ sysdate }) )
  9. [POLID] like ‘14%’ polıd 14 ile baslayanları bize getir diyebiliriz.
  10. Cognosta’da if/else case/when şeklinde de sql komutları vardır. Bunları yeni bir Dataitem ekleyip içerisinde istediğimiz komutları çalıştırabiliriz. Case when trunc([CRTTAR])=trunc([UPDTAR]) then ‘Yeni’ else ‘Update’ end
  11. Yeni bir item oluştur : [ADI]+’ ‘+[SOYADI] isim ve soyad bu şekilde birleştirilebilir.
  12. Satır Sayısı : count([POLICENO])
  13. Kayıt Sayısı : count(rows)
  14.   If ([Police]=’GB’) Then (‘AA’)Else If ([Police]=’IG’) Then (‘BB’) Else(‘Individual’)
  15. Ay ve yıl bazında yüzde hesabı için  “percentage([count] for [Yıl])  ve  percentage([count] for [Ay])
  16. Bir önceki yıl : {sysdate}- 365
  17. If ([Yıl]=’2013′) Then (‘ ‘) Else ([Ay])   – 2013’ten farklı olan aylar
  18. Crostab ile oluşturulan raporun SQL’i alınmamaktadır.
  19. Yine data itemlarımız içine PL/SQL developerda oluşturduğumuz fonksiyonlarıda görebiliriz ve bu fonksiyonları item olarak kullanabiliriz.    fonksiyon_adi (p.polid , trunc ({sysdate}) ) burada fonksiyonumuzun bizden 2 parametre beklediğini görebiliyoruz birincisi bir id diğeri ise bir tarih. Bunlara uygun 2 parametremezi  querylerimiz içinde ki itemlardan ekleyebiliyoruz.
  20. Raporlarda görselliğin bazen raporun içeriğinden daha önemli olabileceğini lütfen unutmayalım. Genel görsellik için izlediğim yol : Öncelikle kendiniz için raporda kullanacağınız bir template hazırlayabilirsiniz .
2

Create Header

4

Renk Ayarları

6

 

8

İşte Sonuç

 

21.  Örneğin Prompt ekranından seçtiğiniz değerlerin Page’de de görünmesini istiyorsanız :
Table -> Seçilen değer :  Text -> Properties bölmesinden Text Source ‘dan Source Type : Report Expression  ve Report Expression  ” ParamDisplayValue(‘ppolid’)”  seçerek istedğimiz poliçeleri ekranda görüntüleyebiliriz.

6

Properties

7

Page Görünümü

 

22. Querylerle ilgili olan bir diğer özellik de

27

Report studio’da rapor hazırlarken Query Explorer penceresindeki tüm Query’lerin Use Local Cache’lerinin “NO” olmasına dikkat edilmelidir. Çünkü bir raporun çalışması tam olarak bitmeden onu kapatırsak, Cache o kaydın sonucunu tutar ve rapor üzerinde bir değişiklik yapıp tekrar çalıştırmaya çalıştığımızda bize cahce’de tuttuğu eski sonucu getirir ve rapor üzerinde yaptığımız değişiklikleri göremeyiz.

 

JOIN

Querylerimiz arasında Union , Join gibi  tablo birleştirme işlemleri yapabiliriz demiştik . Aşağıda yapılan örnekte bir iki query arasında yapılmış bir  join işlemi görebiliyoruz.

16

Join Örneği

Burada join işleminin üzerine tıkladığımızda hangi alanlar üzerinden tabloların joinlendiğini görebiliriz.

17

 

 

UNION

Aynı page’de farklı iki rapor istenip bunların objeleri aynı ama sadece kullandıkları filtreler farklı olduğu zaman UNION ile raporumuzdaki query’lerimizi birleştirebiliriz.

1

 

ad

2

 

SINGLETON nedir?

Rapordaki satır sayısını hesaplamak için ROWNUMBER kullanılacağı gibi SINGLETON’da kullanılabilir. Rapor Query’sine bir dataitem atıp , name kısmından adını Satır Sayısı olarak değiştirip, Expression kısmına count([POLID]) işlemini yazıyoruz.

q2

Daha sonra Toolbox’tan Page Explorer’a  SINGLETON ekleriz.

q3          9

Report Studiyo’da attığın her obje için arka planda bir Query oluşturulur. Rapora singleton adında bir obje attığım için arkada kendi, rapordan bağımsız bir Query oluşturdu, bunu değiştirerek raporda kullanılacak olan Query’i seçmemiz gerekmektedir.

Singleton ile hesaplanacak değerin NULL ifadeler içermeyen Uniqe değerler olmasına dikkat edilmelidir.

    q5

 

IBM COGNOS Framework Manager

  1. Rapor üretimi yapabileceğimiz küplerin oluşturulması
  2. Daha önceden hazırlanmış rapor bilgisinin yeni oluşturabilecek rapora dahil edilmesi
  3. Dahili veya harici veri kaynakların yönetimi
  4. Kullanılacak veri yapısının seçimi (ilişkisel veya warehouse (ambar) veri kaynağının kaynak olarak gösterilmesi) gibi işlemler yapar.

bbb

 

9

Presentation Layer ‘da Tablo üzerine sağ tıklayıp Bağlam Gezgini’ni Başlat dediğimizde bağlı bulunduğu Tabloları ilişkileri ile birlikte görebiliriz. Görüntülemek istediğiniz ilişki üzerine sağ tıklayıp kurulan join işlemini inceleyebilirsiniz.

cc

Yeni bir FM oluşturmak için

c

Veri kaynaklarını seçip çıkan ekranda beslenecek Veri Kaynağını seçerek içe aktarmak istediğimiz nesneleri seçebiliriz .

gg

 

Yinelenen bir ad saptandığında : Bu nesneyi içe aktarma çünkü diğer FM tarafından kullanılabilir özelliğine dikkat edilmelidir.

e

İleri diyerek ilişkinin özelliklerini  ayarlayabilirsiniz. İçe aktar diyerek verilerimizi içeriye aktarmış oluyoruz.

f

Yeni bir paket oluşturulabilir , oluşturacağımız pakete eklemek istediğimiz nesneleri seçebiliriz:

g

h    x

İleri deyip, sonlandırdığımızda yeni oluşturduğun bir paketi veya üzerinde değişiklik yaptığın bir paketi yeniden yayınlayarak Report Studio’ya export edip kullanabiliriz.

i

Yayınlama konumunu seçerek yayınlıyoruz .

1

 

Report Studio’ya gelerek Change Report Package deyip FM ‘de yaptığımız değişiklerin rapora yansımasını sağlıyoruz.

l2

FM de oluşturduğumuz ve raporda kullanacağımız paketimizi seçiyoruz.

13

 

Report Studio da Auto Group & Summarize Özelliği

 Freamworkte nesnelere yüklediğin özellikleri rapora da aynen taşımak için (Distinct, Sum, Measure, identity, attribute)   “Auto Group & Summarize “ YES yapılır.

 q

Auto Group and Summarize ‘yı YES . Amacı verileri ya distinct ile azaltmak ya da Group by ile azaltmak.

Not: FM de oluşturduğun joinler report studio’ya aynen gelir. Ancak raporda kullanacağın join işlemi farklı ise, bunu gidip FM de düzeltmek yerine, Report studio’da FM’yi ezen Query’ler üzerinden yeniden bir join işlemi gerçekleştirebilirsiniz. 

 

Rapor Schedule Etmek

Report Studio’da daha önceden oluşturduğumuz tüm raporların olduğu sayfaya geldiğimizde (Public folder ya da my folder’daki)

q6

 

q7

 

More -> new Schedule ->

Priority’den önem derecesini belirleriz, Disable the schedule’ı seçersek yaptığımız schedule arka planda oluşur ancak bu özellik sebebiyle aktif olmaz.

Her gün,her hafta,her ay, her yıl şeklinde raporumuzun çalışma zamanını ayarlayabiliriz. Aynı zamanda başlama ve bitiş saatini ayarlayabiliriz.
q8

Options kısmında raporumuzun çıktısına nasıl olacağını belirleyebiliriz. HTML,PDF,EXCEL vs..

q9

Eğer raporunuzda değer bekleyen bir Prompt Page varsa, Cognos bu parametreye otomatik değer atamayacağı için Set özelliğini seçerek parametreler değer atamamız gerekir.

dd

Raporlara yaptığımız Schedule’ların kontrollerini My Activities and Schedules ‘dan görebiliriz.

q10

 

 

Status sekmesinden-> Schedules sekmesinden, Current Activites,Past Activites,Upcoming Activites,Schedules görebiliriz.

q11

 

Bir sonraki yazımda da test ortamda üretilen raporların canlı ortama nasıl deploy edileceğinden bahsedeceğim, o zamana kadar görüşmek üzere!