Найти в Дзене
Гарантирует ли coverage 100% отсутствие runtime error? Нет.
Abap Unit-test являются полезным и мощным функционалом, улучшающим стабильность разработок. В данной заметке я хотел бы показать одну из особенностей подсчета coverage при IF, а именно, что в coverage считается как выполнение условия, так и его отрицание (независимо от того есть ли ELSE или нет), но динамические типы не учитываются. Рассмотрим пример: у нас есть такой метод. Покроем этот метод unit-test (пример ниже). Теперь посчитаем coverage-метрики (покрытие) для branch (по сути строк). Система покажет метрику 2/3, а не 100%...
5 месяцев назад
Определение размера файла на application server SAP NetWeaver
Есть несколько способов определения размеров файлов, так или иначе сводятся к 4 способам. Полный листинг на github. (самый медленный и неэкономный по памяти). Для определения размера файла можно прочитать весь файл и посчитать его размер через xstrlen. ABAP help к функции доступен по ссылке. (также медленный, но экономный по памяти). Читаем файл по строкам, но фиксируем только длину строки через дополнение ACTUAL SIZE к READ DATASET. (экономный по памяти). (через команду операционной системы; если базис/регламент позволяет)...
8 месяцев назад
Работа с производственным календарем (SCAL / OY05) (factory calendar), полезные ФМы и best-practise
В одной из предыдущих статей мы рассматривали как работать с датами и временем: прибавлять и отнимать количество дней/секунд, а также форматировать (статья1, статья2). Однако, зачастую приходится работать именно с датами производственного календаря, а не с простой последовательностью дат. Производственный календарь – это календарь с учетом рабочих и праздничных дней. Его цель – правильно спланировать производственные мощности, сориентироать клиента по срокам производства/доставки, корректно начислить зар...
8 месяцев назад
Еще способы группировки в ABAP-среде: итератор и …
В одной из предыдущих статей мы рассматривали различные способы группировки в ABAP. Однако, тот список не был исчерпывающий (и даже текущий – тоже не исчерпывающий 😊), и есть еще, способы. В данной статье рассмотрим способ через паттерн итератор. Не будем здесь приводить детальное описание паттерна итератор (если нужно – дайте знать в комментариях). Но важно сказать, что это поведенческий паттерн; и его назначение предоставить последовательный доступ ко всем элементам составного объекта (в нашем случае – внутренней таблицы), не раскрывая внутреннего представления...
9 месяцев назад
Использование RTTI для шаблонов на основе sap-script текстов
В одной из предыдущих статей мы разбирали работу с транзакцией SO10 (ведение sap-script длинных текстов): как можно вести текстовый шаблон, как можно копировать и использовать глобальные переменные для вставки значений. Однако, зачастую для вставки значений переменных используют простой find and replace – подход. Этим способом можно вставлять как элементарные переменные, так и табличные. Давайте его рассмотрим. Сделаем через SO10 простой текст и укажем название переменных, которые мы будет подменять...
9 месяцев назад
Если нравится — подпишитесь
Так вы не пропустите новые публикации этого канала