[50540] in SAPr3-news

home help back first fref pref prev next nref lref last post

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

home help back first fref pref prev next nref lref last post