Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

PHP (5.6, 7.x) extension for SAP Remote Function Modules invocation

License

NotificationsYou must be signed in to change notification settings

jsoumelidis/php_sap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This extension is aimed to provide developers a convenient way to invoke remote-enabled ABAP functionsand retrieve their results from PHP code.

A short usage example:

<?php$connection =newSap($logonParams);/** @var array $result */$result =$connection->call('MY_REMOTE_ENABLED_ABAP_FUNCTION', ['I_VAR' =>5]);//or using the procedural way...$connection =sap_connect($logonParams);/** @var array $result */$result =sap_invoke_function('MY_REMOTE_ENABLED_ABAP_FUNCTION',$connection, ['I_VAR' =>5]);

For more examples visit theexamples/ directory of this repository.

Installation

Download and extract the SAP Netweaver RFC SDK package for your platform architecture(available from SAP Marketplace).

Windows

  1. Make sure that .DLL files located inpath\to\nwrfcsdk\lib can be discovered by PHPusing one of the following methods:

    • Copy all .DLLs to your%SystemDrive%\Windows directory
    • Appendpath\to\nwrfcsdk\lib to your system's PATH environment variable
    • Copy all .DLLs in the same folder as your php executable
  2. Install the appropriate Visual Studio version for your PHP version.

    • For PHP 5.6.x use VS2012 (VC11)
    • For PHP 7.0.x and 7.1.x use VS2015 (VC14)
    • For PHP 7.2.x and 7.3.x use VS2017 (VC15)

    Express or Community versions of Visual Studio are just fine

  3. Download and extract the PHP devel package matching your PHP version fromhere

    Note that you should use the same platform (x86 or x64) and thread safety setting (TS or NTS)with your installed PHP.

  4. Clone the appropriate branch of this repository for your PHP version(5.6-dev, 7.0-dev, 7.1-dev, 7.2-dev, 7.3-dev), or download a release.

    git clone https://github.com/jsoumelidis/php_sap.git M.m-dev

    replacingM.m with your Major/minor PHP version (e.g 7.1)

  5. On a VS20XX xYY command line windowcd to the cloned (or downloaded) php_sap directory(XX is the version andYY is the platform, like VS2015 x86), e.g.

    cd C:\php_sap

    Note that you should use the same VS Command Line platform with your installed PHP (x86 or x64).

  6. ExecutePath\To\PHP\Devel\phpize

  7. Assuming you have extracted SAP Netweaver RFC SDK toC:\nwrfcsdk and PHP is installedin directoryC:\php\7.0-x64-nts run the following command

    configure --enable-sap --with-sap-nwrfcsdk="C:\nwrfcsdk" --with-prefix="C:\php\7.0-x64-nts"
  8. Runnmake to build the extension

  9. Test the extension usingnmake test and verify output

    Testing against a SAP R/3 backend requires valid configuration. Edit theconfig.inc filelocated undertests directory of this repository and provide your system values.If you wish to use asapnwrfc.ini file instead, place it in the root directory of therepository and use only thedest key in config.inc. For details on what system values to provideand/or how to create a sapnwrfc.ini file, check the demo .ini under/path/to/nwrfcsdk/demodirectory.

  10. Usenmake install to copy the extension's dll file to your PHP installation'sext directory.

  11. Edit yourphp.ini file to enable the extension addingextension=php_sap.dll(or justextension=sap for php7.2)

  12. Verify extension is installed and loaded using

    C:\php\7.0-x64-nts\php -m

    You should be able to find thesap line in the output.

Linux

  1. Extract SAP Netweaver RFC SDK. This guide assumes the extraction path is/usr/sap/nwrfcsdk, butyou can place the extracted nwrfcsdk folder wherever fits you best.

    Note that the RFC libraries located in/path/to/nwrfcsdk/lib must be cached by ldconfig.One way to do that is to create anwrfcsdk.conf file in/etc/ld.so.conf.d/ directorythat contain the path to the libraries and then refresh the cache by executingsudo ldconfig

  2. Install PHP devel package matching your PHP version
  3. Clone the appropriate branch of this repository for your PHP version(5.6-dev, 7.0-dev, 7.1-dev, 7.2-dev, 7.3-dev), or download a packaged release.
    git clone https://github.com/jsoumelidis/php_sap.git M.m-dev
    replacingM.m with your Major/minor PHP version (e.g 7.1)
  4. cd to the cloned (or downloaded) php_sap directory:
    cd /home/john/php_sap
  5. Executephpize
  6. Run:
    ./configure --enable-sap --with-sap-nwrfcsdk=/usr/sap/nwrfcsdk
  7. Build the extension usingmake
  8. Test withmake test and verify output

    Testing against a SAP R/3 backend requires valid configuration. Edit theconfig.inc filelocated undertests directory of this repository and provide your system values.If you wish to use asapnwrfc.ini file instead, place it in the root directory of therepository and use only thedest key in config.inc. For details on what system values to provideand/or how to create a sapnwrfc.ini file, check the demo .ini under/path/to/nwrfcsdk/demodirectory.

  9. Install the extension usingsudo make install
  10. Create asap.ini file in your/etc/php.d directory with the following content:
    extension=sap.so
  11. Verify extension is installed and loaded usingphp -m. Locatesap in the output

Usage

Code examples demonstrating the usage of the extension is located under theexamplessubdirectory of this repository. For a full documentation of the classes exposed take a lookinclasses/ subdirectory of this repository.

Configuration

php_sap extension exposes the following php.ini configuration:

sap.sanwrfc_ini_dir:string Default:empty

The directory (absolute or relative to current) to look for a sapnwrfc.ini file.If empty, the current directory is used.

sap.trace_dir:string Default:empty

The directory (absolute or relative to current) to place RFC trace files.If empty, the current directory is used.

sap.trace_level:integer Default:0

RFC trace level for all destinations that do not explicitly define their own trace level.Possible values are 0(off), 1(brief), 2(verbose), 3(full),

sap.rtrim_export_strings:boolean Default:Off

Data containing characters (strings) are always transferred from the backendusing the full length of their container (as defined in SE37). For example, a parameter of typeCHAR(20) containing the word"Hello" will be transfered and exported as"Hello               ".This setting enables/disables automatic right-trimming for those cases.

This behavior can be overridden explicitly on every function invocation (see documentation).

IDEs

In order to provide autocomplete and documentation support for IDEs, you can requirejsoumelidis/ext-sap in your project's composer.json development dependencies

composer require --dev jsoumelidis/ext-sap M.m.*

Replace M.m with your Major/minor php version (e.g. 7.1.* or 5.6.*)


[8]ページ先頭

©2009-2025 Movatter.jp