01 Что произошло

SAP опубликовала техническое руководство по определению полей в CDS-сущностях таблиц. Разработчики могут явно указывать null для LOB- и геоданных. Обработка клиента теперь неявная через аннотацию @ClientHandling.type; явное поле клиента больше не требуется. Тип abap.int1 теперь сопоставляется с HANA TINYINT (в классических таблицах — SMALLINT). Типы abap.clnt, abap.dats, abap.tims, abap.accp, abap.lchr, abap.varc, abap.df16_raw и abap.df34_raw объявлены устаревшими.

02 Ключевые детали

  • Синтаксис поля: field_definition ::= [field_annotation] [key] field_name : type_reference [null]. Nullability поддерживается официально; abap.string и abap.rawstring требуют ключевого слова null.
  • Зависимость от клиента обрабатывается неявно через аннотацию @ClientHandling.type; abap.clnt не поддерживается.
  • abap.int1 отображается на TINYINT — единственное отличие от классических таблиц; abap.dats и abap.tims заменены на abap.datn (DATE) и abap.timn (TIME).
  • Типы DF16_RAW, DF34_RAW и LCHR устарели. Для DF16_RAW и DF34_RAW требуется миграция таблицы на DEC, DECFLOAT16 или DECFLOAT34.

03 Почему это важно

Разработчики, создающие или переносящие объекты на CDS-сущности таблиц, должны учитывать новые требования к null для LOB- и геоданных, неявную обработку клиента и своевременно заменять устаревшие типы до блокировки разработки или принудительной конвертации таблиц.

04 Кому полезно

ABAP-разработчики, архитекторы данных и администраторы SAP HANA.

Первоисточник
SAP Community