Примеры малокодовых подключаемых модулей Dataverse (предварительная версия)
[Данный раздел посвящен предварительному выпуску и может быть изменен.]
Назначение этих примеров подключаемых модулей — помочь вам приступить к работе с подключаемыми модулями путем их интеграции в свои приложения. Вы поймете, что интерфейс разработки включает в себя разработку пользовательских API-интерфейсов Microsoft Dataverse на базе выражений Power Fx, которые могут инициировать действия, внутренние или внешние по отношению к Dataverse.
Важно!
- Это предварительная версия функции.
- Предварительные версии функций не предназначены для использования в производственной среде, а их функциональность может быть ограничена. Они доступны перед официальным выпуском, чтобы клиенты могли досрочно получить доступ и предоставить отзывы.
Необходимые условия
Для использования из примеров подключаемых модулей для события данных в вашей среде должно быть установлено приложение ускорителя Dataverse. Дополнительные сведения: Предварительные условия для создания малокодового подключаемого модуля
Примечание
Шаблоны сообщений электронной почты доступны только для определенных таблиц. Больше информации: Создание шаблонов для электронной почты
Возврат неотрицательного значения
В этом примере функция Ab()sиспользуется для возвращения абсолютного значения полученного аргумента. Если число отрицательное, функция Abs
возвращает противоположное ему положительное число.
Запустите приложение Dataverse Accelerator и на панели команд выберите Новое действие > Мгновенный подключаемый модуль.
Укажите отображаемое имя — например, имя формулы — и описание.
Создайте параметр
Out
соответствующего типа (например, «Строка») для проверки ожидаемого поведения. При желании используйте для упрощения тестирования входные параметры, уместные для этой формулы.В редакторе формул заключите параметр
Out
в фигурные скобки:{Out: "" }
Введите выражение, которое проверяет формулу:
- Убедитесь, что IntelliSense принимает формулу (текст становится светло-голубым).
- Реализуйте выражение, которое обеспечивает выходные данные — например, для проверки результата.
{Out: "Abs(-5) = 5: " & Text( Abs(-5) = 5 ) }
Выберите Далее, затем выберите Сохранить.
Выберите Проверить, чтобы протестировать формулу. Используйте выходной параметр для проверки результата.
Проверка входных данных и пользовательские ошибки
Поиск повторяющихся данных
Реализуйте проверку входных данных на стороне сервера — например, обнаружение повторов — которая выдает пользовательское сообщение об ошибке.
- Запустите приложение Dataverse Accelerator и на панели команд выберите Новое действие > Автоматизированный подключаемый модуль.
- В поле "Имя" введите Проверка на повторы.
- В поле Таблица выберите Контакт.
- В поле Запускать этот подключаемый модуль, когда строка выберите Создается.
- В поле Формула введите следующую формулу:
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")
)
- Выберите Сохранить.
Тестирование подключаемый модуль
- Чтобы протестировать подключаемый модуль, создайте приложение на основе холста, используя таблицу контактов, выполнив действия, описанные в разделе Укажите таблицу
- Создайте строку контакта.
- Создайте еще один контакт с тем же именем, что и на предыдущем шаге.
- Появится сообщение о том, что найдены повторяющиеся записи. Выберите в сообщении об ошибке Пропустить и сохранить.
Появится следующее пользовательское сообщение об ошибке: У вас два контакта с одинаковыми фамилией и именем.
Проверка данных
Отобразите конкретные типы ошибок с помощью перечисления ErrorKind.
Создайте новый автоматизированный подключаемый модуль.
Укажите следующие значения:
- Имя: Проверка входных данных
- Описание: Проверяет допустимость данных и выдает ошибку, если она недействительна
- Таблица: Встреча
- Запускать этот подключаемый модуль, когда строка: Обновляется
Введите формулу ниже:
If(ThisRecord.'Due Date' < Now(), Error({ Kind: ErrorKind.Validation , Message: "The due date cannot be in the past" }) );
В разделе Дополнительные параметры установите для параметра Когда это должно выполняться значение Перед операцией; это правило должно выполняться перед сохранением данных во избежание появления недопустимых данных.
Выберите Сохранить.
Подробнее о пользовательских ошибках можно узнать из статьи Функция 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
Создание автоматизированного подключаемого модуля
- Запустите приложение Dataverse Accelerator и выберите +Новый подключаемый модуль в разделе Автоматизированные подключаемые модули.
- Введите следующие данные:
Имя: 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] )
- Выберите Дополнительно > После операции.
- Выберите Сохранить.
Появится подтверждающее сообщение Подключаемый модуль успешно сохранен.
Отправка уведомлений в приложении на основе мгновенного действия
Уведомления в приложениях позволяют разработчикам настраивать контекстуальные, позволяющие выполнять непосредственные действия уведомления для пользователей в приложениях на основе моделей.
Создание малокодового подключаемого модуля для отправки уведомления в приложении
- Запустите приложение ускорителя Dataverse и выберите +Создать подключаемый модуль в разделе Мгновенные подключаемые модули.
- Введите следующую информацию и выберите Далее:
- Имя: NotifyTechnican1
- Описание: Этот мгновенный подключаемый модуль уведомляет пользователя приложения.
- На странице Определения создайте входные параметры со следующими типами данных:
- OrderID: Строка
- TechnicianEmail: Строка
- Формула. Вставьте следующий код в поле Формула. Дополнительные сведения об этой функции см. в статье Действие 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' ) ] )
- Выберите Далее.
- На странице Сводка выберите Сохранить.
Вызов мгновенного действия «уведомление в приложении»
- Выберите приложение на основе холста, затем выберите Изменить на панели команд (или создайте новое приложение).
- Выберите экран на левой панели навигации или создайте новый.
- В меню Вставка добавьте на страницу элемент управления Кнопка, введя для свойства Текст значение Уведомить специалиста.
- Нажмите кнопку и введите в строку формул fx следующий код, где DataCardValue17 — это столбец, содержащий ИД заказа, а DataCardValue15 — это столбец, содержащий адрес электронной почты технического специалиста. В этом примере используется приложение на основе холста с именем Service Order App.
Environment.cr8b8_Notifytechnician1({ OrderID: DataCardValue17.Text, TechnicianEmail: DataCardValue15.Text }); Notify("The technician was notified!", NotificationType.Success, 2000);
- Выберите Сохранить и Опубликовать.
При выборе в приложении действия «Уведомить техника» техническому специалисту, назначенному сервисному заказу, отправляется уведомление в приложении. Действие в уведомлении открывает сведения о сервисном заказе на боковой панели.
Пример мгновенного подключаемого модуля с соединителем MSN Weather
Этот подключаемый модуль возвращает текущую погоду для определенного местоположения с помощью соединителя MSN Weather.
Необходимые условия:
- Предварительные условия для создания малокодового подключаемого модуля
- Соединитель MSN Weather разрешен к использованию в среде
Создайте ссылку на подключение для MSN Weather, если она еще не доступна в среде:
Копирование фрагмента кода:
Завершите редактирование формулы с помощью Intellisense и при необходимости используйте свойства ответа соединителя:
Сохранить
Совет
Используйте функцию С(), чтобы получить весь ответ от одного действия, если вы хотите получить доступ к различным свойствам ответа. В приведенном ниже примере есть входной параметр 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 (предварительная версия)