Link Search Menu Expand Document

Метод CREATE

За процесс создания настройки отвечает единственный статический публичный метод:

 zcl_aqo_option=>create( )

Который в случае необходимости:

  • создает новую настройку или
  • изменяет существующую настройку в соответствии с описанием в коде

далее:

  • считывает текущие значения настройки (введенные пользователем) или
  • сохраняет новую настройку в БД, если мандант открыт на изменения (DEV)


Проверки при создании

Также данный метод обернут в Try блок, так как он выполняет некоторые проверки.
К примеру существует ли пакет во время создания новой настройки или изменилось ли описание полей со времени предыдущего запуска.

Про последний пункт более подробно:

  • Если полей больше в структуре ABAP Ok.
    В DEV выйдет диалог с сохранением полей (В продуктиве ошибка)

  • Если полей больше в визуальном редакторе
    К примеру создали новое поле редакторе.
    Будет всегда ошибка (Надо удалить это поле в редакторе или, скорее всего, создать описание в коде)

  • Если у вас Unique sorted table в качестве поля настройки и вы изменили первичный ключ
    Или же удалили (добавили) поля из таблицы. Можно “отремонтировать” описание настройки
    Для этого можно передать данный параметр в метод

Так работает немного медленнее, но:

  • чинит описание полей (включая вложенные таблицы)
  • а также значения таблиц
    выполняет move-corresponding для структур + INSERT в таблицу по одной записи, а не одним скопом
    Если есть повтор в первичном ключе таблицы, останется первое значение

IV_REPAIR

Флаг IV_REPAIR работает как утилита базы данных

Не оставляйте его в коде на постоянной основе (Об этом напоминает ‘W’ сообщение)
Так работает медленнее и в последующих версиях возможно будет что-то другое вместо IV_REPAIR = ‘X’