Skip to content

Commit

Permalink
formatting
Browse files Browse the repository at this point in the history
  • Loading branch information
bsrdjan committed May 29, 2019
1 parent b408add commit d42ca25
Show file tree
Hide file tree
Showing 18 changed files with 1,840 additions and 1,513 deletions.
5 changes: 5 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
Change log
==========

1.9.97 (XXXX-XX-XX)
-------------------
- INT8 input handling fix


1.9.96 (2019-05-28)
-------------------
- Markdown README format configured in setup.py
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.9.96
1.9.97
Binary file not shown.
2 changes: 1 addition & 1 deletion examples/clientPrintDescription.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ def main(function_name):
try:
connection = Connection(**params_connection)
func_desc = connection.get_function_description(function_name)
print u"Parameters of function: {0}".format(function_name)
print (u"Parameters of function: {0}".format(function_name))

parameter_keys = [u'name', u'parameter_type', u'direction',
u'nuc_length', u'uc_length', u'decimals',
Expand Down
37 changes: 19 additions & 18 deletions examples/clientStfcStructure.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from pprint import pprint
import datetime

try:
from ConfigParser import ConfigParser
except ModuleNotFoundError as e:
Expand All @@ -10,30 +11,30 @@
import sys

imp = dict(
RFCINT1=0x7f, # INT1: Integer value (1 byte)
RFCINT2=0x7ffe, # INT2: Integer value (2 bytes)
RFCINT4=0x7ffffffe, # INT: integer value (4 bytes)
RFCFLOAT=1.23456789, # FLOAT

RFCCHAR1=u'a', # CHAR[1]
RFCCHAR2=u'ij', # CHAR[2]
RFCCHAR4=u'bcde', # CHAR[4]
RFCDATA1=u'k'*50, RFCDATA2=u'l'*50, # CHAR[50] each

RFCTIME=datetime.time(12,34,56), # TIME
RFCDATE=datetime.date(2012,10,3), # DATE

RFCHEX3=b'\x66\x67\x68' # BYTE[3]: String with 3 hexadecimal values (='fgh')
RFCINT1=0x7F, # INT1: Integer value (1 byte)
RFCINT2=0x7FFE, # INT2: Integer value (2 bytes)
RFCINT4=0x7FFFFFFE, # INT: integer value (4 bytes)
RFCFLOAT=1.23456789, # FLOAT
RFCCHAR1=u"a", # CHAR[1]
RFCCHAR2=u"ij", # CHAR[2]
RFCCHAR4=u"bcde", # CHAR[4]
RFCDATA1=u"k" * 50,
RFCDATA2=u"l" * 50, # CHAR[50] each
RFCTIME=datetime.time(12, 34, 56), # TIME
RFCDATE=datetime.date(2012, 10, 3), # DATE
RFCHEX3=b"\x66\x67\x68", # BYTE[3]: String with 3 hexadecimal values (='fgh')
)


def main():
config = ConfigParser()
config.read('sapnwrfc.cfg')
params_connection = config._sections['connection']
config.read("sapnwrfc.cfg")
params_connection = config._sections["connection"]

conn = Connection(**params_connection)
result = conn.call('STFC_STRUCTURE', IMPORTSTRUCT=imp)
result = conn.call("STFC_STRUCTURE", IMPORTSTRUCT=imp)
pprint(result)

if __name__ == '__main__':

if __name__ == "__main__":
main()
87 changes: 57 additions & 30 deletions examples/serverFunctionDescription.py
Original file line number Diff line number Diff line change
@@ -1,55 +1,82 @@
from pyrfc import FunctionDescription, TypeDescription

animals = TypeDescription("ANIMALS", nuc_length=20, uc_length=28)
animals.add_field(name=u'LION', field_type='RFCTYPE_CHAR',
nuc_length=5, uc_length=10,
nuc_offset=0, uc_offset=0
animals.add_field(
name=u"LION",
field_type="RFCTYPE_CHAR",
nuc_length=5,
uc_length=10,
nuc_offset=0,
uc_offset=0,
)
animals.add_field(name=u'ELEPHANT', field_type='RFCTYPE_FLOAT', decimals=16,
nuc_length=8, uc_length=8,
nuc_offset=8, uc_offset=16,
animals.add_field(
name=u"ELEPHANT",
field_type="RFCTYPE_FLOAT",
decimals=16,
nuc_length=8,
uc_length=8,
nuc_offset=8,
uc_offset=16,
)
animals.add_field(name=u'ZEBRA', field_type='RFCTYPE_INT',
nuc_length=4, uc_length=4,
nuc_offset=16, uc_offset=24
animals.add_field(
name=u"ZEBRA",
field_type="RFCTYPE_INT",
nuc_length=4,
uc_length=4,
nuc_offset=16,
uc_offset=24,
)

func_desc = FunctionDescription("I_DONT_EXIST")
func_desc.add_parameter(name=u'DOC', field_type='RFCTYPE_INT',
direction='RFC_IMPORT',
func_desc.add_parameter(
name=u"DOC",
field_type="RFCTYPE_INT",
direction="RFC_IMPORT",
nuc_length=4,
uc_length=4
uc_length=4,
)
func_desc.add_parameter(name=u'CAT', field_type='RFCTYPE_CHAR',
direction='RFC_IMPORT',
func_desc.add_parameter(
name=u"CAT",
field_type="RFCTYPE_CHAR",
direction="RFC_IMPORT",
nuc_length=5,
uc_length=10
uc_length=10,
)
func_desc.add_parameter(name=u'ZOO', field_type='RFCTYPE_STRUCTURE',
direction='RFC_IMPORT',
func_desc.add_parameter(
name=u"ZOO",
field_type="RFCTYPE_STRUCTURE",
direction="RFC_IMPORT",
nuc_length=20,
uc_length=28,
type_description=animals
type_description=animals,
)
func_desc.add_parameter(name=u'BIRD', field_type='RFCTYPE_FLOAT',
direction='RFC_IMPORT',
func_desc.add_parameter(
name=u"BIRD",
field_type="RFCTYPE_FLOAT",
direction="RFC_IMPORT",
nuc_length=8,
uc_length=8,
decimals=16
decimals=16,
)
func_desc.add_parameter(name=u'COW', field_type='RFCTYPE_CHAR',
direction='RFC_EXPORT',
func_desc.add_parameter(
name=u"COW",
field_type="RFCTYPE_CHAR",
direction="RFC_EXPORT",
nuc_length=3,
uc_length=6
uc_length=6,
)
func_desc.add_parameter(name=u'STABLE', field_type='RFCTYPE_STRUCTURE',
direction='RFC_EXPORT',
func_desc.add_parameter(
name=u"STABLE",
field_type="RFCTYPE_STRUCTURE",
direction="RFC_EXPORT",
nuc_length=20,
uc_length=28,
type_description=animals
type_description=animals,
)
func_desc.add_parameter(name=u'HORSE', field_type='RFCTYPE_INT',
direction='RFC_EXPORT',
func_desc.add_parameter(
name=u"HORSE",
field_type="RFCTYPE_INT",
direction="RFC_EXPORT",
nuc_length=4,
uc_length=4
uc_length=4,
)
58 changes: 58 additions & 0 deletions material/issue98.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# -*- coding: utf-8 -*-

from pyrfc import Connection

MME = {
'user': 'demo',
'passwd': 'welcome',
'ashost': '10.68.110.51',
'sysnr': '00',
'lang': 'EN',
'client': '620',
'sysid': 'MME'
}


QI3 = {
'user': 'BOSKOVIC',
'passwd': 'Koliko11',
'ashost': 'ldciqi3.wdf.sap.corp',
'sysnr': '75',
'lang': 'EN',
'client': '005',
'sysid': 'QI3'
}

ABAP = MME

RFM = '/coe/rbp_fe_datatypes'
BAPI = 'BAPI_PERSDATANL_CREATE'
STRUCTURE = '/COE/RBP_S_FE_RFM_STRUCTURE'
STR_INCLUDE = 'bapi_shp_material'
TABLE = '/COE/RBP_T_FE_RFM_TABLE_TYPE'

conn = Connection(**ABAP)


def rfm(name):
rfm = conn.get_function_description(RFM)
for p in rfm.parameters:
print p['direction'], p['optional']
if p['type_description'] is None:
field = '%s: %s %u' % (
p['name'], p['parameter_type'], p['uc_length'])
if p['parameter_type'] in ['RFCTYPE_NUM', 'RFCTYPE_BCD', 'RFCTYPE_FLOAT']:
field += '.%u' % p['decimals']
print field
else:
for f in p['type_description'].fields:
field = '%s: %s %u' % (
f['name'], f['field_type'], f['uc_length'])
if f['field_type'] in ['RFCTYPE_NUM', 'RFCTYPE_BCD', 'RFCTYPE_FLOAT']:
field += '.%u' % f['decimals']
print field
print


if __name__ == "__main__":
rfm(RFM)
2 changes: 1 addition & 1 deletion src/pyrfc/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,4 @@

__author__ = """"Srdjan Boskovic"""
__email__ = '[email protected]'
__version__ = '1.9.96'
__version__ = '1.9.97'
Loading

0 comments on commit d42ca25

Please sign in to comment.