GithubHelp home page GithubHelp logo

kalway-technology / pyrfc Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sap/pyrfc

0.0 2.0 0.0 28.5 MB

Asynchronous, non-blocking SAP NW RFC SDK bindings for Python

Home Page: http://sap.github.io/PyRFC

License: Apache License 2.0

Makefile 0.62% Python 99.14% Shell 0.05% C++ 0.19%

pyrfc's Introduction

SAP NW RFC SDK Client for Python

license

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

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

Prerequisites

SAP NW RFC SDK C++ binaries must be downloaded (SAP partner or customer account required) and locally installed (installation instructions). More information on SAP NW RFC SDK section on SAP Support Portal.

SAP NW RFC Library is fully backwards compatible, supporting all NetWeaver systems, from today S4, down to R/3 release 4.6C. Using the latest version is recommended.

Windows

On Windows platforms the Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package (KB973544), or newer, must be installed, per SAP Note 1375494 - SAP system does not start after applying SAP kernel patch.

macOS

sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setstealthmode off
  • Remote paths must be set in SAP NWRFC SDK for macOS: node-rfc/#58

Installation

After the SAP NW RFC SDK installed on your system, you can pip install the pyrfc package for your platform from the dist folder:

wget https://github.com/SAP/PyRFC/blob/master/dist/pyrfc-1.9.94-cp37-cp37m-macosx_10_14_x86_64.whl

pip install pyrfc-1.9.94-cp37-cp37m-macosx_10_14_x86_64.whl

Alternatively, or if the pyrfc package for your platform not provided, build the package from source on your system and pip install:

git clone https://github.com/SAP/PyRFC.git
cd PyRFC
python setup.py bdist_wheel
pip install dist/pyrfc-1.9.94-cp37-cp37m-macosx_10_14_x86_64.whl
# 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.

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')

Using an open connection, remote function modules (RFM) can be invoked:

>>> 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 SCN Forum (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.

pyrfc's People

Contributors

bsrdjan avatar haserver avatar

Watchers

James Cloos avatar james.joe avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.