IBM Cognos etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
IBM Cognos etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

16 Ekim 2016 Pazar

IBM Cognos Dynamic Cube Lifecycle



  • IBM Cube Designer: Geçmişteki başarılı modelleme teknolojilerinden faydalanarak en iyi modelleme prensiplerini bir araya getiren bir modelleme tool'udur. Cognos dynamic cube'i deploy etmenin ilk adımı  Cognos Cube Designer ile modellenmesidir.  Modellenen cube publish edildikten sonra, content managager'a kaydedilir. IBM Cognos dynamic cube server, content manager'dan cube'i okur.
  • IBM Cognos Dynamic Cubes server: Bir dynamic cube tasarlanıp ve deploy edildikten sonra,  Cognos ortamında available(kullanılabilir durumda) olur ve dynamic cube uygulaması için arayüz katmanında bir data source olarak davranır. 
  • Aggragate Advisor (IBM Cognos Dynamic Query Analyzer):Bir dynamic cube BI ortama deploy edildikten sonra raporlama ve analitik için kullanılabilir(available) durumda olur. Server, sistemin nasıl kullanıldığını anlamak için log'lar tutar ve aggregates'leri optimize etmek yani hem in-memory hemde in-database aggregate'ler için bu log'ları kullanabilir.

 Aggregate'ler oluşturmak için Dynamic Query Analyzer (DQA) yükleyerek aggregate adviser'u kullanılabilir. DQA, Cognos Dynamic Cubes ve Dynamics Query için en iyi performansı elde etmene yardımcı olan diagnostic(tanı) bir tool'dur.  Aggregate Advisor, cube tanımlamaları ve kullandığı tüm logları scan eder ve Cube'in performansını arıtırmak için aggregates'ler önerir. Bu yaklaşım belirli performans sorunlarını çözmeye yardımcı olur.


Dynamic cubes,  Query service JVM içinde bulunan  in-memory olap kapsüllerdir.


Aşağıdaki şekilde Dynamic cube'in  nasıl başlatıldığı, nasıl available  olduğu ve nasıl in-memory aggregates'leri load etmeye başladığı gösterilmektedir.



IBM Cognos Cube Caching


Cognos dynamic cube performansının temeli çeşitli in-memory  cache'leri ve database aggregate tabloları kullanmasıdır. Ek olarak Cognos query service'in 64 bit mimari'yi desteklemesidir. ve böylece Cognos dynamic cube büyük miktarda belleklere erişim sağlamaktadır.

Cognos dynamic cube, çeşitli in-memory cache'lerinde tutulan data'ları, database ihtiyaç duymadan tekrar kullanabilir. Memory'de bulunan member,aggregate ve data cache'leri kullanarak Cognos dynamic cube sadece hızlı sonuç dönmez ayrıca İlişkisel database üzerinde bulunan işlem yükünü hafifletmeye yardımcı olur.

Result set ve expression cache sırasıyla Query service'in MDX Engine'inde meydana gelen işlem miktarını azaltır. Kaynak kullanımın hızlı bir şekilde azaltmaya yardımcı olur.

Aşağıdaki bölümde Cognos Dynamic Cache tipleri detaylı bir şekilde açıklanmakadır.

  • Result set cache, Query service içindeki MDX engine üzerinde bulunan bir katmanda mevcuttur. Engine tarafından üretilen her bir mdx sorgusunun result set'i bu disk üzerindeki result cache'de depolanır.


Çalışan her bir sorguyu, MDX engine ilk olarak result set cache'te olup olmadığını araştırır. Eğer bu sorgu daha önceden çalıştırılmış ise ve sorguyu çalıştıran user'ın  security olarak bir sorunu gözükmese result set cache'de depolanan result set'i  kullanır.

Result set cache, mevcutta çalışan sorgunun farkındadır böylece bir sorguyu 2 kez çalıştırmak imkansız hale geliyor.


  • Expression Cache:Sonradan kullanmak için daha küçük çıktı  ve büyük member set'ler üzerinde işlem yapılan set expression sonuçlarını depolamak için MDX engine tarafından kullanılıyor. MDX fonksiyonları ile döndürülen daha küçük data set'lerini cache'ler.  
Expression cache tarafından desteklenen bazı MDX fonksiyonları aşağıda belirtilmiştir.
  
                       TOPCOUNT 
                       BOTTOMCOUNT 
                       TOPPERCENT 
                       BOTTOMPERCENT 
                       TOPSUM 
                       BOTTOMSUM  
                       FILTER

  • Member Cache:Cube başladığı zaman meydana gelen ilk olay  member cache'i doldurmaktadır. Cube modelinde tanımlanan tüm hiyearşiler  memory'e load edilir. Her bir hiyearşinin member'ları, bir hiyearşi içindeki tüm level'lar için attribute'lerin tamamını döndüren sql ifadelesi çalıştırılarak oluşturulur.
Member cache tamamlandığı zaman eş zamanlı olarak aşağıdaki işlemler meydana gelir.
  1. Cube state, available olarak değişir ve cube metadata ve data istekleri için hazır hale gelir.
  2. Eğer cube'e in memory aggregate'ler tanımlanmışsa o zaman cube cache dolduran dataları almak için sql'leri çalıştırır.
  • Aggregate Cache:IBM cognos dynamic cubes değerleri önceden hesaplanmış 2 tip aggregate'i desteklemektedir. Bunlar, IBM cognos dynamic cube'in in-memory aggregation cache'inde ve database tablorında store edilmiş tiplerdir.
in-database aggregate'ler, in-memory aggregate'lere göre detay olarak daha granular seviyededir.


  • Data Cache: Data values için dynamic cube'e mdx engine tarafından gönderilen sorgu sonuçlarını içerir. Bu sorguların her biri tarafından elde edilen data, data cache'te "cubelet" olarak depolanır. Bu cache'in amacı  sonraki isteklerde terkar kullanmak için önceden alınan data'yı store etmektir.  Data cache cubelet'lerin toplamıdır aslında.

26 Mart 2016 Cumartesi

IBM Cognos Framework Manager


  IBM Cognos Framework Manager ,  IBM Cognos ürünleri(Query Studio, Report Studio, Workspace Advanced vb.) için sorgu üretimi sağlayan metadata modelleme uygulamasıdır. Cognos Framework Manager modeli,  bir veya birden fazla  veri kaynağının fiziksel bilgiler, business bilgilerini içeren  metadata'ların toplamıdır.


IBM Cognos Framework Manager  Modelleme Süreci

Veri kaynaklarını ve modellerini hazırlama, ve konumlandırma (Locate and prepare data sources and models.)
IBM Cognos BI, çok çeşitli veri kaynaklarından raporlama yapabilir, hem ilişkili hemde boyutsal kaynaklar gibi. Veri tabanı bağlantısı "Web administration" arayüzünde tanımlanır ve veritabanı modelleme, geliştirme için  kullanılır. Veriyi görüntüleme ve geliştirme için BI tool'larının metadata model kümesine ihtiyacı vardır bu model kümesine "package" denir

 Model İçeriğini Oluşturma ve Yayınlama(Build and publish the content. )
Model içeriği, oluşturulup yayınlandırktan sonra, IBM Cognos BI Studio'ları ile Raporlar, puan kartı, analizler yapılabilir. Kullanıcılar modelleri kullanarak self-service raporlar oluşturabilir

Modeli Görüntüleme ve Paylaşma(Deliver and view the information) 
IBM Cognos portal'dan veya diğer destekli portallerden modelin içeriğini paylaşabilirsiniz.

1. Model Oluşturulurken Kullanılacak Nesneler
IBM Cognos Framework Manager de çalışıldığı zaman, projede çok sayıda nesne kullanılır. Nesneler aşağıda belirtilmiştir

1.1 Proje
  Bir proje, model, alan(namespace), paketler(packages) ve veri kaynaklarından oluşur.
  Bir proje,  birçok veri kaynaklarına ve tablolara ayrılabilir
  IBM Cognos framework Manager, projeyi içeren dosyayı (.cpf) uzantılı  gösterir
 
 Proje dosyasında bulunan içerikler

<project_name>.cpf:
Framework manager proje dosyası, projede tanımlı .xsd ve xml dosyaları ile ifade edilir
archive-log.xml:
Bu dosya, arşivlenen ana log dosyasının bölümü içerir
customdata.xml 
Bu dosya, diagram layout bilgilerini içerir. Eğer bu dosya silinirse, layout bilgileri kaybolur ve otomatik bir layout   uygulanır
IDLog.xml 
Bu dosya, dallandırma ve birleştirmede kullanılan model nesnelerini takip eder,
log.xml
Model'de yapılan tüm değişikleri listeler
mda_metadata.xml
Hızlı Model tasarım  dosyası ve veri kaynaklarından yüklenen metadata'ları içerir
mda_engine_project.xml
Hızlı Model tasarım  dosyası ve star şema tanımlama bilgilerini içerir
model.xml 
Framework manager kullanıcıları tarafından oluşturulan gerçek modeldir.
preferences.xml 
Framework Manager projeleri için tercihler
session-log.xml
Model'de kaydedilmemiş değişikleri listeler. Proje kaydedildiği zaman bu liste silinir. Görünüm işlem geçmişi kullanılarak bu dosyanın içeriği görüntülenebilir.
session-log-backup.xml 
Mevcut sessionda beklenmedik bir session kopma olayında kaydedilmemiş model değişikliklerini onarmak için modelci , bu dosyayı scriptini çalıştırır. Bu dosya, Framework Manager her başladığında silinir.
repository.xml 
Repository'e eklenen  her bir proje veya bölüm versiyonun geçmişini loglar. Bu dosya sadece projeye bir repository eklerseniz oluşur.
upgradeReport.htm
Yükseltmeden sonra görüntülenen yükseltme özet mesajını içerir

2.Model
-Model, ilişkili dimension'lar ve query subjectler kümesidir.
-Raporlama için business alanı temsil eden folder'da item'ları organize eder(yönetir)
-İlişkili veri kaynaklarına göndermek için sql sorgularını otomatik üretir

Model İçerikleri
2.1 Namespaces: 
Bir namespace, query item'ları, dimesion'ları, ve diğer objeleri uniqe olarak belirtir. Duplicate adlarında kaçınmak için farklı veri tabanlarını farklı namespace'lere  import edilebilirsiniz

2.2 Packages
Bir projede tanımlı  dimensions, query subjects ve diğer objeler kümesidir. Paket, aslında IBM Cognos BI server'lara yayınlanan şeydir ve adhoc sorgulari rapor oluşturma ve analizler için kullanılır.

2.3 Dimension
Bir işin önemli bir yönüyle ilgili verinin genel olarak gruplanmasıdır. örneğin: ürün, tarih ve pazarlama.

IBM Cognos Framework de çalışabileceğin dimension tipleri; regular dimension ve measure dimension.

2.4 Query Subject
Bir query subject, doğal ilişkiye sahip query item'lar kümesidir. Çoğu durumlarda, query subject'ler tablo gibi davranır.

Query subject'in 2 farklı tipi vardır

  1. Data Source: Data Source Query subject'ler  tek bir veri kaynağında  verileri referans eder. IBM Cognos Frameweok Manager otomotik olarak, model'e import edilen  her bir table ve view için ilişkili data source query subject'ler oluşturur.
  2. Model:Model Query Subject'leri,  data source'dan doğrudan oluşturulmaz ama diğer query subjectler veya dimension'lara dayalı oluşturulur.
  3. Stored Procedure:Store Procedure query subjectler,  ilişkili bir veri kaynağından  bir procedure import edildiği zaman oluşturulur.

2.5 Query Items
Bir query items, rapora yerleştirebileciğin model'in en küçük parçasıdır. Query Item, query subject veya dimension'da oluşturulur. Örneğin, tüm tabloyu içeren bir query subject, tablodaki her bir sütunu temsil eden ise query itemler.

Database'deki her bir nesnenin Cognos Framework Manager'daki karşılığı aşağıdaki gibidir.



5 Mart 2016 Cumartesi

IBM Cognos Mashup Service

Mashup Service

Cognos Mashup Service(CMS), IBM Cognos Yazılım Geliştirme Kit'inin parçası olarak gelen yeni bir web servistir. Bu dökümantasyon, CMS tanıtımını ve REST ve SOAP interface'leri arasındaki farkları açıklamak üzere yazılmıştır. Bu dökümantasyon ile örnek kodlardan CMS ile neler yapabiliceğimizden bazılarını göreceğiz  ve Cognos Mashup Servis yüklenmesi ile gelen bazı örnek kodlar üzerinde durulacaktır. Bu dökümantasyondan en iyi şekilde faydalanmak için, temel seviyede IBM Cognos BI , programlama dillerini anlama ve Web Teknolojileri bilgisi gerekir.

CMS ile Neler Yapılabilir

IBM Cognos Mashup Servis, Cognos Raporları diğer uygulamalara entegre etmek için size bir yol sunar. Bu entegreyi gerçekleştirmek için aşağıdaki iki interface de kullanabilir.

  • Representational State Transfer (REST): Bu interface temel HTTP istekleri için kullanılır.
  • Simple Object Access Protocol (SOAP): Bu interface, CMS API'sine erişmek için programlı olarak kullanılabilir.

Aşağıdaki örnek, tamamlanmış bir CMS entegresini gösterir. Şekil 1.1 de, IBM Cognos Report Studio'dan örnek bir raporun bir kısmı gösterilmiş. Rapor, hayali bir şirketin satış gelir verilerini içerir. Veri, her bir şirket ofisinin konumuna göre bölünmüş. Şekil 1.2 ise Raporun, Google Earth map ile entegre edildiğindeki sonuçları gösteriyor. Her bir ofisin satış rakamları, ofisin konumuna göre harita üzerinde yerleştirilmiş. Bu, CMS REST interface ile birlikte Google Maps API kullanılarak gerçekleştirilmiştir.

HTML formatında örnek bir IBM Cognos rapor sonuçları



IBM Cognos Mashup Servis kullanılarak Google Earth üzerine yerleştirilmiş IBM Cognos rapor sonuçları

CMS Kullanımı

Bu bölümdeki örnekler, Cognos raporunda farklı component'leri çıkarmak için REST ve SOAP interface'lerinin nasıl kullanılacağı örneklendirilecek
REST Interface
REST istekleri için url üretimi:
http://webservername:portnumber/cognos8/cgi-bin/cognos.cgi/rds/resource
\_type/source\_type/source\_id?option1=val1\&option2=val2...

REST API'nin ana yapı elemanları aşağıda gösterilmiştir.

REST API Örnek 1

İlk REST API örneği, List ve Chart'ı bir arada içeren mevcut bir raporda tüm chart'ları nasıl alınacağını gösterir. Örnek, Rapordan Tüm chart'ları Layout Data XML (LDX) formatında gönderir\\
Örnek için url oluşturulduğunda aşağıdaki parametreler kullanılır.

  • Resource type:reportData
  • Source type: report
  • Resource_id:report store id; Örnek olarak, iE0CDFEF149F8408F96F1C27DCFFA6BCB
  • Options: fmt=layoutDataXML, xpath=//chart

Url aşağıdaki gibi görünür
http://localhost/c841/cgi-bin/cognos.cgi/rds/reportData/report/\\
iE0CDFEF149F8408F96F1C27DCFFA6BCB?fmt=layoutDataXML\&xpath=//chart

REST isteğinden dönen LDX,caption=REST isteğinden dönen LDX
<filterResultSet xmlns="http://www.ibm.com/xmlns/prod/cognos/
layoutData/200904">
  <filterResult>
  <filterType>XPATH</filterType>
  <filterValue>//chart</filterValue>
   <reportElement>
    <chart>
     <palette>
      <paletteItem>
       <pattern>
        <type>ePatternSolid</type>
         <fgColor>
         <red>51</red>
         <green>51</green>
            .
            .
            .
 
   </reportElement>
  </filterResult>
 </filterResultSet>
\end{lstlisting}

REST API Örnek 2:

Bu örnek, ilk örnekteki gibi aynı rapordan veriye erişir.  HTML bölümü olarak rapordan tek bir chart döndürür

Örnek için url oluşturulduğunda aşağıdaki parametreler kullanılır.

  • Resource type:reportData
  • Source type: report
  • Resource_id: report store id; Örnek olarak, iE0CDFEF149F8408F96F1C27DCFFA6BCB
  • Options:fmt=HTMLFragment, selection=Chart1


Url aşağıdaki gibi görünür

http://localhost/c841/cgi-bin/cognos.cgi/rds/reportData/report/\\
iE0CDFEF149F8408F96F1C27DCFFA6BCB?fmt=HTMLFragment\&selection=Chart1

IBM Cognos Mashup Servis'den Üretilen Chart


REST API Örnek 3

Bu örnek, her bir sayfa üzerine döndürülen verinin maksimum 3 satırını html formatında nasıl çalıştırıldığını gösterir.

Örnek için url oluşturulduğunda aşağıdaki parametreler kullanılır.

  • Resource type:reportData
  • Source type: report
  • Resource_id: report store id; Örnek olarak, i6243D3E1A36A4E0FAF9D90652C171FC2
  • Options: fmt=HTML, selection=List1, rowLimit=3

Url aşağıdaki gibi görünür
http://localhost/c841/cgi-bin/cognos.cgi/rds/reportData/report/
i6243D3E1A36A4E0FAF9D90652C171FC2?fmt=HTML&selection=List1&rowLimit=3

IBM Cognos Mashup Servis'i kullanılarak HTML formatında sınırlı çıkışlar elde etmek








SOAP Interface

Şekil 1.6 SOAP API Interface'in bir kaç generic methodunu gösterir.
SOAP Methotları}


SOAP API Örnek 1:

Bu örnek,  liste ve grafik içeren bir rapordan, tüm rapor elementlerine erişim sağlayan bir  listenin nasıl çıkarılacağını gösterir.

Örnek Java Kodu
ReportDataServicePortProxy proxy=new ReportDataServicePortProxy();
//The endpoint will be the gateway URL for your server
proxy.setEndpoint(url);
ReportDataServicePort mashupService=
proxy.getReportDataServicePort();
  
GetReportDataRequest request = new GetReportDataRequest();
//This sets the cm searchPath as the source of the report, you 
//could alternatively use the storeId
  request.setSourceID("/content/folder[@name='Samples']
  /package[@name='GO Data Warehouse (analysis)']/folder[@name=
  'Query Studio
Report Samples']/query[@name='Returns by Product Type']");
  
//This identifies that the sourceID refers to a CM search path
request.setSourceType(SourceTypeEnum.searchPath);
//This creates an object id filter to only return the 
List1 element,  OBJECT_ID is the type of filter that
//filters based on element id.
Filter[] filters = {new Filter("List1",
FilterTypeEnum.OBJECT_ID, null)};
request.setFilters(filters);
  
GetOutputResponse response = mashupService.getReportData(request);
GetOutputRequest outputRequest = new GetOutputRequest();
  
/*
  * This loop is necessary when running asynchronously
*/
while(response.getSession().getStatus() 
== SessionTypeStatus.working)
{
outputRequest.setSession(response.getSession());
response = mashupService.getOutput(outputRequest);
}  
  /*
  * This block of code goes through the list 
  contents and outputs them to the console
  */
  ListFrame list1 = response.getOutput().getLDXOutput()
  .getFilterResultSet().getFilterResult()[0]
  .getReportElement()[0].getLst();
  Row[] rows = list1.getGroup().getRow();
  
  System.out.println();
  System.out.print("Product type");
  int spaceOfCell=25-("Product type".length());
  for (int n=0;n<spaceOfCell;n++)
    { System.out.print(" ");}
    
    System.out.print("Base product");
    spaceOfCell=35-("Base product".length());
    for (int n=0;n<spaceOfCell;n++)
    { System.out.print(" ");}
    
    System.out.print("Lost revenue");
    spaceOfCell=20-("Lost revenue".length());
    for (int n=0;n<spaceOfCell;n++)
      { System.out.print(" ");}
      
      System.out.println();
      System.out.println();
      
      for(int i = 0; i < rows.length; i++)
      {
      Cell[] cells = rows[i].getCell();
      
      System.out.print(cells[0].getItem(0).getTxt().
      getFmtVal());
      spaceOfCell=25-(cells[0].getItem(0).getTxt().
      getFmtVal().length());
      for(int j=0;j<spaceOfCell;j++)
        {   System.out.print(" ");}
        
        System.out.print(cells[1].getItem(0).
        getTxt().
        getFmtVal());
        spaceOfCell=35-cells[1].getItem(0).getTxt().
        getFmtVal().length();
        for(int j=0;j<spaceOfCell;j++)
        {   System.out.print(" ");}
        
        System.out.print(cells[5].
        getItem(0).getTxt().
        getFmtVal());
        spaceOfCell=20-cells[5].getItem(0).getTxt().
        getFmtVal().length();
        for(int j=0;j<spaceOfCell;j++)
          {   System.out.print(" ");}
          
          System.out.println();
          }

Aşağıdaki şekil, yukardaki örnek koddan üretilen çıkışların nasıl olacağını gösterir.


IBM Cognos Report Studio ve JavaScript

1-Cognos Promtları(İstekleri) için JavaScript Kullanımı
   Promtlar(İstekler) üzerinde bazı işlemler yapmak için JavaScript kullanılır. Örneğin
  • Kullanıcıya, prompt sayfasını sunmadan önce promtları düzenleme.
  • Kullanıcı işlemlerini doğrulama
  • Kullanıcı, Finish'e bastıktan sonra prompt süreci
  JavaScript,

  • Prompt sayfasında bir veya birden fazla HTML item'a yazılabilir.
  •  <script> ve </script> tag'ları arasında yazılmalıdır. 
   HTML item,
  • JavaScript'in etkileyeceği prompt'tan hemen sonra yerleştirilmeli. 
  • Buton tanımlamalarını veya diğer html alanlarını da içerebilir.

2-Prompt'lara Erişme

Promtlara erişmek için, öncelikle formun tamamının içerdiği nesnelere erişmek gerekir.
var form = getFormWarpRequest();  
Yukardaki kod güvenli olmadığında Cognos 8.2 de aşağıdaki kod kullanılır
var form = document.forms["formWarpRequest"];

3-Standart Promptlar

  Standart prompt nesnelerine,  formWarpRequest nesnesi kullanılarak  erişilebilir aşağıdaki adlandırma kuralları ile:
Text Edit Box:_textEditBox<prompt name>
List Box:_oLstChoices<prompt name>
Drop Down List:_oLstChoices<prompt name>
Radio Button Group:_oLstChoices<prompt name>
Check Box Group:_oLstChoices<prompt name>
Date Edit Box:txtDate<prompt name>

Örnek
XYX olarak adlandırılmış listbox prompt'una ulaşmak için aşağıdaki kod kullanılabilir.
<script>
var form = getFormWarpRequest();
var listB  = form._oLstChoicesXYZ;
</script>

4-Diğer Promptlara Erişme

  Diğer tüm prompt nesnelerine erişmek için, prompt nesnesinin etrafında  span adlı  tag'i eklenilir  ve getElementbyId() fonksiyonu  aracılığıya span tag'ine ulaşılabilir. Prompt nesne item'ına  erişmek için ise  getElementsByTagName()  fonksiyonu kullanır.

5-Prompt sayfası görüntülenmeden önce promptları düzenleme

Bir prompt'u düzenlemek için, bir HTML item oluşturulur, ve düzenlemek istediğiniz prompt'a ulaşmak için ise javascript yazılır.

5.1-Bir Multiselect List Box'ında bir item seçme

Örnek
Bir value prompt oluşturulur, "Multi-Select" özelliği evet yapılır, aşağıdaki javascript örneğinde listedeki 3. değer seçimi yapılır
<script>
var form = getFormWarpRequest();
var listB  = form._oLstChoicesXYZ; 
listB.options[2].selected=true;
canSubmitPrompt();
</script>

5.2-Bir text box için değer ayarlama

Örnek
Bir textbox prompt'u oluşturulur ve aşağıdaki kod html item'a yazılır
<script>
var form = getFormWarpRequest();
var textB  = form._textEditBoxXYZ;
textB.value="First value";
canSubmitPrompt();
</script>

5.3-Drop Down List promptunda ilk 2 satırı silme

Örnek
Bir value prompt oluşturulur, "SelectUI" özelliği "DropdownList" yapılır. İlk satır parametre adını içerir, ikinci satır tire(-) içerir ve gerçek veri 3. satırdan sonra başlar. Bazı müşteriler ilk iki satırın silinmesini isterler.
<script>
var form = getFormWarpRequest();
var dropDownL  = form._oLstChoicesXYZ;
dropDownL.remove(1);
dropDownL.remove(0);
dropDownL.removeAttribute("hasLabel"); 
canSubmitPrompt();
</script>

5.4-Finish butonunu aktif hale getirme

Bazı required promptlar içeren bir sayfada, finish butonu sadece tüm required promptlar kullanıcı tarafından seçildiğinde  aktif olur.
canSubmitPrompt();
Yukardaki fonksiyon tüm required promtlar seçildiğinde çağrılır. 
Örnek
Prompt name ABC olan bir text box'ın , başladığında "hello" yazmalı ve  Prompt name DEF olan  bir Listbox'ın  ilk item'ı seçilmiş olmalı finish butonunun aktif olması için
<script>
var form = getFormWarpRequest();
var textB  = form._textEditBoxABC;
textB.value = "Hello";
var listB  = form._oLstChoicesDEF;
listB.options[0].selected=true;
canSubmitPrompt();
</script>

5.4-Kullanıcı Finish Butonuna Bastıktan Sonra Script'i Çalıştırma

<input type="BUTTON" class="clsPromptButton" onClick="fillTextBox()" value="Finish">
<script>
function fillTextBox() {
var form = getFormWarpRequest();
var list = form._oLstChoicesABC;
var textBox = form._textEditBoxXYZ;
for (i = 0; i < list.length; i++) {
if (list.options[i].selected) {
textBox.value = list.options[i].value;
break;
}
}
promptButtonFinish();
}
</script>

5.4-Date Prompt Aralığı Belirme ve List'te bir alanın seçili olmasının kontrolü



Prompt sayfasında yer alan 2 date promptunda ilkinin yanına oluşturulan  html item'ın içine aşağıdaki script  yazma

<script>
   var fW = (typeof getFormWarpRequest == "function" ? getFormWarpRequest() : document.forms["formWarpRequest"]);
   
   if ( !fW || fW == undefined) { fW = ( formWarpRequest_THIS_ ? formWarpRequest_THIS_ : formWarpRequest_NS_ );}
</script>

 İkinci Date'in  yanına yine yanına oluşturulan  html item'ın içine aşağıdaki scripti yazma

<script>
function getDate(controlObject)
{
  for (field in controlObject) {
                                        if (controlObject[field] != undefined)
                                       {
       if (typeof controlObject[field].sGetFormatValue == 'function') 
       {
                                                        return controlObject[field].sGetFormatValue(); // assumes a content language that returns Month DD, YYYY
                                                 }
                                       }
}
}

function checkDate()
{
   var sMyFromDateControl = 'promptBasZamani'; 
   var sMyToDateControl = 'promptBitZamani';  
   var maximumRange = 30; 
   var errorMessage = "Rapor aralığı 30 günden uzun olamaz";
   var errorMessage1 = "Lütfen sigorta şirketi seçiniz";
   var controlObject;
   var DateControl;
   var p_bas_zamani;
   var p_bit_zamani;
   var customCV;
   var form = getFormWarpRequest();
  var p_sir=form._oLstChoicespromptSirket
   if (fW.elements["cv.id"])
   {
      if (fW.elements["cv.id"].value == "RS")
      {
         customCV = oCVRS;
      }
      else
      {
         customCV = oCV_NS_;
      }
   }
   else
   {
      customCV = oCV;
   }

   for ( var ca_id=0; ca_id<customCV.preProcessControlArray.length; ca_id++)
   {   // loop through control objects

      controlObject = eval(customCV.preProcessControlArray[ca_id]);  // load each object...
      if (controlObject['@name']==sMyFromDateControl)  //...and check if it is the FromDate Control
      {
p_bas_zamani = new Date(getDate(controlObject));
      }
      else if (controlObject['@name']==sMyToDateControl)  //...and check if it is the p_bit_zamani Control
      {
p_bit_zamani = new Date(getDate(controlObject));
      }
   }
         // the difference between the 2 dates are returned in milliseconds
         if ((((p_bit_zamani - p_bas_zamani) / 1000) > (maximumRange * 24 * 60 * 60)))
         {
            alert(errorMessage);
         }
         else
         {
if(p_sir.options.selectedIndex !=-1){
           
            promptButtonFinish();
}
else
{
alert(errorMessage1);
}
         }
}
</script>

Date componentlerin aralığını buton ile kontrol etmek için istenilen bir yere oluşturulan html item'ın içine aşağıdaki script yazılır

<input type="button" style="color:#444499;font:12px;width:100px;font-weight:bold;" class="clsPromptButton"   name="check" value="Tamam" onclick="checkDate()">

5.5-Html ile oluşturulan bir radio buton'un index'inin değiştiğinde birşeyleri tetiklemesi 

Aşağıda html ile bir radio button oluşturulma
<input type="radio" id="1" name="p_detay" value="1" checked  onClick="Showprompt()">s1<br> 
<input type="radio" id="2" name="p_detay" value="2"  checked  onClick="Showprompt()">s2<br>
<input type="radio"  id="3"name="p_detay" value="3"  checked   onClick="Showprompt()">s3<br> 
<input type="radio"  id="4"name="p_detay" value="4" onClick="Hideprompt()">s4<br> 
<input type="radio"  id="5" name="p_detay" value="5"  onClick="Hideprompt()">s5

Oluşturulan radio button'un index'inin değiştiğinde etkileyeceği componenti  aşağıdaki script arasına alma 
<span id="A1">
</span >

Oluşturulan radio Button'un index'inin değiştiğinde aşağıdaki script çalışır.

  <script type="text/javascript">
var FW=(typeof getFormWarpRequest=="function"?getFormWarpRequest():document.forms["formWarpRequest"]);
 var prompt = fW._oLstChoicespromptDetay1;
 var prompt1 = fW._oLstChoicespromptYil1;

if(FW)
{
if(FW._oLstChoicesMyList.Length>=1)
{
FW._oLstChoicesMyList.selectedIndex=0;
}
}
function Showprompt()
{
document.getElementById("A1").style.display='';
//document.getElementById("A1").disabled=false;
var form = getFormWarpRequest();
var radios = document.getElementsByName('p_detay');
for (var i = 0, length = radios.length; i < length; i++) {
    if (radios[i].checked) {
        alert(radios[i].value);
         prompt[i].selected=true;
        break;
    }
}
}
function Hideprompt()
{
document.getElementById("A1").style.display='none';
//document.getElementById("A1").disabled=true;
var radios = document.getElementsByName('p_detay');
for (var i = 0, length = radios.length; i < length; i++) {
    if (radios[i].checked) {
        // do whatever you want with the checked radio
        alert(radios[i].value);
       prompt[i].selected=true;
        break;
    }
}
}
</script>

20 Şubat 2016 Cumartesi

IBM COGNOS MİMARİ

IBM Cognos BI 


   IBM Cognos Business Intelligence kurumsal ölçekli raporlama, analiz, puanlama, olay bildirimi gibi sorunların üstesinden gelmek için tasarlanan bir çözümdür. IBM Cognos  BI mimarisi, ölçeklenebilirlik,  kullanılabilirlik ve açıklık için tasarlanmıştır,  bağımsız platformlarda kullanılabilir örnek olarak  XML, SOAP ve WSDL gibi.






IBM Cognos Mimari


IBM Cognos Business Intelligence çok katmanlı bir mimariye sahiptir. Bu katmanlar aşağıda belirtilmişr;
1-Webserver
2-Application
3-Data


  Bu katmanlar Business function'lara dayalıdır ve firewall’larla birbirinden ayrılır.  Cognos Mimari yapısı aşağıdaki gibidir


IBM COGNOS BI Web  ve Windows Tabanlı Uygulamalar



1.Web Tabanlı Uygulamalar

1.1 IBM Cognos Connection:

   IBM Cognos Business Intelligence  ürünleri için mevcut kurumsal verilere tek bir erişim noktası sağlayan bir web portaldır.  Sorgulama(Query Studio), analiz(Analyz Studio), veri yönetimi(Administration) ,Event(Event Studio), Puanlama(Metric Studio), Rapor oluşturma(Report Studio) için tek bir erişim noktası sağlar. Userlar, IBM Cognos Connection üzerinden Web-based IBM COGNOS BI uygulamalarını çalıştırabilir.




1.2 IBM Cognos Administration

   IBM Cognos BI için yönetim görevlerini içeren merkezi yönetim arayüzüdür. IBM Cognos ortamlarının genel yönetimleri için kolaylık sağlar ve IBM Cognos Connection üzerinden erişilebilir

IBM Cognos Administration üç bölüm halinde düzenlenmiştir

- Status:Ekran faliyetleri, server durumları, sistem metrikleri ve bazı sistem ayarlarını değiştirmek için bu bölümdeki bağlantı kullanılır.
- Security:Güvenlik amaçlı kullanıcı grupları ve roller tanımlamak için bu bağlantı kullanılır. Arayüz ve studio yeteneklerini ayarlama, Report Studio'da kullanılan kullanıcı interface profilleri özellikleri ayarlanır
-Configuration:Veri tabanı bağlantıları, distributation oluşturma, iletişim listesi, style düzenleme,
Portletlerin yönetimi , portlet düzeni, dispatcher ve servisleri start ve stop etme, sistem ayarlarını değiştirme bu bölümde yapılır

1.3 Cognos Query Studio

  Kullanıcılar rapor ihtiyaçlarını karşılamak için herhangi üst düzey bilgiye sahip olmadan Query studio’yu kullanarak hızlı bir şekilde ihtiyacı olan raporları oluşturabilir ve kaydedebilir. Ama  Report Studio da oluşturulan professional raporlar gibi olmaz



1.4 Cognos Report Studio

Rapor geliştiriciler, Report studio’yu kullanılarak raporlar oluşturabilir, düzenleyebilir ve raporları geniş bir kitleye dağıtabilir.



1.5 Cognos Analys Studio

 Kullancı  dimensional data’yı keşfedebilir, analiz edebilir ve karşılaştırabilir. 



1.6 Cognos Workspace Advanced


 Cognos Workspace Advanced, rapor yazmada ve veri çözümlemede kullanılan Web tabanlı bir araçtır. İş kullanıcılarının işlerini derinliğine kavramasını sağlar.
     IBM Cognos Workspace Advanced’e ihtiyaç duyulma sebebi , kullanıcıların Query Studio’yu çok basit ve sınırlı bulmaları, Report Studio’yu da çok karmaşık ve ileri seviye bulmalarından dolayı Ibm, Kullanıcılara Cognos Workspace Advanced tool’unu sunmaktadır
   Cognos Workspace Advanced, ilişkisel veya boyutlu veri kaynakları ile raporlar oluşturmanızı ve verileri listelerde, çapraz tablolarda ve grafiklerde göstermenizi sağlar

1.7 Cognos Event Studio


   Event Studio’da, verinizde, doğal olmayan bir koşul veya olay  gerçekleştiğinde   verileri görüntüleme ve görevleri gerçekleştirme için agent’lar ayarlanır



2.Windows Tabanlı Uygulamalar


2.1 Cognos Framework Manager

Cognos Framework Manager, IBM Cognos BI  için metada model geliştrme ortamıdır. Analiz 
ve raporlama da kullanmak için iş ile ilgili metadata yönetimini ve oluşturulmasını sağlar 

2.2 Cognos Metric Designer

  IBM Cognos BI puanlama uygulamalarının  kullanım için çıkarımları oluşturmada  kullanılan modelleme uygulamasıdır

2.3 Cognos Transformer

   IBM Cognos BI da  PowerCube'leri oluşturmak için  kullanılan modelleme uygulamasıdır. 

2.4 Cognos Map Manager

2.5 Cognos BI for Microsoft Office

   Cognos BI for Microsoft Office ile Microsoft office uygulamalarından  IBM Cognos raporlama verilerine doğrudan erişilebilir.

2.6 Cognos Insigth


IBM Cognos Mimari Katmanları


1-Web Server Katmanı(IBM Cognos BI Gateway)

    IBM Cognos web server katmanı bir veya birden fazla IBM Cognos BI gateway’i içerebilir. IBM Cognos Business Intelligence’de ki Web iletişimi gateway’ler üzerinde yapılır. Gateway'ler bir veya birden fazla sunucular üzerinde bulunabilir.
Gateway:Web server’dan başka bir web server’a bilgi transferi yapan bir web server programının uzantısıdır. 
-Gateway, dağıtık ortamdaki dispatcher ile iletişim için yapılandırılmaldır. Gateway, yükü dağıtmak için birden fazla server üzerinde yapılandırılabilir
IBM Cognos gateway,  request'in ilk alındığı ve BI server iletileceği ilk yer

  Birden fazla gateway varsa, performansı artırmak için ayrı makinelere kurulmalı ve yapılandırılmalıdır



 Eğer gateway componentini, Content manager veya application katmanından farklı bir bilgisayar yüklenirse , gateway bilgisayarın ayarlarını yapılandırılmalıdır. Böylece Gateway, dispatcher’ın konumunu bilir.

IBM Cognos BI web gateway’lerin birkaç tipini destekler
-ISAPI
-Apache Mod: Apache web server ile apache mod gateway’ini kullanabilirsin
-CGI

IBM Cognos BI gateway bir istek aldığı zaman,
-Güvenliği sağlamak için password’u şifreli hale çevirir.
-IBM Cognos BI server’a isteği göndermek için  gerekli bilgiyi çıkarır.
-Web server için ortam değişkenleri ekler
-Sunucu, kullanıcıyı  doğrulamayı sağlamak için isteğe  varsayılan bir namespace ekler  
-Süreç için bir IBM Cognos BI Dispatcher’a istek geçer

2-Uygulama Katmanı(IBM Cognos BI Server)

    IBM Cognos BI Application, bir veya birden fazla IBM Cognos BI server içerir. Bir IBM Cognos BI Server, kullanıcı isteklerini çalıştırır örneğin bir gateway aracılığıyla   gelen rapor, analiz, sorgu istekleri gibi. Ayrıca IBM Cognos BI server, IBM Cognos Connection  interface'ni render eder.

Uygulama katmanında gerçekleşen olaylar
-gateway'den requesti alır
-user requesti ilgili servislere gönderir
-Uygulama katmanı, bir gateway aracılığıyla tüm servisleri çalıştımadan sorumludur. Ayrıca Cognos connection içeriğini görüntülemede de sorumludur.
Örnek
-User Cognos connection'ı açması
-İlgili kullanıcı bilgileri gatewayden alınır
-dispatcher aracılığıyla kullanıcı bilgilerini doğrulamak için content manager'a
-Kullanıcı doğrulaması
-Dispatcher, ana sayfayı görüntülemek için, presentation service'ine request gönderir
-Presentation servisinden gelen tüm bilgiler gateway ile cognos connection'a geri gönderilir.

Her bir IBM Cognos BI  kurulumu aşağıdakiler içerir.
-Application tier components,  bir dispacher içerir, bu dispatcher servisleri  çalıştırır ve istekleri yönlendirir
-Content Manager:IBM Cognos BI bilgilerini yönetir.

Dispatcher
-Yapılandırılmış tüm IBM Cognos servislerini  başlatır
-Bir bilgisayar üzerinde etkinleştirilir  ve  istekleri yönlendirir
-İstek başına bir veya birden fazla iş parçası kullanan çok iş parçacıklı bir uygulamadır.  
-IBM Cognos Dispatcher, uygulama katmanında isteklerin yük dağılımını gerçekleştirir.
-Dispatcher, alınan her bir requesti  bir sonraki işlemler için karşılık gelen servislere yönlendirir.
-Çalışan tüm dispatcherlerin bilgileri, Content manager da bulunmaktadır

   Yapılandırma değişikleri rutin olarak tüm dispatcher’lara iletilir. Dispatcher, IBM Cognos BI güvenliğini sağlamak için IBM  Cognos  Application firewall içerir

    Bir dispatcher, isteği local servislere yönledirilir örneğin report service, presentation service, job service, veya monitor service. IBM Cognos BI gateway yapılandırıldığı zaman, hedef dispatcher’ların evrensel kaynak tanımlayıcılarını, en az tercih edilen en çok tercih edilene doğru sırayla listeleyebilirsiniz. Eğer bir dispatcher başarısız olursa, istek listedeki başka bir dispatcher’a yönlendirilir. Birincil dispatcher’ın durumu,  gateway  ile görüntülenebilir , istek servise döndüğü zaman, bu bileşene geri yönlendirilir

   Bir dispatcher çalıştığı zaman kendini content manager’a kaydeder, sonuç olarak herbir dispatcher, diğer dispatcher’ların farkındadır. Eğer bir dispatcher başarısız olursa veya mevcut değilse bu dispatcher için istek, sıradaki mevcut dispatcher’a yönlendirir taki  başarısız olan dispatcher kendini yeniden kaydedene kadar



   Sistem performansını artırmak için birden fazla dispatcher kurulabilir ama ayrı makineler üzerinde, ve content manager daayrı bir server üzerinde kurulmalıdır. Yukardaki diagramdaki gibi.

IBM Cognos Servis
  IBM Cognos BI yükledikten ve yapılandırdıktan sonra varsayılan olarak her bir bilgisayarda bir dispatcher mevcuttur. Her bir dispatcher’ın ilişkili servisleri vardır. Servisler aşağıda gösterilmiştir.




Content Manager
   Content Manager, müşteri uygulamalarının verilerini depolamayı yöneten IBM Cognos Platform servisidir.

İlişkili metadata servislerini, güvenlik ayarlarını, sunucu yapılandırma ayarlarını, veri yapılandırılmalarını, metrikleri, rapor özelliklerini, ve rapor çıktılarını yöneten IBM Cognos BI servis’tir. 

IBM Cognos Content Manager,  content store olarak adlandırılan ilişkisel veritabanı bilgileri tutar.
    
Content manager, paketi yayınlamak, almak veya rapor özellklerini depolama, scheduling bilgilerini depolama, ve cognos alanlarını yönetir

Content manager tarafından depolanan bilgiler
-Raporlar
Raporların, özelliklerini, güvenlik ayarlarını , çıktılarını. Ayrıca  Analysis Studio'da oluşturulan analizler, Query Studio'da oluşturulan sorgular, Report Studio'da oluşturulan raporlar.
Rapor Paketleri:
Metadata raporları içeren paketler ve klasörler
Metric Paketler
Metadata puanlama içeren metrik paketler ve klasörler
Agent'lar
Event'ları görüntüleyen ve bildirimleri göndermek için kullanılan condition, schedule ve task'leri içererir
Server Yapılandırılması
Yönetici bilgilerini, cognos alanlarını ve iletişim bilgileri, veri kaynakları ve yazıcıların yapılandırılması
-Kişi kullanıcı bilgileri,
Kişi kullanıcı bilgiler, myfolder, mypage içerir.
-Dil bilgileri
-Workspace’ler

Access Manager
Content manager, Access manager’ı içerir.  IBM Cognos BI’nın  birincil güvenlik componentidir
(Kullanıcı doğrulama, şifreleme.) 


3-Veri Katmanı(İçerik Sağlayıcı)

Ibm Cognos Business Intelligence veri katmanı aşağıdaki içeriklerden oluşmaktadır

Content Store:IBM Cognos BI ürünün işlemek için ihtiyacı olan   data’yı içerir örneğin rapor özellikleri, yayınlanan model,  veri kaynakları için bağlantı bilgileri 
Data Sources: