LuckySapGui: Быстрый ввод пароля и графико-параметрический ввод транзакций в SAP ERP средствами GuiXT/Viewer, HTML/JS/CSS, C#
В статье описывается взаимодействие HTML/JavaScript и SAP GuiXT/Viewer с помощью дополнительного exe-файла, написанного на языке C#, на примере создания скриптов для быстрого ввода пароля и графико-параметрического ввода транзакций в SAP ERP.
В статье http://sapland.ru/articles/stats/2012/1/sozdanie-bistrogo-vvoda-parolya-v-sistemu-sap-erp-ecc-na-storone-klienta.html была описана возможность быстрого ввода пароля на основе простого GuiXT-скрипта. Однако подобный подход, хотя и обеспечивает быстрый ввод пароля, обладает целым набором недостатков:
- при увеличении количества SAP-пользователей, под которыми осуществляется вход с клиентской машины, загромождается экран;
- для обновления пароля нужно идти в текстовый файл и его редактировать;
- пароль хранится в открытом виде;
- чтобы получить/скопировать свой пароль нужно идти также в файл-скрипт и по коду скрипта искать значение.
Однако у описанного подхода - немаловажный плюс: быстрота и простота создания такого скрипта, легкость его исправления.
Устранить указанные выше недостатки, не потеряв «плюсы», можно с помощью взаимодействия HTML-страниц и экранов SAP Gui с помощью надстройки GuiXT Viewer; при этом хранение и обработка промежуточных внешних данных (логины, транзакции, пароли) будут осуществляться с помощью JavaScript (язык, который взаимодействует с HTML), а операции обновления данных и развёртывания скриптов будет выполнять «отдельный» exe-файл (в данной версии написанный на C#).
Такой "винегрет" обеспечит: экономное расположение данных на экране, быстрое обновление пароля в файле, шифрование пароля (пароль не хранится в открытом виде), быстрое и простое развёртывание скриптов, в случае необходимости.
Также с помощью этого подхода можно создать графику в HTML и обеспечить взаимодействие с SAP GUI, а также создать, так называемый, графико-параметрический ввод данных.
И этот "винегрет" я назвал «LuckySapGui».
Чтобы изначально было ясно, о чем речь и зачем это нужно, я продемонстрирую:
- быстрый ввод и обновление пароля с помощью HTML/JavaScript, GuiXT, C#;
- графико-параметрический ввод.
Непосредственное описание программы «LuckySapGui» можно найти по ссылке http://olegbash.ru/luckysapgui.html.
Как LuckySapGui выглядит
После выбора нужной системы в SAPLogon система открывает экран для ввода пользователя/пароля (Рис. 1). С помощью скриптов достаточно просто выбрать пользователя из списка, а остальные данные (мандант, пароль, язык) «подтянутся» автоматически.
Рис.1 Выбор пользователя при использовании LuckySapGui
Если система потребует сменить пароль, то с помощью скриптов мы можем и сгенерировать безопасный пароль, и использовать его. Выглядит это так, как представлено на Рис.2 и 3.
Рис.2 Экран смены пароля в SAP ERP
С помощью кнопки "Показать" мы можем просмотреть, какой пароль был сгенерирован (Рис.3).
Рис. 3 Просмотр пароля и его использование
Таким образом мы можем использовать и обновлять данные скриптов прямо из экранов SAP GUI с помощью дополнительных HTML-вставок без дополнительного ABAP-кода.
Также имеются и другие функций в текущей версии LuckySapGui: хранение логинов/паролей для доступа к внешним Web-порталам (например, S-user для https://websmp109.sap-ag.de/support),быстрый вызов шаблонных документов, запуск транзакций и выполнение скриптов, и некоторые другие.
Подробное описание LuckySapGui, как уже было сказано ранее, можно найти по ссылке http://olegbash.ru/luckysapgui.html.
Также хотел бы отдельно отметить функцию графико-параметрического ввода транзакций. Идея заключается в следующем. Схема определенного бизнес-процесса создается в программе MS Visio; затем мы можем преобразовать схему в HTML-файл и добавить в него дополнительный код, который мы можем привязать к экрану SAP GUI. Таким образом, мы можем вводить данные, используя не коды транзакций или иерархию папок, а графическое отображение схемы.
Эта функция работает только с IE10 и выше. Функция используется следующим образом.
Вначале мы выбираем нужную нам схему (мы можем это сделать как на экране входа, так и на экране SAP Easy Access).
Рис. 4 Выбираем нужную схему из списка
Затем выбираем нужный блок в интерактивной схеме.
Рис. 5 Выбор блока в интерактивной схеме
Такая интерактивная схема может содержать ссылки на другие схемы, описание шага, указание на инструкции и другую информацию (Рис.6).
На экране появляются транзакции, которые можно выбрать. После выбора транзакции нажимаем кнопку "Задать параметры".
Рис.6 Дополнительная информация о шаге бизнес-процесса на интерактивной схеме
Рис. 7 Выбор транзакции в зависимости от шага бизнес-процесса
После нажатия кнопки «Задать параметры» в поле "Параметры для скрипта" «подтянутся» соответствующие параметры, затем, после нажатия на кнопку "Создать и выполнить", система создаст скрипт с учётом параметров и выполнит его. В случае с примером, показанным на Рис.8, система запустит транзакцию ME53N.
Рис. 8 Параметры для скрипта
Аналогично, мы можем «привязать» выполнение любого другого скрипта.
Как LuckySapGui реализован
LuckySapGui предполагает работу трёх частей:
- GuiXT и GuiXTViewer;
- HTML-файлы с подключёнными js-файлами;
- exe-файл, способный принимать параметры от GuiXT и обновлять HTML и js-файлы.
На схеме ниже показано взаимодействие этих трех частей с SAP GUI.
Схема 1. Взаимодействие элементов LuckySapGui и SAP GUI
Сделаю пояснение о том, что необходимо для взаимодействия элементов.
Взаимодействие SAP GUI и надстроек Synactive (GuiXT, Viewer, InputAssistant)
Это взаимодействие уже предполагается на уровне SAP GUI. В экране SAP GUI нужно активировать GuiXT (Рис.9), а в профиле Synactive «установить галочки» напротив компонентов: GuiXT, InputAssistant, Viewer (Рис.10).
Рис. 9 Активация GuiXT в SAP GUI
Рис. 10 Настройка GuiXT Profile
Актуальную версию Synactive GuiXT можно установить с сайта http://www.synactive.com из раздела Download. После загрузки, установки и активации Synactive GuiXT рекомендуется перезагрузить компьютер.
В качестве директории, где будут хранится скрипты, определим директорию на локальном компьютере; адрес директории: C:\guixt\&database , где &database представляет собой буквенно-цифровой код системы (Рис. 11).
Рис. 11 Буквенно-цифровой код системы
Взаимодействие Synactive (GuiXT, Viewer, InputAssistant), HTML/JS/CSS и exe-файла C#
Компонент Synactive Viewer предназначается для возможности встраивания HTML-страниц в скрипт GuiXT. Таким образом, можно создать свой HTML-подэкран на стандартном SAP GUI-экране.
Рассмотрим такое взаимодействие на примере окна по принудительной смене пароля (Рис.2).
Для подключения HTML-блока в скрипте GuiXT (имя скрипта будет sapmsyst.L0041.txt, где L - это однобуквенное обозначение языка) нужно прописать:
view (2,21) (4,71) "change_pass.html" - floating
Оператор view привязывает html-страницу к экрану SAP GUI. Числа в скобках задают месторасположение страницы в рамках экрана SAP.
Хочу отметить, что при работе с html/css/js в Synactive нужно ориентироваться на работу html-страниц в браузере Internet Explorer. У каждого браузера есть свои особенности отображения html-страниц и выполнения js-скриптов. Таким образом, тестирование необходимо проводить в IE; начальную разработку можно проводить там, где удобно.
Внутри файла change_pass.html содержится подключение js-файла:
<script type="text/javascript" src="js/sap_js.js"></script>
Внутри этого файла для передачи данных на экран SAP GUI используется следующий код
Код для передачи данных из HTML-блока в SAP GUI - экран, часть кода на языке JavaScript из файла |
Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland
ЗарегистрироватьсяУ вас уже есть учетная запись?
Войти
Обсуждения 2
Комментарий от
Евгений Селезнёв
| 13 марта 2014, 14:43
wiki.scn.sap.com/wiki/display
Комментарий от
Олег Башкатов
| 13 марта 2014, 16:46
Евгений Селезнёв 13 марта 2014, 14:43
Олег, а случаем то же самое можно создавать в SAP Screen Personas?
wiki.scn.sap.com/wiki/display
И, судя по всему, ответ на Ваш вопрос - да, частично, можно.
В той части, чтобы вынести HTML на экран.
JavaScript останется JavaScriptом. доп.exe-файл также будет нужен.
А может ли SAP Screen Personas передавать параметр exe-файлу и вызвать его?
если нет, то это нельзя реализовать.
НО:
как GuiXT, так и LuckySapGui появились раньше SAP Screen Personas :-))))))
Кроме того, для использования GuiXT Вам нужно поставить просто галочку, а SAP Screen Personas еще нужно установить )))
Кроме того, насколько я успел заметить, SAP screen Personas не зависит от пользователя и языка. Если я не прав - прошу поправить меня.
И еще, я не заметил в SAP Screen Personas возможность обращения и подмены скриптов, а также их различные источники. В Synactive это реализовано.
И, ни в GuiXT, ни в SAP Screen Personas, не предполагается построение своего сервера библиотек (или хотя бы простого локального хранилища).
А вот в версии через следующую в LuckySapGui - это реализовано.