Kategori arşivi: SAP Business Objects Webi

sap bo webi raporu son tarihçe bağlantısı (report last instance link)

Sap Business Objects (BO) ortamında çalışma süresi uzun olan raporlar için eğer rapora farklı bir yerden bağlantı (link) verilerek ulaşılıyorsa, raporun normal url’sine &sInstance=Last parametresi eklenerek çalışmış son instance’ı (son instance hangi formatta ise webi, excel, pdf) doğrudan açılabilir. Bu işlem rapor açıldığında yenilensin (refresh document on open) seçeneği yerine tercih edilebilir.

Raporun normal url’si (adresi) aşağıda sarı işaretli kısımdaki gibi &sInstance=Last parametresi eklenerek çağrıldığında doğrudan son instance açılıyor.

https://sap_bo:8080/BOE/OpenDocument/opendoc/openDocument.jsp?sIDType=CUID&iDocID=CuidOfYourDocument&sInstance=Last

Kaynak:
Viewing Documents Using OpenDocument: sbo41_opendocument_en.pdf

sap bo webi zamanlama dosya sunucusu hedefi hata

sap bo webi schedule filesystem destination error

Hata Mesajı, Error Massage: deliverResultsToDestination failed

Sap BO ortamında bir Web Intelligence raporu hedefi (destination) dosya sunucusu (filesystem) olarak zamanlandığında (schedule) “deliverResultsToDestination failed” hatası alınıyorsa bir sebebi Central Management Console’da (CMC) Adaptive Job Server’ların Destination kısmının konfigürasyonunun yapılmadığından olabilir. Bundan kaynaklanıyorsa Adaptive Job Server’lar önce durdurulur sonra sağ tık Properties (Özellikler) > Destination (Hedef) > File System (Dosya Sunucusu) > Add (Ekle) adımları ile Job Server’ların dosya sunucusuna raporu atma özelliği aktifleştirilmiş olur.

Eğer bundan kaynaklanmıyorsa diğer önemli bir sebebi de Sap BO uygulamasının bir Servis Kullanıcısı (Service User) ile çalışmıyor olması olabilir. Böyle bir durumda Sap BO’nun bir servis kullanıcısı ile çalışması sağlanır ve aynı servis kullanıcısına hedef dosya sunucusu erişimi verilir. Bu şekilde rapor hedef dosya sunucusuna rapor çıktısını başarılı bir şekilde atabilir.

sap bo tekli veya çoklu dağıtım (single or multiple publication)

Sap Business Objects ortamında örnek şöyle bir durum olsun:
Her bölge müdürüne kendi bölgesinin verisi gidecek şekilde e-mail dağıtım yapılıyor; ama bir bölge müdürü birden fazla bölgeden sorumlu olabiliyor. Dağıtım listesi de bölge kodu ve bölge müdürü e-posta adresi bilgisini içeriyor.

Böyle bir durumda dağıtım her bölge için ayrı mail gönderimi yapar ve birden fazla bölgeden sorumlu bölge müdürüne birden fazla mail gönderimi yapılır. Birden fazla bölgeden sorumlu müdürlere sorumlu olunan bölgelerin mailinin tek seferde iletilmesi için dağıtım listesinin bölge müdür mail adreslerine göre sıralı gelmesi sağlanır (freehand sql, custom sql, derived table, vs) ve Publication’ın Properties > Advanced kısmında Profile Resolution Merged seçilir.

sap bo webi raporlama tecrübesi

Örneğin:
M müşteri tablosu olsun ve 500 bin kayıt içersin,
I işlem tablosu olsun, toplamda 100 milyon kayıt içersin ve A işlem kodundan 2 milyon kayıt içersin,
U universe’ü de bu tabloları içersin ve 1 milyon satır sayısı limiti olsun,
amacımız da A işlemini yapan müşteri numarası listesini almak olsun.

Bu durumda rapor sorgu panelinde Müşteri No objesi sonuç kısmında, İşlem Kodu (=’A’) objesini de filtrede kullandığımızda aşağıdaki gibi bir sorgu oluşturulur.

select m.musterino
from musteri m,
islem i
where m.musterino = i.musterino
and i.islemkodu = 'A'

Bu sorgu sonucu 2 milyon satır dönmesi gerekir ama universe satır limiti aşıldığı için 1 milyon sonuç döner ve webi tarafından parçalı sonuç (partial results) uyarısı verilir.

Mantıksal olarak (teknik olmayan bir şekilde) bakıldığında maksimum 500 bin müşteri numarası gelebilir ve satır limiti aşılmaz bir durum beklenir. Basit bakış açısıyla bu durum bug (hata) olarak tanımlanır; fakat teknik bakış açısıyla ilgili objeler ile doğru sorgu üretilmiş olur.

Böyle bir sonuç ile karşılaşmamak için de rapor panelinin sonuç kısmına Müşteri Adedi gibi gruplamayı sağlayacak bir ölçüt (measure) sürüklemek çözüm olabilir. Aşağıdaki gibi bir sorgu oluşturulur, universe satır limiti aşılmaz ve teknik ve mantıksal açıdan hedefe ulaşılmış olur.

select m.musterino, count(distinct m.musterino)
from musteri m,
islem i
where m.musterino = i.musterino
and i.islemkodu = 'A'
group by m.musterino