Sap Abap: Понимание «Группы Контрольных Точек» (Перевод Статьи С Сайта Saptechnical.com)

Отказ от ответственности Я продолжаю публиковать статьи/переводы, посвященные неиспользуемым и редко используемым методам разработки SAP ABAP. Ключевые понятия довольно сложно перевести на русский язык; разные интерпретации создают путаницу, поэтому я представляю их на английском языке.

Этот пост частично пересекается с прошлое , но содержит более подробное описание концепции группы контрольных точек.



Введение в группу контрольно-пропускных пунктов

Концепция и реализация «Группы контрольных точек» изначально появилась в SAP Web Application Server (SAP WebAS) 6.20 и полностью относится к области контроля корректности и прослеживаемости переменных.

При правильном использовании технология облегчает отладку и повышает качество ABAP-кода.

Данные проверки переносятся между системами с помощью транспортов.

Управляется через транзакцию SAAB. Контрольные точки можно определить с помощью инструкции BREAK-POINTS и инструкции ASSERT. Также можно использовать оператор LOG-POINT для отображения данных в групповом журнале.

Рассмотрим оператор ASSERT. SAP описывает следующий синтаксис для этого оператора:

  
  
   

ASSERT [[ID group [SUBKEY subkey]] [FIELDS field1 field2 table1 table2.] CONDITION] log_exp.

ASSERT — это расширенная версия оператора BREAK-POINT. Оператор можно использовать в коде, доставленном в производственную систему, без какого-либо влияния на код. Вызывается только в том случае, если группа Checkpoint активирована.

Для оператора предусмотрен расширенный список действий.

Группы контрольных точек могут быть определены и активированы в транзакции SAAB. Сгенерированный идентификатор используется для определения операторов ASSERT и BREAK-POINT. Ниже представлена транзакция SAAB на этапе создания идентификатора группы.



SAP ABAP: Понимание «Группы контрольных точек» (перевод статьи с сайта saptechnical.com)

После нажатия кнопки «Создать» переходим на экран с основными параметрами Checkpoint Group.

SAP ABAP: Понимание «Группы контрольных точек» (перевод статьи с сайта saptechnical.com)

Есть 3 варианта активации групп:
Персональная активация; Активация уровня пользователя; Активация на уровне сервера.

В случае персональной активации группа активируется только для текущего пользователя.

Уровень пользователя — для указанных пользователей, Уровень сервера — для указанных серверов.

Пример определения пользователей:

SAP ABAP: Понимание «Группы контрольных точек» (перевод статьи с сайта saptechnical.com)

Пример определения сервера:

SAP ABAP: Понимание «Группы контрольных точек» (перевод статьи с сайта saptechnical.com)

Для управления контрольными группами можно определить для каждого из операторов:

SAP ABAP: Понимание «Группы контрольных точек» (перевод статьи с сайта saptechnical.com)

BREAK-POINT определяются как активные и неактивные.

Неактивные будут игнорироваться.

Если активирован BREAK-POINT, то при достижении этого оператора будет вызван отладчик.

Синтаксис оператора BREAK-POINT:

BREAK-POINT { [ID groupID] | [log text] }.

Ex. BREAK-POINT ID YH_check.

Если опустить параметр ID, точка будет вызываться безусловно (постоянный статус активен).

В журнале будет отображаться текст «текст журнала».

Если запущен фоновый процесс, программа не прерывается в точке останова.

Если в программе вызывается точка останова, в системный журнал (журнал) заносится запись «Точка останова достигнута» с указанием имени программы и местоположения точки останова.

Если точки останова не активны, они игнорируются.

Далее давайте посмотрим на оператор ASSERT. Существует три основных варианта использования оператора: Неактивен: оператор не обрабатывается Журнал: ведение журнала во время использования.

Прерывание: происходит прерывание программы (ошибка выполнения ASSERTION_FAILED) В случае фонового процесса возможны два варианта выполнения: Журнал: событие протоколируется Прерывание: программа прерывается и в журнал вносится соответствующая запись.



SAP ABAP: Понимание «Группы контрольных точек» (перевод статьи с сайта saptechnical.com)

Принципы использования ASSERT:
Не используйте ASSERT вместо исключений.

Используйте ASSERT только в пользовательском коде При вызове ASSERT создаются записи журнала вплоть до ошибки времени выполнения.

Пример программы с использованием LOG-POINT и ASSERT:

REPORT yh1316_test_checkgrp. ** Parameters Declarations PARAMETERS: p_carrid LIKE sflight-carrid. *data : max type i. *Types Declarations of sflight TYPES : BEGIN OF type_s_sflight, carrid TYPE sflight-carrid, connid TYPE sflight-connid, fldate TYPE sflight-fldate, price TYPE sflight-price, max TYPE i, END OF type_s_sflight. *Field String Declarations for sflight DATA: fs_sflight TYPE type_s_sflight. *Internal table for Sflight Data DATA : t_sflight LIKE STANDARD TABLE OF fs_sflight. DATA yh1316_subkey TYPE char200. IF p_carrid IS INITIAL. SELECT carrid connid fldate price FROM sflight INTO fs_sflight. WRITE: / fs_sflight-carrid, fs_sflight-connid, fs_sflight-fldate, fs_sflight-price. APPEND fs_sflight TO t_sflight. ASSERT ID yh1316_check SUBKEY 'YH1316_parameter_if_initial' FIELDS p_carrid t_sflight fs_sflight-carrid fs_sflight-connid fs_sflight-fldate fs_sflight-price condition p_carrid eq 'LH' .

ENDSELECT. ASSERT ID yh1316_check SUBKEY 'YH1316_1' FIELDS p_carrid t_sflight CONDITION p_carrid EQ 'LH' .

EXIT. ELSE. ASSERT ID yh1316_check SUBKEY 'YH1316_2' FIELDS p_carrid t_sflight CONDITION p_carrid EQ ’LH’.

SELECT carrid connid fldate MAX( price ) AS max INTO CORRESPONDING FIELDS OF fs_sflight FROM sflight WHERE carrid EQ p_carrid GROUP BY carrid connid fldate ORDER BY carrid max DESCENDING. IF sy-dbcnt < 4. APPEND fs_sflight TO t_sflight. LOG-POINT ID yh1316_check SUBKEY 'LOG_POINT' FIELDS p_carrid t_sflight fs_sflight-connid fs_sflight-fldate fs_sflight-max. WRITE: / fs_sflight-carrid, fs_sflight-connid, fs_sflight-fldate, fs_sflight-max. ENDIF. ENDSELECT. ENDIF.

Можно создавать варианты для управления Checkgroup. Опции создаются как локально, так и для конкретного пользователя.

Ниже приведен пример индивидуального варианта:

SAP ABAP: Понимание «Группы контрольных точек» (перевод статьи с сайта saptechnical.com)

При создании варианта вы можете выбирать разные типы объектов, для которых активируются контрольные точки.

Группа контрольно-пропускных пунктов Программа Сорт Функциональная группа

SAP ABAP: Понимание «Группы контрольных точек» (перевод статьи с сайта saptechnical.com)

Для каждого типа объекта определяются отдельные параметры для точки останова, точки журнала и подтверждения.

Параметры те же, что и перечисленные ранее для экрана создания.

После создания опции вернемся к контрольной группе.

Убедитесь, что опция активирована.



SAP ABAP: Понимание «Группы контрольных точек» (перевод статьи с сайта saptechnical.com)

Как вы можете видеть выше, создаются как локальные, так и глобальные варианты.

Запустим программу, код которой был приведен выше.

Если условие Assert не выполняется, создается запись в журнале.

Этот журнал просматривается в транзакции SAAB для конкретной группы проверок.

Журнал также возвращается для оператора LOG-POINT. Вы также можете определить параметр SUBKEY для этого оператора.

Этот ключ используется для дополнительной сортировки по определенным флагам (SUBKEY).

Просмотр журнала возможен в двух представлениях: Группа/Подключ/Программа/Процедура Группа/Программа/Процедура/Подключ Ниже приведен один из вариантов отображения:

SAP ABAP: Понимание «Группы контрольных точек» (перевод статьи с сайта saptechnical.com)

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



SAP ABAP: Понимание «Группы контрольных точек» (перевод статьи с сайта saptechnical.com)

Если в параметрах Assert были указаны переменные/таблицы, их можно отобразить.

Например, для таблиц вы можете просмотреть все записи, хранящиеся в них.

Отладчик позволяет просматривать текущую контрольную группу.



SAP ABAP: Понимание «Группы контрольных точек» (перевод статьи с сайта saptechnical.com)

От автора перевода: Первую публикацию, посвященную этой теме, можно прочитать по адресу связь .

Теги: #sap #abap #saab #инструменты тестирования #тестирование #устранение неполадок #разработка веб-сайтов #отладка

Вместе с данным постом часто просматривают: