Seite 1 von 1

SapGui mit PythonWin steuern

Verfasst: Samstag 1. November 2008, 12:14
von greg_urban
Hello zusammen,

mein Versuch SAPGUI mit PythonWin zu skripten war leider nicht erfolgreich.

Unten stehen 2 Code-Abschnitte:
- funktionierender Javascript Code
- nicht funktionierender Python Code

Wer weis' Rat?

Umgebung ist: Python 2.5.2, PythonWin Build 210, Windows XP

Danke im Voraus für euere Hilfe
Gregor

Code: Alles auswählen

==== Javascript, working ====
	var wrapper = new ActiveXObject("SapROTWr.SapROTWrapper");
	var rotEntry = wrapper.GetROTEntry ("SAPGUI");
	var application = rotEntry.GetScriptingEngine();
==== Javascript ====

==== win32com, not working ====
PythonWin 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] on win32.
Portions Copyright 1994-2006 Mark Hammond - see 'Help/About PythonWin' for further copyright information.
>>> import win32com.client
>>> wrapper = win32com.client.Dispatch("SapROTWr.SapROTWrapper")
>>> rotEntry = wrapper.GetROTEntry ("SAPGUI")
>>> application = rotEntry.GetScriptingEngine()
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
  File "C:\Program Files\Python25\lib\site-packages\win32com\client\dynamic.py", line 172, in __call__
    return self._get_good_object_(self._oleobj_.Invoke(*allArgs),self._olerepr_.defaultDispatchName,None)
com_error: (-2147352573, 'Member not found.', None, None)
>>>
==== win32com ====

Geloest

Verfasst: Samstag 1. November 2008, 18:45
von greg_urban
Die Loesung besteht darin:

dies

Code: Alles auswählen

application = rotEntry.GetScriptingEngine()
durch das

Code: Alles auswählen

application = rotEntry.GetScriptingEngin
zu ersetzen, da aus unerfindlichen Gruenden win32com GetScriptingEngine als property, nicht als methode ansieht ...