BC400_RU_ECC_2005
.pdf
BC400 |
Урок: Работа с внутренними таблицами |
Решение 7: Работа с внутренними таблицами
Задание 1:
Определение внутренней таблицы
1.Создайте исполняемую программу ZBC400_##_ITAB_LOOP без
“TOP-INCLUDE”.
a)Этот шаг выполняется в соответствии с обычной процедурой.
2.Определите внутреннюю таблицу в качестве буфера для данных из таблицы базы данных SPFLI. Для этого следует определить для внутренней таблицы тип строки, который является совместимым со структурой строк таблицы SPFLI.
В ABAP-словаре выполните поиск всех типов таблиц, удовлетворяющих этому условию.
Рекомендация: Необходимо вывести прозрачную таблицу SPFLI в ABAP-словаре. Затем воспользуйтесь соответствующей кнопкой для вызова ведомости использования SPFLI в виде списка. (Обратите внимание на правильность выбора при создании ведомости использования.)
a)Этот шаг выполняется в соответствии с описанием.
3.Определите внутреннюю таблицу (рекомендуемое имя: it_spfli) на основе одного из найденных глобальных типов таблиц.
a)См. выдержку из исходного текста в примере решения.
4.Определите соответствующую рабочую область для внутренней таблицы (рекомендуемое имя: wa_spfli).
a)См. выдержку из исходного текста в примере решения.
Задание 2:
Заполнение и вывод внутренней таблицы
1.Запрограммируйте доступ с выборкой массива ко всем записям данных в таблице базы данных SPFLI следующим образом:
SELECT * FROM spfli INTO TABLE it_spfli.
a)См. выдержку из исходного текста в примере решения.
Продолжение на следующей странице
|
© 2006 г. SAP AG All rights reserved. Авторские |
141 |
06-04-2006 |
права защищены. |
Глава 4: Основные языковые элементы ABAP |
BC400 |
2.Для вывода списка буферизированных данных во внутренней таблице используйте оператор LOOP.
a)См. выдержку из исходного текста в примере решения.
Результат
Выдержка из исходного текста: SAPBC400TSS_ITAB_LOOP
REPORT sapbc400tss_itab_loop.
DATA it_spfli TYPE sbc400_t_spfli.
DATA wa_spfli LIKE LINE OF it_spfli.
SELECT * FROM spfli INTO TABLE it_spfli.
* at least one dataset selected
IF sy-subrc = 0.
LOOP AT it_spfli INTO wa_spfli. WRITE: / wa_spfli-carrid,
wa_spfli-connid, wa_spfli-cityfrom, wa_spfli-cityto, wa_spfli-deptime, wa_spfli-arrtime.
ENDLOOP.
ENDIF.
142 |
© 2006 г. SAP AG All rights reserved. Авторские |
|
права защищены. |
06-04-2006 |
BC400 |
Урок: Работа с внутренними таблицами |
Резюме по уроку
Теперь вы сможете:
•определять внутренние таблицы
•использовать базисные ABAP-операторы с внутренними таблицами
•анализировать внутренние таблицы в режиме отладки
|
© 2006 г. SAP AG All rights reserved. Авторские |
143 |
06-04-2006 |
права защищены. |
Резюме по главе |
BC400 |
Резюме по главе
Теперь вы сможете:
•определять элементарные объекты данных (простые переменные)
•использовать базовые ABAP-операторы с элементарными объектами данных
•выполнять и анализировать программы в режиме отладки
•определять структурированные объекты данных (переменные структуры)
•использовать базовые ABAP-операторы для структурированных объектов данных
•анализировать структурированные объекты данных в режиме отладки
•определять внутренние таблицы
•использовать базисные ABAP-операторы с внутренними таблицами
•анализировать внутренние таблицы в режиме отладки
Дополнительная информация
... См. онлайн-документацию к соответствующим ABAP-операторам.
144 |
© 2006 г. SAP AG All rights reserved. Авторские |
|
права защищены. |
06-04-2006 |
Глава 5
Сбор данных
Обзор главы
См. цели отдельных уроков в рамках этого раздела.
Цели главы
Прослушав эту главу, вы сможете
•перечислять различные методы поиска соответствующих таблиц баз данных
•реализовывать доступ для чтения к определенным столбцам и строкам в таблице базы данных
•описывать различные способы получения доступа для чтения к нескольким таблицам базы данных
•пояснять концепцию полномочий SAP
•внедрять проверки полномочий
Содержание главы
Урок: Считывание таблиц базы данных...................................146
Упражнение 8: Сбор данных с использованием цикла SELECT .163 Упражнение 9: Сбор и буферизация данных во внутренней таблице......................................................................169
Урок: Проверка полномочий.................................................174 Упражнение 10: Проверка полномочий ...............................181
|
© 2006 г. SAP AG All rights reserved. Авторские |
145 |
06-04-2006 |
права защищены. |
Глава 5: Сбор данных |
BC400 |
Урок: Считывание таблиц базы данных
Обзор урока
На этом уроке рассматриваются возможности извлечения информации из таблиц базы данных и считывания данных из этих таблиц. Кроме того, представлен обзор методов, позволяющих получать доступ к нескольким таблицам баз данных.
В заключение приведена информация относительно способов доступа к таблицам базы данных, в результате которого инициируется внесение изменений.
Цели урока
Прослушав этот урок, вы сможете
•перечислять различные методы поиска соответствующих таблиц баз данных
•реализовывать доступ для чтения к определенным столбцам и строкам в таблице базы данных
•описывать различные способы получения доступа для чтения к нескольким таблицам базы данных
Практический пример
Необходимо проанализировать данные из таблиц базы данных.
146 |
© 2006 г. SAP AG All rights reserved. Авторские |
|
права защищены. |
06-04-2006 |
BC400 |
Урок: Считывание таблиц базы данных |
Сбор данных
Рисунок 86: Доступ к базе данных (архитектура)
SQL (Structured Query Language) – это язык, при помощи которого осуществляется доступ к таблицам базы данных в целях определения, изменения и считывания данных.
Каждая система управления реляционной базой данных имеет собственный
SQL, т.е. Native SQL, который является специфичным для базы данных.
Соответственно, ABAP-программа с операторами Native SQL не может использоваться без ограничений во всех SAP-системах (из-за различий в системах БД разных SAP-систем).
Open SQL – это определенный SAP стандарт SQL для языка ABAP, который является не зависящим от базы данных. Операторы Open SQL динамически преобразуются в соответствующие операторы Native SQL используемой системы баз данных, и таким образом, не зависят от
конкретной базы данных. Они позволяют разработчикам ABAP обращаться к данным унифицированным способом, вне зависимости от установленной системы базы данных.
|
© 2006 г. SAP AG All rights reserved. Авторские |
147 |
06-04-2006 |
права защищены. |
Глава 5: Сбор данных |
BC400 |
Рисунок 87: Поиск таблиц базы данных
На представленном выше рисунке иллюстрируются возможные варианты поиска требуемых таблиц базы данных.
Возможен также свободный поиск с использованием информационной системы репозитария.
Рисунок 88: Доступ к базе данных для чтения (обзор)
148 |
© 2006 г. SAP AG All rights reserved. Авторские |
|
права защищены. |
06-04-2006 |
BC400 |
Урок: Считывание таблиц базы данных |
Оператор Open SQL SELECT используется для доступа к базе данных для чтения. Оператор SELECT содержит ряд выражений, каждое из которых имеет собственную задачу:
•Выражение SELECT, помимо прочего, используется для указания тех полей таблицы, которые должны быть считаны.
•Выражение FROM служит для указания имени источника (таблицы базы данных или ракурса), из которого должны быть выбраны данные.
•В выражении INTO определяется целевая переменная, в которой должны быть размещены выбранные данные.
•В выражении WHERE указываются столбцы таблицы, которые должны быть выбраны.
Для получения информации о других выражениях см. документацию по ключевым словам оператора SELECT.
Рисунок 89: Считывание отдельных записей
Оператор SELECT SINGLE позволяет считывать отдельные записи из таблицы базы данных. Для обеспечения уникального доступа
необходимо, чтобы все ключевые поля выражения WHERE были заполнены. Исключением является поле манданта: если оно не заполнено, используется текущий мандант. (Следует отметить, что мандант может быть указан в операторе выбора SELECT только в комбинации с дополнением CLIENT SPECIFIED. Более подробная информация будет представлена далее.)
|
© 2006 г. SAP AG All rights reserved. Авторские |
149 |
06-04-2006 |
права защищены. |
Глава 5: Сбор данных |
BC400 |
Звездочка * используется для указания на необходимость считывания всех выбранных полей в строке таблицы. Если требуется выбор определенных столбцов, вместо символа * можно перечислить требуемые поля. Этот вариант иллюстрируется на следующем рисунке.
Выражение INTO используется для указания целевой переменной, в которую должна быть скопирована запись данных. Выровненная по левому краю целевая область должна быть структурирована аналогично строке таблицы или указанным обязательным полям этой строки.
При обнаружении системой подходящей записи значение возврата
SY-SUBRC равно 0.
Рисунок 90: Подходящая целевая структура для списка полей
При необходимости выбора определенных считываемых полей из строки таблицы они могут быть указаны в форме списка полей в рамках оператора SELECT (см. рисунок выше). Затем в выражении INTO следует присвоить имя целевой структурной переменной, структура которой совпадает со структурой списка полей (по крайней мере, в начале), т.е. содержит поля из списка полей, расположенные в том же порядке. Соответствовать
друг другу должны лишь поля сопоставляемых типов. Имена полей целевой структуры не учитываются.
Альтернативой указанию целевой структуры является перечисление соответствующих целевых полей в выражении INTO.
INTO (field_1, ... , field_n)
150 |
© 2006 г. SAP AG All rights reserved. Авторские |
|
права защищены. |
06-04-2006 |
