Freigeben über


Beispiel für Dataverse-Low-Code-Plug-Ins (Vorschauversion)

[Dieses Thema ist Teil der Dokumentation zur Vorabversion und kann geändert werden.]

Das Ziel dieses Beispiel-Plug-Ins ist es, Ihnen den Einstieg durch die Integration in Ihre Apps zu erleichtern. Sie werden verstehen, dass zum Erstellungserlebnis das Erstellen benutzerdefinierter Microsoft Dataverse-APIs umfasst, die durch Power Fx-Ausdrücke unterstützt werden, die Aktionen innerhalb oder außerhalb von Dataverse auslösen können.

Wichtig

  • Dies ist eine Vorschauversion.
  • Funktionen in der Vorschauversion sind nicht für den Produktionseinsatz gedacht und können eine eingeschränkte Funktionalität aufweisen. Diese Funktionen stehen vor der offiziellen Veröffentlichung zur Verfügung, damit Kunden frühzeitig Zugriff erhalten und Feedback geben können.

Voraussetzung

Um eines der Beispiel-Plug-Ins für das Datenereignis zu verwenden, muss die Dataverse-Beschleuniger-App in der Umgebung installiert sein. Weitere Informationen: Voraussetzungen für die Erstellung eines Low-code-Plug-Ins

Hinweis

E-Mail-Vorlagen sind nur für bestimmte Tabellen verfügbar. Weitere Informationen: Vorlagen für E-Mails erstellen

Gibt einen nicht negativen Wert zurück

Dieses Beispiel verwendet die Abs()-Funktion, um den nicht negativen Wert ihres Arguments zurückzugeben. Wenn eine Zahl negativ ist, gibt Abs das positive Äquivalent zurück.

  1. Öffnen Sie die Dataverse-Beschleuniger-App und wählen Sie in der Befehlsleiste Neue Aktion > Direktes Plug-In aus.

  2. Geben Sie ein Anzeigenamen an, z. B. den Namen der Formel und eine Beschreibung.

  3. Erstelle einen Out-Parameter zur Validierung des erwarteten Verhaltens, das sinnvoll ist, z. B. eine Zeichenfolge. Optional können Sie Eingabeparameter verwenden, um das Testen zu vereinfachen, was mit der Formel sinnvoll ist.

  4. Umschließen Sie im Formeleditor den Out-Parameter in geschweifte Klammern:

    {Out: "" }
    
  5. Geben Sie einen Ausdruck ein, mit dem die Formel getestet wird:

    • Überprüfen Sie, ob Intellisense die Formel akzeptiert (der Text wird hellblau).
    • Implementieren Sie einen Ausdruck, der eine Ausgabe bereitstellt, um beispielsweise die Validierung des Ergebnisses zu unterstützen.
    {Out: "Abs(-5) = 5: " & Text( Abs(-5) = 5 )  }
    
  6. Wählen Sie Weiter und dann Speichern aus.

  7. Wählen Sie Testen aus, um die Formel zu testen. Verwenden Sie den Ausgabeparameter, um das Ergebnis zu validieren.

Eingabeprüfung und benutzerdefinierte Fehler

Duplikaterkennung

Implementieren Sie eine serverseitige Eingabeprüfung, z. B. die Erkennung doppelter Fehler, die eine benutzerdefinierte Fehlermeldung auslöst.

  1. Öffnen Sie die Dataverse-Beschleuniger-App und wählen Sie in der Befehlsleiste Neue Aktion > Automatisiertes Plug-In aus.
  2. Geben Sie im Feld Name die Option Doppelte Überprüfung ein.
  3. Wählen Sie für Tabelle die Option Kontakt aus.
  4. Wählen Sie für Dieses Plugin ausführen, wenn die Zeile ist die Option Erstellt aus.
  5. Geben Sie im Feld Formel diese Formel ein:
 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. Wählen Sie Save (Speichern).

Plug-In testen

  1. Um das Plug-In zu testen, erstellen Sie eine Canvas-App mithilfe der Kontakttabelle, indem Sie die folgenden Schritte ausführen: Tabelle festlegen
  2. Erstellen Sie eine Kontaktzeile.
  3. Erstellen Sie einen weiteren Kontakt mit demselben Namen wie im vorherigen Schritt.
  4. Es wird eine Meldung angezeigt, die darauf hinweist, dass doppelte Datensätze gefunden wurden. Wählen Sie Ignorieren und speichern in der Fehlermeldungs-Eingabeaufforderung.

Diese benutzerdefinierte Fehlermeldung wird angezeigt: Sie haben zuerst zwei Kontakte mit demselben Vornamen und Nachnamen.

Datenüberprüfungen

Zeigen Sie bestimmte Fehlertypen mit der Enumeration ErrorKind.

  1. Erstellen Sie ein neues automatisiertes Plug-In.

  2. Geben Sie die folgenden Werte an:

    • Name: Eingabeprüfung
    • Beschreibung: Prüft, ob das Datum gültig ist, und gibt einen Fehler aus, wenn es ungültig ist
    • Tabelle: Termin
    • Dieses Plug-In ausführen, wenn die Zeile vorhanden ist: Aktualisiert
  3. Geben Sie die Formel unten ein:

    If(ThisRecord.'Due Date' < Now(), 
     Error({ Kind: ErrorKind.Validation , Message: "The due date cannot be in the past" })
    );
    
  4. Legen Sie unter Erweiterte Optionen die Option Wann soll dies ausgeführt werden? auf Vorgelagerter Vorgang fest, wenn Sie möchten, dass diese Regel ausgeführt wird, bevor Daten gespeichert werden, um ungültige Daten zu verhindern.

  5. Wählen Sie Save (Speichern).

Gehen Sie zur Error()-Funktion, um mehr Informationen über benutzerdefinierte Fehler zu erfahren.

E-Mails basierend auf einem Datenereignis senden

Voraussetzungen:

Beispiel-E-Mail-Vorlage

Hier ist ein Beispiel für eine E-Mail-Vorlage, die Sie für das SenMail-basierte Datenereignis erstellen können:

  • Vorlagentyp: Global
  • Name: Danke für Bestellung
  • Beschreibung: Verwenden Sie diese Vorlage, um einem Kunden dafür zu danken, dass er eine Bestellung bei Ihnen aufgegeben hat.
  • Betreff: Thank you for your order <orderconfirmation-{!salesorder:Order Number; }>
  • Text: Verwenden Sie diesen Code.
   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 

Automatisiertes Plug-In erstellen

  1. Öffnen Sie die Dataverse-Beschleuniger-App und wählen Sie dann +Neues Plug-In unter Automatisierte Plug-Ins aus.
  2. Geben Sie die folgenden Informationen ein:
    • Name: SendEmailUponCreate

    • Tabelle: Wählen Sie den logischen Tabellennamen des Vertriebsauftrags aus, nämlich SalesOrder. Dieses Ereignis basiert auf der Tabelle „Vertriebsaufträge“.

    • Dieses Plug-In mit der Zeile ausführen ist: Erstellt

    • Formel: Fügen Sie den folgenden Code in das Feld Formel ein. Weitere Informationen zur SendEmailFromTemplate-Funktion finden Sie unter SendEmailFromTemplate Action.

      XSendEmailFromTemplate(
          LookUp('Email Templates',StartsWith(title,"Order Thank You")).'Email Template',
      ThisRecord,
      LookUp(Users,'Primary Email'="sampleemail@sample.com"),[ThisRecord.Email]
      )
      
  3. Wählen Sie Erweitert > Nachgelagerter Vorgang aus.
  4. Wählen Sie Save (Speichern).

Die Bestätigungsmeldung Plug-In erfolgreich gespeichert erscheint.

In-App-Benachrichtigungen basierend auf einer direkten Aktion senden

Mit In-App-Benachrichtigungen können Entwickler kontextbezogene, umsetzbare Benachrichtigungen für Benutzer in modellgesteuerten Apps konfigurieren.

Low-code-Plug-In erstellen, das eine In-App-Benachrichtigung sendet

  1. Öffnen Sie die Dataverse-Beschleuniger-App und wählen Sie dann +Neues Plug-In unter Sofort-Plug-Ins aus.
  2. Geben Sie die folgenden Informationen ein und wählen Sie Weiter aus:
    • Name: NotifyTechnican1
    • Beschreibung: Dieses direkte Plug-In benachrichtigt den App-Benutzer.
  3. Erstellen Sie auf der Seite Definitionen Eingabeparameter mit diesen Datentypen:
    • OrderID: Zeichenfolge
    • TechnicianEmail: Zeichenfolge
  4. Formel. Fügen Sie im Feld Formel den folgenden Code ein. Weitere Informationen zu dieser Funktion finden Sie unter SendAppNotification-Aktion.
     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. Wählen Sie Weiter aus.
  6. Wählen Sie auf der Seite Zusammenfassung die Option Speichern aus.

Direkte Aktion der In-App-Benachrichtigung aufrufen

  1. Wählen Sie eine Canvas-App und dann Bearbeiten in der Befehlsleiste aus (oder erstellen Sie eine neue).
  2. Wählen Sie im linken Navigationsbereich die Anzeige aus oder erstellen Sie eine neue.
  3. Fügen Sie im Einfügen-Menü eine Schaltfläche hinzu, und zwar mithilfe von Text Techniker benachrichtigen.
  4. Wählen Sie die Schaltfläche aus und geben Sie Folgendes in die fx-Formelleiste ein, wobei DataCardValue17 die Spalte ist, die die Auftrags-ID enthält und DataCardValue15 ist die Spalte, die die E-Mail-Adresse des Technikers enthält. In diesem Beispiel wird eine Canvas-App mit dem Namen Serviceauftrags-App verwendet.
    Environment.cr8b8_Notifytechnician1({
           OrderID: DataCardValue17.Text,
       TechnicianEmail: DataCardValue15.Text 
    });
    
        Notify("The technician was notified!", NotificationType.Success, 2000);
    
    
    Schaltfläche mit einer Power Fx-Formel hinzufügen, um eine Benachrichtigung an einen Techniker zu senden
  5. Speichern und veröffentlichen Sie Ihre Änderungen.

Wenn in der App die Aktion „Techniker benachrichtigen“ ausgewählt wird, wird eine In-App-Benachrichtigung an den Techniker gesendet, der dem Serviceauftrag zugewiesen wurde. Durch eine Aktion in der Benachrichtigung werden die Serviceauftragsdetails in einem Seitenbereich geöffnet.

Benachrichtigung wird an den Techniker gesendet, der diese in der App erhält

Beispielhaftes Sofort-Plug-In mit MSN Wetter-Konnektor

Dieses Plug-In gibt das aktuelle Wetter für einen bestimmten Standort mithilfe des MSN Wetter-Konnektors zurück.

Voraussetzungen:

  1. Erstellen Sie eine Verbindungsreferenz für MSN Wetter, falls noch nicht in der Umgebung verfügbar: Erstellen Sie eine Verbindungsreferenz in der App im Bereich „Verbindungsreferenzen“ auf der rechten Seite

  2. Kopieren Sie den Ausschnitt: Kopieren Sie den Aktionsausschnitt über den Bereich „Verbindungen“

  3. Beenden Sie die Bearbeitung der Formel mit Intellisense und nutzen Sie die Connector-Antworteigenschaften nach Bedarf: Vervollständigen Sie die Plug-In-Definition im Editor

  4. Speichern

  5. Plug-In testen

Tipp

Verwenden Sie die Funktion With(), um die gesamte Antwort einer Aktion zu erfassen, wenn Sie auf verschiedene Eigenschaften der Antwort zugreifen möchten. Im folgenden Beispiel gibt es einen Eingabeparameter Location (Zeichenfolge) und einen Ausgabeparameter Out (Zeichenfolge).

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."
})

Best Practices

Behandeln von Endlosschleifenfehlern in automatisierten Low-Code-Plugins

Schreiben Sie bei einem Update-Ereignis keine Patch-Anweisung für ein automatisiertes Plugin, wenn der Patch in derselben Tabelle wie das Plugin ausgeführt wird. Dies führt zu Endlosschleifen und Plugin-Ausführungsfehlern.

Problematisches Muster: Die Verwendung der Formel Patch() löst eine weitere Aktualisierung aus. Problematische Formel in automatisierten Plugins

Empfohlenes Muster: Verwenden Sie stattdessen die Formel Set(), um dieses Problem zu vermeiden. Empfohlene Formel in automatisierten Plugins

Siehe auch

Low-code-Plug-Ins Power Fx (Vorschauversion)