SAP ABAP речник на данни (SE11)

⚡ Умно обобщение

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

  • ???? Основна дефиниция: ABAP речникът е централното хранилище на метаданни, описващо как всяко поле, таблица и изглед са дефинирани и използвани повторно в SAP система.
  • 🧱 Три нива за многократна употреба: Домейните съдържат технически атрибути, елементите от данни добавят семантично значение, а таблиците или структурите сглобяват тези елементи в записи.
  • 🔗 Агрегирани обекти: Изгледите комбинират данни от няколко таблици, търсенето помага при въвеждането, а заключващите обекти защитават записите по време на едновременен достъп.
  • 🔒 Заключващ механизъм: Функционалните модули ENQUEUE и DEQUEUE се генерират от заключващи обекти и винаги трябва да освобождават заключването след обработка.
  • 🛠️ Работен процес за създаване: Транзакция SE11 създава прозрачни таблици, като дефинира полета, клас на доставка, технически настройки и след това активира обекта.
  • 🧭 Ключови транзакции: SE11, SE13, SE14, SE16 и SM30 обхващат дефиниция, технически настройки, помощни програми за бази данни, показване на данни и поддръжка.

SAP ABAP речник на данни SE11

Какво е речник на данни?

Речникът на данни е централен източник на информация за данните в системата за управление на информация. Основната му функция е да поддържа създаването и управлението на дефиниции на данни (или „метаданни“).

In SAP, това централно хранилище се нарича ABAP речник и се поддържа с транзакция SE11. Всяка таблица, поле, изглед и заключване, използвани от ABAP програма, се описват тук веднъж и след това се използват повторно навсякъде, така че дефиницията никога не е необходимо да се повтаря в отделните програми.

ABAP речник на данни

Екранът по-горе показва началния екран на SE11, където всеки тип обект на речника се избира, преди да бъде показан или променен. Преди да разгледаме тези типове обекти, е полезно да разберем защо SAP запазва тези метаданни извън програмите, които ги използват.

Защо речникът ABAP е важен

Речникът ABAP съществува, защото SAP разделя описанието на данните от програмите, които ги обработват. Поле, като например номерът на документа за покупка, се описва точно веднъж и всеки отчет, екран и функционален модул, който се нуждае от него, се отнася обратно до това единствено описание.

Тази централна дефиниция предоставя четири практически предимства. Гарантирана е последователност, защото промяна, направена в даден домейн, незабавно достига до всяко поле, което се отнася до него чрез елемент от данни. Излишъкът изчезва, тъй като разработчиците използват повторно съществуващи дефиниции, вместо да измислят нови. Integrity е защитен, тъй като диапазоните от стойности, таблиците за проверка и външните ключове се валидират от речника, а не от кода на приложението. И накрая, речникът е независим от базата данни, така че таблица, дефинирана в SE11, се създава автоматично в основната база данни с правилните нативни типове.

Речникът е активен и по време на изпълнение. Екраните четат етикетите на полетата, помощните текстове и диапазоните от стойности директно от него, поради което помощната информация за F1 или списъкът със стойности за F4 се появяват без нито един ред допълнителен код. Разбирането на трите нива по-долу обяснява как е организирано това повторно използване.

ABAP речник 3 нива

Обектите в ABAP речника се намират на три нива, които поддържат тяхната повторна употреба. Тези нива са:

  1. Домейни
  2. Елементи от данни
  3. Маси и конструкции

Всяко ниво надгражда предишното: домейн предоставя техническите атрибути, елемент от данни придава на тези атрибути бизнес значение, а таблица или структура групира елементите от данни в запис. Нека ги разгледаме подробно –

Домейни

  • Описва техническите характеристики на таблично поле
  • Указва диапазон от стойности, който описва разрешените стойности на данни за полетата
  • Полетата, отнасящи се до същия домейн (чрез присвоените им елементи от данни), се променят, когато се направи промяна в домейна
  • Осигурява последователност

Пр. Номер на документа за покупка (EBELN)

Речник: Показване на домейни

Екранът за домейн по-горе определя само типа данни и дължината. Бизнес значението на тази стойност се предоставя от следващото ниво - елементът данни.

Елементи от данни

  • Описва ролята на дадено поле в технически контекст
  • Полета с едно и също семантично значение могат да се отнасят до един и същи елемент от данни
  • Съдържа полевата информация

Пр. Номер на документа за покупка (EBELN)

Речник: Показване на елементи от данни

Екранът с елементи от данни съдържа етикетите на полетата и документацията, които потребителите виждат на екрана. След това елементите от данни се комбинират в таблици.

Маси

  • Представете таблиците на базата данни, където действително се намират данните.
  • Таблиците могат да бъдат дефинирани независимо от базата данни в ABAP речника.
  • Полетата на таблицата се дефинират с техните (независими от базата данни) SAP ABAP типове данни и дължини.

Речник: Показване на таблици

Структури

  • Това са декларации за записи, които НЕ отговарят на таблица в база данни.
  • Точно като тип данни, дефиниран от потребителя.
  • Дефинира се като таблица и след това може да се адресира от ABAP програми.
  • Структурите съдържат данни само по време на изпълнение на програмата.

Речник: Показване на структури

Таблицата по-долу сравнява трите нива накратко.

ниво Какво определя Съхранява ли данни? Типичен пример
домейн Технически атрибути: тип данни, дължина, диапазон от стойности Не ЕБЕЛН (ЗНАК 10)
Елемент от данни Семантично значение: етикети на полета, документация, помощ за F1 Не EBELN — Номер на документ за покупка
Маса Запис на полета, създаден в базата данни Да, упорито EKKO — Заглавка на документ за покупка
структура Запис на полета, използвани само в рамките на програма Да, само по време на изпълнение Работна зона за вътрешна маса

Агрегирани обекти на ABAP речника

Агрегиран означава, състоящ се от няколко компонента. В речника ABAP агрегираните обекти са обекти, които идват от няколко различни прозрачни таблици.

  1. Прегледи
  2. Търсене в помощ
  3. Заключване на обекти

Нека ги разгледаме подробно

Прегледи

  • Изгледи в SAP – ABAP се използват за обобщаване на данни, разпределени между няколко таблици
  • Данните на даден изглед всъщност не се съхраняват физически. Вместо това данните на даден изглед се извличат от една или повече други таблици
  • Той е съобразен с нуждите на конкретно приложение

Речник: Изгледи на дисплея

Търсене в помощ

  • Помощ за търсене е инструмент, който ви помага да търсите записи на данни в системата
  • Ефективното и удобно за потребителя търсене подпомага потребителите, когато ключът на записа е неизвестен

Речник: Показване на помощ за търсене

Заключване на обекти

  • Едновременен достъп до един и същ запис на данни от двама потребители в SAP системата се синхронизира чрез заключващ механизъм.
  • Заключванията се задават и освобождават чрез извикване на определени функционални модули. Тези функционални модули се генерират автоматично от дефиницията на така наречените заключващи обекти в речника ABAP/4

Функционални модули : Enqueue_ – за заключване на таблицата dequeue_ – за освобождаване на ключалката

Речник: Обекти за заключване на дисплея

⚠️ Предупреждение: Заключване, което е зададено с ENQUEUE и никога не е освободено с DEQUEUE, остава активно до края на потребителската сесия. Винаги извиквайте модула DEQUEUE, включително в пътя за грешки на програмата.

След като разбрахме типовете обекти, следващият раздел ги прилага чрез създаване на прозрачна таблица в SE11.

Как да създадете прозрачна таблица в SE11

Прозрачната таблица е най-често срещаният речников обект, защото има връзка „един към един“ с физическа таблица в базата данни. Стъпките по-долу ви позволяват да създадете такава от нулата.

  1. Отворено SE11: Въведете транзакция SE11, изберете Таблица на базата данни радио бутон, въведете име в пространството от имена на клиента (започващо със Z или Y) и изберете Създаване на.
  2. Въведете краткото описание и класа на доставка: От Атрибути раздел, добавете кратък текст и задайте класа на доставка, който казва SAP как се държат данните по време на клиентско копие или надстройка. Клас на доставка A се използва за данни от приложения, а C се използва за персонализиране на данни.
  3. Задайте атрибута за поддръжка: Изберете Разрешено е показване/поддръжка така че по-късно може да се генерира изглед за поддръжка със SE55 или SM30.
  4. Дефинирайте полетата: От Полетата В раздела добавете MANDT като първо ключово поле с елемент от данни MANDT, след което добавете ключовите бизнес полета. Всяко поле е типизирано от елемент от данни, който от своя страна се отнася до домейн, така че трите нива, описани по-рано, се използват повторно, а не се предефинират.
  5. Поддържайте технически настройки: Кликнете Технически настройки (транзакция SE13) и задайте класа данни, например APPL0 за главни данни, заедно с очакваната категория размер. Тези стойности определят табличното пространство и началния размер в базата данни.
  6. Активирате: Натискане АктивиратеАктивирането генерира физическата таблица в базата данни и прави дефиницията използваема в 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 Поддръжка на маса

Въпроси и Отговори

SE11 поддържа дефиницията на речников обект, като например полетата и ключовете на таблица. SE16 показва и филтрира редовете с данни, съхранявани в тази таблица. Единият обработва метаданни, другият обработва записи.

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

Прозрачната таблица има еднозначно съвпадение с физическа таблица от база данни. Обединената таблица споделя една таблица от база данни с много малки речникови таблици, така че може да се чете само с Open SQL, никога с native SQL.

Асистенти с изкуствен интелект, като например SAP Joule и асистентите по код в инструментите за ABAP разработка предлагат имена на полета, предлагат елементи от данни за нова таблица, обясняват непознати стандартни таблици и маркират липсващи външни ключове, преди обектът да бъде активиран.

Изкуственият интелект може да изготви списъка с полета, типовете данни и именуването, но дефиницията все още трябва да бъде прегледана и активирана от разработчик. Класът на доставка, техническите настройки и външните ключове се нуждаят от човешка валидация преди транспортиране.

Обобщете тази публикация с: