Screenshot zur Fehlermeldung erstellen
Fehlermeldungen sind eine wichtige Sache in der Programmierung. Sie geben Auskunft darüber, was schief gelaufen ist und im besten Fall noch, was erwartet wurde.
Ich habe gerade gelesen, dass Fehlermeldungen die beste Art der Dokumentation sind, denn diese würden aufmerksam gelesen. Nun ja… Meine Erfahrungen sind andere.
Häufig sind allein stehende Fehlermeldungen nicht aussagekräftig genug.
Fehlermeldung 2.0
Wie wäre es denn, wenn man die Fehlermeldung mit einem Screenshot der aktuellen Transaktion verbinden würde?
Es ist leider der Fehler XYZ aufgetreten. Zu Dokumentationszwecken wird ein Screenshot erstellt, den du an den Verantwortliche:n weiterleiten kannst.
Beispielhafte Fehlerpräsentation
Leider – oder zum Glück(?) – wird die Aktion “Screenshot erstellen” von einer Sicherheitsabfrage des SAPGUI begleitet. Deswegen ist es sinnvoll den Anwender vor dem Erstellen des Screenshots zu informieren.
Fehlermeldung 3.0
Die Krönung wäre es natürlich, wenn der Anwender alles zusammen per Mail an den zuständigen Personenkreis schicken könnte…
Generelle Hilfestellung
Eine andere Möglichkeit, das Tool einzubinden, wäre als direkt Funktion in Transaktionen. Der Anwender könnte in einem Dialog vielleicht eine Frage stellen oder einen Fehler melden, automatisch einen aktuellen Screenshot hinzufügen und dies dann an eine zentrale Stelle oder ausgewählte Key-user oder Verantwortliche schicken.
Quelltext
Das folgende Coding ruft die Methode cl_gui_frontend_services=>get_screenshot auf, um einen Screenshot vom aktuellen SAPGUI zu erstellen. Die Daten werden so umgewandelt, dass sie als PNG-Datei gespeichert werden können.
DATA mime_type TYPE string.
DATA image TYPE xstring.
DATA tabimg TYPE STANDARD TABLE OF x.
DATA path TYPE string.
DATA full_path TYPE string.
DATA useraction TYPE i.
DATA name TYPE string.
cl_gui_frontend_services=>get_screenshot(
IMPORTING
mime_type_str = mime_type
image = image
EXCEPTIONS
access_denied = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
OTHERS = 5 ).
IF sy-subrc <> 0.
RETURN.
ENDIF.
cl_gui_frontend_services=>file_save_dialog(
EXPORTING
window_title = 'save screenshot'
default_extension = 'png'
default_file_name = 'screenshot'
prompt_on_overwrite = 'X'
CHANGING
path = path
filename = name
fullpath = full_path
user_action = useraction
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
invalid_default_file_name = 4
OTHERS = 5 ).
IF sy-subrc <> 0.
RETURN.
ENDIF.
IF useraction = cl_gui_frontend_services=>action_ok.
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer = image
TABLES
binary_tab = tabimg.
cl_gui_frontend_services=>gui_download(
EXPORTING
filename = full_path
filetype = 'BIN'
CHANGING
data_tab = tabimg
EXCEPTIONS
OTHERS = 99 ).
ENDIF.
- Meine Eclipse-Plugins - 22. November 2024
- Interview mit Björn Schulz (Software-Heroes.com) - 3. September 2024
- Daten aus ALV ermitteln - 3. September 2024