Aylık arşivler: Şubat 2017

sap design studio pdf excel csv çıkarma (export)

Sap Design Studio dashboard’unu pdf dosyası olarak çıkarmak için:
Uygulamanın Technical Components altına PDF Child’ı oluşturulur (PDF_TC olsun).
PDF_TC.exportApplicationScreen(); // ile dashboard ekran görüntüsü
PDF_TC.exportApplication(); // ile de dashboard’taki her bileşen (component) bir sayfaya gelecek şekilde çıktısı alınabilir.

Sap Design Studio’da dashboard’un excel çıktısı ücretli eklentiler ile alınabilir. Ama amaç sadece bir veri kaynağındaki (data source) veriyi liste olarak Excel (xls, xlsx) veya Csv’ye çıkarmak ise dahili bileşenler ile yapılabilir. Sap DS’da CrossTable bileşeni Excel veya CSV’ye çıkarılabiliyor. Eğer farklı veri kaynakları çıkarılmak istenirse görünür olmayan bir crosstable’a o veri kaynağı anlık olarak atanıp çıktısı alınabilir. Ya da aynı mantıkla herhangi bir Chart’taki veri çıkarılmak istenirse o chart’taki veri kaynağı anlık olarak görünürlüğü false olan bir crosstable’a atanarak çıktısı alınabilir.

CrossTable’ı doğrudan Excel veya CSV’ye çıkarma:
APPLICATION.export(ExportType.EXCEL_xlsx,CROSSTAB_1);
APPLICATION.export(ExportType.EXCEL_xls,CROSSTAB_1);
APPLICATION.export(ExportType.CSV,CROSSTAB_1);

Herhangi bir chart’ın verisinin çıktısının alınması:
CROSSTAB_INVISIBLE.setDataSource(INFOCHART_1.getDataSource());
APPLICATION.export(ExportType.EXCEL_xlsx,CROSSTAB_INVISIBLE);

sap design studio dinamik sorgulama (dynamic query)

Sap Design Studio ile Dashboard geliştirilirken sorgu sonucu 20000 satırı geçiyorsa (1.5 ve aşağı versiyonlarda satır sayısı limiti 5000, 1.6 versiyonunda 20000) istenen veri dinamik sorgulama ile sadece ilgili veri, sorguda filtrelenerek alınabilir.

Örneğin, Türkiye’nin 81 ilinde toplam 1000 mağaza olsun. Her mağazada da 50 çeşit malzeme olsun. Amacımız da dropdown box (açılır kutu) ile seçilen ildeki mağazaların malzeme stok adetlerini listelemek olsun.

Toplamda 50000 satır sonucu Sap Design Studio ile çekmek mümkün olmadığı için bir sorguda (DS_IL) sadece iller çekilir ve dropdown box’a bağlanır (binding). İkinci bir sorguda da DS_STOK) mağaza, malzeme ve stok adetleri sonuç kısmına; il objesi de filtre kısmına Optional Prompt olarak eklenir. Optional Promt’taki (seçimli istem) metni önemlidir, örneğin IlSecimliIstem olsun. Dropdown box’ın On Select (seçildiğinde çalışan kod) kısmında optional promt’a seçilen il değeri atanır ve sorgu yenilenir.

DS_STOK veri kaynağının Load in Script özelliği True olarak seçilmelidir.

Application On Startup: Varsayılan il değeri ile ilk sorgulama yapılır.
APPLICATION.setVariableValueExt(“psIlSecimliIstem”,”Ankara”);
DS_STOK.loadDataSource();

Dropdown Box On Select: seçilen il değeri ile sorgu tekrar çalıştırılarak veri güncellenir.
APPLICATION.setVariableValueExt(“psIlSecimliIstem”,DROPDOWN_IL.getSelectedText());
DS_STOK.reloadData();

Önemli not 1: prompt değişkenlere atama yapmak için “ps” öneki kullanılır.
Önemli not 2: prompt değişkenlere in list ile çoklu değer filtrelemesi yapılmak istenirse “pm” öneki kullanılır.

Kaynak:
not able to pass prompt values to queries using setVariableValueExt