Примерни Dataverse приставки с нисък код (предварителен преглед)

[Тази тема е предварителна версия на документацията и подлежи на промяна.]

Целта на тези примерни добавки е да ви помогнат да започнете, като ги интегрирате във вашите приложения. Ще разберете, че работата при създаване включва създаване на Microsoft Dataverse персонализирани API, подкрепени от Power Fx изрази, които могат да задействат вътрешни или външни действия Dataverse.

Важно

  • Незабавните плъгини с нисък код са лишени от приоритет и не се доставят като функция. Незабавните плъгини с нисък код се заменят с функции. Повече информация: Функции в Microsoft Dataverse (преглед)
  • Това е функция за предварителен преглед.
  • Функциите за предварителен преглед не са предназначени за производствена употреба и може да са с ограничена функционалност. Тези функции са достъпни преди официалното издание, за да могат клиентите да получат ранен достъп и да дадат обратна връзка.

Предварително изискване

За да използвате една от примерните добавки за събитието данни, Dataverse приложението за ускорител трябва да е инсталирано в средата. Повече информация: Предпоставки за създаване на плъгин с нисък код

Бележка

Шаблоните за имейли са налице само за определени таблици. Повече информация: Създаване на шаблони за имейл

Връщане на неотрицателна стойност

Този пример използва функцията Abs(), за да върне неотрицателната стойност на своя аргумент. Ако едно число е отрицателно, 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. Въведете следната информация:
    • Име: Изпрати имейлНаСъздаване

    • Таблица: Изберете името на логическата таблица на поръчките за продажба, което е 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]
      )
      
  3. Изберете Разширена>последваща операция.
  4. Изберете Запиши.

Появява се съобщението за потвърждение Плъгинът е успешно запазен .

Изпращане на известия в приложението въз основа на незабавно действие

Известията в приложението позволяват на създателите да конфигурират контекстуални, приложими известия за потребители в приложения, управлявани от модел.

Създайте приставката с нисък код, която изпраща известие в приложението

  1. Пуснете Dataverse приложението за ускорител и след това изберете +Нов плъгин под Мигновени плъгини.
  2. Въведете следната информация, изберете Напред:
    • Име: NotifyTechnican1
    • Описание: Този незабавен плъгин уведомява потребителя на приложението.
  3. На страницата Дефиниции създайте входни параметри със следните типове данни:
    • OrderID:Низ
    • ТехникИмейл: Низ
  4. Формула. Поставете следния код в полето Формула . За повече информация относно тази функция отидете на SendAppNotification Action.
     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 е колоната, която съдържа имейл адреса на техника. В този пример се използва приложение за платно с име Приложение за поръчка на услуги.
     Environment.cr8b8_Notifytechnician1({
           OrderID: DataCardValue17.Text,
        TechnicianEmail: DataCardValue15.Text 
     });
    
       	Notify("The technician was notified!", NotificationType.Success, 2000);
    
    
    Добавете бутон с Power Fx формула за изпращане на известие до техника
  5. Запишете и публикувайте промените.

Когато действието за уведомяване на техника е избрано в приложението, се изпраща известие в приложението до техника, който е назначен за сервизната поръчка. Действие върху известието отваря подробностите за поръчката за услуга в страничен прозорец.

Известие, изпратено до техник, който получава в приложението

Примерен незабавен плъгин с конектор MSN Weather

Този плъгин връща текущото време за конкретно местоположение с помощта на конектора за времето на MSN.

Предварителни изисквания:

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

  2. Копиране на фрагмента: Копиране на фрагмента на действието от екрана за връзки

  3. Завършете редактирането на формулата с помощта на intellisense и използвайте свойствата на отговора на конектора, ако е необходимо: Попълнете дефиницията на приставката в редактора

  4. Записване

  5. Тествайте приставката

Съвет

Използвайте функцията With(), за да заснемете целия отговор от едно действие, ако искате да получите достъп до различни свойства, които отговорът може да има. В примера по-долу има входен параметър Location (string) и изходен параметър Out (string).

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 с нисък код (преглед)