Практика освоения ABAP CDS для непрограммистов. Часть 1 / Сапёр / Статьи / База знаний / SAPLand — Мир решений SAP
Практика освоения ABAP CDS для непрограммистов. Часть 1
Публикация предназначена для консультантов по различным модулям SAP ERP. Описываемая технология ABAP CDS наиболее актуальна для систем SAP S/4HANA, но может применяться и в любых системах, начиная с платформы SAP Netweaver 7.40 SPS05, независимо от используемой базы данных.
Для быстрого погружения в тему приводится серия практических примеров, которые читатель может самостоятельно повторить в своей системе.
Изложенная информация будет полезна при решении задач, связанных с разработкой операционной и аналитической отчётности: самостоятельное создание отчётов, постановка задач для разработчиков ABAP или BW, анализ и использование уже существующих в системе стандартных или пользовательских разработок.
От читателя предполагается начальное знакомство с инструментальными средствами и элементами языка ABAP в объеме учебного SAP-курса BC400: работа с ABAP-словарём, программы, функциональные модули, классы и методы.
Некоторые из запланированных в дальнейшем глав публикации будут адресованы разработчикам BW и предполагают владение основными понятиями, используемыми при построении отчётов в BW и при разработке экстракторов.
Линейка продуктов компании SAP постоянно пополняется новыми наименованиями, на смену привычным версиям знакомых систем приходят новинки, полностью пересмотренные архитектурно, появляются новшества и в технологиях разработки. Изменений много, происходят они быстро. Порой даже то, что преподносилось как новшество, отходит на второй план и перестаёт развиваться уже в следующем пакете обновлений. В такой ситуации следить за развитием событий, быть в курсе новинок – задача, которая иногда оказывается непростой не только для компаний, использующих продукты SAP, но и для профессиональных консультантов. Знакомиться с новыми продуктами и технологиями работы приходится по презентациям, слайдам, видеороликам. Но такие источники зачастую ограничиваются общими словами и приукрашивают действительность в интересах маркетинга.
Для консультантов здесь возникает разрыв между презентационной информацией о новинках и реальностью их применения, техническими подробностями. Подробностями, которые бы позволили оценить истинные возможности продукта, его технологические преимущества, пути миграции с используемых старых решений, трудозатраты на поддержку и развитие, на переобучение или привлечение новых специалистов. И при этом никто не отменит необходимость для консультанта быть готовым к включению в работу с этими новинками. Причём ожидается, что для бизнес-пользователей качество поддержки и развития новых решений будет как минимум не ниже, чем было с предыдущим поколением систем.
Одной из таких технологий, появившихся сравнительно недавно, продолжающей интенсивное развитие и получающей всё больше практических применений в новейших версиях SAP-систем, является ABAP Core Data Services (CDS). Предлагаемая вниманию читателя работа имеет целью дать первоначальное представление о возможностях этой технологии, привести практические примеры, иллюстрирующие способы разработки и возможности применения CDS.
Первая публикация содержит краткий теоретический обзор: предпосылки возникновения ABAP CDS, «взаимоотношения» этой технологии с классическим OpenSQL. Затем рассматривается понятие виртуальной модели данных (VDM) и на серии простых практических примеров строится небольшая демонстрационная VDM. Параллельно с практическими примерами, по мере их расширения и усложнения, приводятся и краткие теоретические сведения о таких элементах CDS, как аннотации, ассоциации, path expressions.
В дальнейших публикациях планируется рассмотреть такие применения CDS-ракурсов, как построение Fiori-приложений, Query Browser и визуализация с помощью программ линейки SAP BusinessObjects. Также запланирована отдельная серия практических примеров, ориентированных на работу консультантов SAP BW. Методами CDS можно создавать достаточно сложные и функциональные отчёты BW непосредственно на «живых» данных из таблиц транзакционной системы.
Поскольку основной задачей данных публикаций является начальное практическое освоение возможностей ABAP CDS консультантами, то подборку публикаций планируется включить также следующие темы. Они не взаимосвязаны между собой, но могут быть востребованы на практике:
- Расширение (extending) существующих CDS-ракурсов
- Опции ABAP Development Tools, делающие работу с CDS более удобной: Dependency Analyzer, Graphical Editor, Active Annotations
- Табличные функции
- Раб
Введение в SQL. Подключение БД и создание консольного Java приложения, JDBC
JDBC. Подключение БД и создание консольного Java приложения в IntelliJ IDEA
Введение
Эта статья открывает небольшой цикл, посвященный азам взаимодействия с базами данных (БД) в Java и введению в SQL. Многие программы заняты обработкой и модификацией информации, её поддержкой в актуальном состоянии. Поскольку данные — весьма важная часть логики программ, то под них зачастую выделяют отдельное хранилище. Информация в нём структурирована и подчинена специальным правилам, чтобы обеспечить правильность обработки и хранения. Доступ к данным и их изменение осуществляется с помощью специального языка запросов — SQL (Structured Query Language). Система управления базами данных — это ПО, которое обеспечивает взаимодействие разных внешних программ с данными и дополнительные службы (журналирование, восстановление, резервное копирование и тому подобное), в том числе посредством SQL. То есть программная прослойка между данными и внешними программами с ними работающими. В этой части ответим на вопросы что такое SQL, что такое SQL сервер и создадим первую программу для взаимодействия с СУБД.Виды СУБД
Существует несколько видов СУБД по способу организации хранения данных:- Иерархические. Данные организованы в виде древовидной структуры. Пример — файловая система, которая начинается с корня диска и далее прирастает ветвями файлов разных типов и папок разной степени вложенности.
- Сетевые. Видоизменение иерархической, у каждого узла может быть больше одного родителя.
- Объектно-ориентированные. Данные организованы в виде классов/объектов c их атрибутами и принципами взаимодействия согласно ООП.
- Реляционные. Данные этого вида СУБД организованы в таблицах. Таблицы могут быть связаны друг с другом, информация в них структурирована.
SQL
Внешние программы формируют запросы к СУБД на языке управления данными Structured Query Language. Что такое SQL и чем отличается от привычных языков программирования? Одна из особенностей SQL – декларативность. То есть, SQL — декларативный язык. Это значит, что, вбивая команды, то есть, создавая запросы к SQL-серверу, мы описываем, что именно хотим получить, а не каким способом. Посылая серверу запросSELECT * FROM CUSTOMER
(приблизительный перевод с SQL на русский: «сделать выборку из таблицы COSTUMER, выборка состоит из всех строк таблица»), мы получим данные по всем пользователям. Совершенно неважно, как и откуда сервер загрузит и сформирует интересующие нас данные. Главное – правильно сформулировать запрос.- Что такое SQL-Сервер и как он работает? Взаимодействие с СУБД происходит по клиент-серверному принципу. Некая внешняя программа посылает запрос в виде операторов и команд на языке SQL, СУБД его обрабатывает и высылает ответ. Для упрощения примем, что SQL Сервер = СУБД.
- Data Definition Language (DDL) – определения данных. Создание структуры БД и её объектов;
- Data Manipulation Language(DML) – собственно взаимодействие с данными: вставка, удаление, изменение и чтение;
- Transaction Control Language (TCL) – управление транзакциями;
- Data Control Language( DCL) – управление правами доступа к данным и структурам БД.
JDBC
В 80-е годы прошлого века персональные компьютеры типа PC XT/AT завоевали рынок. Во многом это произошло благодаря модульности их конструкции. Это означает, что пользователь мог довольно просто менять ту или иную составную часть своего компьютера (процессор, видеокарту, диски и тому подобное). Это замечательное свойство сохранилось и поныне: мы меняем видеокарту и обновляем драйвер (иногда он и вовсе обновляется сам, в автоматическом режиме). Чаще всего при таких манипуляциях ничего плохого не происходит, и существующие программы продолжат работать с обновившейся системой без переустановки. Аналогично и для работы в Java с СУБД. Для стандартизации работы с SQL-серверами взаимодействие с ней можно выполнять через единую точку —Оператор | Описание |
LD | Загрузить значение операнда в аккумулятор |
LDN | Загрузить обратное значение операнда в аккумулятор |
ST | Присвоить значение аккумулятора операнду |
STN | Присвоить обратное значение аккумулятора операнду |
S | Если значение аккумулятора TRUE, установить логический операнд |
R | Если значение аккумулятора FALSE, сбросить логический операнд |
AND | Поразрядное И аккумулятора и операнда |
ANDN | Поразрядное И аккумулятора и обратного операнда |
OR | Поразрядное ИЛИ аккумулятора и операнда |
ORN | Поразрядное ИЛИ аккумулятора и обратного операнда |
XOR | Поразрядное разделительное ИЛИ аккумулятора и операнда |
XORN | Поразрядное разделительное ИЛИ аккумулятора и обратного операнда |
NOT | Поразрядная инверсия аккумулятора |
ADD | Сложение аккумулятора и операнда, результат записывается в аккумулятор |
SUB | Вычитание операнда из аккумулятора, результат записывается в аккумулятор |
MUL | Умножение аккумулятора на операнд, результат записывается в аккумулятор |
DIV | Деление аккумулятора на операнд, результат записывается в аккумулятор |
GT | Значение аккумулятора сравнивается со значением операнда(>(greater than)). Значение (TRUE или FALSE) записывается в аккумулятор |
GE | Значение аккумулятора сравнивается со значением операнда(>=greater than or equal)). Значение (TRUE или FALSE) записывается в аккумулятор |
EQ | Значение аккумулятора сравнивается со значением операнда (=(equal)). Значение (TRUE или FALSE) записывается в аккумулятор |
NE | Значение аккумулятора сравнивается со значением операнда (<>(not equal). Значение (TRUE или FALSE) записывается в аккумулятор |
LE | Значение аккумулятора сравнивается со значением операнда (<=(less than or equal to)). Значение (TRUE или FALSE) записывается в аккумулятор |
LT | Значение аккумулятора сравнивается со значением операнда (<(less than)). Значение (TRUE или FALSE) записывается в аккумулятор |
JMP | Переход к метке |
JMPC | Переход к метке при условии, что значение аккумулятора TRUE |
JMPCN | Переход к метке при условии, что значение аккумулят |
CDS Просмотр прав доступа на уровне строк с помощью языка управления данными (DCL)
В этом блоге я планирую пройти этапы и предварительные условия создания простого DCL (языка управления данными) для ограничения на уровне строк, настраиваемого представления CDS, созданного для аналитики / отчетности.
Во-первых, я создал несколько представлений CDS в HANA studio. Представление CDS размерности типа в таблице MARA со связью с MAKT для получения описаний материалов.
Затем я построил простое представление CDS типа куб на таблице VBAP с очень небольшим количеством полей, связанное с измерением представления CDS материалов выше.Я не буду подробно рассказывать о том, что означает каждая аннотация. Существует множество блогов, объясняющих концепции CDS Views.
В этом примере я хочу ограничить данные на основе поля Группа материалов (VBAP-MATKL).
Ниже мой Cube CDS View, выбирающий данные из VBAP. Несколько замечаний:
- Нам нужна аннотация @ AccessControl.authorizationCheck: #CHECK . Это позволит проверить это представление CDS на предмет авторизации.
- Я создал псевдоним для MATKL, переименовав его в MaterialGroup . Это поле, которое мы будем использовать в DCL.
Ниже приведена моя исходная таблица, которая включает несколько значений для группы материалов:
Поскольку представления CDS существуют на уровне приложения, мы можем применить к нему традиционную безопасность PFCG, что является одним из основных преимуществ, поскольку нам не нужно также поддерживать безопасность БД HANA.
Итак, первым шагом является создание объекта полномочий в TCODE SU21.Я также создал новый класс объекта для этого примера:
В окне «Создать объект авторизации» укажите техническое имя и текст объекта:
Добавьте поле ACTVT и нажмите кнопку сохранения:
Вам будет предложено ввести пакет. Выберите свой пакет или сохраните как локальный объект, в соответствии с вашими требованиями:
Вы должны получить сообщение, подобное приведенному ниже:
Экран должен измениться, и вы сможете поддерживать разрешенные действия:
На экране «Разрешенные действия» выберите 03 — Отображение, поскольку это представление CDS для аналитических целей, и нам нужен только доступ к отображению.
Затем добавьте поле, которое необходимо авторизовать, в нашем случае Material Group (MATKL), и выполните те же шаги, что и выше, чтобы предоставить доступ к дисплею. Ваш объект авторизации должен выглядеть так:
Мы закончили создание объекта авторизации. Теперь нам нужно создать роли для его назначения. Итак, мы переходим в PFCG и создаем роль, давая ей имя и щелкая Single Role. Первая роль, которую я создам, будет ограничивать группу материалов YBF02:
В редакторе ролей я щелкнул вкладку «Авторизация», а затем внизу «Изменить данные авторизации»:
Я не выбирал никаких шаблонов:
На следующем экране я выбрал Вручную, чтобы добавить ранее созданный объект авторизации:
Добавляю объект авторизации и ставлю зеленую галочку:
У вас должен получиться экран, который выглядит так:
Нам нужно отредактировать авторизацию, щелкнув по карандашу рядом с каждым полем.Начнем с Activity. Убедитесь, что флажок рядом с Display установлен, затем нажмите save:
Затем щелкните карандашом рядом с группой материалов и сохраните разрешенное значение, затем нажмите «Сохранить»:
Ваша роль должна выглядеть так (игнорируйте два верхних объекта авторизации BC_A и RS):
Аналогичным образом, я создал другую роль, ограничивающую данные по группе материалов YBR01, выполнив те же шаги, что и выше:
Создав свои роли, я создал двух пользователей для тестирования каждой роли, пользователя YBR01_DLC и YBF02_DCL, каждый с соответствующими ролями:
YBR01_DCL:
Язык управления диалогом (DCL) | АфраЛИСП
Что такое язык управления диалогом?
Dialog Control Language или сокращенно DCL — это простой язык разметки, который позволяет программистам в AutoLISP и Visual LISP создавать диалоговые окна, которые можно интегрировать в их подпрограммы. Это означает, что процедура AutoLISP может собирать ряд входных данных от пользователя через знакомый и логичный интерфейс. Без DCL AutoLISP может принимать данные, вводимые пользователем только из командной строки.
AutoLISP включает ряд специальных функций, которые позволяют подпрограммам загружать, взаимодействовать с и выгружать диалоговые окна, написанные на DCL. DCL специально предназначен для использования с AutoCAD в сочетании с AutoLISP и Visual LISP. См. Статью DCL Wikipedia для получения дополнительной информации.
Учебные пособия по DCL для начинающих
Начало работы с DCL — Часть 1
Популярность: 13 посещений в день | Последний визит: 44 минуты назад | Всего посещений: 51,358
Начало работы с DCL — Часть 2
Популярность: 10.02 посещения в день | Последний визит: 6 часов назад | Всего посещений: 39 578
Предварительный просмотр файлов DCL
Популярность: 8,02 посещений в день | Последний визит: 1 час назад | Всего посещений: 31,664
Схема диалогового окна — Часть 1
Популярность: 8,12 посещений в день | Последний визит: 6 часов назад | Всего посещений: 32 077
Схема диалогового окна — Часть 2
Популярность: 6,41 посещений в день | Последний визит: 6 часов назад | Всего посещений: 25 298
Диалоговые окна и AutoLISP — Часть 1
Популярность: 14. 05 посещений в день | Последний визит: 6 часов назад | Всего посещений: 54,813
Диалоговые окна и AutoLISP — Часть 2
Популярность: 10,41 посещений в день | Последний визит: 6 часов назад | Всего посещений: 40,629
Диалоговые окна и AutoLISP — Часть 3
Популярность: 8,8 посещений в день | Последний визит: 6 часов назад | Всего посещений: 34,315
Диалоговые окна и AutoLISP — Часть 4
Популярность: 9,09 посещений в день | Последний визит: 6 часов назад | Всего посещений: 35 451
Диалоговые окна в действии
Популярность: 7.62 посещения в день | Последний визит: 9 часов назад | Всего посещений: 29,715
Учебные пособия по DCL для среднего уровня
Диалоговые окна вложенности
Популярность: 5,32 посещения в день | Последний визит: 3 часа назад | Всего посещений: 20,942
Скрытие диалоговых окон
Популярность: 5,21 посещений в день | Последний визит: 27 минут назад | Всего посещений: 20,539
Диалоговые данные по умолчанию
Популярность: 4,55 посещений в день | Последний визит: 11 часов назад | Всего посещений: 17,902
Еще раз о скрытии диалоговых окон — Часть 1
Популярность: 4. 41 посещение в день | Последний визит: 6 часов назад | Всего посещений: 17 215
Еще раз о скрытии диалоговых окон — Часть 2
Популярность: 2,15 посещений в день | Последний визит: 27 минут назад | Всего посещений: 8,380
Окно сообщений AutoLISP
Популярность: 6,98 посещений в день | Последний визит: 4 часа назад | Всего посещений: 27,207
Поле ввода AutoLISP
Популярность: 5,5 посещений в день | Последний визит: 8 часов назад | Всего посещений: 21 435
Ссылки на файлы DCL
Популярность: 5.95 посещений в день | Последний визит: 1 час назад | Всего посещений: 23,190
Вход в поля редактирования
Популярность: 5,24 посещений в день | Последний визит: 1 час назад | Всего посещений: 16627
DCL Без файла DCL — Часть 1
Популярность: 5,05 посещений в день | Последний визит: 7 часов назад | Всего посещений: 16 014
DCL Без файла DCL — Часть 2
Популярность: 4,7 посещений в день | Последний визит: 7 часов назад | Всего посещений: 14,914
DCL Progress Bar
Популярность: 5. 05 посещений в день | Последний визит: 11 часов назад | Всего посещений: 16,010
SQL | Команды DDL, DQL, DML, DCL и TCL
SQL | Команды DDL, DQL, DML, DCL и TCL
Язык структурированных запросов (SQL), как мы все знаем, является языком баз данных, с помощью которого мы можем выполнять определенные операции с существующей базой данных, а также мы можем использовать этот язык для создания базы данных.SQL использует определенные команды, такие как Create, Drop, Insert и т. Д., Для выполнения необходимых задач.
Эти команды SQL в основном делятся на четыре категории:
- DDL — язык определения данных
- DQl — язык запросов данных
- DML — язык обработки данных
- DCL — язык управления данными
Хотя многие ресурсы утверждают, что существует еще одна категория предложений SQL TCL — Transaction Control Language . Так что мы также подробно рассмотрим TCL.
- DDL (язык определения данных): DDL или язык определения данных фактически состоит из команд SQL, которые можно использовать для определения схемы базы данных. Он просто занимается описанием схемы базы данных и используется для создания и изменения структуры объектов базы данных в базе данных.
Примеры команд DDL:
- CREATE — используется для создания базы данных или ее объектов (таких как таблица, индекс, функция, представления, процедура хранения и триггеры).
- DROP — используется для удаления объектов из базы данных.
- ALTER — используется для изменения структуры базы данных.
- TRUNCATE –используется для удаления всех записей из таблицы, включая удаление всех пространств, выделенных для записей.
- КОММЕНТАРИЙ — используется для добавления комментариев в словарь данных.
- RENAME –используется для переименования объекта, существующего в базе данных.
DQL (язык запросов данных):
ОператорыDML используются для выполнения запросов к данным в объектах схемы.Цель команды DQL — получить некоторое отношение схемы на основе переданного ей запроса.
Пример DQL:
- SELECT — используется для извлечения данных из базы данных.
- DML (язык манипулирования данными): Команды SQL, которые имеют дело с манипуляциями с данными, присутствующими в базе данных, принадлежат DML или языку манипулирования данными, и это включает большинство операторов SQL.
Примеры DML:
- INSERT — используется для вставки данных в таблицу.
- ОБНОВЛЕНИЕ — используется для обновления существующих данных в таблице.
- DELETE — используется для удаления записей из таблицы базы данных.
- DCL (язык управления данными): DCL включает такие команды, как GRANT и REVOKE, которые в основном имеют дело с правами, разрешениями и другими элементами управления системы баз данных.
Примеры команд DCL:
- GRANT — дает пользователю права доступа к базе данных.
- REVOKE — отменить права доступа пользователя, предоставленные с помощью команды GRANT.
- TCL (язык управления транзакциями): команды TCL работают с транзакцией в базе данных.
Примеры команд TCL:
- COMMIT — совершает транзакцию.
- ROLLBACK — откатывает транзакцию в случае возникновения ошибки.
- SAVEPOINT — устанавливает точку сохранения в транзакции.
- SET TRANSACTION — указать характеристики транзакции.
Автор статьи: Димпи Варшни . Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью с помощью provide.geeksforgeeks.org или отправить ее по электронной почте на [email protected]. Смотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогайте другим гикам.