[50540] in SAPr3-news
Re: =?ISO-8859-1?Q?GuiXT_-_Variable_eines_Dynpr_?=
daemon@ATHENA.MIT.EDU (J?rgen Spranz)
Thu Jul 8 03:43:16 2004
To: sapr3-news@mit.edu
Date: 8 Jul 2004 00:43:12 -0700
From: jspranz@gmx.de (J?rgen Spranz)
Message-ID: <c558c9b.0407072343.784c84e6@posting.google.com>
Von Synactive habe ich eine gute Antwort erhalten....
Gerhard Rode" <gerd@synactive.com>
Hallo Herr Spranz,
ja müsste so gehen, und RemoveFile/OpenFile/CloseFile sind auch OK.
Wobei das Directory beim Anlegen des Files über OpenFile zur Zeit
schon existieren muss.
Aber ich denke es geht auch einfacher. Wenn GuiXT nicht aktiv ist, wird
das Dynpro ja auf alle Fälle dem Benutzer angezeigt, da der
automatische "Enter" nicht abläuft. Das heisst für diesen Fall sollte das
Dynpro eine Nachricht enthalten "GuiXT nicht aktiv - mit Enter geht es
weiter" o.ä..
Dann kann man aber auch einfach in disem Dynpro ein Eingabefeld
vorsehen, das von GuiXT mit irgendeinem langen Wert (den der
Benutzer garantiert nicht eintippt) gefüllt wird, und diesen fragt man im
FB ab um zu erkennen ob GuiXT oder der Benutzer "Enter" gedrückt
hat.
Schöne Grüsse
Gerhard Rodé
jspranz@gmx.de (J?rgen Spranz) wrote in message news:<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