Примеры малокодовых подключаемых модулей Dataverse (предварительная версия)

[Данный раздел посвящен предварительному выпуску и может быть изменен.]

Назначение этих примеров подключаемых модулей — помочь вам приступить к работе с подключаемыми модулями путем их интеграции в свои приложения. Вы поймете, что интерфейс разработки включает в себя разработку пользовательских API-интерфейсов Microsoft Dataverse на базе выражений Power Fx, которые могут инициировать действия, внутренние или внешние по отношению к Dataverse.

Важно!

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

Необходимые условия

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

Примечание

Шаблоны сообщений электронной почты доступны только для определенных таблиц. Больше информации: Создание шаблонов для электронной почты

Возврат неотрицательного значения

В этом примере функция Ab()sиспользуется для возвращения абсолютного значения полученного аргумента. Если число отрицательное, функция Abs возвращает противоположное ему положительное число.

  1. Запустите приложение Dataverse Accelerator и на панели команд выберите Новое действие > Мгновенный подключаемый модуль.

  2. Укажите отображаемое имя — например, имя формулы — и описание.

  3. Создайте параметр Out соответствующего типа (например, «Строка») для проверки ожидаемого поведения. При желании используйте для упрощения тестирования входные параметры, уместные для этой формулы.

  4. В редакторе формул заключите параметр Out в фигурные скобки:

    {Out: "" }
    
  5. Введите выражение, которое проверяет формулу:

    • Убедитесь, что IntelliSense принимает формулу (текст становится светло-голубым).
    • Реализуйте выражение, которое обеспечивает выходные данные — например, для проверки результата.
    {Out: "Abs(-5) = 5: " & Text( Abs(-5) = 5 )  }
    
  6. Выберите Далее, затем выберите Сохранить.

  7. Выберите Проверить, чтобы протестировать формулу. Используйте выходной параметр для проверки результата.

Проверка входных данных и пользовательские ошибки

Поиск повторяющихся данных

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

  1. Запустите приложение Dataverse Accelerator и на панели команд выберите Новое действие > Автоматизированный подключаемый модуль.
  2. В поле "Имя" введите Проверка на повторы.
  3. В поле Таблица выберите Контакт.
  4. В поле Запускать этот подключаемый модуль, когда строка выберите Создается.
  5. В поле Формула введите следующую формулу:
 If( !IsBlank(LookUp([@Contacts],'Last Name'=ThisRecord.'Last Name' && 'First Name'=ThisRecord.'First Name')),
    Error("You have existing contacts with the same first name and last name")
)
  1. Выберите Сохранить.

Тестирование подключаемый модуль

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

Появится следующее пользовательское сообщение об ошибке: У вас два контакта с одинаковыми фамилией и именем.

Проверка данных

Отобразите конкретные типы ошибок с помощью перечисления ErrorKind.

  1. Создайте новый автоматизированный подключаемый модуль.

  2. Укажите следующие значения:

    • Имя: Проверка входных данных
    • Описание: Проверяет допустимость данных и выдает ошибку, если она недействительна
    • Таблица: Встреча
    • Запускать этот подключаемый модуль, когда строка: Обновляется
  3. Введите формулу ниже:

    If(ThisRecord.'Due Date' < Now(), 
     Error({ Kind: ErrorKind.Validation , Message: "The due date cannot be in the past" })
    );
    
  4. В разделе Дополнительные параметры установите для параметра Когда это должно выполняться значение Перед операцией; это правило должно выполняться перед сохранением данных во избежание появления недопустимых данных.

  5. Выберите Сохранить.

Подробнее о пользовательских ошибках можно узнать из статьи Функция Error().

Отправка сообщения электронной почты на основе события данных

Необходимые условия:

Пример шаблона сообщения электронной почты

Вот пример шаблона сообщения электронной почты, который вы можете создать для SenMail на основе события данных:

  • Тип шаблона: Глобальный
  • Имя: Спасибо за заказ
  • Описание: Используйте этот шаблон, чтобы поблагодарить клиента за размещенный у вас заказ.
  • Тема: Thank you for your order <orderconfirmation-{!salesorder:Order Number; }>
  • Текст: используйте следующий код.
   Hello {!Sales Order:First Name;},
   Order Type: {! Sales Order: Order Type;},
   Location Type: {! Sales Order: Location Type;},
   Address1: {! Sales Order: Address 1;},
   Address2: {! Sales Order: Address 2;},
   Preferred Service Start Date 1: {! Sales Order: Preferred Service Start Date;},
   Next Step- We take upto 48 hrs to schedule an in-person and will notify you as soon as we have a In-person Technician allocated at your site. For any questions, please contact us at 1-800-CON-SOLAR
   Yours Sincerely, 
   Contoso Sales 

Создание автоматизированного подключаемого модуля

  1. Запустите приложение Dataverse Accelerator и выберите +Новый подключаемый модуль в разделе Автоматизированные подключаемые модули.
  2. Введите следующие данные:
    • Имя: SendEmailUponCreate

    • Таблица: выберите логическое имя таблицы заказов на продажу, например SalesOrder. Это событие основано на таблице «Заказы на продажу».

    • Запускать этот подключаемый модуль, когда строка: Создается

    • Формула: вставьте приведенный ниже код в поле Формула. Дополнительную информацию о функции SendEmailFromTemplate можно найти в разделе Действие SendEmailFromTemplate.

      XSendEmailFromTemplate(
          LookUp('Email Templates',StartsWith(title,"Order Thank You")).'Email Template',
      ThisRecord,
      LookUp(Users,'Primary Email'="sampleemail@sample.com"),[ThisRecord.Email]
      )
      
  3. Выберите Дополнительно > После операции.
  4. Выберите Сохранить.

Появится подтверждающее сообщение Подключаемый модуль успешно сохранен.

Отправка уведомлений в приложении на основе мгновенного действия

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

Создание малокодового подключаемого модуля для отправки уведомления в приложении

  1. Запустите приложение ускорителя Dataverse и выберите +Создать подключаемый модуль в разделе Мгновенные подключаемые модули.
  2. Введите следующую информацию и выберите Далее:
    • Имя: NotifyTechnican1
    • Описание: Этот мгновенный подключаемый модуль уведомляет пользователя приложения.
  3. На странице Определения создайте входные параметры со следующими типами данных:
    • OrderID: Строка
    • TechnicianEmail: Строка
  4. Формула. Вставьте следующий код в поле Формула. Дополнительные сведения об этой функции см. в статье Действие SendAppNotification.
     XSendAppNotification(
         "New service",
         LookUp(Users,'Primary Email'=TechnicianEmail),
         "You have a new solar panel installation scheduled on "& LookUp('Scheduling Results','OrderId'=OrderID).'ServiceDate'&" in "& LookUp('Service Orders','Order Number'=OrderID).City &". Contact the coordinator with any questions.",
     [
         XCreateSidePaneActionForEntity(
                 "View order",
             OrderID,
             "Sales Order",
             "cr8b8_serviceorder1",
             LookUp('Service Orders','Order Number'=OrderID).'Service Order'
             )
         ]
     )
    
  5. Выберите Далее.
  6. На странице Сводка выберите Сохранить.

Вызов мгновенного действия «уведомление в приложении»

  1. Выберите приложение на основе холста, затем выберите Изменить на панели команд (или создайте новое приложение).
  2. Выберите экран на левой панели навигации или создайте новый.
  3. В меню Вставка добавьте на страницу элемент управления Кнопка, введя для свойства Текст значение Уведомить специалиста.
  4. Нажмите кнопку и введите в строку формул fx следующий код, где DataCardValue17 — это столбец, содержащий ИД заказа, а DataCardValue15 — это столбец, содержащий адрес электронной почты технического специалиста. В этом примере используется приложение на основе холста с именем Service Order App.
    Environment.cr8b8_Notifytechnician1({
           OrderID: DataCardValue17.Text,
       TechnicianEmail: DataCardValue15.Text 
    });
    
        Notify("The technician was notified!", NotificationType.Success, 2000);
    
    
    Добавление кнопки с формулой Power Fx для отправки уведомления техническому специалисту
  5. Выберите Сохранить и Опубликовать.

При выборе в приложении действия «Уведомить техника» техническому специалисту, назначенному сервисному заказу, отправляется уведомление в приложении. Действие в уведомлении открывает сведения о сервисном заказе на боковой панели.

Уведомление отправляется техническому специалисту, который получает его в приложении

Пример мгновенного подключаемого модуля с соединителем MSN Weather

Этот подключаемый модуль возвращает текущую погоду для определенного местоположения с помощью соединителя MSN Weather.

Необходимые условия:

  1. Создайте ссылку на подключение для MSN Weather, если она еще не доступна в среде: Создайте ссылку на подключение в приложении в области ссылок на подключение справа.

  2. Копирование фрагмента кода: Скопируйте фрагмент кода действия из области подключений

  3. Завершите редактирование формулы с помощью Intellisense и при необходимости используйте свойства ответа соединителя: Завершите определение подключаемого модуля в редакторе

  4. Сохранить

  5. Тестирование подключаемый модуль

Совет

Используйте функцию С(), чтобы получить весь ответ от одного действия, если вы хотите получить доступ к различным свойствам ответа. В приведенном ниже примере есть входной параметр Location (строка) и выходной параметр Out (строка).

With({ /* Capture current weather response from connector */
c: new_MsnWeather.CurrentWeather( Location, "Imperial" ).responses.weather.current
},{ /* Return concatenated weather details */
Out: "Current temp: " & c.temp & " degrees. Feels like " & c.feels & " degrees. Wind speed is " & c.windSpd & " mph."
})

Рекомендации

Обработка ошибок бесконечного цикла в автоматизированных малокодовых подключаемых модулях

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

Проблемный шаблон: использование формулы Patch() запускает другое обновление. «Проблемная формула в автоматизированных подключаемых модулях»

Рекомендуемый шаблон: вместо этого используйте формулу Set(), чтобы избежать этой проблемы. «Рекомендуемая формула в автоматизированных подключаемых модулях»

См. также

Малокодовые подключаемые модули Power Fx (предварительная версия)