SAP R/3 форум ABAP консультантов
Russian ABAP Developer’s Club
View previous topic :: View next topic | |||||
Author | Message | ||||
---|---|---|---|---|---|
admin Администратор Joined: 01 Sep 2007 |
|
||||
Back to top |
|
||||
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum |
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.
Создание пользовательской таблицы и ракурса ее ведения
Создание пользовательской таблицы и ракурса ее ведения в системе SAP
Sep 20, 2015
• 4 min read
Спросите любого консультанта, как часто ему приходится создавать пользовательские таблицы, и ракурсы их ведения. Ну а если не создавать, то как часто приходится писать спецификации на разработку оных? Если он ответит, что не часто, знайте — перед вами лжеконсультант. Хотя… Нет, точно лжеконсультант!
В зависимости от специфики проекта, ключи разработчика могут быть созданы только для «официальных» разработчиков, в то время как функциональные консультанты останутся без таковых. Но бывают и исключения из правил, и тогда функциональный консультант может начинать шалить выполнить определенные задачи без вмешательства разработчика. Об одной из таких задач и пойдет речь в данной заметке, а именно, создание пользовательской таблицы и ракурса ее ведения.
Поставим перед собой задачу: создать пользовательскую таблицу, в которой предполагается хранение пары двузначный идентификатор и текстовое значение. Для удобства работы с этой таблицей необходимо создать ракурс ведения. Поехали.
1. Создание таблицы
В транзакции SE11 определяем наименование новой таблицы и нажимаем на кнопку Создать:
На следующем экране необходимо определить Класс поставки таблицы, активировать свойство возможности ведения/просмотра данной таблицы, и придумать ее название:
На вкладке Поля определим поля, которые будут использоваться в таблице:
Нажмите на кнопку **Технические параметры настройки, **и на открывшемся экране заполните поля по аналогии с тем, что указано на Рисунке №4:
Затем выберите в меню **Дополнительная информация -> Категория расширений **и отметьте свойство Любое расширение возможно:
Активируйте таблицу.
2. Создание ракурса ведения
Находясь в режиме обработки созданной таблицы (после выполнения активации) выберите в меню Утилиты -> Генератор ведения таблиц
Заполните поля, по аналогии с тем, что указано на Рисунке №7, и нажмите на кнопку Создать
3. Проверка
Запустите транзакцию SM30, введите наименование ракурса, который был создан, и нажмите на кнопку Ведение:
Введите какие-нибудь данные и сохраните
Данные сохранены. Ракурс ведения отрабатывает без замечаний. Но тем не менее, обратим внимание на несколько интересных моментов, описанных ниже.
FAQ
Рассмотрим несколько вопросов, часто возникающих при работе с пользовательскими таблицами и ракурсами их ведения.
Вопрос #1. В пользовательской таблице текстовые данные сохраняются в верхнем регистре. Как это исправить?
В примере, который описан в данной заметке (см. Рисунок №9), можно обратить внимание, что текстовое значение для поля Text сохранено в верхнем регистре (хотя текст был набран в нижнем регистре). Все последующие записи, созданные в данной таблице, также будут автоматически сохранены в верхнем регистре. Для того, чтобы это исправить необходимо посмотреть на домен, который определен для этого поля. В нашем случае, это домен ZUSER_VALUES_TEXT, типом данных которого является CHAR(40)
По стандартной логике, данный тип данных не поддерживает строчный формат для текста. Таким образом, чтобы исправить данную ситуацию, необходимо изменить тип данных на тот, который поддерживает строчный формат. К таким типам относится, например, домен TEXT40:
Применим данный тип данных для элемента **ZUSER_VALUES_TEXT. **Не забудьте активировать элемент данных, после внесенных изменений.
Снова зайдите в созданный ранее ракурс, заведите запись в нижнем регистре, и нажмите на сохранить:
Вопрос #2. Что нужно сделать, чтобы в момент сохранения данных в пользовательской таблице, в системе формировался запрос на перенос?
Пользовательские таблицы можно разделить на несколько типов:
- Пользовательская таблица ведется напрямую в продуктивной системе. Соответственно, никаких пользовательских запросов в момент сохранения, формироваться не должно;
- Пользовательская таблица ведется только в одной системе (системе разработки), а в системе Q/A и продуктивной — доступна на просмотр. Для данного типа таблиц необходимо формирование транспортного запроса в момент сохранения.
Попробуем добиться того, чтобы в таблице, описанной в данной заметке, в момент сохранения система формировала запрос на перенос.
Для этого необходимо в транзакции SE11 выбрать созданную таблицу, затем выбрать в меню **Утилиты -> Генератор ведения таблиц **(в таблицу необходимо зайти в режиме изменения). В разделе Указания для переноса данных диалога необходимо выбрать пункт Стандартная Программа Записи,затем нажать на кнопку
В открывшемся окне отметьте пункт Новое создание модулей и нажмите Enter
В системе начнется генерация пользовательского ракурса. После завершения данной операции, попробуем еще раз зайти в ракурс через транзакцию SM30, внести новую запись, и нажать на кнопку Сохранить, в результате чего система предложит сохранить внесенные изменения в транспортный запрос:
Просмотр нерешенных тем
Сообщения без ответов | Активные темы
Правила форума
ВНИМАНИЕ!
Вопросы по SAP Query и Quick View – сюда
Автор | Сообщение | ||
---|---|---|---|
Заголовок сообщения: Ракурс ведения таблиц Добавлено: Чт, апр 16 2009, 12:59 |
|||
|
Как сделать штоб данные из одной таблицы по ключу автоматически попадали в другую. хотелось бы штоб при заполнении Kunnr – Name1 подтягивался автоматически
|
||
Вернуться к началу |
|
||
N/A |
Заголовок сообщения: Re: Ракурс ведения таблиц Добавлено: Чт, апр 16 2009, 13:11 |
|
В генераторе ведения таблиц:
|
Вернуться к началу |
|
XXX_:) |
Заголовок сообщения: Re: Ракурс ведения таблиц Добавлено: Чт, апр 16 2009, 13:14 |
|
Цитата: У меня есть Z-таблица с полями … Lgort, Kunnr, Name1 Зачем вы хотите NAME1 сохранять у себя в таблице? Не плодите данные. Оставьте Kunnr и сделайте внешний ключ на KNA1. В ракурсе используйте поле KNA1-NAME1. Значение будет автоматически подтягиваться. И в “Признак ведения для поля ракурса” поставьте значение “R”, чтобы “засерить” поле, так симпатичнее.
|
Вернуться к началу |
|
vuces |
Заголовок сообщения: Re: Ракурс ведения таблиц Добавлено: Чт, апр 16 2009, 13:39 |
||
|
XXX_:) написал: Цитата: У меня есть Z-таблица с полями … Lgort, Kunnr, Name1 Зачем вы хотите NAME1 сохранять у себя в таблице? Не плодите данные. Оставьте Kunnr и сделайте внешний ключ на KNA1. В ракурсе используйте поле KNA1-NAME1. Значение будет автоматически подтягиваться. И в “Признак ведения для поля ракурса” поставьте значение “R”, чтобы “засерить” поле, так симпатичнее. Спасибо, работает супер
|
||
Вернуться к началу |
|
||
Besa |
Заголовок сообщения: Re: Ракурс ведения таблиц Добавлено: Чт, дек 03 2009, 13:27 |
|
Цитата: в “Признак ведения для поля ракурса” поставьте значение “R”, чтобы “засерить” поле. Не магу найти что-то, может кто подскажет?
|
Вернуться к началу |
|
ghost |
Заголовок сообщения: Re: Ракурс ведения таблиц Добавлено: Чт, дек 03 2009, 13:35 |
|
в se11 в ракурсе ведения во вкладке Поля ракурс 4-ая колонка
|
Вернуться к началу |
|
Besa |
Заголовок сообщения: Re: Ракурс ведения таблиц Добавлено: Чт, дек 03 2009, 14:57 |
|
ghost написал: в se11 в ракурсе ведения во вкладке Поля ракурс 4-ая колонка понял, спасибо, не в том ракурсе искал.
|
Вернуться к началу |
|
Zuhra |
Заголовок сообщения: Re: Ракурс ведения таблиц Добавлено: Пт, янв 29 2010, 13:24 |
||
|
А можно ли в ракурсе ведения таблицы настроить ввод значений по-умолчанию для новых записей
|
||
Вернуться к началу |
|
||
Besa |
Заголовок сообщения: Re: Ракурс ведения таблиц Добавлено: Пт, янв 29 2010, 13:34 |
|
Zuhra написала: А можно ли в ракурсе ведения таблицы настроить ввод значений по-умолчанию для новых записей Можно с помощью событий, это что то типа юзер экзитов в ракурсах ведения.
|
Вернуться к началу |
|
andry_moz |
Заголовок сообщения: Re: Ракурс ведения таблиц Добавлено: Ср, фев 10 2010, 11:23 |
||
|
Besa написал: ghost написал: в se11 в ракурсе ведения во вкладке Поля ракурс 4-ая колонка понял, спасибо, не в том ракурсе искал. и не могу найти
|
||
Вернуться к началу |
|
||
N/A |
Заголовок сообщения: Re: Ракурс ведения таблиц Добавлено: Ср, фев 10 2010, 11:35 |
|
andry_moz написал: и не могу найти можно по подробнее? Внимательно. Очень внимательно. SE11-> Ракурс -> Закладка “Поля ракурс” (двигаем бегунок в начало) -> Видим колонку с названием “П” – это оно.
|
Вернуться к началу |
|
Besa |
Заголовок сообщения: Re: Ракурс ведения таблиц Добавлено: Ср, фев 10 2010, 11:47 |
|
N/A написал(а): andry_moz написал: и не могу найти можно по подробнее? Внимательно. Очень внимательно. SE11-> Ракурс -> Закладка “Поля ракурс” (двигаем бегунок в начало) -> Видим колонку с названием “П” – это оно. Вы наверное ищите в ракурсе БД, надо создавать ракурс ведения, только там есть.
|
Вернуться к началу |
|
andry_moz |
Заголовок сообщения: Re: Ракурс ведения таблиц Добавлено: Ср, фев 10 2010, 13:00 |
||
|
N/A написал(а): andry_moz написал: и не могу найти можно по подробнее? Внимательно. Очень внимательно. SE11-> Ракурс -> Закладка “Поля ракурс” (двигаем бегунок в начало) -> Видим колонку с названием “П” – это оно. Я вижу колонки: подозрение на “Мод”. ???
|
||
Вернуться к началу |
|
||
ROKO |
Заголовок сообщения: Re: Ракурс ведения таблиц Добавлено: Ср, фев 10 2010, 15:23 |
|
andry_moz написал: Я вижу колонки: подозрение на “Мод”. ??? Нада зайти на ИЗМЕНЕНИЕ ракурса, а не на ПРОСМОТР Я ИДИЁТ, УБЕЙТЕ МИНЯ КТО-НИБУДЬ!
|
Вернуться к началу |
|
Besa |
Заголовок сообщения: Re: Ракурс ведения таблиц Добавлено: Ср, фев 10 2010, 15:26 |
|
andry_moz
|
Вернуться к началу |
|
Кто сейчас на конференции |
Сейчас этот форум просматривают: нет зарегистрированных пользователей |
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения |
Ракурсы
Данные приложений часто распределяются по нескольким таблицам; вы можете определить представления для объединения этих данных. Списки таблиц базы данных, к которым обращается представление, называются базовыми таблицами. Если представление содержит более одной базовой таблицы, базовые таблицы можно соединить с помощью соединений. Структура представления формируется из полей базовых таблиц, которые объединяются. Представление не создается физически в базе данных, поэтому представление не хранит данные само по себе. Представление можно использовать в программах ABAP для выбора данных или в качестве типа структуры в объявлениях данных.
Ниже приведены различные общие типы представлений, которые можно создать в ABAP:
Ракурс базы данных – Позволяет объединять несколько таблиц и связывать их с помощью условий соединения. Это общее представление для одной или нескольких таблиц. Если в ракурсе используется более одной таблицы, их можно соединить с помощью внутреннего соединения (INNER JOIN). Можно задать условия выборки.
Ракурс проекции – Позволяет создать проекцию одной таблицы, в которой можно скрыть ненужные поля, что упрощает интерфейс.
Являются простейшей формой просмотра. Их можно использовать для скрытия ненужных полей из таблицы для упрощения интерфейса. Ракурс проекции нельзя использовать для объединения нескольких таблиц; они используются для создания новой проекции для существующей таблицы.
Если установлен параметр «Считывание и изменение», вы можете выбрать «Просмотр/введение разрешено» для поля «Обслуживание табличного представления», чтобы пользователь мог вручную поддерживать данные.
Ракурс введения – Позволяет вам присоединиться к связанным таблицам для введения.
Это специальные ракурс, используемые для одновременной записи в несколько таблиц. Вы можете использовать один вид обслуживания для изменения данных нескольких связанных таблиц базы данных. В отличие от других ракурсов, к ракурсу введения нельзя получить доступ с помощью операторов OpenSQL.
Создание ракурса введения аналогично созданию ракурса базы данных. Однако в ракурсе введения можно объединять только связанные таблицы. Вы не можете поддерживать условие соединения вручную.
Ракурс справки – Используется для помощи в поиске.
Ракурс справки используются в качестве методов выбора в поисковых подсказках. Вы можете создать ракурс справки, если хотите отображать данные из нескольких таблиц в справке по поиску. Ракурс базы данных следует использовать в справке по поиску, если вы хотите соединить несколько таблиц с помощью внутреннего соединения(INNER JOIN), но если вам нужно использовать внешнее соединение(OUTER JOIN) для соединения таблиц, вам необходимо создать ракурс справки.
Ракурс CDS – Ракурс CDS образуют инфраструктуру, которую можно использовать для создания базовой (постоянной) модели данных в SAP HANA. Ракурс CDS — это объект, который не является постоянным и определяется как проекция других объектов. Представления CDS изначально были доступны только в SAP HANA, но в SAP NetWeaver 7.4 SP 5 были представлены представления ABAP CDS. Представления ABAP CDS реализуют общую концепцию CDS SAP NetWeaver для AS ABAP. Как только представление ABAP CDS определено, оно становится частью словаря данных ABAP, и к нему можно получить доступ из программ ABAP аналогично другим объектам словаря данных ABAP. ABAP- ракурс CDS помогают перенести некоторые ресурсоемкие операции (например, выполнение агрегатных функций) на уровень базы данных (так называемое проталкивание кода).
Ракурс базы данных, Ракурс введения, ракурс справки и ракурс проекции можно определить с помощью словаря данных ABAP (транзакция SE11) и они называются классическими представлениями. Ракурс ABAP CDS можно определить только с помощью ABAP в Eclipse.
Кластер ракурсов SAP – это удобный способ иерархического ведения настроечных данных. Он объединяет несколько ракурсов ведения, задаёт вид связи между ними, например, строгая иерархия либо просто объединение данных по смыслу, что позволяет вести все настройки по одной задаче в одном месте.
Для примера я создал иерархический кластер ракурсов ABAP:
Видим, что у таблиц этого ракурса определена следующая иерархия:
- Настройки по сбытовой организации. Таблица: ZTB_VKORG. Это основная таблица, которая не подчиняется другим таблицам и данные в неё вводятся независимо.
- Настройка по заводам. Таблица: ZTB_WERKS. Эта таблица подчинена таблице ZTB_VKORG и зависит от неё по полю VKORG. Благодаря этой зависимости провалившись в запись настройки заводов по определённой сбытовой организации нам не нужно в каждой строке её заполнять и мы сразу видим все заводы, относящиеся к ней.
- Настройка по складам. Таблица: ZTB_LGORT . Эта таблица подчинена таблице ZTB_WERKS и зависит от неё уже по двум полям VKORG и WERKS. Благодаря этой зависимости провалившись в запись настройки заводов по определённому заводу мы сразу видим все настройки по складам, которые привязаны к нему.
В этом видео на YouTube канале YouCoder я подробно рассказываю как создать кластер ракурсов SAP по шагам:
Создание кластера ракурсов ABAP разбираю в этом видео на нашем YouTube канале.
В этом виде подробнее показываю и рассказываю про этот кластер ракурсов и ведение данных в нём:
Буду рад получить обратную связь и Ваши вопросы на своём канале YouTube и в Я.Дзене под видео.