Меню

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

Олег, а случаем то же самое можно создавать в SAP Screen Personas?
wiki.scn.sap.com/wiki/display

Комментарий от  

Олег Башкатов

  |  13 марта 2014, 16:46

Олег, а случаем то же самое можно создавать в SAP Screen Personas?
wiki.scn.sap.com/wiki/display

я тоже обратил внимание на технологию SAP Screen Personas.
И, судя по всему, ответ на Ваш вопрос - да, частично, можно.
В той части, чтобы вынести 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 - это реализовано.