Нотатка
Доступ до цієї сторінки потребує авторизації. Можна спробувати ввійти або змінити каталоги.
Доступ до цієї сторінки потребує авторизації. Можна спробувати змінити каталоги.
[Цей розділ є документацією для попередньої версії, і його буде змінено.]
Мета цих прикладів плагінів – допомогти вам розпочати роботу з інтеграції їх у свої програми. Ви зрозумієте, що процес створення включає створення Microsoft Dataverse користувацьких API з Power Fx підтримкою виразів, які можуть ініціювати дії всередині або зовні Dataverse.
Важливо
- Плагіни з миттєвим низьким вмістом коду мають депріоритезацію та не надаються як функція. Миттєві low-code плагіни замінюються функціями. Додаткова інформація: Функції в Microsoft Dataverse (попередній перегляд)
- Це функція попереднього перегляду.
- Підготовчі функції призначені для невиробничого використання і можуть бути обмежені. Ці функції доступні до офіційного випуску, щоб клієнти могли ознайомитися з ними заздалегідь і залишити відгуки.
Передумова
Щоб використовувати один із прикладів плагінів для події даних, Dataverse програму корисної можливості потрібно встановити в середовищі. Додаткові відомості: Передумови для створення плагіна з низьким кодом
Нотатка
Шаблони листів доступні лише для певних таблиць. Додаткові відомості: Створення шаблонів для електронної пошти
Повертає невід'ємне значення
У цьому прикладі функція Abs() повертає невід'ємне значення її аргументу. Якщо число від'ємне, Abs повертає позитивний еквівалент.
Dataverse Відтворіть програму «Корисна можливість» і на панелі команд виберіть «Нова дія>Миттєвий плагін».
Укажіть коротке ім'я, наприклад назву формули та опис.
Створіть
Outпараметр для перевірки очікуваної поведінки, який має сенс, наприклад рядок За бажанням використовуйте вхідні параметри, щоб спростити тестування, що має сенс у формулі.У редакторі формул оберніть
Outпараметр у фігурні дужки:{Out: "" }Введіть вираз, який перевіряє формулу:
- Переконайтеся, що Intellisense приймає формулу (текст стає світло-синім).
- Реалізуйте вираз, який надає вивідні дані, наприклад, для перевірки результату.
{Out: "Abs(-5) = 5: " & Text( Abs(-5) = 5 ) }Натисніть кнопку Далі, а потім натисніть Зберегти.
Виберіть Тест, щоб перевірити формулу. Використовуйте параметр output для перевірки результату.
Перевірка введення та користувацькі помилки
Виявлення повторів
Впровадьте перевірку введення на стороні сервера, наприклад, виявлення дублікатів помилок, яке надсилає власне повідомлення про помилку.
- Dataverse Відтворіть програму «Корисна можливість» і на панелі команд виберіть «Нова дія>Автоматичний плагін».
- У полі Ім'я введіть галочку Дублікат.
- У полі «Таблиця» виберіть «Контакт».
- Для параметра Запустити цей плагін, коли є рядок, виберіть Створено.
- У полі Формула введіть таку формулу:
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 Відтворіть програму «Корисна можливість», а потім виберіть « +Новий плагін» у розділі «Автоматизовані плагіни».
- Введіть наступну інформацію:
Ім'я: SendEmailUponCreate
Таблиця: виберіть логічне ім'я таблиці замовлень на продаж, яке називається SalesOrder. Ця подія базується на таблиці замовлень на продаж.
Запустіть цей плагін з рядком is: Created
Формула: вставте наведений нижче код у поле Формула . Для отримання додаткової інформації зверніться до функції SendEmailFromTemplate до дії SendEmailFromTemplate.
XSendEmailFromTemplate( LookUp('Email Templates',StartsWith(title,"Order Thank You")).'Email Template', ThisRecord, LookUp(Users,'Primary Email'="sampleemail@sample.com"),[ThisRecord.Email] )
- Виберіть Advanced>Post-operation.
- Виберіть Зберегти.
З'явиться повідомлення з підтвердженням Плагін успішно збережено .
Надсилання сповіщень у додатку на основі миттєвої дії
Сповіщення в додатку дають змогу виробникам налаштовувати контекстні активні сповіщення для користувачів у програмах, керованих моделлю.
Створіть плагін з низьким кодом, який надсилає сповіщення в додатку
- Відтворіть програму «Корисна можливість Dataverse », а потім виберіть « +Новий плагін» у розділі «Плагіни миттєвого друку».
- Введіть наступну інформацію, натисніть кнопку Далі:
- Ім'я: NotifyTechnican1
- Опис: Цей миттєвий плагін сповіщає користувача програми.
- На сторінці Визначення створіть вхідні параметри з такими типами даних:
- Ідентифікатор замовлення: Рядок
- Технічна електронна пошта: Рядок
-
Формула. Вставте наступний код у поле Формула . Щоб дізнатися більше про цю функцію, перейдіть до розділу Дія 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 – це стовпець, який містить адресу електронної пошти технічного спеціаліста. У цьому прикладі використовується програма полотна під назвою «Програма замовлення послуг».
Environment.cr8b8_Notifytechnician1({ OrderID: DataCardValue17.Text, TechnicianEmail: DataCardValue15.Text }); Notify("The technician was notified!", NotificationType.Success, 2000);
- Збережіть та опублікуйте зміни.
Коли в додатку вибрано дію «Повідомити техніка», сповіщення в програмі надсилається технічному спеціалісту, якому було призначено замовлення на обслуговування. Дія зі сповіщенням відкриває відомості про замовлення послуги на бічній панелі.
Зразок миттєвого підключення з роз’ємом MSN Weather
Цей плагін повертає поточну погоду для певного місця за допомогою з’єднувача MSN Weather.
Необхідні компоненти:
- Передумови для створення low-code плагіна
- З’єднувач MSN Weather дозволено використовувати в навколишньому середовищі
Створіть довідник підключення для служби MSN Погода, якщо вона ще недоступна в середовищі:
Копіювати фрагмент:
Завершіть редагування формули за допомогою intellisense і за потреби використовуйте властивості відповіді з’єднувача:
Зберегти
Порада
Використовуйте функцію With(), щоб захопити всю відповідь однієї дії, якщо ви хочете отримати доступ до різних властивостей, які може мати відповідь. У наведеному нижче прикладі є вхідний параметр 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() щоб уникнути цієї проблеми.