Skip to main content

Python bindings for SAP NetWeaver RFC Library

Reason this release was yanked:

A more complete SAP NWRFC SDK wrapper replaces this package. See: https://github.com/SAP/PyRFC

Project description

Asynchronous, non-blocking SAP NetWeawer RFC SDK client bindings for Python.

license PyPI - Wheel PyPI - Implementation PyPI - Python Version PyPI - Downloads

Features

  • Stateless and stateful connections (multiple function calls in the same ABAP session (same context))
  • Sequential and parallel calls, using one or more clients
  • Automatic conversion between Python and ABAP datatypes
  • Extensive unit tests

Supported platforms

  • Python 3, on Python 2 only critical fixes

  • Pre-built wheels are provided for Windows 10 and macOS 10.15

  • Linux platforms are supported by build from source installation only (see Installation section below).

  • Pre-built portable Linux wheels are not supported, neither issues related to portable Linux wheels

  • Pre-built portable Linux wheels must not be distributed with embedded SAP NWRFC SDK binaries, only private use permitted

  • Build from source is supported on all platforms supported by SAP NW RFC SDK.

Prerequisites

All platforms

  • SAP NW RFC SDK C++ binaries must be downloaded (SAP partner or customer account required) and locally installed. More information on SAP NW RFC SDK section on SAP Support Portal. Using the latest version is reccomended as SAP NW RFC SDK is fully backwards compatible, supporting all NetWeaver systems, from today S4, down to R/3 release 4.6C.

  • Build from source on macOS and older Linux systems, may require uchar.h file, attached to SAP OSS Note 2573953, to be copied to SAP NW RFC SDK include directory: documentation

Windows

:exclamation: Due to a change introduced with Python 3.8 for Windows, PATH directories are no longer searched for DLL. The SAP NWRFC SDK lib path is no longer required on PATH, for Python >= 3.8.

macOS

sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setstealthmode off

Installation

Binary wheel installed if found on PyPI, fallback to build from source otherwise:

pip install pynwrfc

Build from source

pip install pynwrfc --no-binary :all:

or

git clone https://github.com/SAP/PyRFC.git
cd PyRFC
python setup.py bdist_wheel
pip install --find-links=dist pyrf
# set ABAP system parameters in test/pyrfc.cfg
pytest -vv

See also the the pyrfc documentation, complementing SAP NW RFC SDK documentation.

Getting started

Note: The package must be installed before use.

Open Connection

In order to call remote enabled ABAP function module (ABAP RFM), first a connection must be opened.

>>> from pyrfc import Connection
>>> conn = Connection(ashost='10.0.0.1', sysnr='00', client='100', user='me', passwd='secret')

Connection parameters are documented in sapnwrfc.ini file, located in the SAP NWRFC SDK demo folder.

Call ABAP function modules

Using an open connection, remote function modules (RFM) can be invoked. More info in pyrfc documentation.

>>> result = conn.call('STFC_CONNECTION', REQUTEXT=u'Hello SAP!')
>>> print result
{u'ECHOTEXT': u'Hello SAP!',
 u'RESPTEXT': u'SAP R/3 Rel. 702   Sysid: ABC   Date: 20121001   Time: 134524   Logon_Data: 100/ME/E'}

Finally, the connection is closed automatically when the instance is deleted by the garbage collector. As this may take some time, we may either call the close() method explicitly or use the connection as a context manager:

>>> with Connection(user='me', ...) as conn:
        conn.call(...)
    # connection automatically closed here

Alternatively, connection parameters can be provided as a dictionary:

>>> def get_connection(conn_params):
...     """Get connection"""
...     print 'Connecting ...', conn_params['ashost']
...     return Connection(**conn_param)

>>> from pyrfc import Connection

>>> abap_system = {
...    'user'      : 'me',
...    'passwd'    : 'secret',
...    'ashost'    : '10.0.0.1',
...    'saprouter' : '/H/111.22.33.44/S/3299/W/e5ngxs/H/555.66.777.888/H/',
...    'sysnr'     : '00',
...    'client'    : '100',
...    'trace' : '3', #optional, in case you want to trace
...    'lang'      : 'EN'
... }

>>> conn = get_connection(abap_system)
Connecting ... 10.0.0.1

>>>conn.alive
True

See also the the pyrfc documentation, complementing SAP NW RFC SDK documentation.

Known Issues

  • Python 2 will not be maintained past 2020

  • Unicode path fix required for build from source on macOS

How to obtain support

If you encounter an issue or have a feature request, you can create a ticket.

Check out the SAP Community (search for "pyrfc") and stackoverflow (use the tag pyrfc), to discuss code-related problems and questions.

License

Copyright (c) 2013 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pynwrfc-2.0.4.tar.gz (219.3 kB view hashes)

Uploaded Source

Built Distributions

pynwrfc-2.0.4-cp38-cp38-win_amd64.whl (456.7 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

pynwrfc-2.0.4-cp38-cp38-macosx_10_15_x86_64.whl (160.2 kB view hashes)

Uploaded CPython 3.8 macOS 10.15+ x86-64

pynwrfc-2.0.4-cp37-cp37m-win_amd64.whl (421.0 kB view hashes)

Uploaded CPython 3.7m Windows x86-64

pynwrfc-2.0.4-cp37-cp37m-macosx_10_15_x86_64.whl (156.9 kB view hashes)

Uploaded CPython 3.7m macOS 10.15+ x86-64

pynwrfc-2.0.4-cp36-cp36m-win_amd64.whl (420.5 kB view hashes)

Uploaded CPython 3.6m Windows x86-64

pynwrfc-2.0.4-cp36-cp36m-macosx_10_15_x86_64.whl (163.3 kB view hashes)

Uploaded CPython 3.6m macOS 10.15+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page