ABAP Blog, Взаємодія з фронтендом

Блог ABAP розробника

Працюючи над проблемою, я ніколи не думаю про красу. Я думаю лише про вирішення проблеми. Але якщо отримане рішення негарне, я знаю, що воно неправильне.Р. Бакмінстер Фуллер(R. Buckminster Fuller)

Коментарі

У SAP R/3 передбачено один чудовий клас для роботи з сервером подання, називається він:CL_GUI_FRONTEND_SERVICES. Далі я опишу застосування його основних методів, які часто можуть стати в нагоді в написанні ABAP звітів.

Так як версії GUI клієнта постійно оновлюються, і існують різні версії GUI: під MacOS, Web, Windows необхідно перевіряти, чи підтримує поточна версія можливості GUI, для цього був створений метод:CHECK_GUI_SUPPORT. Приклад використання даного методу:

Наступними йдуть методи експорту, імпорту з буфера обміну ОС:CLIPBOARD_EXPORT, CLIPBOARD_IMPORT. Приклад використання методу:

Де data_block - внутрішня таблиця, rc - код повернення помилки.

Далі йде група методів до роботи з директоріями на сервері представлення. МетодDIRECTORY_BROWSE. Для відображення діалогу вибору директорії. Приклад використання:

МетодDIRECTORY_CREATE створює папку у вказаному місці. Приклад використання:

МетодDIRECTORY_DELETE як відомо з назви видаляє вказану директорію, у разі помилки код повернення RC буде порожній. Часто доводиться перевіряти існування директорії на комп'ютері користувача, для цього є методDIRECTORY_EXIST. Приклад його використання:

Для отримання поточної директорії (той, що використовується GUI для вивантаження звітів тощо) використовується метод:DIRECTORY_GET_CURRENT. Для отримання списку файлів узазначеної директорії використовується метод:DIRECTORY_LIST_FILES. Метод дозволяє отримати список файлів і директорій у вказаній вами директорії, причому із завданням фільтра - параметрFILTER, ви можете визначити, чи потрібно вам отримати тільки директорії параметрDIRECTORIES_ONLY = 'X', або тільки файли — параметрFILES_ONLY = 'X'. Приклад використання:

DIRECTORY_SET_CURRENT необхідний для встановлення поточної директорії (див. вище).

DISABLEHISTORYFORFIELD використовується коли потрібно заборонити збереження в історії значень вказаного поля, наприклад, на екрані вибору.

ENVIRONMENT_GET_VARIABLE використовується для отримання значення змінного оточення на комп'ютері користувача. Протилежний йому метод для встановлення значень змінних оточення —ENVIRONMENT_SET_VARIABLE.

МетодEXECUTE запускає на сервері подання документ, директорію, додаток. (У Windows це обгортка над WinApi - ShellExecute, ShellExecuteEx). ПараметрDOCUMENT визначає шлях до документа який необхідно запустити в додаткуAPPLICATION, якщо додаток не вказано буде запущено додаток, що асоціюється, до даного типу файлів.DEFAULT_DIRECTORY визначає директорію з якої буде відбуватися файл, якщо не вказано повний шлях до файлу в параметріDOCUMENT.OPERATION — Може приймати одне з наступних значень: FIND , EXPLORE, EDIT, OPEN або PRINT за замовчуванням OPEN.MAXIMIZED, MINIMIZED — визначає, чи буде запущений додаток розгорнутим або згорнутим.PARAMETER — список параметрів, що передаються програмі, що запускається.SYNCHRONOUS - визначає чи буде запуск синхронним, тобто. GUI буде чекати завершення операції абоні. Приклад використання методу:

Далі йде група методів роботи з файлами.FILE_COPY — копіює файл вказаний у параметрі —SOURCE, у файл у параметрі —DESTINATION, якщо ні створює, якщо є і вказаний параметр —OVERWRITE перезаписує.

FILE_DELETE видаляє вказаний у параметрі -FILENAME файл, у разі помилки значення параметраRC не 0.

FILE_EXIST — перевіряє файл на існування, якщо файл існує параметрRESULT не порожній.

Для перевірки атрибутів файлу служить методFILE_GET_ATTRIBUTES, за допомогою нього можна визначити, чи є файл: архівним, тільки для читання, прихованим або нормальним, без вищезгаданих атрибутів. Для встановлення атрибутів до файлу служить методFILE_SET_ATTRIBUTES.

FILE_GET_SIZE судячи з назви повинен визначати розмір файлу в байтах, але на моїй системі даний метод відмовлявся працювати, можливо на новішій версії базису це було виправлено.

FILE_GET_VERSION отримує поточну версію файлу.

FILE_OPEN_DIALOG відображає діалог вибору файлів.WINDOW_TITLE — заголовок діалогу,DEFAULT_EXTENSION — розширення для файлів,DEFAULT_FILENAME — стандартне ім'я файлів,FILE_FILTER — фільтр для вибору файлів,WITH_ENCODING - можливість вибору кодування,INITIAL_DIRECTORY - директорія в якій відкривається діалог,MULTISELECTION - якщо 'Х' дозволяє вибирати кілька файлів,FILE_TABLE - список вибраних файлів.USER_ACTION може приймати або ACTION_OK або ACTION_CANCEL залежно від якої кнопки діалогу натиснув користувач.FILE_ENCODING - приймає значення кодування файлу.Приклад використання методу: