Skip to content

Codec errors with latest NetWeaver release #196

@boringDev

Description

@boringDev

SAP released PL 7 for NetWeaver RFC SDK 7.5 on September 30th, 2020. This version of the SDK seems to be incompatible with the latest PyRFC 2.0.6 version. Here is a simple replication:

With PL 6:

Python 3.5.4 (v3.5.4:3f56838, Aug  8 2017, 02:17:05) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> patch_level = 'PL6'
>>> from json import loads
>>> from os import environ
>>> conn_kwargs = loads(environ['CONN_KWARGS'])
>>> environ['SAPNWRFC_HOME'] = 'C:\\nwrfcsdk_750_{}'.format(patch_level)
>>> environ['PATH'] += ';C:\\nwrfcsdk_750_{}\lib'.format(patch_level)
>>> import pyrfc
>>> pyrfc.__version__
'2.0.6'
>>> len(pyrfc.Connection(**conn_kwargs).call('DDIF_FIELDINFO_GET', TABNAME='T001'))
6

We have been using PL 6 on various Windows instances without issue since it was released.

With PL 7:

Python 3.5.4 (v3.5.4:3f56838, Aug  8 2017, 02:17:05) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> patch_level = 'PL7'
>>> from json import loads
>>> from os import environ
>>> conn_kwargs = loads(environ['CONN_KWARGS'])
>>> environ['SAPNWRFC_HOME'] = 'C:\\nwrfcsdk_750_{}'.format(patch_level)
>>> environ['PATH'] += ';C:\\nwrfcsdk_750_{}\lib'.format(patch_level)
>>> import pyrfc
>>> pyrfc.__version__
'2.0.6'
>>> len(pyrfc.Connection(**conn_kwargs).call('DDIF_FIELDINFO_GET', TABNAME='T001'))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "src/pyrfc/_pyrfc.pyx", line 438, in pyrfc.pyrfc.Connection.call
  File "src/pyrfc/_pyrfc.pyx", line 2053, in pyrfc.pyrfc.wrapResult
  File "src/pyrfc/_pyrfc.pyx", line 2127, in pyrfc.pyrfc.wrapVariable
  File "src/pyrfc/_pyrfc.pyx", line 2071, in pyrfc.pyrfc.wrapStructure
  File "src/pyrfc/_pyrfc.pyx", line 2139, in pyrfc.pyrfc.wrapVariable
  File "src/pyrfc/_pyrfc.pyx", line 2329, in pyrfc.pyrfc.wrapString
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x96 in position 1: invalid start byte

I have been able to reproduce this on several versions of Windows Desktop/Server, Debian 10, and Darwin 18. The issue also appears to occur on all RFCs that I tested.

Any thoughts on the cause? Is support for PL 7 in development or am I missing a configuration in which 2.0.6 would support this new release?

Metadata

Metadata

Assignees

No one assigned

    Labels

    PL7SAP NWRFC SDK PL7 bugbug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions