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

Создание пользовательской таблицы и ракурса ее ведения в системе SAP

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

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

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

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

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

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

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

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

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

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

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

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

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

3. Проверка

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

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

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

FAQ

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

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

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

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

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

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

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

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

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

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

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

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