SAP ABAP речник на данни (SE11)
⚡ Умно обобщение
SAP ABAP Data Dictionary (SE11) централизира всяка дефиниция на метаданни, използвана от SAP приложения. Тази страница обяснява трите нива за многократна употреба – домейни, елементи от данни и таблици – плюс агрегирани обекти, като например изгледи, помощни елементи за търсене и заключващи обекти.

Какво е речник на данни?
Речникът на данни е централен източник на информация за данните в системата за управление на информация. Основната му функция е да поддържа създаването и управлението на дефиниции на данни (или „метаданни“).
In SAP, това централно хранилище се нарича ABAP речник и се поддържа с транзакция SE11. Всяка таблица, поле, изглед и заключване, използвани от ABAP програма, се описват тук веднъж и след това се използват повторно навсякъде, така че дефиницията никога не е необходимо да се повтаря в отделните програми.
Екранът по-горе показва началния екран на SE11, където всеки тип обект на речника се избира, преди да бъде показан или променен. Преди да разгледаме тези типове обекти, е полезно да разберем защо SAP запазва тези метаданни извън програмите, които ги използват.
Защо речникът ABAP е важен
Речникът ABAP съществува, защото SAP разделя описанието на данните от програмите, които ги обработват. Поле, като например номерът на документа за покупка, се описва точно веднъж и всеки отчет, екран и функционален модул, който се нуждае от него, се отнася обратно до това единствено описание.
Тази централна дефиниция предоставя четири практически предимства. Гарантирана е последователност, защото промяна, направена в даден домейн, незабавно достига до всяко поле, което се отнася до него чрез елемент от данни. Излишъкът изчезва, тъй като разработчиците използват повторно съществуващи дефиниции, вместо да измислят нови. Integrity е защитен, тъй като диапазоните от стойности, таблиците за проверка и външните ключове се валидират от речника, а не от кода на приложението. И накрая, речникът е независим от базата данни, така че таблица, дефинирана в SE11, се създава автоматично в основната база данни с правилните нативни типове.
Речникът е активен и по време на изпълнение. Екраните четат етикетите на полетата, помощните текстове и диапазоните от стойности директно от него, поради което помощната информация за F1 или списъкът със стойности за F4 се появяват без нито един ред допълнителен код. Разбирането на трите нива по-долу обяснява как е организирано това повторно използване.
ABAP речник 3 нива
Обектите в ABAP речника се намират на три нива, които поддържат тяхната повторна употреба. Тези нива са:
- Домейни
- Елементи от данни
- Маси и конструкции
Всяко ниво надгражда предишното: домейн предоставя техническите атрибути, елемент от данни придава на тези атрибути бизнес значение, а таблица или структура групира елементите от данни в запис. Нека ги разгледаме подробно –
Домейни
- Описва техническите характеристики на таблично поле
- Указва диапазон от стойности, който описва разрешените стойности на данни за полетата
- Полетата, отнасящи се до същия домейн (чрез присвоените им елементи от данни), се променят, когато се направи промяна в домейна
- Осигурява последователност
Пр. Номер на документа за покупка (EBELN)
Екранът за домейн по-горе определя само типа данни и дължината. Бизнес значението на тази стойност се предоставя от следващото ниво - елементът данни.
Елементи от данни
- Описва ролята на дадено поле в технически контекст
- Полета с едно и също семантично значение могат да се отнасят до един и същи елемент от данни
- Съдържа полевата информация
Пр. Номер на документа за покупка (EBELN)
Екранът с елементи от данни съдържа етикетите на полетата и документацията, които потребителите виждат на екрана. След това елементите от данни се комбинират в таблици.
Маси
- Представете таблиците на базата данни, където действително се намират данните.
- Таблиците могат да бъдат дефинирани независимо от базата данни в ABAP речника.
- Полетата на таблицата се дефинират с техните (независими от базата данни) SAP ABAP типове данни и дължини.
Структури
- Това са декларации за записи, които НЕ отговарят на таблица в база данни.
- Точно като тип данни, дефиниран от потребителя.
- Дефинира се като таблица и след това може да се адресира от ABAP програми.
- Структурите съдържат данни само по време на изпълнение на програмата.
Таблицата по-долу сравнява трите нива накратко.
| ниво | Какво определя | Съхранява ли данни? | Типичен пример |
|---|---|---|---|
| домейн | Технически атрибути: тип данни, дължина, диапазон от стойности | Не | ЕБЕЛН (ЗНАК 10) |
| Елемент от данни | Семантично значение: етикети на полета, документация, помощ за F1 | Не | EBELN — Номер на документ за покупка |
| Маса | Запис на полета, създаден в базата данни | Да, упорито | EKKO — Заглавка на документ за покупка |
| структура | Запис на полета, използвани само в рамките на програма | Да, само по време на изпълнение | Работна зона за вътрешна маса |
Агрегирани обекти на ABAP речника
Агрегиран означава, състоящ се от няколко компонента. В речника ABAP агрегираните обекти са обекти, които идват от няколко различни прозрачни таблици.
- Прегледи
- Търсене в помощ
- Заключване на обекти
Нека ги разгледаме подробно
Прегледи
- Изгледи в SAP – ABAP се използват за обобщаване на данни, разпределени между няколко таблици
- Данните на даден изглед всъщност не се съхраняват физически. Вместо това данните на даден изглед се извличат от една или повече други таблици
- Той е съобразен с нуждите на конкретно приложение
Търсене в помощ
- Помощ за търсене е инструмент, който ви помага да търсите записи на данни в системата
- Ефективното и удобно за потребителя търсене подпомага потребителите, когато ключът на записа е неизвестен
Заключване на обекти
- Едновременен достъп до един и същ запис на данни от двама потребители в SAP системата се синхронизира чрез заключващ механизъм.
- Заключванията се задават и освобождават чрез извикване на определени функционални модули. Тези функционални модули се генерират автоматично от дефиницията на така наречените заключващи обекти в речника ABAP/4
Функционални модули : Enqueue_ – за заключване на таблицата dequeue_ – за освобождаване на ключалката
⚠️ Предупреждение: Заключване, което е зададено с ENQUEUE и никога не е освободено с DEQUEUE, остава активно до края на потребителската сесия. Винаги извиквайте модула DEQUEUE, включително в пътя за грешки на програмата.
След като разбрахме типовете обекти, следващият раздел ги прилага чрез създаване на прозрачна таблица в SE11.
Как да създадете прозрачна таблица в SE11
Прозрачната таблица е най-често срещаният речников обект, защото има връзка „един към един“ с физическа таблица в базата данни. Стъпките по-долу ви позволяват да създадете такава от нулата.
- Отворено SE11: Въведете транзакция SE11, изберете Таблица на базата данни радио бутон, въведете име в пространството от имена на клиента (започващо със Z или Y) и изберете Създаване на.
- Въведете краткото описание и класа на доставка: От Атрибути раздел, добавете кратък текст и задайте класа на доставка, който казва SAP как се държат данните по време на клиентско копие или надстройка. Клас на доставка A се използва за данни от приложения, а C се използва за персонализиране на данни.
- Задайте атрибута за поддръжка: Изберете Разрешено е показване/поддръжка така че по-късно може да се генерира изглед за поддръжка със SE55 или SM30.
- Дефинирайте полетата: От Полетата В раздела добавете MANDT като първо ключово поле с елемент от данни MANDT, след което добавете ключовите бизнес полета. Всяко поле е типизирано от елемент от данни, който от своя страна се отнася до домейн, така че трите нива, описани по-рано, се използват повторно, а не се предефинират.
- Поддържайте технически настройки: Кликнете Технически настройки (транзакция SE13) и задайте класа данни, например APPL0 за главни данни, заедно с очакваната категория размер. Тези стойности определят табличното пространство и началния размер в базата данни.
- Активирате: Натискане АктивиратеАктивирането генерира физическата таблица в базата данни и прави дефиницията използваема в ABAP програми.
💡 Съвет: Създайте външни ключове за всяко поле, което трябва да бъде валидирано спрямо таблица за проверка. След това речникът автоматично налага връзката и не е необходим код за валидиране в програмата.
След като таблицата е активна, тя може да бъде адресирана директно от ABAP програма с Отворете SQLПримерът по-долу чете стандартната речникова таблица SCARR във вътрешна таблица и изброява нейното съдържание.
REPORT zdemo_ddic_read. * Internal table typed directly from the dictionary table SCARR DATA: lt_scarr TYPE STANDARD TABLE OF scarr, ls_scarr TYPE scarr. SELECT carrid carrname currcode FROM scarr INTO TABLE lt_scarr. LOOP AT lt_scarr INTO ls_scarr. WRITE: / ls_scarr-carrid, ls_scarr-carrname, ls_scarr-currcode. ENDLOOP.
Тъй като вътрешната таблица е типизирана с TYPE STANDARD TABLE OF scarr, всяка дължина на полето и тип данни идват от речника. Ако дефиницията на таблицата се промени, програмата приема промяната след активирането ѝ без никаква редакция.
Основна транзакция с ABAP речник Codes
Следните транзакции обхващат ежедневната работа по дефиниране, проверка и поддръжка на речникови обекти.
| Транзакция | Цел |
|---|---|
| SE11 | Начален екран на речника на данни (само за дисплей SE12) |
| SE13 | ABAP речник: Технически настройки |
| SE14 | Помощна програма за бази данни |
| SE15 | Информационна система за хранилища |
| SE16 | Браузър на данни |
| SE17 | Общ дисплей на масата |
| SE55 | Поддръжка на табличен изглед |
| SM30 | Поддръжка на маса |








