Command line interface to SAP products
This tool provides command line interface for ADT which should help you to build your CI tools.
This tool also provides a limited set of RFC Functionality for the cases where ADT is no sufficient or possible.
First of all you need Python3 (>=3.10) and then you need python-request module. Nothing else because ADT works on level HTTP.
sudo apt-get install -y git python3 python3-requests python3-openssl python3-venv
git clone https://github.com/jfilak/sapcli.git
cd sapcli
python3 -m venv ve
. ve/bin/activate
pip install -r requirements.txt
./sapcli --help
sapcli uses PyRFC which provides Python API for communication over SAP NetWeaver RFC.
Please, follow the installation official install instructions at: https://sap.github.io/PyRFC/install.html
It is not necessary to modify /etc/ld.so.conf.d/nwrfcsdk.conf as you can just set the environment variable LD_LIBRARY_PATH.
The required libraries are compiled the way you can executed them on any x86-64 GNU/Linux, thus you can use the libraries located on your Application server.
The primary goal was to enable ABAP Unit testing
sapcli aunit run class zcl_foo --output junit4
sapcli aunit run program zfoo_report --output junit4
sapcli aunit run package '$local_package' --output junit4
, ATC checks triggering and installation of abapGit which is delivered as a single source ABAP program (report, SE38 thing).
sapcli package create '$abapgit' 'git for ABAP by Lars'
sapcli program create 'zabapgit' 'github.com/larshp/abapGit' '$abapgit'
curl https://raw.githubusercontent.com/abapGit/build/master/zabapgit.abap | sapcli program write 'zabapgit' - --activate
See the complete list of supported operations in doc/commands.md
You must provide the tool with hostname, client, user and password. It is possible to use either command line parameters or environment variables.
You can prepare a configuration file like the following:
cat > .npl001.sapcli.openrc << _EOF
export SAP_USER=DEVELOPER
export SAP_PASSWORD=Down1oad
export SAP_ASHOST=vhcalpnlci
export SAP_CLIENT=001
export SAP_PORT=8000
export SAP_SSL=no
_EOF
and the you can source the configuration file in your shell to avoid the need to repeat the configuration on command line parameters:
source .npl001.sapcli.openrc
sapcli package create '$abapgit' 'git for ABAP by Lars'
sapcli program create zabapgit 'github.com/larshp/abapGit' '$abapgit'
sapcli aunit run class zabapgit
The tool asks only for user and password if missing. All other parameters either have own default value or causes fatal error if not provided.
Find the complete documentation in doc/configuration.md
When using the RFC features you have to provide the following additional parameters:
- --sysnr which can be provided as the environment value SAP_SYSNR
Your contribution is more than welcome! Nothing is worse than the code that does not exist.
Have a look into CONTRIBUTING guide, if you are not sure how to start.
And even seasoned GiHub contributors might consider checking out HACKING guide.