[50537] in SAPr3-news
=?ISO-8859-1?Q?GuiXT_-_Variable_eines_Dynpr?=
daemon@ATHENA.MIT.EDU (J?rgen Spranz)
Wed Jul 7 11:09:52 2004
To: sapr3-news@mit.edu
Date: 7 Jul 2004 08:09:43 -0700
From: jspranz@gmx.de (J?rgen Spranz)
Message-ID: <c558c9b.0407070709.74c9fd9b@posting.google.com>
Ich habe einen Funktionsbaustein geschrieben.
Dieser prüft mir, über folgenden Code, ob GuiXT aktiv ist
INCLUDE ole2incl.
DATA: h_gui TYPE ole2_object.
DATA: guixt_active TYPE i.
DATA: root TYPE i VALUE 1.
CHECK sy-batch IS INITIAL. "Wenn Bachverarbeitung keine
Ausführung!".
* Connect to desktop object
CREATE OBJECT h_gui 'SAPINFO'.
* Read registry
CALL METHOD OF h_gui 'GetRegDWValueEx' = guixt_active
EXPORTING
#1 = root
#2 = 'SOFTWARE\SAP\SAPGUI FRONT\SAP FRONTEND SERVER\CUSTOMIZE'
#3 = 'GUIXT'.
Über folgenden Code läßt sich der GuiXT aktivieren:
CALL METHOD OF h_gui 'SetRegDWValueEx' = guixt_active
EXPORTING
#1 = root
#2 =
'SOFTWARE\SAP\SAPGUI FRONT\SAP FRONTEND SERVER\CUSTOMIZE'
#3 = 'GUIXT'
#4 = 1.
Das scheint auch zu funktionieren.
Den kompletten Code findet man unter Tips und Tricks unter
www.synactive.com/ unter Tips und Tricks. (19).
Das stellt aber nur sicher ob die Funktionalität eingeschaltet ist.
Es wird nicht sichergestellt, ob die Scripte laufen.
Deshalb würde ich gerne weiter im Funktionsbaustein folgendes tun (im
PBO:)
1. in einer Konstante festlegen, welche alten temporäten Tabellen, die
von diesem Programm angelegt wurden noch vorhanden sind, gelöscht
werden könnten.
Z.B. del_file = 'C:\Programme\sappc\SAPgui\Z_GUIXT_CHECK -*'.
2. eine Variable errechnen
concatenate: 'C:\Programme\sappc\SAPgui\Z_GUIXT_CHECK -*'
sy-datum
sy-uzeit
into
crt_file.
Dann wird das Dynpro mit diesen Werten angezeigt...
Im Script soll dann folgendes ablaufen:
3. Löschen der alten temporären PC-Dateien anhand dem Wert von
del_file.
Geht das über den Script-Befehl RemoveFile?
4. PC-Datei anhand des Wertes crt_file anlegen.
Geht das über den Script-Befehl OpenFile?
5. Ausführen des Enter-Buttons mit: Enter "STRT"
Danach wieder im Funktionsbaustein würde ich gerne mit irgendeinem
Upload-Funktionsbaustein prüfen, ob die PC-Datei vorhanden ist.
Wenn sie nicht vorhanden ist, konnte das Script nicht korrekt
ausgeführt werden.
Dann kann ich entsprechende Maßnahmen in meinem Funktionsbaustein.
Verhindern daß die Transaktion, dann weiter bearbeitet wird etc...
Ist diese Vorgehensweise total abwägig?
Hat jemand einen anderen Vorschlag etc.?
Mein größtes Problem im jetzigen Stadium ist, die Werte vom Bildschirm
auszulesen.
Vielleicht wirklich ein Anfängerproblem (bin ich auch in
GuiXT-Script-Programmierung...).
Ich habe es mit
Call "StripQuotationMarks"
"dll=\\10.1.0.13\GuiXTscripte\guixtstring.dll" "In=&V[DEL_FILE]"
"Out=cmd1" probiert.
Mit
comment (17,50) &v[cmd1]
bekam ich allerdings keinen Wert angezeigt....
Wäre super, wenn mir jemand weiterhelfen könnte....
Falls die Lösung was wird, könnte man den Beispielcode sogar synactive
zur Verfügung stellen....
Wirklich dankbar wäre
Jürgen Spranz