Меню

От уведомления к действию. Переход из почты клиента в транзакцию SAP ERP

|

Basis Component / Frontend Services / SAP GUI for Windows / Microsoft Office Interoperability.

Basis Component / Frontend Services / SAP GUI for Windows / Microsoft Office Interoperability

Раз письмо - значит, к кому-то,- сказал Король,- писать никому пока не в обычае! (Льюис Кэролл. «Алиса в Стране Чудес)

Время чтения: 9 мин.

Как часто вы встречаете в своем почтовом ящике письмо с заманчивым предложением, но …без ссылок (URL)? Т.е. в письме описано и предложение, и все бонусы, которые вы получите, воспользовавшись предложением, но чтобы перейти на соответствующий сайт, вам нужно открыть новую закладку своего любимого браузера, набрать адрес сайта, затем разобравшись в навигации, наконец, перейти к странице с необходимым контекстом, при этом постоянно сверяясь с «хлебными крошками» в письме.

А сколько раз вы получали почтовое уведомление из приложений SAP ERP о том, что изменен некоторый объект системы, за который вы ответственны, и теперь вам нужно либо проверить изменения, либо выполнить некое действие?

Я постоянно получаю такие уведомления.  Причем в 100% случаев такого рода, письмо крайне лаконично (например, «Заказ X изменен пользователем Y»). Что следует  сделать адресату после получения такого письма? Скопировать из письма номер объекта (это может быть и несколько полей), открыть систему SAP ERP, от которой получено сообщение, найти нужный пункт в меню (продвинутые пользователи вводят в поле команд транзакцию), вставить код объекта, и, наконец,  оценить изменение и решить какое действие следует выполнить.

Конечно, это требует времени. Но такова обычная практика. Скорей всего цель уведомления  была именно такой: уведомить пользователя об изменениях. Но есть способ сделать то же, сэкономив 95% времени пользователя, сделав письмо элементом интерфейса SAP ERP, помогая пользователю в работе.

Все что потребуется – в письме привести прямую ссылку на измененяемый  объект, добавив пояснения о возможных дальнейших действиях, например: «Просмотреть заказ X», или «Запросить информацию у пользователя Y» и т.п. После перехода в первом примере,– откроется новое окно с измененным заказом, во втором – создастся новое письмо адресованное пользователю проводившему изменения.

В этой статье речь идет только об удобстве, предоставляемом наличием перехода в транзакцию SAP ERP. Вопросы интеграции приложений MS Outlook, MS Excel с данными SAP ERP при помощи решения SAP Gateway for Microsoft не рассматриваются. Обсуждение прочих аналогичных решений, таких как Fiori, Mobile Platform, Duet Enterprise, основанных на технологии SAP Gateway, также выходит за рамки статьи.

Примечание. Интеграция данных SAP ERP с данными приложений MS Office возможна, но она требуют не только ABAP доработок, но и разработки отдельного приложения (или COM-надстройки MS Office) в Visual Studio на одном из языков платформы .NET. На данный момент SAP Gateway for Microsoft позволяет произвести интеграцию данных SAP ERP с календарем, задачами и контактами MS Outlook.

Чтобы получить необходимый функционал, в системе SAP ERP потребуется изменить только ABAP-программу создания письма уведомления, и также настроить ОС Windows.

Примечание. Приводимая реализации будет работоспособна только в среде операционной системы Windows с установленным SAP GUI for Windows. Исходный код приводимых в статье программ доступен по ссылке http://bit.ly/sap_ssch.

Основные моменты описанного ниже способа реализации показывал ранее Павел Телепко в статье «Вызов транзакции SAP из писем MS Outlook». Я приведу немного отличную по своим характеристикам реализацию, и подробней опишу различия в подходах.

Для реализации функционала запуска транзакций SAP ERP из писем почтовых клиентов Windows потребуется:

  • определить возможные параметры запуска транзакций;
  • настроить обработку событий при открытии ссылки;
  • доработать программы создающие письма уведомления.

Параметры запуска транзакций

В SAP Logon существует встроенный функционал по созданию ярлыков быстрого доступа к определенному отчету или команде SAP ERP. Для этого используется вызов программы sapgui.exe с параметрам SHORTCUT, в котором указаны ключи настройки создаваемого ярлыка. Список всех доступных настроек приведен в ноте 103019 «SAPshortcut: Program parameters». Основные ключи настройки ярлыка быстрого запуска следующие:

  • client – мандант системы
  • system – идентификатор системы
  • language – язык входа
  • type – тип команды (доступны типы Transaction, Report и SystemCommand)
  • command – параметры выполняемой команды
  • reuse – использование существующего соединения SAP Logon

Все параметры начинаются со знака «-», значение указывается после знака «=»

Рассмотрим подробней ключ command для команды типа Transaction. В начале строки команды необходимо указать название транзакции, затем через точку с запятой параметры запуска: техническое имя поля экрана и его значение. Затем, при необходимости в параметре DYNP_OKCODE указывается выполняемая GUI функция и в параметре DYNP_CURSOR активное поле экрана. Для пропуска первого экрана транзакции следует перед транзакцией указать символ «*». В противном случае потребуется дополнительно подтверждать выполнение GUI функции, указанной в параметре DYNP_OKCODE. Также учитываете, что общая длина ключа command ограничена 2048 символами.

Пример. Запуск транзакции просмотра текущих адресных данных у сотрудника с табельным номером 999 в системе DEV (мандант 001) выглядит следующим образом:
sapgui.exe /SHORTCUT="–maxgui -reuse=1 -system=DEV -client=001 -language=RU -type=Transaction -command=*PA20 RP50G-PERNR=999; RP50G-CHOIC=0006; RP50G-TIMR1=X; RP50G-SUBTY=1; DYNP_OKCODE=DIS; DYNP_CURSOR=RP50G-PERNR;"
Откройте приложение «Выполнить» (горячие клавиши Win+R) и вставьте указанную выше команду – перед вами отроется окно с адресными данными сотрудника (ИТ 0006).

Дополнительную информацию по параметрам ищите в нотах 103019 «SAPshortcut: Program parameters» и 390832 «Additional parameters for SAP GUI call»

Теперь, когда мы разобрались с запуском транзакций SAP ERP через автоматически создаваемые ярлыки быстрого доступа, необходимо реализовать обработку перехода к транзакции по ссылке.

Обработка ссылок

Схема обработки ссылок и перехода к транзакциям SAP ERP будет следующей:

  1. Программа формирует письмо необходимого содержания с ссылкой формата <протокол>://<параметры_ярлыка> и отправляет его на почтовый адрес пользователя ;
  2. Пользователь получает письмо, и нажимает на одну из ссылок;
  3. При нажатии на ссылку, запускает обработчик протокола (исполняемую программу) и ему предается значение ссылки;
  4. Обработчик протокола запускает программу sapgui.exe и происходит выполнение транзакции (или программы) , с учетом переданных параметров.

Для реализации обработки перехода из ссылки к транзакции SAP ERP, создадим в системе Windows новый протокол sshc. Для создания протокола, необходимо в улье HKCR реестра Windows создать новый раздел, где в качестве имени указать имя протокола sshc, и в созданном разделе создать строковый параметр «URL Protocol», значение которого обязательно оставить пустым. После этого следует  создать вложенный раздел «DefaultIcon», где для значения по умолчанию указать путь к иконке протокола, и разделы «shell/open/command», где для раздела command в значении по умолчанию указать программу обработчик и предаваемые ей параметры.

Содержимое файла реестра «add_sshc_protocol.reg» необходимого для регистрации протокола показано ниже. (см. Листинг 1). Предполагается, что программа обработчик runSapShortcut.exe расположена в каталоге «C:\sapshortcut».


Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\sshc]

@="URL:Application Manager Protocol"

"URL Protocol"=""

[HKEY_CLASSES_ROOT\sshc\DefaultIcon]

@="\"C:\\Program Files (x86)\\SAP\\FrontEnd\\SAPgui\\sapshlib.dll,0\""

[HKEY_CLASSES_ROOT\sshc\shell]

[HKEY_CLASSES_ROOT\sshc\shell\open]

[HKEY_CLASSES_ROOT\sshc\shell\open\command]

@="\"C:\\sapshortcut\\runSapShortcut.exe\" \"%1\""

Листинг 1. Содержимое файл реестра add_sshc_protocol.reg

При обработке ссылки браузеры и почтовые клиенты автоматически преобразуют содержимое ссылки в формат Unicode, при этом символ пробела, например, заменяется на последовательность «%20», а знак «=» на символы «%3D». Дополнительно ссылка нормализуется по правилам, описанным в стандарте RFC 3986 «Uniform Resource Identifier (URI): Generic Syntax». Поэтому, при переходе по ссылке вида «http://TCODE -VALUE=PARAM1;» в обработчик передается иное значение – «http://TCODE%20-VALUE%3DPARAM1%3B/». Измененное значение уже не распознается программой sapgui.exe как корректный параметр создания ярлыка быстрого

Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland

У вас уже есть учетная запись?

Войти

Обсуждения Количество комментариев1

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

Антон Сорокин

  |  24 августа 2015, 13:45

Спасибо, Олег! Интересная тема.