Eksempel på Dataverse-low-code-plug-ins (forhåndsversion)

[Dette emne er til dokumentationen til den foreløbige udgivelse. Der kan forekomme ændringer.]

Målet med disse eksempler på plug-ins er at hjælpe dig med at komme i gang ved at integrere dem i dine apps. Du forstår, at forfatteroplevelsen omfatter oprettelse af Microsoft Dataverse brugerdefinerede API'er, der understøttes af Power Fx-udtryk, som kan udløse handlinger interne eller eksterne for Dataverse.

Vigtigt

  • Dette er en forhåndsversion af funktionen.
  • Forhåndsversionsfunktionerne er ikke beregnet til produktionsformål og kan have begrænset funktionalitet. Disse funktioner er tilgængelige før en officiel udgivelse, så kunderne kan få tidlig adgang og give feedback.

Forudsætning

Hvis du vil bruge en af eksempel-plug-ins til datahændelsen, skal Dataverse-accelerator-appen installeres i miljøet. Flere oplysninger: Forudsætninger for oprettelse af en plug-in med lav kode

Bemærk

E-mail-skabeloner er kun tilgængelige for bestemte tabeller. Flere oplysninger: Oprette skabeloner til mail

Returnere en ikke-negativ værdi

Dette eksempel bruger Abs() som funktion til at returnere den ikke-negative værdi af argumentet. Hvis et tal er negativt, Abs returnerer den positive ækvivalent.

  1. Afspil Dataverse Accelerator-appen ved at vælge Ny handling > Instant plugin på kommandolinjen.

  2. Angiv en visningsnavn, f.eks. formelnavnet og beskrivelsen.

  3. Opret en Out-parameter for at validere en forventet funktionsmåde, der giver mening, f.eks. en streng Du kan også bruge inputparametre for at gøre testen nemmere, og det giver mening med formlen.

  4. I formulareditoren skal du omslutte Out-parameteren med klammeparenteser:

    {Out: "" }
    
  5. Angiv et udtryk, der tester formlen:

    • Kontroller, at intellisense accepterer formlen (teksten bliver lyseblå).
    • Implementer f.eks. et udtryk, der giver et output, som kan hjælpe med at validere resultatet.
    {Out: "Abs(-5) = 5: " & Text( Abs(-5) = 5 )  }
    
  6. Vælg Næste, og vælg derefter Gem.

  7. Vælg Test for at teste formlen. Brug outputparameteren til at validere resultatet.

Inputvalidering og brugerdefinerede fejl

Registrering af dublet

Implementer inputvalidering på serversiden, f.eks. registrering af dubletter, der giver en brugerdefineret fejlmeddelelse.

  1. Afspil Dataverse Accelerator-appen ved at vælge Ny handling > Automatiseret plugin på kommandolinjen.
  2. Angiv Dupliker kontrol i feltet Navn.
  3. For Tabel vælges Kontakt.
  4. Vælg Oprettet for Kør denne plug-in, når rækken er.
  5. Angiv denne formel i feltet Formel.
 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. Vælg Gem.

Test plug-in

  1. Hvis du vil teste plug-in'en, skal du oprette en lærredsapp ved hjælp af tabellen over kontakter ved at følge trinnene her: Angive en tabel
  2. Opret en kontaktrække.
  3. Opret en anden kontakt med samme navn som i forrige trin.
  4. Der vises en meddelelse, som angiver, at der er fundet dublerede poster. Vælg Ignorer, og gem i fejlmeddelelsen.

Denne brugerdefinerede fejlmeddelelse vises: Du har to kontaktpersoner med samme første og efternavn.

Datavalidering

Få vist bestemte typer fejl ved hjælp af ErrorKind angivelse.

  1. Opret en ny automatiseret plug-in.

  2. Udfyld følgende værdier:

    • Navn: Input-validering
    • Beskrivelse: Der kontrolleres for gyldig dato, og der opstår en fejl, hvis den er ugyldig
    • Tabel: Aftale
    • Kør denne plug-in regel, når en række er: Opdateret
  3. Angiv formlen herunder:

    If(ThisRecord.'Due Date' < Now(), 
     Error({ Kind: ErrorKind.Validation , Message: "The due date cannot be in the past" })
    );
    
  4. Under Avancerede indstillinger skal du angive Hvornår skal denne kørsel køres til Forudhandling. Du vil køre reglen, før data gemmes for at forhindre ugyldige data.

  5. Vælg Gem.

Gå til Fejl()-funktion for at lære mere om brugerdefinerede fejl.

Send e-mail baseret på en datahændelse

Krav:

Eksempel på en mailskabelon

Her er et eksempel på en e-mail-skabelon, som du kan oprette til hændelsen SenMail-baseret data:

  • Skabelontype: Global
  • Navn: Ordre tak
  • Beskrivelse: Brug denne skabelon til at takke en kunde for at have af placeret en ordre hos dig.
  • Emne: Thank you for your order <orderconfirmation-{!salesorder:Order Number; }>
  • Brødtekst: Brug denne kode.
   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 

Opret den automatiserede plug-in

  1. Afspil Dataverse Accelerator-appen, og vælg derefter +Ny plug-in under Automatiserede plug-ins.
  2. Angiv følgende oplysninger:
    • Navn: SendEmailUponCreate

    • Tabel: Vælg navnet på den logiske tabel for salgsordrerne, som er SalesOrder. Denne hændelse er baseret på tabellen Salgsordrer.

    • Kør denne plug-in regel, når en række er: Oprettet

    • Formel: Indsæt koden nedenfor i formelfeltet. Du kan finde flere oplysninger ved at bruge funktionen SendEmailFromTemplate til handlingen SendEmailFromTemplate.

      XSendEmailFromTemplate(
          LookUp('Email Templates',StartsWith(title,"Order Thank You")).'Email Template',
      ThisRecord,
      LookUp(Users,'Primary Email'="sampleemail@sample.com"),[ThisRecord.Email]
      )
      
  3. Vælg Avanceret > efter-handling.
  4. Vælg Gem.

Bekræftelsesmeddelelsen Plugin er gemt vises .

Send meddelelser i app baseret på en lynhandling

Beskeder i app giver skabere mulighed for at konfigurere kontekstafhængige meddelelser, der kan bruges af brugerne i modelbaserede apps.

Opret den plug-in med lav kode, der sender en meddelelse i app

  1. Afspil Dataverse-acceleratorappen, og vælg derefter +Ny plugin under Øjeblikkelige plugins.
  2. Angiv følgende oplysninger, vælg Næste:
    • Navn: NotifyTechnican1
    • Beskrivelse: Denne instant plug-in giver appbrugeren besked.
  3. Opret inputparametre med disse datatyper på siden Definitioner:
    • OrderID: Streng
    • TechnicianEmail: Streng
  4. Formel. I feltet Formel skal du indsætte følgende kode: Du kan finde flere oplysninger om denne funktion i SendAppNotification-handling.
     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. Vælg Næste.
  6. Vælg Gem på siden Oversigt.

Aktivere in-app meddelelse med øjeblikkelig handling

  1. Vælg en lærred-app, og vælg Rediger på kommandolinjen (eller opret en ny).
  2. Vælg et skærmbillede i venstre navigationsrude, eller opret en ny.
  3. Tilføj en knap på siden ved hjælp af Tekst Giv tekniker besked i menuen Indsæt.
  4. Vælg knappen, og angiv følgende i formellinjen fx, hvor DataCardValue17 er den kolonne, der indeholder ordre-id'et, og DataCardValue15 er den kolonne, der indeholder teknikerens mailadresse. I dette eksempel bruges en lærredsapp med navnet Serviceordreapp.
    Environment.cr8b8_Notifytechnician1({
           OrderID: DataCardValue17.Text,
       TechnicianEmail: DataCardValue15.Text 
    });
    
        Notify("The technician was notified!", NotificationType.Success, 2000);
    
    
    Tilføje en knap med en formel Power Fx , der kan sende besked til en tekniker
  5. Gem og udgiv ændringerne.

Når meddelelsen om teknikerens handling vælges i appen, sendes der en meddelelse i appen til den tekniker, der er tildelt serviceordren. En handling på meddelelsen åbner serviceordreoplysningerne i en siderude.

Meddelelse sendt til den tekniker, der modtager i app

Eksempel på øjeblikkelig plug-in med MSN Weather-connector

Denne plug-in returnerer den aktuelle vejrudsigt for et bestemt sted ved hjælp af MSN Weather-connector.

Krav:

  1. Opret en forbindelsesreference til MSN Weather, hvis den endnu ikke er tilgængelig i miljøet: Opret en forbindelsesreference i appen fra ruden med forbindelsesreferencer til højre

  2. Kopiér kodestykke: Kopiere handlingskodestykke fra ruden Forbindelser

  3. Fuldfør redigering af formlen ved hjælp af IntelliSense, og brug egenskaberne for connector-svar efter behov: Fuldfør plug-in-definitionen i editoren

  4. Gem

  5. Test plug-in

Tip

Brug funktionen With() til at registrere hele svaret fra én handling, hvis du vil have adgang til forskellige egenskaber, som svaret kan have. I eksemplet nedenfor er der en inputparameter Location (streng) og en outputparameter Out (streng).

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

Bedste praksis

Håndtering af uendelig løkkefejl i automatiserede plugins med lav kode

Skriv ikke en patch-erklæring om en automatisk plugin ved hændelsen 'Update', hvor programrettelsen sker på samme tabel som plugin. Dette fører til uendelig løkker og fejl i eksekvering af plugins.

Problematisk mønster: Brug af Patch() formel udløser en ny opdatering. "Problematisk formel i automatiserede plugins"

Anbefalet mønster: Brug i stedet Set()-formlen for at undgå dette problem. "Anbefalet formel i automatiserede plugins"

Se også

Plug-ins med lav kode Power Fx (forhåndsversion)