How to write SAP ABAP web service and consume it in PHP

Last time i spend lot of time to develop SAP ES webservices connected to PHP. Why PHP? Because PHP was fastest method for me. Without starting do it in Java/Tomcat. But now i thing Tomcat will be better… I want o share some information about my work with SAP webservices.

At the beginning most time I spent on configure SAP basis problems with web-services. Roles setting ect.

Basic information about SAP and PHP configuration

  1. SAP ABAP – development
    1. Destination typu „G” InAcT (SM59)  (otwarty na konkretny skrypt PHP)
    2. Embedded pakiet ZIPS\ZWEBSERVICES
    3. Function RFC (external) ZWEBSERV_INACT
    4. Logs ‘BAL_LOG_MSG_ADD’ + view data by IW33 (Tr. SLG1)
    5. Enterprise Serwis: Z_WEBSERV_PM3
  2. SAP AS
    1. Define webserwis SAP WSLD
  3. How it works in SAP?
    1. Simple JOB  fill public table named: ZWEBSRV_PM in procedure Z_JOB_FILL_ZWEBSRV_PM (call with variant
  4. Security
    1. Communication by HTTPS (simple but effective in corp. environment)
  5. InAcT – server Windows x64 2012 R1 (planned migrate do Linux)
    1. Server Apache 2.4/PHP 5.3 (+biblioteka SOAP)
    2. Skrypt PHP index.php
    3. Windows job scheduler call PHP http://SOAP/index.php

Basic information about run and start web services in SAP

  •  SAP Note 1300943
  • Transport web-services SAP Note (need password) no. 1300943

PHP implementation

  • Apache 2.4/PHP 5.6 (now 7)
  • Enable SOAP, XML in php.ini config file
  • Przykład kodu wywołania SOAP AS SAP z poziomu PHP
$WSDL = "http://xxx.pl:8000/sap/bc/srt/wsdl/bndg_52B09DB8E7B611E0E10080000A150CAA/soap11/wsdl11/allinone/standard/document?sap-client=030"; 
$SOAP_CLIENT_PARAM = array('login' => 'WEBSERVICES', 'password' => *********', 'trace' => true, 'exceptions' => true); 
$soapClient = new SoapClient($WSDL, $SOAP_CLIENT_PARAM); 
$soapReturn = $soapClient->ZWebservPm3(array('P_ZIPSISTAT','P_ZIPSESTAT')); 

SAP implementation

  1. Włączenie webswerwisów na ERP
  2. Konfiguracja oraz Noty
  3. Zdefiniowanie modułu funkcyjnego
    1. Typu RFC
    2. Gdzie parametry przekazywane są przez wartość – Pass Values
  4. Zdefiniowanie webserwisu
    1. Utworzenie Enterprise Service
    2. Service Provider
    3. Existing ABAP Objects
  5. Function Module
  6. W wyniku powstaje webserwis i definicja webserwisu plik WSLD.
  7. Należy zdefiniować PROXY w SOAMANAGER.
    1. Provider Security
    2. Configuration of Web Service Binding
    3. SSL
    4. Secure Coversation
    5. Authentitaction Setings
    6. User/ID Password
    7. WSDL Generation
    8. WSDL Format – Standard
    9. Binding SOAP Version –  SOAP 1.1
    10. Przy takich ustawieniach generowany jest WSLD .

 Architecture webserwices SAP and PHP What next?

  1. Zdefiniowanie i wykorzystanie JMS http://en.wikipedia.org/wiki/Java_Message_Service
  2. UUDI http://en.wikipedia.org/wiki/Universally_unique_identifier
  3. Poprawa bezpieczeństwa przez szyfrowanie komunikatów (HTTPS/SSL).
  4. Przejście na klienta JAVA.

Links

  1. https://www.codeproject.com/tips/671437/creating-web-service-using-php-within-minutes/
  2. http://sapuniversity.eu/creation-and-consuming-of-a-webservice-in-sap-abap-without-the-obsolete-transaction-lpconfig/
  3. PHP, SAP and SSL http://wiki.scn.sap.com/wiki/download/attachments/250646828/PHP+-+How+to+Guide.pdf?original_fqdn=wiki.sdn.sap.com&version=2&modificationDate=1318254213504

 

 

Hits: 277

Projekty fundacji nyatri.org

Ulotka fundacji Nyatri (2017)

Celem Fundacji

jest organizacja wszechstronnej działalności w zakresie pomocy uchodźcom tybetańskim, ochrony zdrowia oraz ratowania życia, w tym wspierania i prowadzenia inicjatyw o charakterze zdrowotnym, edukacyjnym oraz charytatywnym, mającej na celu zachowanie przy życiu narodu tybetańskiego wraz z jego unikalnym w świecie dziedzictwem kulturowym.

[su_icon_text icon=”icon: chain” url=”http://nyatri.org”]http://nyatri.org[/su_icon_text]

Funkcje

  • Członek Zarządu Fundacji Nyatri 200x-20xx
  • Członek Rady Fundacji Nyatri maj 2015 – obecnie

Spotkanie z Rodzicami Serca 2016 w siedzibie fundacji Ocalenie
Spotkanie z Rodzicami Serca 2016 w siedzibie fundacji Ocalenie

Projekty

  • Administracja stroną informatyczną projektów fundacji.
  • Upgrade modułów i Joomla/WordPress.
  • Workflow i formularz zgłoszeniowy Adopicji Serca.
  • Promocja i integracja strony w mediach społecznościowych ([su_highlight]Facebook[/su_highlight], Google+, LinkedIn)

Logo fundacji Nyatri (2018)

Hits: 3

Projekt asokamission.in

asokamission.in
asokamission.in

http://www.asokamission.com

Projekt zabezpieczenia serwisu przed spamem. Problem rozwiązań instalując i konfigurując dodatkowe modułu Drupal:

1. CAPTACHA http://drupal.org/project/captcha w celu zabezpieczenia przed skanowaniem haseł użytkowników oraz komentarzami spambotów.

2. SPAMBOT https://www.drupal.org/project/spambot w celu pozbycia się spam-botów z rejestrowania się na sajcie.

Konfiguracja i utrzymanie serwisu.

Wykonanie w Drupal 6.

Hits: 1

Projekt strony internetowej dla tybetańskiego zespołu gangjong.org

gangjong

Dance Group from the Land of Snow

We are young. And we are old. We come from Amdo, U-Tsang and Kham; and we come from Kalimpong, India. We lovingly preserve our heritage and we look towards the future. We make music and the music makes us. We know opera and shepherd’s songs. We tell ancient stories with our dance. We create new songs for modern times. We learn from the old and we teach the young. We will make you laugh and we will make you cry. We will show you our dreams and we will add colour to yours. We come from the land of music and we are your next-door neighbours. We are Gangjong Doeghar – Artists from the Land of Snow…

Hits: 7

Pomiar wydajności bazy danych

Przy wyborze hostingu warto sprawdzić jak prezentuje się wydajność zakupionych serwerów może w tym pomóc skrypt http://www.linux.pl

Po przeróbkach skryptu zainstalowałem go na serwerze http://ultimasolution.pl/projects/bechmark_phpmysql/?iterations=50000&tabletype=MYISAM

i oto co wyszło:

Testing a(n) MYISAM table using 50000 rows.

Successfully created database speedtestdb
Sucessfully created table speedtesttable

This MySQL instance does NOT support MYISAM tables
Table Type Verified: ..

Done. 50000 inserts in 1.98958 seconds or

25131 inserts per second.

Done. 50000 row reads in 6.0E-5 seconds or

833333333 row reads per second.

Done. 50000 updates in 6.0E-5 seconds or

833333333 updates per second.

Inne pomysły na zgadanie wydajności:

 

Hits: 7

Proudly powered by WordPress | Theme: Baskerville 2 by Anders Noren.

Up ↑