Поделиться через


Подключение к Microsoft Dataverse из рабочих процессов в Azure Logic Apps

Область применения: Azure Logic Apps (Потребление + Стандартный)

Внимание

30 августа 2022 г. операции соединителя для Common Data Service 2.0, также известные как Microsoft Dataverse (устаревшая версия), перенесены на текущий соединитель Microsoft Dataverse. Устаревшие операции имеют метку "устаревшее", а текущие операции имеют метку "предварительная версия". Текущий соединитель Dataverse можно использовать в любых существующих или новых рабочих процессах приложения логики. Для обратной совместимости существующие рабочие процессы продолжают работать с устаревшим соединителем Dataverse. Однако обязательно просмотрите эти рабочие процессы и быстро обновите их.

С октября 2023 г. устаревшая версия стала недоступной для новых рабочих процессов. Существующие рабочие процессы продолжают работать, но для новых рабочих процессов необходимо использовать текущие операции соединителя Dataverse. Будет объявлено временная шкала для даты завершения работы для устаревших действий и триггеров. Дополнительные сведения см. в статье о соединителе Microsoft Dataverse (устаревшая версия) для Azure Logic Apps, который не рекомендуется использовать и заменен другим соединителем.

Чтобы создавать и запускать автоматизированные рабочие процессы, которые создают строки в базе данных Microsoft Dataverse и управляют ими, можно использовать Azure Logic Apps и соединитель Microsoft Dataverse. Эти рабочие процессы могут создавать и обновлять строки, а также выполнять другие операции. Вы также можете получить сведения из базы данных Dataverse и сделать выходные данные доступными для других действий, используемых в рабочих процессах. Например, при добавлении, обновлении или удалении строки в базе данных Dataverse можно отправить сообщение электронной почты с помощью соединителя Office 365 Outlook.

В этом руководстве показано, как создать рабочий процесс, который создает строку задачи при создании новой строки потенциальных пользователей.

Справочник по соединителям

Технические сведения, основанные на описании Swagger соединителя, таких как операции, ограничения и другие сведения, см. на странице справочника по управляемому соединителю.

Необходимые компоненты

Добавление триггера Dataverse

При добавлении триггера или действия, которое подключается к службе или системе, и у вас нет существующего или активного подключения, Azure Logic Apps предложит предоставить сведения о подключении, которые зависят от типа подключения, например:

  • Учетные данные учетной записи
  • Имя, используемое для подключения
  • Имя сервера или системы
  • Тип проверки подлинности
  • Строка подключения

В этом примере используется триггер Dataverse, который запускает рабочий процесс при добавлении, обновлении или удалении строки.

Примечание.

Соединитель Dataverse имеет параметры, относящиеся к операции, и параметры для конкретной базы данных. Например, при выборе таблицы параметры, доступные для этой таблицы, различаются и отличаются от других таблиц.

  1. В портал Azure откройте ресурс приложения логики "Стандартный" и пустой рабочий процесс в конструкторе.

  2. В конструкторе выполните следующие общие действия, чтобы добавить триггер Microsoft Dataverse с именем "При добавлении, изменении или удалении строки".

  3. При появлении запроса войдите в среду Dataverse или базу данных.

  4. В поле сведений триггера укажите необходимые значения.

    Пример триггера см. в разделе "При добавлении, изменении или удалении строки".

    Screenshot shows Standard workflow designer and example trigger.

  5. По завершении сохраните рабочий процесс приложения логики. На панели инструментов конструктора выберите Сохранить.

  6. Теперь добавьте хотя бы одно действие для рабочего процесса, которое будет выполняться при срабатывании триггера. Например, можно добавить действие Dataverse или действие, которое отправляет сообщение электронной почты на основе выходных данных триггера.

Добавление действия Dataverse

При добавлении триггера или действия, которое подключается к службе или системе, и у вас нет существующего или активного подключения, Azure Logic Apps предложит предоставить сведения о подключении, которые зависят от типа подключения, например:

  • Учетные данные учетной записи
  • Имя, используемое для подключения
  • Имя сервера или системы
  • Тип проверки подлинности
  • Строка подключения

В этом примере используется действие Dataverse, которое добавляет новую строку в базу данных.

Примечание.

Соединитель Dataverse имеет параметры, относящиеся к операции, и параметры для конкретной базы данных. Например, при выборе таблицы параметры, доступные для этой таблицы, различаются и отличаются от других таблиц.

  1. В портал Azure откройте ресурс приложения логики "Стандартный" и рабочий процесс в конструкторе.

  2. В конструкторе выполните следующие общие действия, чтобы добавить действие Microsoft Dataverse с именем Add a new row.

  3. При появлении запроса войдите в среду Dataverse или базу данных.

  4. В поле сведений о действии укажите необходимые значения.

    Пример действия см. в разделе "Добавление новой строки".

    Screenshot shows Standard workflow designer and example action.

  5. По завершении сохраните рабочий процесс приложения логики. На панели инструментов конструктора выберите Сохранить.

  6. Продолжайте добавлять дополнительные действия, если вы хотите.

Тестирование рабочего процесса

Чтобы протестировать и активировать рабочий процесс, выполните следующие действия.

  1. В меню "Рабочий процесс" выберите пункт Обзор.

  2. На панели инструментов "Обзор" нажмите кнопку "Выполнить".>

  3. Воспроизводите условия, необходимые триггеру для выполнения рабочего процесса.

Возврат строк на основе фильтра

Для действий, возвращающих строки, такие как действие "Список строк ", можно использовать запрос ODATA, возвращающий строки на основе указанного фильтра. Например, можно настроить действие, которое возвращает только строки для активных учетных записей. Дополнительные сведения о примере действия см. в разделе "Список строк".

  1. В конструкторе в действии откройте список дополнительных параметров и выберите свойство "Фильтр строк".

    Screenshot shows Standard workflow and property named Filter rows.

  2. В свойстве "Фильтр строк" , которое теперь отображается в действии, введите выражение запроса ODATA, например:

    statuscode eq 1

    Screenshot shows Standard workflow and property named Filter rows with ODATA query.

Дополнительные сведения о параметрах системного запроса см. в $filter разделе "Запрос данных с помощью веб-API — фильтрация результатов".

Возврат строк на основе порядка сортировки

Для действий, возвращающих строки, например действия "Список строк ", можно использовать запрос ODATA, возвращающий строки в определенной последовательности, которая зависит от строк, возвращаемых действием. Например, можно настроить действие для возврата строк, организованных по имени учетной записи. Дополнительные сведения о примере действия см. в разделе "Список строк".

  1. В конструкторе в действии откройте список дополнительных параметров и выберите свойство Sort By .

    Screenshot shows Standard workflow, a Dataverse action, and Sort By property.

  2. В свойстве Sort By , которое теперь отображается в действии, введите имя столбца, используемое для сортировки, например имя:

    Screenshot shows Standard workflow, a Dataverse action, and Sort By property with column name.

Дополнительные сведения о параметрах системного запроса см. в $orderby разделе "Запрос данных с помощью веб-API — сортировка по".

Типы данных полей

В триггере или действии тип данных значения поля должен соответствовать требуемому типу данных поля. Это требование применяется, если вы вручную вводите значение или выбираете значение из динамического списка содержимого.

Примечание.

Соединитель Dataverse имеет параметры, относящиеся к операции, и параметры для конкретной базы данных. Например, при выборе таблицы параметры, доступные для этой таблицы, различаются и отличаются от других таблиц.

Например, предположим, что у вас есть таблица с именем Tasks. Эта таблица содержит поля, которые применяются только к этой таблице, а другие таблицы имеют собственные поля. В примере таблицы "Задачи " в следующей таблице описываются некоторые типы полей и типы данных, необходимые для их значений.

Поле Тип данных Description
Текстовое поле Однострочный текст Требуется одна строка текста или динамического содержимого с типом текстовых данных, например следующие свойства:

- Description
- Категория
целочисленное поле. Целое число Требует целочисленного или динамического содержимого, имеющего целочисленный тип данных, например следующие свойства:

- Процент выполнения
- Длительность
Поле даты Дата и время Требуется либо дата в формате MM/DD/YYY, либо динамическое содержимое с типом данных даты, например следующие свойства:

- Создано
- Дата начала
- Фактическое начало
- Фактическое окончание
- Срок оплаты
Поле, ссылающееся на другую строку сущности Первичный ключ Требуется как идентификатор строки, например GUID, так и тип подстановки, что означает, что значения из динамического списка содержимого не будут работать, например, следующие свойства:

- Владелец: должен быть допустимым идентификатором пользователя или идентификатором строки команды.
- Тип владельца: должен быть типом поиска, например systemusers или teams соответственно.

- Что касается: должен быть допустимым идентификатором строки, например идентификатором учетной записи или идентификатором строки контакта.
- Тип "В отношении": должен быть типом поиска, например accounts или contacts соответственно.

- Клиент: должен быть допустимым идентификатором строки, например идентификатором учетной записи или идентификатором строки контакта.
- Тип клиента: должен быть типом поиска, например accounts или contacts соответственно.

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

  • На основе свойства Owner, указывающего идентификатор пользователя и свойство "Тип владельца", указывающее systemusers тип подстановки, действие связывает новую строку с конкретным пользователем.

  • На основе свойства "Относительно", указывающего идентификатор строки и свойство "Относительно типа", accounts указывающее тип подстановки, действие связывает новую строку с определенной учетной записью.

Устранение неполадок и решение проблем

Вызовы из нескольких сред

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

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

  1. Определите и войдите в организацию Dataverse, из которой требуется удалить уведомления.

  2. В браузере Chrome найдите регистрацию обратного вызова, которую вы хотите удалить.

    1. Просмотрите общий список для всех регистраций обратного вызова по следующему универсальному коду ресурса (URI) OData, чтобы можно было просматривать данные внутри сущности callbackregistrations:

      https://{organization-name}.crm{instance-number}.dynamics.com/api/data/v9.0/callbackregistrations:

      Примечание.

      Если значения не возвращаются, возможно, у вас нет разрешений на просмотр этого типа сущности или вы, возможно, не вошли в правильную организацию.

    2. Фильтрация по активации логического имени entityname сущности и событию уведомления, которое соответствует рабочему процессу приложения логики (сообщение). Каждый тип события сопоставляется с целым числом сообщения следующим образом.

      Тип события Целое число сообщения
      Создание 1
      Удаление 2
      Обновить 3
      CreateOrUpdate 4
      CreateOrDelete 5
      UpdateOrDelete 6
      CreateOrUpdateOrDelete 7

      В следующем примере показано, как фильтровать Create уведомления для сущности с именем nov_validation с помощью следующего URI OData для примера организации:

      https://fabrikam-preprod.crm1.dynamics.com/api/data/v9.0/callbackregistrations?$filter=entityname eq 'nov_validation' and message eq 1

      Screenshot shows browser window and OData URI in address bar.

      Примечание.

      Если для одной и той же сущности или события существует несколько триггеров, можно отфильтровать список с помощью дополнительных фильтров, например атрибутов createdon и _owninguser_value. Имя пользователя владельца отображается в разделе /api/data/v9.0/systemusers({id}).

    3. После нахождения идентификатора для регистрации обратного вызова, который требуется удалить, выполните следующие действия.

      1. В браузере Chrome откройте Средства для разработчиков Chrome (клавиша на клавиатуре: F12).

      2. В верхней части окна перейдите на вкладку Консоль.

      3. В командной строке введите следующую команду, которая отправляет запрос на удаление указанной регистрации обратного вызова:

        fetch('http://{organization-name}.crm{instance-number}.dynamics.com/api/data/v9.0/callbackregistrations({ID-to-delete})', { method: 'DELETE'})

        Внимание

        Убедитесь, что запрос выполняется на странице неуниверсального клиентского интерфейса (UCI), например на странице отклика OData или API. В противном случае логика в файле app.js может помешать выполнению этой операции.

    4. Чтобы убедиться, что регистрации обратного вызова больше не существует, просмотрите список регистраций обратного вызова.

Повторяющаяся сущность callbackregistrations

В рабочих процессах приложения логики уровня "Стандартный" в определенных условиях, таких как перемещение экземпляра или перезапуск приложения, триггер Microsoft Dataverse запускает повторяющийся запуск, который создает дубликат callbackregistrations сущности в базе данных Dataverse. Если изменить рабочий процесс уровня "Стандартный", который начинается с триггера Dataverse, проверка, дублируется ли эта callbackregistrations сущность. Если дубликат существует, удалите дубликат callbackregistrations сущности вручную.

Следующие шаги