Python is my by far my favorite computer programming language. This is a subjective matter, everybody has their preferences. I'm not saying it is the best. Only that I like so much that I try to use it whenever I can. Of course I cannot use it inside SAP, it has to be ABAP (at least in version 46C). But for integration with external systems there are some ways to use python.
One way is to use
jython (python language implemented in java) with the SAP jCO java connector (
connectors link requires SAP customer login). This connector is quite powerful and well documented. And with jython the development is much faster than with java, so, when doing scripts that are to be used only once or twice (loading/downloading data, etc), this is my favorite choice.
The main drawback of this approach is that jython and python are not the same thing. I had several situations were I would like to use numeric or GUI libraries that are only available in python. And interfacing with
zope (python main web application framework) would also be a great option if available. For interfacing with python one can use the DCOM library (works only in windows). I find the DCOM framework ok for calling SAP functions (although a lot harder than jython/jCO) but it is not a good option for developing servers to receive calls from SAP.
Other possible options that I've yet to explore include the new SAP .NET connector and the RFC python wrapper done by
Piers Harding. This last one is not complete and, as far as I could tell, only includes support for RFC clients. The .NET option, together with
Python .NET might be a good solution for python SAP integration.
At last, the new SAP kernel (for v47) also supports SOAP interfacing. It shouldn't be hard to use python with this kind of interface. I haven't had the change to try it though.
Labels: python, rfc