Метод CREATE
За процесс создания настройки отвечает единственный статический публичный метод:
zcl_aqo_option=>create( )
Который в случае необходимости:
- создает новую настройку или
- изменяет существующую настройку в соответствии с описанием в коде
далее:
- считывает текущие значения настройки (введенные пользователем) или
- сохраняет новую настройку в БД, если мандант открыт на изменения (DEV)
Проверки при создании
Также данный метод обернут в Try блок, так как он выполняет некоторые проверки.
К примеру существует ли пакет во время создания новой настройки или изменилось ли описание полей со времени предыдущего запуска.
Про последний пункт более подробно:
Если полей больше в структуре ABAP Ok.
В DEV выйдет диалог с сохранением полей (В продуктиве ошибка)Если полей больше в визуальном редакторе
К примеру создали новое поле редакторе.
Будет всегда ошибка (Надо удалить это поле в редакторе или, скорее всего, создать описание в коде)Если у вас Unique sorted table в качестве поля настройки и вы изменили первичный ключ
Или же удалили (добавили) поля из таблицы. Можно “отремонтировать” описание настройки
Для этого можно передать данный параметр в метод
Так работает немного медленнее, но:
- чинит описание полей (включая вложенные таблицы)
- а также значения таблиц
выполняет move-corresponding для структур + INSERT в таблицу по одной записи, а не одним скопом
Если есть повтор в первичном ключе таблицы, останется первое значение
IV_REPAIR
Флаг IV_REPAIR работает как утилита базы данных
Не оставляйте его в коде на постоянной основе (Об этом напоминает ‘W’ сообщение)
Так работает медленнее и в последующих версиях возможно будет что-то другое вместо IV_REPAIR = ‘X’