Classe CL_GUI_FRONTEND_SERVICES
Derrière ce nom se cache une véritable trousse à outils de méthodes toutes plus utiles les unes que les autres. En effet SAP a décidé de regrouper au sein d'une même classe toutes les "fonctions" de dialogue avec le pc de l'utilisateur (aussi appelé "poste client").
Terminé les WS_UPLOAD ou autre GUI_UPLOAD (que SAP indique depuis longtemps comme obsolète), place à la méthode upload.
L'usage est simplifié au maximum, afin que même les développeurs fermés à l'abap objet puissent les utiliser. Inutile de créer un objet ou déclarer quoi que ce soit, vous pouvez appeler directement la méthode qui vous intéresse dans la classe CL_GUI_FRONTEND_SERVICES, de la même manière que vous appelleriez une fonction classique.
Ci dessous un tableau récapitulant les principales méthodes, avec un exemple d'utilisation.
Méthode | Description | Code exemple |
---|---|---|
CLIPBOARD_EXPORT | Exporter des données dans le presse-papier Windows |
DATA : s_line(100), t_line LIKE TABLE OF s_line, i_rc TYPE i. APPEND 'Test envoi presse-papier' TO t_line. CALL METHOD cl_gui_frontend_services=>clipboard_export IMPORTING data = t_line CHANGING rc = i_rc EXCEPTIONS OTHERS = 0. WRITE i_rc. |
CLIPBOARD_IMPORT | Importer des données du presse-papier Windows |
DATA : s_line(100), t_line LIKE TABLE OF s_line, i_length TYPE i. CALL METHOD cl_gui_frontend_services=>clipboard_import IMPORTING data = t_line length = i_length EXCEPTIONS OTHERS = 0. LOOP AT t_line INTO s_line. WRITE / s_line. ENDLOOP. |
DIRECTORY_BROWSE | Affiche un popup windows de sélection de répertoire sur le poste local Ne fonctionne pas avec le noyau 4.6c |
DATA : w_folder TYPE string, w_title TYPE string, w_init TYPE string. w_title = 'Rechercher le dossier'. w_init = 'C:'. CALL METHOD cl_gui_frontend_services=>directory_browse EXPORTING window_title = w_title initial_folder = w_init CHANGING selected_folder = w_folder EXCEPTIONS OTHERS = 0. WRITE w_folder. |
DIRECTORY_CREATE | Créer un répertoire sur le poste client |
DATA : w_dir TYPE string, i_rc TYPE i. w_dir = 'C:Nouveau Rep inexistant'. CALL METHOD cl_gui_frontend_services=>directory_create EXPORTING directory = w_dir CHANGING rc = i_rc EXCEPTIONS OTHERS = 0. WRITE i_rc. |
DIRECTORY_DELETE | Supprimer un répertoire sur le poste client |
DATA : w_dir TYPE string, i_rc TYPE i. w_dir = 'C:Nouveau Rep inexistant'. CALL METHOD cl_gui_frontend_services=>directory_delete EXPORTING directory = w_dir CHANGING rc = i_rc EXCEPTIONS OTHERS = 0. WRITE i_rc. |
DIRECTORY_EXIST | Tester si un répertoire existe sur le poste client |
DATA : w_dir TYPE string, w_rc. w_dir = 'C:guixt'. CALL METHOD cl_gui_frontend_services=>directory_exist EXPORTING directory = w_dir RECEIVING result = w_rc EXCEPTIONS OTHERS = 0. WRITE w_rc. "X si existe, space si n'existe pas |
DIRECTORY_LIST_FILES | Liste les fichiers d'un répertoire |
DATA : s_line(100), t_line LIKE TABLE OF s_line, w_dir TYPE string, i_count TYPE i. w_dir = 'C:'. CALL METHOD cl_gui_frontend_services=>directory_list_files EXPORTING directory = w_dir filter = '*.TXT' * FILES_ONLY = * DIRECTORIES_ONLY = CHANGING file_table = t_line count = i_count EXCEPTIONS OTHERS = 0. WRITE i_count. LOOP AT t_line INTO s_line. WRITE / s_line. ENDLOOP. |
ENVIRONMENT_GET_VARIABLE | Lecture d'une variable d'environnement Windows Ne semble pas fonctionner sur noyau SAP_BASIS 6.20 |
DATA : w_var TYPE string, w_val TYPE string. w_var = 'OS'. CALL METHOD cl_gui_frontend_services=>environment_get_variable EXPORTING variable = w_var CHANGING value = w_val EXCEPTIONS OTHERS = 0. WRITE w_val. |
ENVIRONMENT_SET_VARIABLE | Modification d'une variable d'environnement Windows Ne semble pas fonctionner sur noyau SAP_BASIS 6.20 |
DATA : w_var TYPE string, w_val TYPE string, i_rc TYPE i. w_var = 'NEWVAR'. w_val = 'TEST'. CALL METHOD cl_gui_frontend_services=>environment_set_variable EXPORTING variable = w_var value = w_val CHANGING rc = i_rc EXCEPTIONS OTHERS = 0. WRITE i_rc. |
EXECUTE | Exécute une application sur le poste client |
DATA : w_appl TYPE string, w_param TYPE string. w_appl = 'C:WINDOWSNOTEPAD.EXE'. w_param = 'C:boot.ini'. CALL METHOD cl_gui_frontend_services=>execute EXPORTING application = w_appl parameter = w_param EXCEPTIONS OTHERS = 0. |
FILE_DELETE | Supprimer un fichier sur le poste client |
DATA : w_file TYPE string, i_rc TYPE i. w_file = 'C:test.txt'. CALL METHOD cl_gui_frontend_services=>file_delete EXPORTING filename = w_file CHANGING rc = i_rc EXCEPTIONS OTHERS = 0. WRITE i_rc. |
FILE_EXIST | Tester si un fichier existe sur le poste client |
DATA : w_file TYPE string, w_rc. w_file = 'C:test.txt'. CALL METHOD cl_gui_frontend_services=>file_exist EXPORTING file = w_file RECEIVING result = w_rc EXCEPTIONS OTHERS = 0. WRITE w_rc. |
FILE_OPEN_DIALOG | Affiche un popup windows de sélection de fichier sur le poste local |
DATA : w_titre TYPE string, w_file TYPE string, w_dir TYPE string, t_file TYPE filetable, s_file LIKE LINE OF t_file, i_rc TYPE i. w_titre = 'Selection de fichier'. w_file = 'test.txt'. w_dir = 'C:guixt'. CALL METHOD cl_gui_frontend_services=>file_open_dialog EXPORTING window_title = w_titre default_filename = w_file initial_directory = w_dir CHANGING file_table = t_file rc = i_rc EXCEPTIONS OTHERS = 0. WRITE i_rc. LOOP AT t_file INTO s_file. WRITE / s_file. ENDLOOP. |
FILE_SAVE_DIALOG | Affiche un popup windows de sélection de fichier sur le poste local (avec confirmation si le fichier existe déjà) |
DATA : w_titre TYPE string, w_file TYPE string, w_dir TYPE string, w_name TYPE string, w_path TYPE string, w_fp TYPE string. w_titre = 'Selection de fichier pour sauvegarde'. w_file = 'test.txt'. w_dir = 'C:guixt'. CALL METHOD cl_gui_frontend_services=>file_save_dialog EXPORTING window_title = w_titre default_file_name = w_file initial_directory = w_dir CHANGING filename = w_name path = w_path fullpath = w_fp EXCEPTIONS OTHERS = 0. WRITE : / w_name, / w_path, / w_fp. |
GUI_DOWNLOAD | Télécharger un fichier sur le poste client |
DATA : w_file type string, s_file type string, t_file like table of s_file. w_file = 'C:test.txt'. s_file = 'Test de contenu de fichier'. append s_file to t_file. CALL METHOD cl_gui_frontend_services=>gui_download EXPORTING filename = w_file FILETYPE = 'ASC' changing data_tab = t_file EXCEPTIONS others = 0. |
GUI_UPLOAD | Charger un fichier depuis le poste client |
DATA : w_file TYPE string, s_file TYPE string, t_file LIKE TABLE OF s_file. w_file = 'C:test.txt'. CALL METHOD cl_gui_frontend_services=>gui_upload EXPORTING filename = w_file CHANGING data_tab = t_file EXCEPTIONS OTHERS = 0. LOOP AT t_file INTO s_file. WRITE / s_file. ENDLOOP. |
REGISTRY_DELETE_KEY | Supprimer une clé de registre sur le poste client Ne semble pas fonctionner sur noyau SAP_BASIS 6.20 | |
REGISTRY_DELETE_VALUE | Supprimer une valeur de registre sur le poste client Ne semble pas fonctionner sur noyau SAP_BASIS 6.20 | |
REGISTRY_GET_VALUE | Lire une valeur de registre sur le poste client Ne semble pas fonctionner sur noyau SAP_BASIS 6.20 | |
REGISTRY_SET_VALUE | Modifier une valeur de registre sur le poste client Ne semble pas fonctionner sur noyau SAP_BASIS 6.20 |
1 commentaire