Добавил канал в Telegram, присоединяйтесь, там будет чуть больше материалов чем на сайте 😊👍
Introduction to ABAP in the Cloud
На 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
SAP Business Technology Platform in a Nutshell
На 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 можно почитать тут.
Вебинар на тему Clean Code
Регистрация по ссылке.
Оценка похожести строк через Fuzzy Search
Использование функционала поиска в HANA довольно обширная тема, которой посвящена отдельный гайд в документации.
В данной же статье хотелось бы рассмотреть её небольшую часть, а именно нечёткий поиск или Fuzzy Search для оценки похожести строк.
В целом нечёткий поиск может быть использован в разных сценариях, например:
- Для облегчения поиска пользователя, когда заранее может быть неизвестно точное наименование материала или номера документа.
- Для поиска по заранее определённым столбцам, когда пользователь ищет некоторый адрес вводя индекс или часть названия улицы.
- Для сопоставления распознанных данных в каком-нибудь OCR движке (который может иногда выдавать не 100% результат) с тем что лежит в системе.
SXPG Framework
Некоторые задачи невозможно или очень сложно решить только средствами языка ABAP (работа с архивами, криптографией и т.п.), в таких случаях мы можем воспользоваться внешними программами либо через их вызов на сервере представления, либо на сервере приложений.
Взаимодействие с сервером представления уже было ранее описано в блоге. В данной статье рассмотрим возможности вызова команд на стороне сервера приложений.
Существует как минимум три возможности вызова команд на сервере приложений:
- Использование дополнения FILTER в OPEN DATASET
- Использование команды CALL ‘SYSTEM’
- Вызов команд через SXPG фреймворк
Первые два способа официально не рекомендуется использовать, по следующим причинам:
- Нет централизованной проверки полномочий
- Платформенная зависимость должна быть обработана на уровне ABAP кода
- Отсутствие возможности обработки исключительных ситуаций
- Возможны вредоносные внедрения системных команд
Рассмотрим третий вариант.
Запуск транзакций из сообщений
В подробных текстах сообщений (тр. SE91) или в документации (тр. SO10) мы кроме непосредственно описания можем так же вставлять ссылки на транзакции или отчёты для их запуска, что позволяет упростить жизнь пользователям.
Однако у стандартной реализации данного механизма есть ряд ограничений:
- Длинна ссылки ограничена, из-за чего передать все необходимые параметры для запуска транзакции может не получиться.
- Нет возможности вставки интернет-ссылок более 70 символов (ограничение стандарта).
- Нет возможности запуска отчёта с параметрами (только запуск с вариантом).
В статье рассмотрим каким образом можно расширить стандартные возможности чтобы избежать вышеуказанных ограничений.
Запуск транзакций из SBWP
Иногда нам необходимо оповестить пользователя о каком-либо событии по внутренней почте, с возможностью его перехода к заданной транзакции и с учётом контекста оповещения, т.е. с заполнением параметров актуальных для данного оповещения.
Во внутренней почте мы можем сформировать ссылку на бизнес объект (транзакция SWO1), а уже у бизнес объекта реализовать метод display для запуска нужной нам транзакции.
Давайте разберёмся как это сделать.
Developing and Extending SAP Fiori Elements Apps
На OpenSAP анонсировали курс посвящённый разработке и расширению приложений на базе Fiori Elements, темы курса:
- Week 1: Introducing SAP Fiori Elements
- Week 2: Building Your First SAP Fiori Elements App
- Week 3: Using More SAP Fiori Elements Capabilities
- Week 4: Extending a Standard SAP Fiori App
- Week 5: Final Exam
Внутренние таблицы как источник в SQL запросах
В релизе ABAP 7.52 стало возможным использование внутренних таблиц как источника данных в ABAP SQL:
1 |
SELECT FROM ...@itab AS table_alias... |
Существует два сценария выполнения таких запросов:
- Для выполнения 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.
Далее на простых примерах рассмотрим вариант использования.