Przykłady niskokodowych dodatków plug-in usługi Dataverse (wersja zapoznawcza)

[Ten temat pochodzi ze wstępnej wersji dokumentacji i może ulec zmianie.]

Celem tych przykładowych dodatków plug-in jest wprowadzenie do integracji ich z aplikacjami. Zrozumiesz sposób tworzenia niestandardowych interfejsów API w Microsoft Dataverse wspieranych wyrażeniami Power Fx, które mogą wyzwalać akcje wewnętrzne lub zewnętrzne w Dataverse.

Ważne

  • Jest to funkcja w wersji zapoznawczej.
  • Funkcje w wersji zapoznawczej nie są przeznaczone do użytku w środowiskach produkcyjnych i mogą mieć ograniczoną funkcjonalność. Te funkcje są udostępniane przed oficjalnym wydaniem, dzięki czemu klienci mogą szybciej uzyskać do nich dostęp i przekazać opinie na ich temat.

Warunek wstępny

Aby użyć jednego z przykładowych dodatków plug-in dla zdarzenia danych, aplikacja Dataverse Accelerator musi być zainstalowana w środowisku. Więcej informacji: Wymagania wstępne dotyczące tworzenia niskokodowego dodatku plug-in

Uwaga

Szablony wiadomości e-mail są dostępne tylko w pewnych tabelach. Więcej informacji: Tworzenie szablonów wiadomości e-mail

Zwracanie wartości nieujemnej

W tym przykładzie do zwrotu nieujemnej wartości argumentu jest używana funkcja Abs(). Jeśli liczba jest ujemna, funkcja Abs zwraca jej dodatni odpowiednik.

  1. Odtwórz aplikację Dataverse Accelerator, na pasku poleceń wybierz Nowa akcja > Błyskawiczny dodatek plug-in.

  2. Podaj nazwę wyświetlaną, na przykład nazwę formuły, oraz opis.

  3. Utwórz parametr Out w celu sprawdzenia poprawności oczekiwanego zachowania, np. ciąg. Opcjonalnie użyj parametrów wejściowych w celu ułatwienia testowania, które mają sens przy użyciu tej formuły.

  4. W edytorze formuł ujmij parametr Out w nawiasy klamrowe:

    {Out: "" }
    
  5. Wprowadź wyrażenie testowe dla formuły:

    • Sprawdź, czy funkcja IntelliSense akceptuje formułę (tekst będzie kolorem jasnoniebieskim).
    • Zaimplementuj wyrażenia udostępniające dane wyjściowe w celu sprawdzenia poprawności wyniku, na przykład.
    {Out: "Abs(-5) = 5: " & Text( Abs(-5) = 5 )  }
    
  6. Wybierz Dalej i następnie wybierz Zapisz.

  7. Wybierz opcję Test,, aby przetestować formułę. Użyj parametru wyjściowego, aby sprawdzić poprawność wyniku.

Sprawdzanie poprawności danych i błędy niestandardowe

Wykrywanie duplikatów

Implementowanie sprawdzania poprawności danych wejściowych na serwerze, np. wykrywanie błędów duplikatów, które zgłasza niestandardowy komunikat o błędzie.

  1. Odtwórz aplikację Dataverse Accelerator, na pasku poleceń wybierz Nowa akcja > Automatyczny dodatek plug-in.
  2. W polu Nazwa wprowadź Sprawdzanie duplikatów.
  3. Jako obiekt Tablica wybierz Kontakt.
  4. Dla opcji Uruchom ten dodatek plug-in po zaznaczeniu wiersza wybierz opcję Utworzone.
  5. W polu Formuła wprowadź tę formułę:
 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. Wybierz pozycję Zapisz.

Przetestuj dodatek plug-in.

  1. Aby przetestować dodatek plug-in, utwórz aplikację kanwy przy użyciu tabeli kontaktów, tworząc poniższe kroki: Określ tabelę
  2. Utwórz wiersz kontaktu.
  3. Utwórz kolejny kontakt o tej samej nazwie, jak w poprzednim kroku.
  4. Zostanie wyświetlony komunikat z informacją o zduplikowanych rekordach. Wybierz opcję Ignoruj w monicie komunikatu o błędzie.

Wyświetlany jest taki niestandardowy komunikat o błędzie: Masz dwa kontakty o tym samym imieniu i nazwisku.

Sprawdzanie poprawności danych

Wyświetlanie określonych typów błędów przy użyciu wyliczenia ErrorKind.

  1. Utwórz nowy automatyczny dodatek plug-in.

  2. Podaj następujące wartości:

    • Nazwa: Walidacja danych wejściowych
    • Opis: Sprawdza prawidłową datę i zgłasza błąd, jeśli jest nieprawidłowa
    • Tabela: Termin
    • Uruchom ten dodatek, gdy wiersz jest Aktualizacja
  3. Wprowadź poniższą formułę

    If(ThisRecord.'Due Date' < Now(), 
     Error({ Kind: ErrorKind.Validation , Message: "The due date cannot be in the past" })
    );
    
  4. W obszarze Opcje zaawansowane ustaw parametr Kiedy uruchomić na Operacje wstępne; należy uruchomić tę regułę przed zapisaniem danych, aby zapobiec nieprawidłowym danym.

  5. Wybierz pozycję Zapisz.

Przejdź do tematu Funkcja Błąd(),, aby dowiedzieć się więcej o błędach niestandardowych.

Wysyłanie wiadomości e-mail w wynikue zdarzenia danych

Wymagania wstępne:

Przykładowy szablon wiadomości e-mail

Poniżej podano przykład szablonu wiadomości e-mail, który można utworzyć dla zdarzenia danych opartego na SenMail:

  • Typ szablonu: globalny
  • Nazwa: Podziękowanie za zamówienie
  • Opis: Użyj tego szablonu, aby podziękować klientowi za zamówienie.
  • Temat: Thank you for your order <orderconfirmation-{!salesorder:Order Number; }>
  • Treść: Użyj tego kodu.
   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 

Tworzenie automatycznego dodatku plug-in

  1. Odtwórz aplikację Dataverse Accelerator, a następnie wybierz +Nowy dodatek plug-in w obszarze Automatyczne dodatki plug-in.
  2. Wprowadź następujące informacje:
    • Nazwa: SendEmailUponCreate

    • Tabela: wybierz nazwę logicznej tabeli dla zamówień sprzedażySalesOrder. To zdarzenie jest oparte na tabeli Zamówienia sprzedaży.

    • Uruchom ten dodatek, gdy wiersz jest Utworzono

    • Formuła: wklej kod poniżej do pola Formuła. Aby znaleźć więcej informacji o funkcji SendEmailFromTemplate, przejdź do tematu Akcja SendEmailFromTemplate.

      XSendEmailFromTemplate(
          LookUp('Email Templates',StartsWith(title,"Order Thank You")).'Email Template',
      ThisRecord,
      LookUp(Users,'Primary Email'="sampleemail@sample.com"),[ThisRecord.Email]
      )
      
  3. Wybierz opcję Zaawansowana > po operacji.
  4. Wybierz pozycję Zapisz.

Zostanie wyświetlony komunikat Dodatek plug-in pomyślnie zapisany.

Wysyłanie powiadomień w aplikacji na podstawie akcji błyskawicznej

Powiadomienia w aplikacji umożliwiają twórcom konfigurowanie kontekstowo powiadomień dla użytkowników w aplikacjach opartych na modelach.

Tworzenie niskokodowego dodatku plug-in, który wysyła powiadomienie w aplikacji

  1. Odtwórz aplikację Dataverse Accelerator, a następnie wybierz +Nowy dodatek plug-in w obszarze Błyskawiczne dodatki plug-in.
  2. Wprowadź następującą informację. wybierz Dalej
    • Nazwa: Powiadom pracownika serwisu1
    • Opis: Ten dodatek plug-in powiadamia użytkownika aplikacji.
  3. Na stronie Definicje utwórz parametry wejściowe o następujących typach danych:
    • OrderID: Ciąg
    • TechnicianEmail: Ciąg
  4. Formuła. Wklej następujący kod w polu Formuła. Aby uzyskać więcej informacji o tej funkcji, przejdź do akcjiSendAppNotification.
     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. Wybierz Dalej.
  6. Na stronie Podsumowanie wybierz pozycję Zapisz.

Wywoływanie akcji błyskawicznej powiadomienia w aplikacji

  1. Wybierz aplikację kanwy, a następnie opcję Edytuj na pasku poleceń (lub utwórz nową).
  2. Wybierz ekran w lewym okienku nawigacji lub utwórz nowe.
  3. W menu Wstaw dodaj przycisk do strony Używając pola Tekst Powiadom pracownika serwisu.
  4. Wybierz przycisk i wprowadź następujący kod na pasku formuł fx, gdzie DataCardValue17 to kolumna zawierająca identyfikator zamówienia, a dataCardValue15 to kolumna zawierająca adres e-mail pracownika serwisu. W tym przykładzie jest używana aplikacja kanwy o nazwie Service Order App.
    Environment.cr8b8_Notifytechnician1({
           OrderID: DataCardValue17.Text,
       TechnicianEmail: DataCardValue15.Text 
    });
    
        Notify("The technician was notified!", NotificationType.Success, 2000);
    
    
    Dodawanie przycisku z formułą Power Fx w celu wysłania powiadomienia do pracownika serwisu
  5. Zapisz i Opublikuj swoje zmiany.

Po wybraniu w aplikacji akcji powiadamiania pracownika serwisu do przypisanego do zamówienia usługi pracownika serwisu jest wysyłane powiadomienie w aplikacji. Akcja w powiadomieniu powoduje otwarcie szczegółów zamówienia usługi w okienku bocznym.

Powiadomienie wysyłane do pracownika serwisu, który odbiera je w aplikacji

Przykładowy błyskawiczny dodatek plug-in z łącznikiem usługi MSN Pogoda

Dodatek plug-in zwraca raport o bieżącej pogodzie dla określonej lokalizacji przy użyciu łącznika usługi MSN Pogoda.

Wymagania wstępne:

  1. Tworzenie odwołania do połączenia dla usługi MSN Pogoda, jeśli nie jest jeszcze dostępne w środowisku: Utwórz w aplikacji odwołanie do połączenia w okienku odwołań do połączenia po prawej stronie

  2. Kopiowanie fragmentu kodu: skopiuj akcję fragmentu kodu z okienka połączeń

  3. Zakończenie edytowania formuły przy użyciu funkcji IntelliSense i skorzystanie w razie potrzeby z właściwości odpowiedzi łącznika: wykonaj definicję dodatku plug-in w edytorze

  4. Zapisz

  5. Przetestuj dodatek plug-in.

Napiwek

Użyj funkcji With() do przechwytywania całej odpowiedzi z jednej akcji, jeśli chcesz uzyskać dostęp do różnych właściwości, które może mieć odpowiedź. W przykładzie poniżej jest parametr wejściowy (ciąg) Location i parametr wyjściowy (ciąg) 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."
})

Najlepsze rozwiązania

Obsługa błędów nieskończonej pętli w automatycznych niskokodowych dodatkach plug-in

Po zdarzeniu "Aktualizacja" nie należy pisać instrukcji dotyczącej poprawek dla zautomatyzowanego dodatku plug-in, gdzie poprawka jest w tej samej tabeli, co dodatek plug-in. Prowadzi to do niekończących się pętli i niepowodzenia wykonywania dodatku plug-in.

Wzorzec wywołujący problem: użycie formuły Patch() powoduje wyzwolenie kolejnej aktualizacji. Problematyczna formuła w zautomatyzowanych dodatkach plug-in

Zalecany wzorzec: użyj formuły Set(), aby uniknąć tego problemu. Zalecana formuła w zautomatyzowanych dodatkach plug-in

Zobacz też

Niskokodowe dodatki plug-in Power Fx (wersja zapoznawcza)