Таблицы, структуры и поля SAP: смысл, ключ и допустимый доступ#
Техническое имя объекта само по себе не объясняет, что означает строка, можно ли её использовать в отчёте и будет ли объект стабилен при обновлении. Перед чтением или переносом данных установите тип объекта, его бизнес-смысл, уровень строки, полный ключ, происхождение полей и контракт доступа для конкретного продукта и версии.
Эта страница даёт метод проверки. Для подробностей о типах таблиц и ABAP Dictionary см. ABAP Dictionary: типы, таблицы и связи; о ключах и детализации финансовых выборок - CDS для финансовых данных и SAP Journal в EDWH.
Определите тип объекта#
Сначала выясните, что именно нашли:
- Таблица базы данных хранит данные или техническую структуру хранения. Её поля, ключ и обновление принадлежат конкретной модели и версии.
- Структура или тип данных описывает форму значений для программы или интерфейса; сам по себе такой тип не означает, что данные где-то хранятся.
- Представление, включая CDS view формирует набор полей из источников, связей, выражений и фильтров. Его результат может иметь другой уровень строки, чем базовая таблица.
- API или сервис публикует контракт чтения либо изменения данных. Его входные параметры, фильтры, пагинация, авторизация и статус выпуска определяют допустимое потребление.
- Совместимое или устаревшее имя может перенаправляться на другую модель, иметь сокращённую семантику или сохраняться только ради обратной совместимости.
Не делайте вывод о физическом хранении, записи или разрешённом доступе только по похожему имени таблицы, view, структуры и API.
Зафиксируйте смысл поля и уровень строки#
Описывайте поле вместе с объектом, в котором оно опубликовано. Один термин вроде «дата», «сумма» или «позиция» может обозначать разные вещи в заголовке документа, бухгалтерской строке, валютном представлении, агрегате или справочном списке.
Для каждой выборки ответьте:
- Что представляет одна строка результата: документ, бухгалтерскую строку, сумму по счёту и периоду, объект справочника или другое?
- Какие поля вместе образуют ключ строки в выбранном объекте? Не заменяйте составной ключ одним удобным номером документа.
- Какие условия фильтрации обязательны для области компании, ledger, финансового года, валюты, статуса и даты?
- Как формируется поле: непосредственно из источника, через association/join, вычисление, агрегацию или пользовательское расширение?
- Для суммы определены ли валюта, тип валюты, знак, единица измерения и дата оценки?
- Какое приложение или процесс является владельцем бизнес-смысла поля?
| Элемент контракта | Что записать |
|---|---|
| Объект | Техническое имя, тип, владелец, продукт и версия |
| Поле | Техническое имя и бизнес-определение из документации |
| Ключ | Полный набор ключевых полей именно этого объекта |
| Уровень строки | Значение одной записи и возможные агрегирования |
| Происхождение | Источник, связи, вычисление, фильтр и преобразование |
| Применение | Разрешённый сценарий, авторизации, статус выпуска и стабильности |
Отметка Key в CDS view относится к контракту этого view. Она не доказывает, что поле само по себе уникально, и не устанавливает первичный ключ базовой таблицы. Уникальность проверяйте по всему заявленному ключу, нацеленной версии и реальным данным.
Проследите происхождение и ограничения#
Для важного финансового поля зафиксируйте источник и все преобразования до потребителя. При переходе из таблицы в CDS view может измениться название, тип, семантика, валюта, набор записей, вычисление или уровень агрегации. Association может добавить атрибут справочника, но связь также может увеличить число строк, если кардинальность источников не соответствует предположению.
При сверке задайте вопросы:
- Включены ли те же организационные области и периоды?
- Отбираются ли одинаковые типы документов, ledger, статусы и record types?
- Суммируются ли строки только после совместимости валют и единиц?
- Есть ли фильтры авторизации, даты действия, удаления или статуса?
- Означает ли пустое значение отсутствие данных, неприменимость или результат вычисления?
- Не меняют ли join, association или текстовое представление число строк?
Сверяйте не только итоговую сумму, но и выборку на уровне ключа и ожидаемой строки. Равенство агрегатов не доказывает совпадение состава данных.
Выбирайте доступ по статусу и назначению#
Для CDS view в SAP S/4HANA используйте View Browser целевой версии и проверяйте статус выпуска, тип, назначение, ключи, поля, аннотации, поддерживаемые возможности и преемников. View Browser показывает не только Released views: он также может показывать unreleased, deprecated и пользовательские представления. SAP рекомендует для нового потребления Released views; unreleased или deprecated объект может измениться или исчезнуть.
Для разработки с ограниченной версией языка ABAP проверьте, что объект доступен как released API именно для этой версии разработки. Учитываются и release contract, и видимость объекта для соответствующего языка. Внешнее или side-by-side потребление требует контракта, подходящего для такого использования; внутренний статус или наличие объекта в системе не заменяет опубликованный API.
Для интеграции и аналитики предпочитайте документированный API или CDS view, соответствующий целевому сценарию. Не считайте прямое чтение внутренней таблицы поддерживаемым контрактом только потому, что таблица существует и содержит нужные столбцы. Отдельно проверьте row-level authorization, фильтры по компании и ledger, ограничения объёма, пагинацию и срок поддержки.
Пример по версиям: журнал бухгалтерских документов#
Документация SAP S/4HANA Cloud Public Edition 2608 описывает CDS view I_AccountingDocumentJournal как released view типа Cube для журнала документов. Среди опубликованных атрибутов перечислены компания, финансовый год, документ, G/L item, ledger и дата проводки; доступ также зависит от ограничений авторизации по организационным областям.
Этот список атрибутов не следует копировать как готовый ключ. В карточке view целевой версии проверьте, какие из них помечены ключом, какой уровень строки задаёт модель и нужны ли дополнительные поля, например источник ledger или тип валюты. В другом примере той же редакции I_JournalEntryVH явно предназначен для value help; документация направляет за полным бизнес-набором к отдельному view. Назначение похожих по названию представлений может различаться.
Отдельная документация I_JournalEntryItem для SAP S/4HANA On-Premise 2023 относится к той версии. Не переносите её имена полей, статус или поведение на On-Premise 2025, Cloud или другой CDS без проверки View Browser и документации целевого выпуска.
Подготовьте передачу в отчёт или DWH#
До выбора объекта согласуйте с владельцем потребления:
- бизнес-вопрос и уровень детализации;
- полный ключ и поля сортировки для возобновляемого чтения;
- время изменения, дату действия и способ обнаружения поздних корректировок;
- валюту, тип суммы, знак и правила агрегации;
- фильтры и полномочия;
- статус и контракт интерфейса в целевом релизе;
- версию схемы и сверки, которые выявят изменение полей или семантики.
Сохраните исходные технические имена, но храните бизнес-определения, lineage и версии контракта отдельно. Перевод поля не является преобразованием значения, а одинаковое название в двух объектах не гарантирует одинаковую семантику.
Границы проверки#
Примеры CDS и их назначения выше привязаны к SAP S/4HANA Cloud Public Edition 2608 и On-Premise 2023, как указано рядом. View Browser проверен по документации SAP S/4HANA On-Premise 2025 FPS01. Ссылки подтверждают продуктовые сведения, но не доступность объекта, разрешения, выпуск API или качество данных в конкретной системе. SAP Dictionary, таблицы, CDS, API, роли и runtime клиента не проверялись.