Skip to main content
SAP_BusinessObjects

SAP BO RESTful ile Raporları Uygulamanıza Çekmek

Bazen raporları farklı uygulamar ile konuşturmak gerekebiliyor. Bunun için Sap Bo’nun restful servisini kullanacağız. Http protokolü üzerinden restfull servis ile sap bo (bi) reporlarına ulaşmak oldukça kolay. Birkaç adımda yapabiliriz bunu

1.Adım: Token Almak

http://<ip>:<port>/biprws/logon/long adresine POST isteğinde bulunup token alacağız

sap bo restfull token

Body içerinde şöyle bir xml var. Bu bilgiler ile token alıyoruz.

<attrs xmlns="http://www.sap.com/rws/bip">
<attr name="userName" type="string">KullanıcıAdı</attr>
<attr name="password" type="string">Şifre</attr>
<attr name="auth" type="string" possibilities="secEnterprise,secLDAP,secWinAD,secSAPR3">secEnterprise</attr>
</attrs>

Bu işlemin sonucunda bize bir json dönecek.


{"logonToken": "********xxx******"}

2.Adım:Raporlara Listelemek
http://<ip>:<port>/biprws/raylight/v1/documents/ [GET]
Bu adımda raporları listeleyebiliyoruz. id’ye göre rapor detaylarına girip json veya xml çıktı alacağız. tabi bu üçüncü adımda
Screenshot_3

3.Adım: Rapor Detaylarına Erişmek

http://<ip>:<port>/biprws/raylight/v1/documents/58275/reports [GET]

58275 id’li dökümanın raporlarını get isteğiyle istedik. Burada birden çok rapor gelebilir. Burada resmini
koymayacağım ama bizde 1 nolu rapor için aşağıdaki istekde bulunuyorum.

http://<ip>:<port>/biprws/raylight/v1/documents/58275/reports/1/elements/

Screenshot_4

raporun dataları vtable içinde olduğu için onun id’si ile dataları çekme isteğinde bulunuyoruz.

http://<ip>:<port>/biprws/raylight/v1/documents/58275/reports/1/elements/23/dataset

Son olarak bu endpoint ile dökümanımızın ilgili raporundan verimizi çekiyoruz.

Screenshot_5

Json içerisindeki dataset ve onun içerisindeki row alanında tüm kayıtlar gelmektedir. Yapacağımız uygulamanın amacına göre

parse edip entegrasyon işlemlerini yapabiliriz.

Ve son olarak Bonus:

c# (RestSharp) ile Sap Bo Restful’den Json değer alan küçük bir kod örneği  


var client = new RestClient("http://***/biprws/raylight/v1/documents/*****/reports/1/elements/23/dataset");
var request = new RestRequest(Method.GET);
request.AddHeader("postman-token", "b0126fc5-6c7f-f276-31dd-b326202b1f9f");
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddHeader("x-sap-logontoken", "****");
request.AddHeader("accept", "application/json");
IRestResponse response = client.Execute(request);

var result = response.Content;

Ve bitti 🙂

İyi Çalışmalar

 

Devamını Oku

Doğuş Pompa