# -*- coding: iso-8859-15 -*-
#-Begin-----------------------------------------------------------------
class PythonDemo:
#To create a new GUID use the commands:
#>>> import pythoncom
#>>> print(pythoncom.CreateGuid())
_reg_clsid_ = "{D1B0A23F-0B6E-46D6-8880-744DBFFB86CD}"
_reg_progid_ = "Python.Demo"
_reg_desc_ = "Python Demo COM Server"
_public_methods_ = ["HelloWorld", "HelloYou", "SplitString"]
#-Function HelloWorld-------------------------------------------------
def HelloWorld(self):
import platform, struct
return "Hello World from Python " + platform.python_version() + \
" on " + platform.system() + " (" + platform.architecture()[0] + \
")"
#-Function HelloYou---------------------------------------------------
def HelloYou(self, name="Anybody"):
return "Hello " + str(name) + " from Python"
#-Function SplitString------------------------------------------------
def SplitString(self, val, item=None):
import string
if item != None:
item = str(item)
return val.split(item)
#-Sub Main--------------------------------------------------------------
def main():
import sys, win32com.server.register
if sys.argv[1].lower() == "--register":
print("Registering COM server...")
if sys.argv[1].lower() == "--unregister":
print("Unregistering COM server...")
win32com.server.register.UseCommandLine(PythonDemo)
#-Main------------------------------------------------------------------
if __name__=="__main__":
main()
#-End-------------------------------------------------------------------
'-Begin-----------------------------------------------------------------
'-Sub Main------------------------------------------------------------
Sub Main()
Set PythonDemo = CreateObject("Python.Demo")
MsgBox PythonDemo.HelloWorld()
MsgBox PythonDemo.HelloYou("Stefan")
response = PythonDemo.SplitString("Hello World")
For Each item In response
MsgBox item
Next
End Sub
'-Main----------------------------------------------------------------
Main
'-End-------------------------------------------------------------------
"-Begin-----------------------------------------------------------------
REPORT ZPYTHON.
DATA:
lo_python TYPE OLE2_OBJECT,
lv_return TYPE STRING,
lo_list TYPE OLE2_OBJECT
.
CREATE OBJECT lo_python 'Python.Demo'.
CHECK sy-subrc = 0 AND lo_python-Handle > 0 AND lo_python-Type = 'OLE2'.
CALL METHOD OF lo_python 'HelloWorld' = lv_return.
WRITE: / lv_return.
CALL METHOD OF lo_python 'HelloYou' = lv_return
EXPORTING
#1 = 'Stefan'.
WRITE: / lv_return.
"Array is not supported as a data type for OLE parameters in ABAP
CALL METHOD OF lo_python 'SplitString' = lo_list
EXPORTING
#1 = 'Hello World'.
"-End-------------------------------------------------------------------
<26=Automation(Error) : ERROR OCCURED IN MODULE: [Python Demo COM Server]
<26=Automation(Error) : PROGRAM_ID |MODULE_NAME |METHOD_NAME |ERROR DESCRIPTION |VERSION |GUI VERSION |MODULE_PATH |
<26=Automation(Error) : Python.Demo |Python Demo COM Server |CREATEOBJECT |Creation of control "" denied! |Version info not found |7500.1.3.1138 |Module doesnot exist |
<26=Automation(Error) : "CreateObject"
#0: STRING "Python.Demo"
#1: LONG "1033"
could not create object
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
7 | |
6 | |
4 | |
3 | |
3 | |
2 | |
2 | |
2 | |
2 |