12 августа 2013 г. в Курсы ABAP программирования.
В этой статье создадим таблицу Staff. Следует понимать, что здесь мы создаем так называемую прозрачную таблицу Transparent Table, содержащую метаданные. Как только создана и активирована прозрачная таблица в репозитарии Repository, сразу же создается такая же таблица в базе данных, которая будет содержать уже реальные бизнес данные. Итак транзакция SE11. Переключаем радиокнопку на таблицу и вводим имя нашей таблицы.
Нажимаем создать.
Появляется экран (если поля обязательные, то перейти на другой экран не получится), где заполняем необходимые атрибуты таблицы. Кстати поля обязательные для заполнения отмечены галочкой. Не забываем использовать средства поиска. Вводим краткое описание таблицы. При выборе Delivery Clas, мы сможем использовать не все. В основном нас будут интересовать Application Table и Customizing Table. В качестве Delivery Class указываем Application Table, т.е таблица которая будет содержать мастер данные и транзакционные данные.
Параметр Data Browser/Table View Maint. определяет каким образом смогут отображаться и вноситься данные в эту таблицу. Display/Maintenance Allowed with Restrictions позволит просматривать данные этой таблицы с помощью транзакции SE16, но не вносить данные, заполнять таблицу при таком ограничении можно с помощью Maintenance Dialog. В нашем случае укажем Display/Maintenance Allowed.
Переходим на вкладку поля и заполняем их. Т.к это будут Application данные, то обязательным первым полем будет поле Манданта.
Нажимаем Ввод и видим как перенеслась информация из наших элементов данных.
Сохранили таблицу и переходим на вкладку Технические настройки Technical Settings.
Заполняем обязательные поля. Data Class определяет насколько часто будет меняться таблица, Size categoryопределяет размер, также есть настройки для буферизации. Это необходимо для оптимизации работы сервера, для каких-то технических настроек, для буфиризации (Буферизация определяет будет ли таблица считываться с жесткого диска или с оперативной памяти).
Нажимаем Save и возвращаемся назад F3.
image_44-3
Укажем в таблице какие поля будут ключевыми, для этого в столбце Key отметим нужные галочки и сохраним таблицу. Также перед активацией таблицы проверим ее на корректность, нажав клавишу Check. Это можно было сделать при активации но Check отработает быстрее.
Проверка выявила ошибку.
Изменим поле Position на Staff_Position.
Сохраняем и активируем. Выскочило предупреждающее окно.
Нажимаем YES.
Предупреждения не ошибки так что все в порядке. Нажимаем Back(F3).
Все теперь таблица создана и активирована. В организаторе переносов можно увидеть что появились дополнительные элементы.
Создадим все остальные наши таблицы. Аналогичным образом создаем таблицы Customer, Order, Supplier, Supply. Для их создания необходимо было создать несколько дополнительных доменов и элементов данных.
Для создания таблицы Products создадим дополнительный домен и элемент данных ZKRE_COST. В качестве типа данных Data Type для домена будем использовать предопределенный в SAP тип CURR.
Все теперь можно приступить к созданию таблицы Products. Заполняем атрибуты.
Заполняем поля и отмечаем какие из них будут ключевыми.
Сохраняем таблицу. И при нажатии Check у нас имеются ошибки.
На экране редактирования таблицы на вкладке Currency/Quantity Field необходимо указать ссылочную таблицу. В качестве ссылочной таблицы укажем таблицу TCURC.
Вернемся к нашей таблице продуктов и перейдем на вкладку Currency/Quantity Field. И заполним строки в столбцах Reference table Ref. Field.
Также заполним технические настройки для этой таблицы.
Еще раз сохраняем и активируем таблицу. Свяжем созданные ранее таблицы внешними ключами. Для этого зайдем в режим редактирования таблицы Order. Поле PROD_ID является внешним ключем таблицы Products. Отмечаем поле PROD_ID и нажимаем Foreign Keys.
Появилось такое окно, где необходимо будет указать проверочную таблицу, т.е таблицу из которой мы будем вводить ID. Нажимаем кнопку Generate Proposal.
Система сама подставила нужные значения. Нажимаем Copy.
В строке статуса видим сообщение что ключ успешно перенесен. Сохраняем и активируем таблицу.
Нажав Graphic (Ctrl+Shift+F11) можно увидеть графическую модель таблиц.
Проделаем такую же процедуру для STAFF_ID и CUST_ID.
Все внешние ключи для таблицы Order заданы. Зададим все внешние ключи для остальных таблиц.
Используя транзакцию SE16 или SE16n, мы сможем просматривать и наполнять наши таблицы. Просмотрим например таблицу ZKRE_STAFF.
В этой транзакции имеется панель инструментов для просмотра контента таблицы F7, добавления новых записей F5. Кстати добавление новых записей через эту транзакцию возможно благодаря тому, что во время создании таблицы мы указали параметр Data Browser/Table View Maint — Display/Maintenance Allowed.
Нажав F7 попадаем на экран выбора Selection Screen, где можно ограничить выборку по каким-либо критериям. Нажимаем F8.
Кстати поставив курсор на поле FIRST_NAME и нажав F1 можно увидеть нашу документацию для этого элемента данных.
image_69-2-1
Появился экран с отображением контента. Добавим запись нажав F5.
Введем данные и нажимаем Save.
В строке статуса видно, что данные успешно сохранены.
Нажимаем F3 и переходим на экран отображения контента, где видно что запись успешно добавилась.
Supply. Для их создания необходимо было создать несколько дополнительных доменов и элементов данных
Что должно быть в таблице Supply ?