Спросите любого консультанта, как часто ему приходится создавать пользовательские таблицы, и ракурсы их ведения. Ну а если не создавать, то как часто приходится писать спецификации на разработку оных? Если он ответит, что не часто, знайте — перед вами лжеконсультант. Хотя... Нет, точно лжеконсультант!

В зависимости от специфики проекта, ключи разработчика могут быть созданы только для «официальных» разработчиков, в то время как функциональные консультанты останутся без таковых. Но бывают и исключения из правил, и тогда функциональный консультант может начинать шалить выполнить определенные задачи без вмешательства разработчика. Об одной из таких задач и пойдет речь в данной заметке, а именно, создание пользовательской таблицы и ракурса ее ведения.

Поставим перед собой задачу: создать пользовательскую таблицу, в которой предполагается хранение пары двузначный идентификатор и текстовое значение. Для удобства работы с этой таблицей необходимо создать ракурс ведения. Поехали.

1. Создание таблицы

В транзакции SE11 определяем наименование новой таблицы и нажимаем на кнопку Создать:

Рисунок 1. Создание пользовательской таблицы

На следующем экране необходимо определить Класс поставки таблицы, активировать свойство возможности ведения/просмотра данной таблицы, и придумать ее название:

Рисунок 2. Свойства таблицы

На вкладке Поля определим поля, которые будут использоваться в таблице:

Рисунок 3. Поля таблицы

Нажмите на кнопку **Технические параметры настройки, **и на открывшемся экране заполните поля по аналогии с тем, что указано на Рисунке №4:

Рисунок 4. Технические параметры настройки пользовательской таблицы

Затем выберите в меню **Дополнительная информация -> Категория расширений **и отметьте свойство Любое расширение возможно:

Рисунок 5. Категория расширений таблицы

Активируйте таблицу.

2. Создание ракурса ведения

Находясь в режиме обработки созданной таблицы (после выполнения активации) выберите в меню Утилиты -> Генератор ведения таблиц

Рисунок 6. Запуск генератора ведения таблиц

Заполните поля, по аналогии с тем, что указано на Рисунке №7, и нажмите на кнопку Создать

Рисунок 7. Настройки создаваемого ракурса

3. Проверка

Запустите транзакцию SM30, введите наименование ракурса, который был создан, и нажмите на кнопку Ведение:

Рисунок 8. Проверка работоспособности ракурса ведения

Введите какие-нибудь данные и сохраните

Рисунок 9. Сохраненные записи в пользовательской таблице

Данные сохранены. Ракурс ведения отрабатывает без замечаний. Но тем не менее, обратим внимание на несколько интересных моментов, описанных ниже.

FAQ

Рассмотрим несколько вопросов, часто возникающих при работе с пользовательскими таблицами и ракурсами их ведения.

Вопрос #1. В пользовательской таблице текстовые данные сохраняются в верхнем регистре. Как это исправить?

В примере, который описан в данной заметке (см. Рисунок №9), можно обратить внимание, что текстовое значение для поля Text сохранено в верхнем регистре (хотя текст был набран в нижнем регистре). Все последующие записи, созданные в данной таблице, также будут автоматически сохранены в верхнем регистре. Для того, чтобы это исправить необходимо посмотреть на домен, который определен для этого поля. В нашем случае, это домен ZUSER_VALUES_TEXT, типом данных которого является CHAR(40)

Рисунок 10. Свойства элемента данных

По стандартной логике, данный тип данных не поддерживает строчный формат для текста. Таким образом, чтобы исправить данную ситуацию, необходимо изменить тип данных на тот, который поддерживает строчный формат. К таким типам относится, например, домен TEXT40:

Рисунок 11. Свойства домена TEXT40

Применим данный тип данных для элемента **ZUSER_VALUES_TEXT. **Не забудьте активировать элемент данных, после внесенных изменений.

Рисунок 12. Измененный тип данных для элемента данных

Снова зайдите в созданный ранее ракурс, заведите запись в нижнем регистре, и нажмите на сохранить:

Рисунок 13. Добавленная запись в нижнем регистре

Рисунок 14. Записи пользовательской таблицы

Вопрос #2. Что нужно сделать, чтобы в момент сохранения данных в пользовательской таблице, в системе формировался запрос на перенос?

Пользовательские таблицы можно разделить на несколько типов:

  • Пользовательская таблица ведется напрямую в продуктивной системе. Соответственно, никаких пользовательских запросов в момент сохранения, формироваться не должно;
  • Пользовательская таблица ведется только в одной системе (системе разработки), а в системе Q/A и продуктивной — доступна на просмотр. Для данного типа таблиц необходимо формирование транспортного запроса в момент сохранения.
    Попробуем добиться того, чтобы в таблице, описанной в данной заметке, в момент сохранения система формировала запрос на перенос.

Для этого необходимо в транзакции SE11 выбрать созданную таблицу, затем выбрать в меню **Утилиты -> Генератор ведения таблиц (в таблицу необходимо зайти в режиме изменения). В разделе Указания для переноса данных диалога необходимо выбрать пункт Стандартная Программа Записи, **затем нажать на кнопку ztable-17

Рисунок 15. Изменение параметров ракурса ведения пользовательской таблицы

В открывшемся окне отметьте пункт Новое создание модулей и нажмите Enter

Рисунок 16. Изменение элементов генерации ракурса

В системе начнется генерация пользовательского ракурса. После завершения данной операции, попробуем еще раз зайти в ракурс через транзакцию SM30, внести новую запись, и нажать на кнопку Сохранить, в результате чего система предложит сохранить внесенные изменения в транспортный запрос:

Рисунок 17. Формирование транспортного запроса после сохранения