Руководство для участников курса Версия курса 2й квартал 2005 г. Продолжительность курса 5 Дн. Номер материала 50072594
Скачать 38.91 Mb.
|
Глава 5: Сбор данных BC400 Во избежание орфографических ошибок в именах объектов и полей следует использовать оператор AUTHORITY-CHECK, генерируемый в исходном тексте при использовании кнопки Модель . После этого выполняется ведение значений полей и внедрение проверки sy-subrc. 180 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: Проверка полномочий Упражнение 10: Проверка полномочий Цели упражнения Выполнив это упражнение, вы сможете • внедрять проверки полномочий • задавать различные варианты выполнения программы в зависимости от результатов проверки полномочий Практический пример Необходимо расширить имеющиеся ABAP-программы так, чтобы считывание и отображение времени полета для авиакомпании, указанной пользователем, осуществлялось только при наличии у этого пользователя полномочий на просмотр данных выбранной авиакомпании. Задание 1: Проверка наличия полномочий на просмотр данных авиакомпаний 1. Скопируйте исполняемую программу ZBC400_##_SELECT_SFLIGHT (решение для второго упражнения из урока “Считывание таблиц базы данных”) или шаблон SAPBC400DDS_SELECT_SFLIGHT и присвойте им новое имя ZBC400_##_AUTHORITY_CHECK. 2. Перед выбором запрошенных данных из базы данных должна производиться проверка наличия у пользователя полномочий на просмотр данных выбранной авиакомпании. Для этого используйте объект полномочий S_CARRID. Рекомендация: Выберите соответствующую модель оператора в ABAP-редакторе. Определите требуемый код операции для присвоения значения в поле ACTVT. 3. Определите константу для кода используемой операции (рекомендуемое имя: actvt_display; присвоение типа по элементу данных ACTIV_AUTH). Используйте эту константу в проверке полномочий. 4. При наличии у пользователя полномочия на работу с данными выбранной авиакомпании должен осуществляться доступ к базе данных. В противном случае в списке должно выдаваться соответствующее сообщение. 5. Выполните программу с использованием кодов авиакомпании AA и UA. Продолжение на следующей странице 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 181 Глава 5: Сбор данных BC400 Задание 2: Дополнительное задание по проверке полномочий 1. Скопируйте исполняемую программу ZBC400_##_SELECT_SFLIGHT_ITAB (решение для второго упражнения из урока “Считывание таблиц базы данных”) или шаблон SAPBC400DDS_SELECT_SFLIGHT_ITAB и присвойте им новое имя ZBC400_##_AUTHORITY_CHECK_2. 2. Следуйте инструкциям в предыдущем упражнении. 182 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: Проверка полномочий Решение 10: Проверка полномочий Задание 1: Проверка наличия полномочий на просмотр данных авиакомпаний 1. Скопируйте исполняемую программу ZBC400_##_SELECT_SFLIGHT (решение для второго упражнения из урока “Считывание таблиц базы данных”) или шаблон SAPBC400DDS_SELECT_SFLIGHT и присвойте им новое имя ZBC400_##_AUTHORITY_CHECK. a) Этот шаг выполняется в соответствии с обычной процедурой. 2. Перед выбором запрошенных данных из базы данных должна производиться проверка наличия у пользователя полномочий на просмотр данных выбранной авиакомпании. Для этого используйте объект полномочий S_CARRID. Рекомендация: Выберите соответствующую модель оператора в ABAP-редакторе. Определите требуемый код операции для присвоения значения в поле ACTVT. a) См. выдержку из исходного текста в примере решения. 3. Определите константу для кода используемой операции (рекомендуемое имя: actvt_display; присвоение типа по элементу данных ACTIV_AUTH). Используйте эту константу в проверке полномочий. a) См. выдержку из исходного текста в примере решения. 4. При наличии у пользователя полномочия на работу с данными выбранной авиакомпании должен осуществляться доступ к базе данных. В противном случае в списке должно выдаваться соответствующее сообщение. a) См. выдержку из исходного текста в примере решения. 5. Выполните программу с использованием кодов авиакомпании AA и UA. a) Этот шаг выполняется в соответствии с обычной процедурой. Продолжение на следующей странице 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 183 Глава 5: Сбор данных BC400 Задание 2: Дополнительное задание по проверке полномочий 1. Скопируйте исполняемую программу ZBC400_##_SELECT_SFLIGHT_ITAB (решение для второго упражнения из урока “Считывание таблиц базы данных”) или шаблон SAPBC400DDS_SELECT_SFLIGHT_ITAB и присвойте им новое имя ZBC400_##_AUTHORITY_CHECK_2. a) Этот шаг выполняется в соответствии с обычной процедурой. 2. Следуйте инструкциям в предыдущем упражнении. a) См. выдержку из исходного текста в примере решения. Результат Выдержка из исходного текста: SAPBC400DDS_AUTHORITY_CHECK REPORT sapbc400dds_authority_check. CONSTANTS actvt_display TYPE activ_auth VALUE ’03’. DATA wa_flight TYPE sbc400focc. PARAMETERS pa_car TYPE s_carr_id. * Authority Check: User authorized to read data of the specified carrier? AUTHORITY-CHECK OBJECT ’S_CARRID’ ID ’CARRID’ FIELD pa_car ID ’ACTVT’ FIELD actvt_display. CASE sy-subrc. WHEN 0. " user is authorized SELECT carrid connid fldate seatsmax seatsocc FROM sflight INTO CORRESPONDING FIELDS OF wa_flight WHERE carrid = pa_car. wa_flight-percentage = 100 * wa_flight-seatsocc / wa_flight-seatsmax. WRITE: / wa_flight-carrid COLOR COL_KEY, wa_flight-connid COLOR COL_KEY, wa_flight-fldate COLOR COL_KEY, Продолжение на следующей странице 184 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: Проверка полномочий wa_flight-seatsocc, wa_flight-seatsmax, wa_flight-percentage, ’%’. ENDSELECT. WHEN OTHERS. " user is not authorized WRITE: / ’Authority-Check Error’(001). ENDCASE. Для решения задачи 2 см. исходный текст программы: SAPBC400DDS_AUTHORITY_CHECK_2 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 185 Глава 5: Сбор данных BC400 Резюме по уроку Теперь вы сможете: • пояснять концепцию полномочий SAP • внедрять проверки полномочий 186 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Резюме по главе Резюме по главе Теперь вы сможете: • перечислять различные методы поиска соответствующих таблиц баз данных • реализовывать доступ для чтения к определенным столбцам и строкам в таблице базы данных • описывать различные способы получения доступа для чтения к нескольким таблицам базы данных • пояснять концепцию полномочий SAP • внедрять проверки полномочий Дополнительная информация ... См. онлайн-документацию к соответствующим ABAP-операторам. 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 187 Резюме по главе BC400 188 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 Глава 6 Инструментальные средства для анализа программ Обзор главы См. цели отдельных уроков в рамках этого раздела. Цели главы Прослушав эту главу, вы сможете • пояснять цель использования динамического анализа и проверки кода • перечислять основные функции динамического анализа и проверки кода • использовать эти инструменты для выполнения простого анализа программ Содержание главы Урок: Динамический анализ и проверка кода ...........................190 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 189 Глава 6: Инструментальные средства для анализа программ BC400 Урок: Динамический анализ и проверка кода Обзор урока На этом уроке рассматриваются базовые функции и цели использования динамического анализа и проверки кода – инструментов, предназначенных для анализа программ. Здесь представлено краткое введение в эти инструментальные средства. Более подробная информация содержится в соответствующей документации и курсах для продвинутых пользователей. Цели урока Прослушав этот урок, вы сможете • пояснять цель использования динамического анализа и проверки кода • перечислять основные функции динамического анализа и проверки кода • использовать эти инструменты для выполнения простого анализа программ Практический пример Необходимо проверить программы с точки зрения производительности, типичных семантических ошибок программирования и эффективности защиты. Динамический анализ Динамический анализ позволяет измерить рабочие характеристики программ и получить подробный отчет о производительности. Эта функция может использоваться для поиска в программе блоков исходного текста с низкой производительностью и их “корректировки”. Однако всегда следует иметь в виду, что результаты измерения зависят от существующей системы и сетевой нагрузки, а также от текущего табличного буфера и набора данных. Динамический анализ выполняется главным образом в системе разработок или тестирования, что следует учитывать при работе с его результатами. 190 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: Динамический анализ и проверка кода Рисунок 107: Навигация в среде измерения Рисунок 108: Выполнение динамического анализа 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 191 Глава 6: Инструментальные средства для анализа программ BC400 На приведенном выше рисунке представлен первый экран динамического анализа (среда измерения). Введите краткое описание измерения. После этого можно выбрать определенные измерения из числа уже выполненных и сравнить их друг с другом на более позднем этапе. Также существует возможность измерения времени выполнения программ, транзакций и функциональных модулей. Выберите необходимый тип и введите имя объекта измерения. При вводе варианта могут быть указаны операции, которые должны быть измерены, и соответствующие компоненты программы. По умолчанию для проведения измерений используется стандартный вариант DEFAULT, поставляемый SAP. При необходимости также можно создать собственные варианты и выбрать их для измерений. Для запуска динамического анализа выберите Выполнить. Сгенерированные результаты измерений сохраняются в связанном файле. Рисунок 109: Оценка результатов динамического анализа Кнопка Анализ используется для вывода относительных и абсолютных оценок результатов выполненных измерений. В данном случае выполненные операции разделены на три области: ABAP Все ABAP-операторы, кроме операторов доступа к базе данных. 192 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: Динамический анализ и проверка кода База данных Все операторы доступа к базе данных. Система Операция загрузки программы, генерация (при необходимости), а также другие системные операции. Для перехода к подробному экрану нажмите кнопку Список совпадений. На этом экране представлен список всех операций, каждой из которых присвоено время выполнения брутто или нетто. Значение брутто соответствует общему времени выполнения операции, а значение нетто обозначает часть времени брутто, которая не указывается отдельно как время выполнения подопераций. Существует возможность просмотра связанного с операцией ABAP-оператора путем выделения требуемой операции и нажатия кнопки Просмотр исходного текста. Рекомендация: При выборе опции Советы и рекомендации на первом экране динамического анализа будет отображена демонстрационная среда, в которой приведены полезные советы по производительности, проиллюстрированные посредством сравнения времени выполнения различных исходных кодов. Проверка кода Функция Проверка кода может использоваться для анализа программ на предмет производительности, защиты и типичных семантических ошибок. Для более подробного пояснения этих трех аспектов ниже перечислены некоторые критерии такой проверки: Производительность Используются ли индексы для доступа к базе данных? Вложены ли операторы SELECT в циклы? Защита Считываются ли данные из манданта, отличного от манданта входа в систему? Являются ли таблица базы данных или выражение WHERE динамически определяемыми в операторе SELECT? 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 193 Глава 6: Инструментальные средства для анализа программ BC400 Типичные семантические ошибки Проверяется ли поле sy-subrc после каждого оператора AUTHORITY-CHECK? Действительно ли указывается мандант в CLIENT SPECIFIED? Выводятся ли несколько сообщений типа Е (сообщения E) в прямой последовательности? На следующем рисунке иллюстрируется процесс вызова функции проверки кода для существующей программы: Рисунок 110: Вызов функции проверки кода 194 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: Динамический анализ и проверка кода Рисунок 111: Результат проверки Результатом проверки кода будет являться список ошибок и предупреждающих сообщений. Кнопка "i" в сообщении позволяет просмотреть подробное описание ошибки и ознакомиться с рекомендациями по ее устранению. Для перехода к соответствующему оператору программы можно дважды щелкнуть по тексту ошибки. 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 195 Глава 6: Инструментальные средства для анализа программ BC400 Рисунок 112: Расширенная проверка кода Для проведения отдельной проверки можно использовать транзакцию SCI (см. рисунок выше). Для этого в SCI необходимо определить следующее: • вариант проверки, используемый для указания того, насколько проверка является детальной; • набор объектов для определения объектов, которые подлежат проверке (например, все программы пакета); • проверки, которая включает в себя определенный вариант проверки и набор объектов. Рекомендация: Варианты проверки, наборы объектов и проверки могут создаваться как личные или общедоступные. Для переключения между двумя типами следует использовать кнопку, которая всегда размещается перед полем ввода. Следует отметить, что личные объекты могут использоваться только конкретным пользователем, в то время как общедоступные объекты – всеми пользователями системы. Для выполнения созданной проверки следует нажать соответствующую кнопку. Кнопка Результаты служит для перехода к результатам проверки. На следующем рисунке представлен пример варианта проверки: 196 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: Динамический анализ и проверка кода Рисунок 113: Вариант проверки 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 197 Глава 6: Инструментальные средства для анализа программ BC400 Резюме по уроку Теперь вы сможете: • пояснять цель использования динамического анализа и проверки кода • перечислять основные функции динамического анализа и проверки кода • использовать эти инструменты для выполнения простого анализа программ Дополнительная информация • Более подробная информация содержится в онлайн-документации по инструментам ABAP-инструментальных средств. 198 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Резюме по главе Резюме по главе Теперь вы сможете: • пояснять цель использования динамического анализа и проверки кода • перечислять основные функции динамического анализа и проверки кода • использовать эти инструменты для выполнения простого анализа программ Дополнительная информация ... См. онлайн-документацию к ABAP-инструментальным средствам. 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 199 Резюме по главе BC400 200 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 Глава 7 Подпрограммы в ABAP Обзор главы См. цели отдельных уроков в рамках этого раздела. Цели главы Прослушав эту главу, вы сможете • определять подпрограммы • вызывать подпрограммы • анализировать процесс выполнения подпрограмм в режиме отладки Содержание главы Урок: Подпрограммы..........................................................202 Упражнение 11: Подпрограммы ........................................215 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 201 |