Всем привет! Сегодня попробуем автоматизировать процесс создания поручений с использованием платформы данных Microsoft Common Data Service и сервисов Power Apps и Power Automate. На базе Common Data Service построим сущности и атрибуты, при помощи Power Apps сделаем несложное мобильное приложение, ну а Power Automate поможет связать все компоненты единой логикой. Не будем терять времени!
![](https://habrastorage.org/webt/fd/ct/vw/fdctvwzh2wzcanyeef7c01nqrms.jpeg)
Но для начала немного терминологии. Что из себя представляет Power Apps и Power Automate мы уже знаем, но, если вдруг кто не в курсе, рекомендую ознакомиться с моими предыдущими статьями, например, вот тут или тут. Однако, что из себя представляет Common Data Service мы еще не разбирали, поэтому самое время добавить немного теории.
![](https://habrastorage.org/webt/on/_z/cm/on_zcmdamzxnu9y3izp6fwem8u0.png)
Common Data Service (сокращенно CDS) это платформа хранения данных вроде базы данных. Собственно, это и есть база данных, расположенная в облаке Microsoft 365 и имеющая тесную связь со всеми сервисами Microsoft Power Platform. Также CDS доступна через Microsoft Azure и Microsoft Dynamics 365. Данные в CDS могут попадать различными способами, один из способов, например, создание записей в CDS вручную, по аналогии с SharePoint. Все данные в Common Data Service хранятся в виде таблиц, называемых сущностями. Есть ряд базовых сущностей, которые можно использовать для своих целей, но можно также создавать и свои собственные сущности со своими наборами атрибутов. Аналогично SharePoint, в Common Data Service при создании атрибута можно указать его тип и типов здесь огромное количество. Одной из интересных особенностей является возможность создавать так называемые «Наборы параметров» (аналог вариантов для поля типа Выбор в SharePoint), которые можно переиспользовать в любом поле сущности. Плюс, данные могут быть загружены из различных поддерживаемых источников, а также из приложений Power Apps и из потоков Power Automate. В общем, если кратко, то CDS это система хранения и поиска данных. Преимуществом данной системы является тесная интеграция со всеми сервисами Microsoft Power Platform, что позволяет выстраивать структуры данных различного уровня сложности и использовать их в дальнейшем в Power Apps приложениях и с легкостью подключаться к данным через Power BI для построения отчетности. CDS имеет свой интерфейс для создания сущностей, атрибутов, бизнес-правил, связей, представлений и дашбордов. Интерфейс работы с CDS расположен на сайте make.powerapps.com в разделе «Данные», где собраны все основные возможности для настройки сущностей.
Итак, давайте попробуем что-нибудь настроить. Создадим в Common Data Service новую сущность «Поручение»:
![](https://habrastorage.org/webt/ah/ez/o_/ahezo_h3r9fgyb-ld8cz3df9dcy.png)
Как Вы можете заметить, при создании новой сущности необходимо указать ее имя в единичном и множественном значении, а также требуется задать ключевое поле. В нашем случае это будет поле «Наименование». Кстати, также можете обратить внимание, что внутренние и отображаемые имена сущностей и полей указываются сразу на одной форме, в отличие от SharePoint, где требуется сначала создать поле на латинице, а потом уже переименовывать его на русский язык.
Также, при создании сущности есть возможность произвести огромное количество различных настроек, но сейчас не будем этого делать. Создаем сущность и переходим к созданию атрибутов.
Создаем поле Статус с типом «Набор параметров» и определяем 4 параметра в разрезе этого поля (Новое, Исполнение, Исполнено, Отклонено):
![](https://habrastorage.org/webt/yf/i4/ey/yfi4eyrii8r6u0kweuq50dthxho.png)
Аналогичным образом создаем остальные поля, которые потребуются нам для реализации приложения. Кстати, перечень доступных типов полей указан ниже, согласитесь, их явно немало?
![](https://habrastorage.org/webt/bv/bm/lt/bvbmlt5otdyyv4_afs5pvixwske.png)
Обратите еще внимание на настройку обязательности полей, помимо «Обязательное» и «Необязательное» есть еще вариант «Рекомендуется»:
![](https://habrastorage.org/webt/em/ak/ll/emakllehkkcggjkk8frr6mhkkfk.png)
После того, как мы создали все необходимые поля, можно посмотреть на весь перечень полей текущей сущности в соответствующем разделе:
![](https://habrastorage.org/webt/q8/o-/xi/q8o-xiweqdykwozz2tbzqcfnu44.png)
Сущность настроена и сейчас необходимо настроить форму ввода данных на уровне Common Data Service для текущей сущности. Переходим на вкладку «Формы» и нажимаем «Добавить форму» -> «Основная форма»:
![](https://habrastorage.org/webt/gr/2e/tk/gr2etk6fxftj9vjjmvo5dzuyag0.png)
Настраиваем новую форму для ввода данных через Common Data Service и выстраиваем поля друг за другом, после чего нажимаем кнопку «Опубликовать»:
![](https://habrastorage.org/webt/jq/nd/p7/jqndp7g-8sdtoe19nb8jqdb8mqe.png)
Форма готова, проверим ее работу. Возвращаемся в Common Data Service и переходим на вкладку «Данные», после чего нажимаем «Добавить запись»:
![](https://habrastorage.org/webt/sa/tz/jy/satzjys_qgnnkvttrtwqzlbk0fw.png)
В открывшемся окне формы вводим все необходимые данные и нажимаем «Сохранить»:
![](https://habrastorage.org/webt/jx/lk/12/jxlk12ldmafw4eon9vvqtph2dmi.png)
Теперь в разделе «Данные» у нас есть одна запись:
![](https://habrastorage.org/webt/xh/td/uq/xhtduqdgavjd2dbs_ewbiihyf28.png)
Но отображается мало полей. Это легко исправить. Переходим на вкладку «Представления» и открываем на редактирование самое первое представление. Размещаем нужные поля на форме представления и нажимаем «Опубликовать»:
![](https://habrastorage.org/webt/kn/j5/er/knj5erdkyx8ok10turc6jb30lwm.png)
Проверяем состав полей в разделе «Данные». Всё отлично:
![](https://habrastorage.org/webt/zi/xj/jy/zixjjyd-zx7conlcnfo23vxqktc.png)
Итак, на стороне Common Data Service готова сущность, поля, представление данных и форма для ручного ввода данных непосредственно из CDS. Теперь давайте сделаем приложение холста Power Apps для нашей новой сущности. Переходим к созданию нового приложения Power Apps:
![](https://habrastorage.org/webt/qt/xh/86/qtxh86cuh98rej1ikaiwe7zjepu.png)
В новом приложении производим подключение к нашей сущности в Common Data Service:
![](https://habrastorage.org/webt/17/wo/hz/17wohzsmcizmhvs1d3urv8awt8m.png)
После всех подключений настраиваем несколько экранов нашего мобильного приложения Power Apps. Делаем первый экран с небольшой статистикой и переходами между представлениями:
![](https://habrastorage.org/webt/zw/av/um/zwavumdy6il3kiqu2hp4viiar-c.png)
Делаем второй экран с перечнем имеющихся поручений в сущности CDS:
![](https://habrastorage.org/webt/2n/qx/an/2nqxanlehrnu60tjjw1euga8tsm.png)
И делаем еще один экран для создания поручения:
![](https://habrastorage.org/webt/vr/ol/v3/vrolv3sehbzah_lidmmug5zyhjk.png)
Сохраняем и публикуем приложение, после чего запускаем его для проверки. Заполняем поля и нажимаем кнопку «Создать»:
![](https://habrastorage.org/webt/b6/jt/bw/b6jtbwk09vicx0zwa0ptdr83gfk.png)
Проверим, создалась ли запись в CDS:
![](https://habrastorage.org/webt/gq/88/1t/gq881txqthcin3z9xflwzbarrhg.png)
Проверим то же самое из приложения:
![](https://habrastorage.org/webt/ql/ka/3h/qlka3h8pwtlpjsynqi2wpiggptc.png)
Все данные на месте. Остался финальный штрих. Сделаем небольшой Power Automate поток, который при создании записи в Common Data Service будет отправлять уведомление исполнителю поручения:
![](https://habrastorage.org/webt/a7/ee/ib/a7eeibgwq1qj1piwuzlb1_aef9i.png)
В итоге, мы с Вами сделали сущность и форму на уровне Common Data Service, приложение Power Apps для взаимодействия с данными CDS и поток Power Automate для автоматической рассылки уведомлений исполнителям, при создании нового поручения.
Теперь о ценах. Common Data Service не входит в Power Apps, поставляемый в составе подписки Office 365. Это значит, что если у вас есть подписка Office 365 и в рамках нее есть Power Apps, то Common Data Service, по умолчанию, у вас не будет. Для доступа к CDS необходима покупка отдельной лицензии на Power Apps. Цены на планы и варианты лицензирования указаны ниже и взяты с сайта powerapps.microsoft.com:
![](https://habrastorage.org/webt/ix/j6/pi/ixj6pixwpxlk_d-c7vwvj4p6xic.png)
В следующих статьях мы с Вами рассмотрим еще больше возможностей Common Data Service и Microsoft Power Platform. Всем хорошего дня!
![](https://habrastorage.org/webt/fd/ct/vw/fdctvwzh2wzcanyeef7c01nqrms.jpeg)
Но для начала немного терминологии. Что из себя представляет Power Apps и Power Automate мы уже знаем, но, если вдруг кто не в курсе, рекомендую ознакомиться с моими предыдущими статьями, например, вот тут или тут. Однако, что из себя представляет Common Data Service мы еще не разбирали, поэтому самое время добавить немного теории.
![](https://habrastorage.org/webt/on/_z/cm/on_zcmdamzxnu9y3izp6fwem8u0.png)
Common Data Service (сокращенно CDS) это платформа хранения данных вроде базы данных. Собственно, это и есть база данных, расположенная в облаке Microsoft 365 и имеющая тесную связь со всеми сервисами Microsoft Power Platform. Также CDS доступна через Microsoft Azure и Microsoft Dynamics 365. Данные в CDS могут попадать различными способами, один из способов, например, создание записей в CDS вручную, по аналогии с SharePoint. Все данные в Common Data Service хранятся в виде таблиц, называемых сущностями. Есть ряд базовых сущностей, которые можно использовать для своих целей, но можно также создавать и свои собственные сущности со своими наборами атрибутов. Аналогично SharePoint, в Common Data Service при создании атрибута можно указать его тип и типов здесь огромное количество. Одной из интересных особенностей является возможность создавать так называемые «Наборы параметров» (аналог вариантов для поля типа Выбор в SharePoint), которые можно переиспользовать в любом поле сущности. Плюс, данные могут быть загружены из различных поддерживаемых источников, а также из приложений Power Apps и из потоков Power Automate. В общем, если кратко, то CDS это система хранения и поиска данных. Преимуществом данной системы является тесная интеграция со всеми сервисами Microsoft Power Platform, что позволяет выстраивать структуры данных различного уровня сложности и использовать их в дальнейшем в Power Apps приложениях и с легкостью подключаться к данным через Power BI для построения отчетности. CDS имеет свой интерфейс для создания сущностей, атрибутов, бизнес-правил, связей, представлений и дашбордов. Интерфейс работы с CDS расположен на сайте make.powerapps.com в разделе «Данные», где собраны все основные возможности для настройки сущностей.
Итак, давайте попробуем что-нибудь настроить. Создадим в Common Data Service новую сущность «Поручение»:
![](https://habrastorage.org/webt/ah/ez/o_/ahezo_h3r9fgyb-ld8cz3df9dcy.png)
Как Вы можете заметить, при создании новой сущности необходимо указать ее имя в единичном и множественном значении, а также требуется задать ключевое поле. В нашем случае это будет поле «Наименование». Кстати, также можете обратить внимание, что внутренние и отображаемые имена сущностей и полей указываются сразу на одной форме, в отличие от SharePoint, где требуется сначала создать поле на латинице, а потом уже переименовывать его на русский язык.
Также, при создании сущности есть возможность произвести огромное количество различных настроек, но сейчас не будем этого делать. Создаем сущность и переходим к созданию атрибутов.
Создаем поле Статус с типом «Набор параметров» и определяем 4 параметра в разрезе этого поля (Новое, Исполнение, Исполнено, Отклонено):
![](https://habrastorage.org/webt/yf/i4/ey/yfi4eyrii8r6u0kweuq50dthxho.png)
Аналогичным образом создаем остальные поля, которые потребуются нам для реализации приложения. Кстати, перечень доступных типов полей указан ниже, согласитесь, их явно немало?
![](https://habrastorage.org/webt/bv/bm/lt/bvbmlt5otdyyv4_afs5pvixwske.png)
Обратите еще внимание на настройку обязательности полей, помимо «Обязательное» и «Необязательное» есть еще вариант «Рекомендуется»:
![](https://habrastorage.org/webt/em/ak/ll/emakllehkkcggjkk8frr6mhkkfk.png)
После того, как мы создали все необходимые поля, можно посмотреть на весь перечень полей текущей сущности в соответствующем разделе:
![](https://habrastorage.org/webt/q8/o-/xi/q8o-xiweqdykwozz2tbzqcfnu44.png)
Сущность настроена и сейчас необходимо настроить форму ввода данных на уровне Common Data Service для текущей сущности. Переходим на вкладку «Формы» и нажимаем «Добавить форму» -> «Основная форма»:
![](https://habrastorage.org/webt/gr/2e/tk/gr2etk6fxftj9vjjmvo5dzuyag0.png)
Настраиваем новую форму для ввода данных через Common Data Service и выстраиваем поля друг за другом, после чего нажимаем кнопку «Опубликовать»:
![](https://habrastorage.org/webt/jq/nd/p7/jqndp7g-8sdtoe19nb8jqdb8mqe.png)
Форма готова, проверим ее работу. Возвращаемся в Common Data Service и переходим на вкладку «Данные», после чего нажимаем «Добавить запись»:
![](https://habrastorage.org/webt/sa/tz/jy/satzjys_qgnnkvttrtwqzlbk0fw.png)
В открывшемся окне формы вводим все необходимые данные и нажимаем «Сохранить»:
![](https://habrastorage.org/webt/jx/lk/12/jxlk12ldmafw4eon9vvqtph2dmi.png)
Теперь в разделе «Данные» у нас есть одна запись:
![](https://habrastorage.org/webt/xh/td/uq/xhtduqdgavjd2dbs_ewbiihyf28.png)
Но отображается мало полей. Это легко исправить. Переходим на вкладку «Представления» и открываем на редактирование самое первое представление. Размещаем нужные поля на форме представления и нажимаем «Опубликовать»:
![](https://habrastorage.org/webt/kn/j5/er/knj5erdkyx8ok10turc6jb30lwm.png)
Проверяем состав полей в разделе «Данные». Всё отлично:
![](https://habrastorage.org/webt/zi/xj/jy/zixjjyd-zx7conlcnfo23vxqktc.png)
Итак, на стороне Common Data Service готова сущность, поля, представление данных и форма для ручного ввода данных непосредственно из CDS. Теперь давайте сделаем приложение холста Power Apps для нашей новой сущности. Переходим к созданию нового приложения Power Apps:
![](https://habrastorage.org/webt/qt/xh/86/qtxh86cuh98rej1ikaiwe7zjepu.png)
В новом приложении производим подключение к нашей сущности в Common Data Service:
![](https://habrastorage.org/webt/17/wo/hz/17wohzsmcizmhvs1d3urv8awt8m.png)
После всех подключений настраиваем несколько экранов нашего мобильного приложения Power Apps. Делаем первый экран с небольшой статистикой и переходами между представлениями:
![](https://habrastorage.org/webt/zw/av/um/zwavumdy6il3kiqu2hp4viiar-c.png)
Делаем второй экран с перечнем имеющихся поручений в сущности CDS:
![](https://habrastorage.org/webt/2n/qx/an/2nqxanlehrnu60tjjw1euga8tsm.png)
И делаем еще один экран для создания поручения:
![](https://habrastorage.org/webt/vr/ol/v3/vrolv3sehbzah_lidmmug5zyhjk.png)
Сохраняем и публикуем приложение, после чего запускаем его для проверки. Заполняем поля и нажимаем кнопку «Создать»:
![](https://habrastorage.org/webt/b6/jt/bw/b6jtbwk09vicx0zwa0ptdr83gfk.png)
Проверим, создалась ли запись в CDS:
![](https://habrastorage.org/webt/gq/88/1t/gq881txqthcin3z9xflwzbarrhg.png)
Проверим то же самое из приложения:
![](https://habrastorage.org/webt/ql/ka/3h/qlka3h8pwtlpjsynqi2wpiggptc.png)
Все данные на месте. Остался финальный штрих. Сделаем небольшой Power Automate поток, который при создании записи в Common Data Service будет отправлять уведомление исполнителю поручения:
![](https://habrastorage.org/webt/a7/ee/ib/a7eeibgwq1qj1piwuzlb1_aef9i.png)
В итоге, мы с Вами сделали сущность и форму на уровне Common Data Service, приложение Power Apps для взаимодействия с данными CDS и поток Power Automate для автоматической рассылки уведомлений исполнителям, при создании нового поручения.
Теперь о ценах. Common Data Service не входит в Power Apps, поставляемый в составе подписки Office 365. Это значит, что если у вас есть подписка Office 365 и в рамках нее есть Power Apps, то Common Data Service, по умолчанию, у вас не будет. Для доступа к CDS необходима покупка отдельной лицензии на Power Apps. Цены на планы и варианты лицензирования указаны ниже и взяты с сайта powerapps.microsoft.com:
![](https://habrastorage.org/webt/ix/j6/pi/ixj6pixwpxlk_d-c7vwvj4p6xic.png)
В следующих статьях мы с Вами рассмотрим еще больше возможностей Common Data Service и Microsoft Power Platform. Всем хорошего дня!