На OpenSAP с 15 сентября станет доступен обзорный курс по ABAP в облаке, записаться можно по ссылке.

Содержимое:

  • Unit 1: Basic components of SAP Business Technology Platform
  • Unit 2: Introduction to SAP BTP, ABAP environment
  • Unit 3: ABAP RESTful Programming Model
  • Unit 4: SAP Extension Suite and development efficiency
  • Unit 5: Extensibility in SAP S/4HANA
  • Unit 6: How to do side-by-side extensions

На OpenSAP в скором времени стартует обзорный курс по BTP. записаться можно по ссылке.

Содержимое:

  • Unit 1: SAP Business Technology Platform: strategy and offering
  • Unit 2: Integration: connecting processes, data, and experiences
  • Unit 3: Data to value: enabling customers to improve with confidence
  • Unit 4: Extensibility: enhancing and customizing the business processes
  • Unit 5: Key takeaways: SAP Business Technology Platform in a nutshell

Хороший обзор на тему BTP можно почитать тут.

Использование функционала поиска в HANA довольно обширная тема, которой посвящена отдельный гайд в документации.

В данной же статье хотелось бы рассмотреть её небольшую часть, а именно нечёткий поиск или Fuzzy Search для оценки похожести строк.

В целом нечёткий поиск может быть использован в разных сценариях, например:

  • Для облегчения поиска пользователя, когда заранее может быть неизвестно точное наименование материала или номера документа.
  • Для поиска по заранее определённым столбцам, когда пользователь ищет некоторый адрес вводя индекс или часть названия улицы.
  • Для сопоставления распознанных данных в каком-нибудь OCR движке (который может иногда выдавать не 100% результат) с тем что лежит в системе.

Читать далее

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

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

Существует как минимум три возможности вызова команд на сервере приложений:

  • Использование дополнения FILTER в OPEN DATASET
  • Использование команды CALL ‘SYSTEM’
  • Вызов команд через SXPG фреймворк

Первые два способа официально не рекомендуется использовать, по следующим причинам:

  • Нет централизованной проверки полномочий
  • Платформенная зависимость должна быть обработана на уровне ABAP кода
  • Отсутствие возможности обработки исключительных ситуаций
  • Возможны вредоносные внедрения системных команд

Рассмотрим третий вариант.

Читать далее

В подробных текстах сообщений (тр. SE91) или в документации (тр. SO10) мы кроме непосредственно описания можем так же вставлять ссылки на транзакции или отчёты для их запуска, что позволяет упростить жизнь пользователям.

Однако у стандартной реализации данного механизма есть ряд ограничений:

  • Длинна ссылки ограничена, из-за чего передать все необходимые параметры для запуска транзакции может не получиться.
  • Нет возможности вставки интернет-ссылок более 70 символов (ограничение стандарта).
  • Нет возможности запуска отчёта с параметрами (только запуск с вариантом).

В статье рассмотрим каким образом можно расширить стандартные возможности чтобы избежать вышеуказанных ограничений.

Читать далее

Иногда нам необходимо оповестить пользователя о каком-либо событии по внутренней почте, с возможностью его перехода к заданной транзакции и с учётом контекста оповещения, т.е. с заполнением параметров актуальных для данного оповещения.

Во внутренней почте мы можем сформировать ссылку на бизнес объект (транзакция SWO1), а уже у бизнес объекта реализовать метод display для запуска нужной нам транзакции.

Давайте разберёмся как это сделать.

Читать далее

В релизе ABAP 7.52 стало возможным использование внутренних таблиц как источника данных в ABAP SQL:

Существует два сценария выполнения таких запросов:

  • Для выполнения SQL запроса не требуется переноса содержимого внутренней таблицы на уровень СУБД. В таком случае обработка запроса осуществляется непосредственно на сервере приложений, по аналогии с табличным буфером.
  • Для выполнения SQL запроса требуется перенести содержимое внутренней таблицы во временную таблицу на уровень СУБД. Этот сценарий поддерживается не всеми СУБД и чтобы статический анализ кода не ругался, следует использовать прагму: ##itab_db_select. При отсутствии поддержки система выдаст исключение в runtime — CX_SY_SQL_UNSUPPORTED_FEATURE.

Разберём текущие особенности использования этих сценариев.

Читать далее

В ABAP довольно таки давно существует функционал журнальных точек, который позволяет активировать запись в журнал (в тр. SAAB) определённых данных из программы. Для этого необходимо завести ключ (ID группы контрольных точек) и в коде использовать оператор LOG-POINT.

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

Для этих целей начиная с ABAP 7.5 ввели так называемые динамические журнальные точки, которые позволяют:

  • Сохранять значения переменных по определённым условиям
  • Записывать стек вызовов, чтобы понять откуда происходит вызов того или иного кода
  • Выполнять анализ выполнения отдельного SQL выражения
  • Активировать запись SQL трассировки для заданного выражения оп указанному условию
  • Активировать трассировку использования табличного буфера заданного SQL выражения для анализа потребляемой памяти

Создавать или модифицировать журнальные точки можно либо через ADT (Eclipse), либо через транзакцию SDLP.

Далее на простых примерах рассмотрим вариант использования.

Читать далее