Операторы SQL, которые сами по себе не являются ресурсоёмкими (то есть считывают только небольшое количество данных через эффективный индекс), но которые часто вызываются программами, нельзя оптимизировать с помощью оптимизации базы данных. Такие операторы являются хорошими кандидатами для буферизации на сервере приложений. В этой главе рассматриваются методы буферизации, которые позволяют работать с такими операторами.
Расширяемый язык разметки (XML) — это метаязык разметки, который используется для определения структурированных документов, которые могут быть легко переданы между разнородными системами. Существует множество способов обмена данными между системами, но с ростом использования веб-сервисов XML стал популярен среди разработчиков. Преимуществами XML являются его гибкость и простота.
Полиморфизм означает наличие множества форм. Концепция наследования приводит к множеству интересных ситуаций, когда объекты могут принимать различные формы. Например, подкласс может отвечать на вызов метода суперкласса.
Продолжим беседу о нетривиальных ошибках, которые сложно диагностировать без глубокого понимания работы системы. Некоторые проблемы связаны с некорректной настройкой ролей и прав, другие — с неправильной обработкой данных, а третьи вызваны ограничениями системы или ошибками в коде.
Один из ключевых принципов объектно-ориентированного программирования — инкапсуляция (encapsulation). Инкапсуляция позволяет определять границы и скрывать реализации от внешнего мира. Атрибуты и методы, которые управляют этими данными, заключены в капсулу (объект), что позволяет установить границу между тем, к чему можно получить доступ внутри объекта и тем, что доступно извне. Эти границы помогают решать многие из упомянутых ранее проблем процедурного подхода.
ABAP Objects — это расширение ABAP. Он сочетает в себе самые мощные аспекты других языков программирования, таких как C++ и Java. В этой главе рассматриваются концепции объектно-ориентированного программирования и их реализация в ABAP.
Эта статья предназначена для SAP-разработчиков и администраторов, работающих с Fiori-приложениями и OData-сервисами. В ней рассматриваются типичные ошибки, возникающие при отладке, и методы их устранения. Материал поможет правильно диагностировать проблемы, связанные с полномочиями, данными, ролями пользователей, конфликтами конфигурации и интеграцией между фронтендом и бэкендом. В статье используется структурированный подход: описание проблемы, анализ причин и пошаговое решение.
В одной из предыдущих статей мы рассматривали как работать с датами и временем: прибавлять и отнимать количество дней/секунд, а также форматировать. Однако, зачастую приходится работать именно с датами производственного календаря, а не с простой последовательностью дат.
В одной из предыдущих статей мы рассматривали различные способы группировки в ABAP. Однако, тот список не был исчерпывающий (и даже текущий – тоже не исчерпывающий), и есть еще, минимум, 2 + 1 (за гранью) способ для группировки.
В одной из предыдущих статей мы разбирали работу с транзакцией SO10 (ведение sap-script длинных текстов): как можно вести текстовый шаблон, как можно копировать и использовать глобальные переменные для вставки значений.
Неэффективные, «дорогие» SQL-запросы (SQL Statements) — одна из основных причин проблем с производительностью, которые могут влиять как на отдельные приложения, так и на общую производительность системы. Эта глава описывает подробные процедуры оптимизации SQL-запросов с использованием вторичных индексов (secondary indexes) и эффективных программных методов.
При обработке данных иногда требуется сгруппировать данные и посчитать какое-либо агрегированное значение (MAX, MIN, AVG, SUM, COUNT и другие). Традиционно, такие функции реализуются в SQL; однако и на сервере приложений приходится выполнять такие вычисления.
Процедуры представляют собой специальные единицы модуляризации, которые вызываются командами ABAP и предоставляют программные блоки с возможностью повторного использования. Процедуры содержат набор команд, выполняемых при вызове из ABAP-программ.