Применение ЭЦП в SAP

Использование ЭЦП граждан Казахстана — давно не новость, особенно в решениях для работы с электронными документами (ЭСФ, СНТ, Виртуальный склад). Стандартное решение SAP, описанное в ноте 3380565, использует сервер подписи, куда сотрудник должен выложить свой личный сертификат ЭЦП.

Подобный запрос возник и у консультантов HCM для подписания документов перед отправкой в ЭСУТД.

К сожалению, данный подход противоречит закону РК «Об электронном документе и электронной цифровой подписи», согласно которому нельзя передавать закрытые ключи ЭЦП другим лицам.

Я поставил цель найти законное и удобное решение. В качестве альтернативы мною был разработан вариант подписания с использованием приложений Egov Mobile или Egov Business с помощью сервиса Sigex.

Читать далее «Применение ЭЦП в SAP»

Повторная обработка сообщений в SAP MII

В SAP MII есть служба сообщений, которая позволяет легко обрабатывать входящие сообщения (например IDOC из SAP). Благодаря этому другая система может отправить сообщение по http на адрес http://<Адрес SAP MII>:<Порт SAP MII>/XMII/Illuminator?service=WSMessageListener&mode=WSMessageListenerServer&NAME=<Имя сообщения>

В новом интеграционном потоке сообщение содержит только часть данных. Дополнительную информацию надо было запрашивать у системы-источника отдельно. На первый взгляд ничего сложного, однако в продуктивной системе столкнулся с ситуацией, когда система-источник при большой нагрузке сама еще не знает о дополнительных данных. В результате этого сообщение не сохраняется и помечается как Failed.

Читать далее «Повторная обработка сообщений в SAP MII»

Применение ИИ в разработке на ABAP

Сейчас ИИ это очень модная тема и вайб-кодинг в частности. Я решил пробовать использовать ИИ при программировании на Python или PHP в среде VSCode и в целом мне понравилось. Использовался Gemini и код освобождал от рутинные операций.

На мой взгляд VSCode не очень удобен для программирования на ABAP и я хотел попробовать другие инструменты. Недавно SAP проводил презентацию по использованию SAP Joule для программирования, но, насколько я понял, использование доступно только в SAP Cloud. Для on-premise систем нашел только инструменты в Eclipse.

Читать далее «Применение ИИ в разработке на ABAP»

Код транзакции в документе изменений при использовании BAPI

Имелась давно разработанная программа, изменяющая заявки в SAP MM. Измение выполнялось с помощью BAPI BAPI_PR_CHANGE — вроде ничего особенного, но недавно обнаружилась некая странность. Оказывается в документе изменения (в таблице CDHDR) в поле TCODE данная BAPI пишет ME52N

Оказалось, что код транзакции прописывается в стандартном коде, что не совсем корректно

Читать далее «Код транзакции в документе изменений при использовании BAPI»

Таймаут в Flexible Workflow

Возникла необходимость в Workflow по утверждению заказа (сценарий WS00800238) ограничить период, в течении которого пользователь может утвердить или отклонить его. В процессе поиска решения выяснилось, что функционал Flexible Workflow в облачном SAP шире. В S4HANA ON PREMISE 02.2023 удалось решить следующим образом:

Далее в Fiori добавили вызов действия timeout по истечению фиксированного времени — для теста поставили 3 минуты.

Читать далее «Таймаут в Flexible Workflow»

Ограничение удаления прикрепленных файлов (GOS)

В SAP очень часто используют возможность прикрепленя файлов к различным объектам, таким как ОЗМ или контракт.

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

Есть известное решение, которое заключается в запрете кнопки «Удалить» на панели инструментов путём расширения метода SET_TOOLBAR  в классе CL_GOS_ATTACHMENTS, однако оно имеет существенный недостаток — остается возможность удалить прикрепленный объект из контекстного меню:

Читать далее «Ограничение удаления прикрепленных файлов (GOS)»

Журнал приложения в SAP MII. Часть 1.

SAP MII имеет только общий журнал, в который записываются записи всех компонентов системы и данный функционал не очень удобен для ежедневного анализа работающих бизнес-процессов. К сожалению, я не нашел аналога журнала приложений SAP (транзакция SLG1). Поэтому создадим свой аналог.

Нам нужен следующий функционал:

  1. Место хранения записей журнала приложения (Persistent MDO).
  2. API для добавления записей в журнал приложений (транзакция добавления одной записи, транзакция массового добавления записей).
  3. Журнал приложений с возможностью выбора нужной степерью детализации (в табличном виде или в виде дашборда).
Читать далее «Журнал приложения в SAP MII. Часть 1.»