Beispiele & Tipps
Transaktion MB1A
Einfaches Menü
Die im Script dargestellte Abfrage des Benutzers über die Systemvariable &v[_user]
ist natürlich nur bei einer überschaubaren Anzahl von Usern sinnvoll. Ansonsten sollten user- oder usergruppenbezogene Funktionen durch die Nutzung von Benutzerkatalogen gesteuert werden.
Scanergebnis in mehrere Felder verteilen
In manchen Fällen enthält der zu scannende Barcode Informationen, die in SAP in verschiedene Felder übertragen werden sollen, etwa neben einer Materialnummer auch die Menge und eine Belegnummer. In diesem Fall kann mit dem Tool Input Assistent ein zusätzliches Eingabefeld definiert und mit einem kleinen Inputscript der Split des Scanergebnis und die Verteilung auf mehrere Felder erfolgen.
Nachfolgend die Vorgehensweise zur Definition eines Eingabefeldes und nachträglichem Aufsplitten der Eingabe in verschiedene Felder.
Zunächst definieren Sie auf dem Dynpro, auf dem die Eingabe des Barcodes erfolgen soll, ein Eingabefeld mit dem Befehlinputfield (0,5) "Barcode" (0,15) Size="20" Name="Barcode"
Dann setzen Sie den Cursor in dieses Feld (nur damit gleich ohne manuelle Positionierung gescannt werden kann)setcursor (0,50)
Dann definieren Sie einen neuen Button, der das Input-Script barcodesplit.txt ausführt (Achtung, muss im Scriptverzeichnis stehen !)Pushbutton (0,80) "Split" Process="barcodesplit.txt"
Das Input-Script barcodesplit.txt sollte dann etwa wie folgt aussehen://
// Barcodesplit.txt - Input Script zum Splitten eines Barcodes und
// füllen mehrere Felder
//
set F[Materialschein] "&[Barcode](5-12)"
set F[Werk] "&[Barcode](1-4)"
set F[Lagerort] "&[Barcode](17-20)"
Mit dem set-Befehl versorgen Sie die normalen Felder der Maske aus dem zuvor mit dem Befehl inputfield definierten Eingabefeld. Durch die Angabe der jeweiligen Offsets werden nur die entsprechenden Teile des Eingabefeldes übernommen.
Profile auf dem PDA schützen
Um die änderung der Anmeldeinformationen und Profile durch den Anwender zu verhindern, muss die Datei guixt.sy3 mit dem Attribut schreibgeschützt versehen werden. Unter Windows CE kann dies im Windows Explorer auf dem mobilen Gerät über Eigenschaften bzw. Properties gesetzt werden. Windows Mobile hat diese Option im Windows Explorer nicht. Um trotzdem einen Schreibschutz zu erreichen, kann man die Datei auf den Desktop kopieren, dort den Schreibschutz aktivieren und die Datei zurück auf das mobile Gerät kopieren.
Ist für die Datei guixt.sy3 der Schreibschutz erfolgreich eingestellt, sind die Buttons für die änderung bzw. Einrichtung der Anmeldeinformationen und Profile deaktiviert.
GuiXT Mobile automatisch starten
Wenn der Scanner ausschließlich zum Scannen in SAP genutzt werden soll, wäre es wünschenswert, dem Benutzer gar nicht erst andere Programme oder Funktionen auf dem Gerät zu zeigen. Eine recht einfache Methode ist es, das Programm GuiXT Mobile beim Einschalten des Gerätes automatisch zu starten. Windows Mobile und CE kennen hier den Ordner Autostart. Programme bzw. Verknüpfungen zu Programmen die hier abgelegt werden, starten bei Einschalten des Gerätes automatisch. Um dies durchzuführen, gehen Sie wie folgt vor:
-
- Wählen Sie im Datei Explorer den Ordner aus, in dem das GuiXT Mobile Programm abgelegt ist.
- Wählen Sie die Programmdatei durch Tippen und festhalten aus.
- Wählen Sie aus dem erscheinenden Popup den Befehl kopieren.
- Wählen Sie nun im Explorer den Ordner Autostart aus (Mein Gerät – Windows – Autostart).
- Tippen und halten Sie an einer beliebigen Position auf dem Bildschirm.
- Wählen Sie den Befehl Verknüpfung einfügen aus dem Popup.
GuiXT Mobile startet nun automatisch, sobald das Gerät gestartet wird. Haben Sie unter GuiXT Mobile zusätzlich die Default Logon Connection aktiviert, startet zudem danach SAP ebenfalls automatisch
Positionen aus einem Report selektieren
In einigen Fällen kann es notwendig sein, aus einer Liste eine Position zu selektieren und dann mit der selektierten Position in eine Folgeverarbeitung zu verzweigen. Leider wird das Ankreuzfeld in Reports durch GuiXT Mobile nicht korrekt dargestellt, obwohl es vorhanden ist. Mit Hilfe eines kleinen Inputscripts kann dies jedoch realisiert werden. Zunächst ist in der Anzeigetransaktion ein neuer Button zu definieren, der ein Inputscript aufruft, in diesem Beispiel mit dem Label Auswahl. Das aufgerufene Inputscript beinhaltet dann folgende Befehle:// Versanfällige Vorgänge: Kundenauftragspositionen
// J. Cerajewski - Exceptional Solutions AG
Screen SAPLV50R_VIEW.0120
Enter "/4"
// MCX_DUMMY_POPUP
Screen SAPLWDTM.0100
Enter „/2“
Bevor der Button betätigt wird, muss allerdings das Ankreuzfeld durch Antippen ausgewählt sein, wie im mittleren Beispielscreen dargestellt.
Verteilung der mobilen Geräte auf mehrere Applikationsserver
Wird eine größere Anzahl mobiler Endgeräte eingesetzt, die sich alle über einen GuiXT Server anmelden, kann es aus Performancegründen sinnvoll sein, diese auf verschiedene Applikationsserver zu leiten. Um dies zu erreichen, muss die sapproxy.ini beispielhaft wie folgt angepasst werden:
[control]
proxycount=2
[Proxy1]
ListenPort=3210
TargetServer=123
TargetServerPort=3202
GuiXT = 1
[Proxy2]
ListenPort=3220
TargetServer=456
TargetServerPort=3200
GuiXT = 1
Folgende Angaben sind für die Anmeldung an Server 1 in GuiXT Mobile notwendig:
App server: GuiXT Server name
System Number: 10 (zur Verbindung mit dem Server 123)
Sys ID: DEV
Und folgende Angaben sind für die Anmeldung an Server 2 in GuiXT Mobile notwendig
App server: GuiXT Server name
System Number: 20 (zur Verbindung mit dem Server 456)
Sys ID: QAS
Nutzung der Funktion NOTIFY_BELL Signal
Um ereignisgesteuert Signaltöne zu erzeugen (etwa Buchung durchgeführt oder Barcode nicht gefunden), steht in SAP das Modul BELL_SIGNAL zur Verfügung (vergleiche SAP Hinweise 317838 und 1260592). In GuiXT Mobile gab es bisher bereits im Profil die Option, „Beep“ bei Bell Signal zu aktivieren, jedoch funktionierte dies nicht im Kontext mit den vorher genannten SAP Hinweisen.
Ab der GuiXT Mobile Version 4.1.78 ist dieses Problem gelöst. Nachfolgend ein kurzes Beispielcoding zur Umsetzung des BELL_SIGNAL Moduls:
*&---------------------------------------------------------------------*
*& Report ZMRE_BELL
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zmr_bell.
CALL SCREEN 100.
*&---------------------------------------------------------------------*
*& Module Bell_Signal OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE bell_signal OUTPUT.
DATA notify_bell_signal(1) TYPE n.
notify_bell_signal = '9'.
ENDMODULE. " Bell_Signal OUTPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
SET PF-STATUS 'BELL_STATUS'.
* SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
IF sy-ucomm = 'EXIT'.
LEAVE PROGRAM.
ELSE.
IF sy-ucomm = 'BEEP'.
notify_bell_signal = '3'.
LEAVE TO SCREEN 0.
ELSE.
IF sy-ucomm = 'BACK'.
notify_bell_signal = '8'.
ENDIF.
ENDIF.
ENDIF.
ENDMODULE. " USER_COMMAND_0100 INPUT
GuiXT Scripte werden nach Upgrade oder Neuinstallation Server nicht mehr gefunden
Nach einer Neuinstallation oder einem Upgrade von Server kann es vorkommen, dass die Scripte nicht mehr gefunden werden und die Transaktion unverändert abläuft. Ursache können Einträge in der guixt.ini auf dem Server sein. Sind unter dem Label Component etwa Produkte wie Input Assitant, Designer oder Viewer eingetragen, allerdings dafür kein Lizenzschlüssel, kommt es zu dem beschriebenen Effext. In dem Fall einfach in der guixt.ini die entsprechenden Einträge löschen oder auskommentieren.
IgnoreRegistry Yes//
StartMinimized No // Start GuiXT minimized
StartHidden No // Start GuiXT hidden
Directory1c:\GUIXT\Scripts
Component GuiXT // Component selected: GuiXT
//Component InputAssistant // Component selected: Input
//Component Viewer // Component selected: Viewer
//Component Designer // Component selected:
Automatic reconnect nach kurzzeitigem Verlassen des WLANs
Mit einem Eintrag in der sapproxy.ini kann erreicht werden, dass nach einem kurzzeitigem Verlassen des WLANs die Verbindung zum SAP System gehalten wird.
[Proxy1]
ListenPort...
TargetServer...
TargetServerPort...
GuiXT=...
options=-holdconnection
Grafiken einbinden
Da GuiXT Mobile leider keine Bilder darstellt, anders als der große Bruder GuiXT, müssen andere Wege beschritten werden. Mit dem GuiXT pushbutton Befehl kann man anstatt eines Textes für den Button ein Icon einsetzen. über diesen Umweg können dann SAP-Standard Icon dargestellt werden. Das sieht dann ungefähr so aus:
Und das Script dazu so (bitte beachten, dass je nach Größe des Icons die Angabe size notwendig ist bzw. das Label des Buttons mit blanks und einem abschließenden Punkt versehen werden muss):
Die Liste der mögliche Icons finden Sie in SAP in der Tabelle V_ICON, den im Script anzugebenden Hex-Code (ID) des Icons bekommt man raus, wenn man die Tabellenanzeige exportiert, z.B. in *.rtf Format. Oder man führt den SAP Standardreport RSTXICON aus, dann bekommt man eine Liste mit Icon, ID und Namen.
Screen Cam Demo Session zur Bearbeitung von Dynpros mit Designer
Die nachfolgende Demo zeigt, wie einfach es ist, mit dem Designer die Dynpros an die Erfordernisse mobiler Endgeräte anzupassen. Einfach auf nachfolgendes Bild klicken.
Screen Cam Demo Session