Delphi/Lazarus i SAP B1 – robił ktoś coś podobnego?

0

Jako, że mam w pracy dostęp do SAP-a w wersji Business One, chętnie bym coś podziałał w temacie i szukam rozwiązań dostępnych z poziomu Delphi Community bądź Lazarusa. Znalazłem jakieś szczątki starych przykładów, ale nie wiem czy to obecnie działa i skąd wziąć wszystkie biblioteki.
Jak na razie robiłem jakieś drobne aplikacje wyciągające dane z SAP-a, ale odwołując się bezpośrednio do bazy MS SQL. Teraz chciałbym zrobić to bardziej prawilnie i właściwie, korzystając z oryginalnego API.
Może ktoś już coś robił podobnego?

0

W Delphi masz dedykowane narzędzie
https://www.embarcadero.com/products/enterprise-connectors
z obsługą SAP. Niestety sporo płatne. Przez GetIt możesz pobrać wersje demo i zobaczyć co to jest warte. Niestety nie testowałem więc nie jestem w stanie powiedzieć jak się sprawdza.

0

Dzięki za informacje! Chyba jednak spróbuję tego rozwiązania, które znalazłem do Visual C# - czyli dostęp do obiektów COM i DI API.

0

Aktualizacja. W międzyczasie dowiedziałem się, że z serwerem SAP B1 można się komunikować wysyłając zapytanie SOAP XML - przetestowałem i działa całkiem fajnie z poziomu Lazarusa / Indy.
A jak rozmawiałem z gościem wdrażającym aplikacje SAP-owskie, działa to ponoć lepiej niż odwołania do obiektów COM.
Generalnie, do aplikacji które mają coś update'ować lub dodawać do SAP - tylko sposób przez serwer DI API, ale jeśli tylko dane chcemy wyciągać, wtedy spokojnie można używać bezpośrednich zapytań do serwera MS SQL - bo działa to szybciej ;-)
PS. ponoć w nowej wersji SAP B1 wchodzi Service Layer i jeszcze lepsza komunikacja, tym razem bez DI API i XML tylko JSON.

1
Kristof napisał(a):

Aktualizacja. W międzyczasie dowiedziałem się, że z serwerem SAP B1 można się komunikować wysyłając zapytanie SOAP XML - przetestowałem i działa całkiem fajnie z poziomu Lazarusa / Indy.
A jak rozmawiałem z gościem wdrażającym aplikacje SAP-owskie, działa to ponoć lepiej niż odwołania do obiektów COM.

Tak i nie. To zależy co chce się osiągnąć.
Poza tym, zwróć uwagę na licencję dostępową do SAP, ponieważ DI API inaczej alokuje licencje niż COM.

Generalnie, do aplikacji które mają coś update'ować lub dodawać do SAP - tylko sposób przez serwer DI API, ale jeśli tylko dane chcemy wyciągać, wtedy spokojnie można używać bezpośrednich zapytań do serwera MS SQL - bo działa to szybciej ;-)

Gorzej jak to jest SAP HANA, a chcesz mieć uniwersalne rozwiązanie.
Nieee.... lepiej korzystać ze standardowego API, ponieważ po to ono jest zbudowane.
Żadna poważna firma nie zgodzi się na siorbanie danych bezpośrednio z bazy, jeżeli jest do tego dedykowane API.
Tak tylko mówię, a że spotkałem się już z tym niejednokrotnie, to mówię co wiem.

PS. ponoć w nowej wersji SAP B1 wchodzi Service Layer i jeszcze lepsza komunikacja, tym razem bez DI API i XML tylko JSON.

Tak, ale...
W SAP nie wszystko jest oczywiste, a na pewno nic nie jest za darmo.
Trzeba uważać na te licencje...
Sam widziałem taką akcję, że integrator SAP napisał w sumie niewielki dodatkowe do SAP. Ale skorzystał z pewnego API (by był leniwy i podszedł do tematu co najmniej nonszalancko), które jest dodatkowo $$$.
Efekt?
Sama licencja na ten dodatek dla 10 userów -> 36 tyś zł + VAT.
SAP...

0

@wloochacz Dziekuję bardzo za ciekawe rozwinięcie tematu. Co do przypisanych licencji - na razie używałem loginu i hasła istniejącego użytkownika. Działało również na użytkowniku z minimalnymi uprawnieniami, który może korzystać tylko z wersji webowej SAP-a. To jest klasyczny SAP B1 na MSSQL a nie HANA, ale generalnie wgryzam się w temat!
Dzięki i pozdrawiam!

PS. taki żart... gość z firmy, która wdraża SAP-a, jak się dowiedział, że programuje w Pascalu / Delphi /Lazarus powiedział:
"Kiedyś ogłoszono wielką konferencję programistów Delphi. Niestety się nie odbyła, bo jeden programista nie zdążył na samolot a drugi się rozchorował" ;-)

1
Kristof napisał(a):

@wloochacz Dziekuję bardzo za ciekawe rozwinięcie tematu. Co do przypisanych licencji - na razie używałem loginu i hasła istniejącego użytkownika. Działało również na użytkowniku z minimalnymi uprawnieniami, który może korzystać tylko z wersji webowej SAP-a. To jest klasyczny SAP B1 na MSSQL a nie HANA, ale generalnie wgryzam się w temat!
Dzięki i pozdrawiam!

U Ciebie nie HANA, ok...
Jak piszesz na wewnętrzne potrzeby to oczywiście można sobie pofolgować.
Jednak dobrze znać inne możliwości i fajnie, że to rozumiesz.
Działaj, działaj - może i ja skorzystam kiedyś z Twojego doświadczenia :)

PS. taki żart... gość z firmy, która wdraża SAP-a, jak się dowiedział, że programuje w Pascalu / Delphi /Lazarus powiedział:
"Kiedyś ogłoszono wielką konferencję programistów Delphi. Niestety się nie odbyła, bo jeden programista nie zdążył na samolot a drugi się rozchorował" ;-)

Taaak... mam to dokładnie tam co ględzą niby-specjaliści. Sorry, ale największa banda wszystko-wiedzących-asów jest w grupie konsultantów ERP.
Wiem, bo sam nim daaawno temu byłem :P

A też mam (nie)jedną anegdotę. Kiedyś pracowałem w pewnej dużej firmie produkcyjnej jako analityk systemowy.
Wdrożyliśmy tam pewnego WMSa.
No i ten ich cudny system, nie potrafił w tej fabryce wykonać raportu stan magazynu na dzień w czasie krótszym niż... 24h.
Czyli co do zasady, nie dało się wykonać raportu na dzień :D
Popatrzyłem jak to jest robione i złapałem się za głowę (kursor, kursorem poganiał wykonanie procedur składowanych dla jednego wiersza - miliony niepotrzebnych operacji).
Usiadłem i zrobiłem to samo (oczywiście przy pomocy Delphi, ale gro zadań wykonywał SQL Server) tak, że ten raport trwał max 5 minut.
Konsultanci z tej firmy nigdy potem nie próbowali nawet dyskutować, zwłaszcza że po naszym wdrożeniu, to było ostatnie wdrożenie ich systemu w PL...
Zarzucili ten cud współczesnej informatyki po całości.

1

PS. taki żart... gość z firmy, która wdraża SAP-a, jak się dowiedział, że programuje w Pascalu / Delphi /Lazarus powiedział:
"Kiedyś ogłoszono wielką konferencję programistów Delphi. Niestety się nie odbyła, bo jeden programista nie zdążył na samolot a drugi się rozchorował" ;-)

Kiedyś mnie ten żart bulwersował, teraz trochę faktycznie śmieszy. Oczywiście w każdej technologii można osiągnać wysoki poziom zawaansowania i dobrze zarabiać, ale obecnie Delphi cienko stoi. Najbardziej boli, że byle junior javy/.neta idzie do korpo i ma 5k netto na start, a znałem gości co pracowali 15 lat przy delphi i dostawali mniej. Ot taka anegdotka. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0