en | ru

Использование CDS View как источник данных для SALV IDA


В SAP NW версии 7.4 появилась технология под названием IDA. Ее суть заключается в том, что данные для отображения в ALV таблице выбираются не заранее в программе, а считываются напрямую во время отображения таблицы. Как и обычный SALV, она имеет огромный функционал, частью которого является использование CDS View в качестве источника данных. Взглянем на эту часть поближе. С моей точки зрения сам подход IDA довольно спорный с точки зрения архитектуры. В больших приложениях прямой доступ к данным из таблицы в ALV ломает разделение на уровни отображения, если вы используете что-то вроде MVP...  »

Mock-объекты на лету при помощи ATD


В юнит тестировании распространена практика dependency injection (DI), которая позволяет вынести внешние зависимости в отдельные сущности, которые передаются в объект в тот или иной момент через интерфейс. В тесте эти сущности заменяются заглушками с заранее известным поведением (mock-объект). Таким образом тестируемый объект изолируется от внешних зависимостей. В NW 7.4 SP 9+ появился инструмент, позволяющий создавать mock-объекты, имплементирующее определенный интерфейс, прямо в рантайме. Это достаточно удобно при тестировании, так как не нужно прописывать имплементацию интерфейсов в mock-объектах для DI вручную, это можно сделать через вызов нескольких методов...  »

Страх и отвращение в ABAP CDS View


Последний год я занимался созданием приложений в рамках модели разработки для Fiori, которая почти полностью построена на BOPF и CDS. За это время у меня накопилось некоторое понимание особенностей и подводных камней, связанных с разработкой CDS View, которые стоит знать заранее и учитывать на этапе разработки архитектуры системы. Эти особенности оказывают существенное влияние на процесс разработки и поддержки по сравнению с классической ABAP разработкой. В этой заметке я изложу свои наблюдения по поводу некоторых узких мест или недостатков реализации приложений в рамках данной модели, с которыми я столкнулся лично...  »

Test the untestable


Одной из отличительных черт профессионального программного продукта является покрытие кода юнит-тестами. Это позволяет безболезненно внедрять новый функционал и редактировать старый, не боясь что-то сломать. К тому же это позволяет проверить работоспособность программы даже в случае отсутствия тестовых данных, что так часто встречается в ABAP-разработке. Однако одно из узких мест - запросы к БД, которые мешают построить полноценные тесты, и которые зачастую бывает трудно или нецелесообразно вынести в отдельные модули или зависимости...  »

Как надо и как не надо использовать ABAP CDS View


Начиная с версии 7.4 в ABAP появилась технология Core Data Services - расширенная OpenSQL нотация описания моделей данных с широкими возможностями обработки данных, приправленная аннотациями, позволяющими встраивать в CDS информацию, используемую различными фреймворками. Технология активно развивается и продвигается SAP - появившись в 7.4 только для серверов SAP HANA, в 7.5 ее поддержка была расширена и на остальные поддерживаемые сервера, а также получила много полезных дополнений, как, например, генерацию BOPF объектов на основе аннотаций...  »

Контейнеры сообщений в ABAP


В ABAP реализован достаточно мощный механизм использования сообщений, в который интегрированы и локализация, и включение переменных в текст сообщений, передача этих сообщений в RFC, использование в классических и объектных исключениях, логирование, а также широкие возможности по выводу сообщений на различных вариантах GUI. При этом часто возникает необходимость передавать сообщения не поодиночке, а списком, например по завершении какого-то комплексного процесса, состоящего из шагов, либо при вызове программного модуля (RFC, BAPI и т...  »

Не доверяйте бизнесу в технических вопросах


В процессе разработки постоянно происходят ситуации, когда реальное положение дел отличается от того, что описано в спецификации. Клиент утверждает одно, но по факту мы видим совершенно другое. Что же делать и как разобраться в этой ситуации? Особенностью деятельности разработчика является то, что он последний, кто вносит изменения в продукт. То есть в цепочке, начинающейся от инициатора изменений - заказчика (в общем смысле этого слова: это может быть конечный клиент, фирма, для которой вы выполняете субподряд, внутренний заказчик и т...  »

Прокрастинация, или как перестать быть ленивой задницей и начать жить


Тема прокрастинации в последнее время особенно горячо обсуждается на мегамозге и ГТ, а также множестве других околоайтишных ресурсов. Везде было выказано множество мнений, зачастую противоположных. Чтож, попробуем немного проанализировать и структурировать прочитанное, порассуждать на тему и попытаться найти решение Автор не является ни медиком, ни психологом, а является просто лентяем, который пытается учиться на своем опыте, а также делать выводы на основе чужого. Кому интересно - прошу под кат. Итак, на сайтах ТМ за недавнее время было опубликовано множество статей, так или иначе затрагивающих тему прокрастинации http://megamozg...  »

Установка патча при запуске VMware на Ubuntu 12.04 и других дистрибутивах


Сегодня столкнулся со следующей проблемой: при установке VMware Workstation 8 на Linux Mint 13 (ядро 3.2, как и в ubuntu 12.04 LTS или других новых дистрибутивах) и последующем запуске возникает требование пропатчить ядро системы. Как я узнал из интернета, ситуация достаточно распространенная, однако, ни одной подробной инструкции “от начала до конца” я не нашел. Проблема была мной решена, в связи с чем я решил написать небольшой гайд. Итак, последовательность действий такова:..  »