This project consists of creating a RestAPI for ABAP/RFC'S Read Tables SAP calls, in order to be consumed in other services with dynamic parameters.
Dependencies:
pip install Cython
pip install uvicorn
pip install fastapi
pip install pydantic
pip install c:\folder\resources\pyrfc-lib\PyRFC-1.9.93.tar.gz
Install Build Tools 2019 C in resources\vss\setup.exe
- Download NW RFC SDK
environment variables :
Create a folder called 'sap' with the files extracted from the RFC NEW SDK and Move in C:\'
ADD to PATCH: 'C:\sap\nwrfcsdk\lib'
CREATE environment variables NAME:'SAPNWRFC_HOME' VALUE:'C:\sap\nwrfcsdk'
MainBaseModel.py
if __name__ == '__main__':
uvicorn.run("MainBaseModel:app", port=3000, host='0.0.0.0', reload=True)
GET /docs
Description |
---|
swagger FastAPI. |
POST /bapi
Send JSon in Body:raw/Json for parameters and connection
{
"CONFIG": {
"ashost":"XX.XX.XX.XX",
"sysnr": "XX",
"client":"XXX",
"user": "XXXXXXX",
"passwd":"XXXXXX",
"lang": "pt"
},
"BAPI": "BAPI_EXAMPLE_GETDETAIL", ex: //BAPI_COMPANY_GETLIST //
"KWARGS": {
"EXPORTPARAMS1":"Value", // Args to ABAPI
"EXPORTPARAMS2":"Value"
}
}
POST /rfc
Send JSon in Body:raw/Json for parameters and connection
{
"ROWSKIPS": 0,
"ROWCOUNT": 20,
"FIELDS": [
"NAME_FIELD1",
"NAME_FIELD2",
"NAME_FIELD3",
"NAME_FIELD4",
"NAME_FIELD5"
],
"WHERE": [
{
"TEXT": "NAME_FIELD1 = 'S'",
"TEXT": "NAME_FIELD2 LIKE '%VALUE%'",
"TEXT": "NAME_FIELD3 <> 'VALUE'"
}
],
"CONFIG": {
"ashost":"XX.XX.XX.XX",
"sysnr": "XX",
"client":"XXX",
"user": "XXXXXXX",
"passwd":"XXXXXX",
"lang": "pt"
},
"TABELA": "PA0001" // TABLES SAP
}
POST /funcinario2
Send JSon in Body:raw/Json for parameters and connection
{
"CONFIG": {
"ashost":"XX.XX.XX.XX",
"sysnr": "XX",
"client":"XXX",
"user": "XXXXXXX",
"passwd":"XXXXXX",
"lang": "pt"
},
"LIST_PAYROLL": [ Inform at least 1 payroll
"AA",
"BB",
"CC",
"DD",
"EE",
"FF",
"GG",
"HH",
"II",
"JJ"
],
"PAGE": "1" ///Number Pagination // Return 50 Items Default
}