Discussion:
Modus erzeugen per Shortcut
(zu alt für eine Antwort)
Thomas Guettler
2009-01-20 11:41:30 UTC
Permalink
Hallo,

ich habe gerade sapshortcut (Note 103019) ausprobiert und
es funktioniert.

Leider erhält man beim Aufruf, dass eine zweite Anmeldung nicht
möglich ist, und wird gefragt, ob man die bisherige Sitzung schließen will.

Wie kann man aber einen zweite Modus per Shortcut öffnen?

Hintergrund: Aus einer Fremdanwendung soll eine bestimmte Maske als Modus in
der bereits geöffneten SAPGUI geöffnet werden.

Oder wäre SAP GUI Scripting besser geeignet?

Man könnte auch mit zB AutoHotKey arbeiten, so dass die SAP-GUI per virtuellen
Tastendrücken bearbeitet wird. Aber diese Lösung erscheint mir zwar einfach,
aber nicht "sauber".


Versionen:
Windows SAPGUI 710
SAP-Release 4.6c
--
Thomas Guettler, http://www.thomas-guettler.de/
E-Mail: guettli (*) thomas-guettler + de
Christian Wallner
2009-01-20 15:04:17 UTC
Permalink
Post by Thomas Guettler
Hallo,
ich habe gerade sapshortcut (Note 103019) ausprobiert und
es funktioniert.
Leider erhält man beim Aufruf, dass eine zweite Anmeldung nicht
möglich ist, und wird gefragt, ob man die bisherige Sitzung schließen will.
Wie kann man aber einen zweite Modus per Shortcut öffnen?
Hintergrund: Aus einer Fremdanwendung soll eine bestimmte Maske als Modus in
der bereits geöffneten SAPGUI geöffnet werden.
Oder wäre SAP GUI Scripting besser geeignet?
Man könnte auch mit zB AutoHotKey arbeiten, so dass die SAP-GUI per virtuellen
Tastendrücken bearbeitet wird. Aber diese Lösung erscheint mir zwar einfach,
aber nicht "sauber".
   Windows SAPGUI 710
   SAP-Release 4.6c
--
Thomas Guettler,http://www.thomas-guettler.de/
E-Mail: guettli (*) thomas-guettler + de
Hi Thomas,

Wenn du sagst aus einer externen Anwendung: Wenn diese RFC fähig ist
dann versuchs doch mit dem Funktionsbaustein TH_CREATE_MODE. Dieser
ist zwar per se nicht RFC fähig, du könntest allerdings sehr einfach
eine RFC Hülle drum herum basteln (RFC Baustein anlegen und Parameter
1:1 durchschleifen).

Der vollständigkeit halber könnte ich dir noch die Klasse
CL_RECA_GUI_SERVICES nenne bzw. ihre Methoden:

Zitat aus dem SDN:
"Still using function module TH_CREATE_MODE to open a transaction
within a new GUI mode? If you have this class available on your SAP
system then have a look at its static method CALL_TRANSACTION. Using
parameter IF_NEW_EXTERNAL_MODE you can decide whether you want to open
a new window or not.

I have not yet used any of the other available methods yet they may be
useful as well:
GET_GUI_FUNC_OF_GUI_STATUS Gets All Functions of a GUI Status
GET_ICON_FOR_BUSOBJ Gets Icon with Quick Info for Business
Object
GET_QUICKINFO_FOR_ICON Gets the Quick Info for an Icon
MSGLIST_RAISE_AND_FREE Exception of Message List with FREE"

=> https://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/12377

lg
Christian
Christian Wallner
2009-01-20 15:10:37 UTC
Permalink
Post by Christian Wallner
Post by Thomas Guettler
Hallo,
ich habe gerade sapshortcut (Note 103019) ausprobiert und
es funktioniert.
Leider erhält man beim Aufruf, dass eine zweite Anmeldung nicht
möglich ist, und wird gefragt, ob man die bisherige Sitzung schließen will.
Wie kann man aber einen zweite Modus per Shortcut öffnen?
Hintergrund: Aus einer Fremdanwendung soll eine bestimmte Maske als Modus in
der bereits geöffneten SAPGUI geöffnet werden.
Oder wäre SAP GUI Scripting besser geeignet?
Man könnte auch mit zB AutoHotKey arbeiten, so dass die SAP-GUI per virtuellen
Tastendrücken bearbeitet wird. Aber diese Lösung erscheint mir zwar einfach,
aber nicht "sauber".
   Windows SAPGUI 710
   SAP-Release 4.6c
--
Thomas Guettler,http://www.thomas-guettler.de/
E-Mail: guettli (*) thomas-guettler + de
Hi Thomas,
Wenn du sagst aus einer externen Anwendung: Wenn diese RFC fähig ist
dann versuchs doch mit dem Funktionsbaustein TH_CREATE_MODE. Dieser
ist zwar per se nicht RFC fähig, du könntest allerdings sehr einfach
eine RFC Hülle drum herum basteln (RFC Baustein anlegen und Parameter
1:1 durchschleifen).
Der vollständigkeit halber könnte ich dir noch die Klasse
"Still using function module TH_CREATE_MODE to open a transaction
within a new GUI mode? If you have this class available on your SAP
system then have a look at its static method CALL_TRANSACTION. Using
parameter IF_NEW_EXTERNAL_MODE you can decide whether you want to open
a new window or not.
I have not yet used any of the other available methods yet they may be
GET_GUI_FUNC_OF_GUI_STATUS  Gets All Functions of a GUI Status
GET_ICON_FOR_BUSOBJ         Gets Icon with Quick Info for Business
Object
GET_QUICKINFO_FOR_ICON      Gets the Quick Info for an Icon
MSGLIST_RAISE_AND_FREE      Exception of Message List with FREE"
=>https://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/12377
lg
Christian
Hi nochmal,

Ich habs gerade versucht mit sapshcut.exe, funktioniert tadellos.
Habe eine verknüpfung aus der GUI erstellt und diese per "start
sapshcut c:\SBWP.sap" aufgerufen (ich war zu diesem Zeitpunkt
angemeldet im System). Daraufhin geht ein neuer Modus ohne Meldung wie
auch immer auf.

In der Verknüpfung hab ich hinterlegt:
Titel, TYP (Transaktion), Transaktion SBWP, Systembeschreibung (SAP
Logon Eintrag), Mandant und Benutzer sowie Sprache. Fertig.

lg
Christian
Thomas Guettler
2009-01-20 16:21:30 UTC
Permalink
Post by Christian Wallner
Hi nochmal,
Ich habs gerade versucht mit sapshcut.exe, funktioniert tadellos.
Habe eine verknüpfung aus der GUI erstellt und diese per "start
sapshcut c:\SBWP.sap" aufgerufen (ich war zu diesem Zeitpunkt
angemeldet im System). Daraufhin geht ein neuer Modus ohne Meldung wie
auch immer auf.
Danke für den Hinweis.

Jetzt funktioniert es auch bei mir. Laut Doku wird die Sitzung nur
wiederverwendet (ggf. neuer Modus) falls die Parameter (system, client,
user, language) übereinstimmen. Einer war bei mir wohl anders, so
dass sapshcut.exe eine zweite Verbindung aufgebaut hat, und dann
kam die Meldung, dass ich schon angemeldet bin.

Gruß,
Thomas

PS: An der prinzipiellen Frage: "SAP-Gui Maske öffnen (ggf. ein paar
Werte schon vorausfüllen) aus einer anderen Anwendung" bin ich
weiterhin interessiert. Also, falls jemand Tipps hat ...
--
Thomas Guettler, http://www.thomas-guettler.de/
E-Mail: guettli (*) thomas-guettler + de
Christian Zalto
2009-01-20 22:15:49 UTC
Permalink
Post by Thomas Guettler
PS: An der prinzipiellen Frage: "SAP-Gui Maske öffnen (ggf. ein paar
Werte schon vorausfüllen) aus einer anderen Anwendung" bin ich
weiterhin interessiert. Also, falls jemand Tipps hat ...
Zwei Sachen fallen mir dazu ein:

1. Das "Command" Feld im Shortcut kann alles enthalten, was man auch im
Transaktionseingabefeld der SAPGUI eintippen kann. Zum Beispiel:
"mm03" ruft die Transaktion MM03 auf
"mm03 RMMG1-MATNR=100000;" ruft Transaktion MM03 auf und füllt das Feld
"RMMG1-MATNR" mit dem Wert "100000"
"*mm03 RMMG1-MATNR=100000;" macht dasselbe und überspringt zusätzlich die
Einstiegsmaske der Transaktion
Durch Übergabe mehrerer Werte, jeweils mit Semikolon getrennt, lassen sich
so umfangreiche Einstiegsmasken befüllen.
Die Limitierung ist, dass man auf diese Weise keine weiteren Maskenabfolgen
a la Batch-Input ansteuern kann - nur die Einstiegsmaske ist erreichbar.
Das reicht in der Regel aber aus, um den Absprung ins SAP zu erleichtern -
oft muss sogar nur ein einzelner Wert für eine Anzeigetransaktion übergeben
werden, z.B. die Materialnummer.

2. Erzeugt man aus der SAPGUI manuell einen Shortcut, erhält man im
Abschnitt "[System]" "Name" und "Description" voreingestellt. Diese
"Description" bezieht sich dabei auf die Beschreibung des Systems in der
eigenen saplogon.ini. Da man jedoch mehrere saplogon.ini Dateien verwenden
kann und unterschiedliche Anwender unterschiedliche saplogon.ini haben
können, eignet sich diese Methode nicht wirklich, um ein SAP System
eindeutig zu beschreiben. Auf einem Rechner, auf dem das System in der
saplogon.ini etwas anders beschrieben wird, würde der Shortcut nicht
funktionieren. Daher ist es sicherer, wenn man statt der "Description" den
"GuiParm" angibt. Durch Servername und Systemnummer (entspricht einer
Portnummer) hat man das Zielsystem installationübergreifend eindeutig
festgelegt.

Ansonsten ist die Methode mit den Shortcuts recht simpel: Da die Erzeugung
so einfach wie das Anlegen einer Textdatei ist, lässt sie sich auch mit
Scriptsprachen bewerkstelligen.
Einen Absprung ins SAP erhält man, indem man den SAP Shortcut in einem
beschreibbaren Verzeichnis, wie dem TEMP-Verzeichnis, erzeugt und dann
entsprechend aufruft.

MfG,
Christian Zalto
Thomas Guettler
2009-01-21 08:20:17 UTC
Permalink
...
Post by Christian Zalto
Ansonsten ist die Methode mit den Shortcuts recht simpel: Da die Erzeugung
so einfach wie das Anlegen einer Textdatei ist, lässt sie sich auch mit
Scriptsprachen bewerkstelligen.
Einen Absprung ins SAP erhält man, indem man den SAP Shortcut in einem
beschreibbaren Verzeichnis, wie dem TEMP-Verzeichnis, erzeugt und dann
entsprechend aufruft.
Hallo,

ich habe das einfach so aufgerufen (DOS-Fenster), ohne eine Datei zu erzeugen:

start sapshortcut.exe -system=XYZ -gui="/H/IP/S/PORT" -language=DE -client=123 -user=USER -command="..."

Gruß,
Thomas
--
Thomas Guettler, http://www.thomas-guettler.de/
E-Mail: guettli (*) thomas-guettler + de
Loading...