Exempel Dataverse plugin-program med lågkod (förhandsversion)
[Det här ämnet är en förhandsversion av dokumentationen och kan ändras.]
Målet med dessa exempel på plugin-program är att hjälpa dig att komma igång genom att dra in dem i dina appar. Du kommer att förstå att redigeringsupplevelsen inkluderar redigering av Microsoft Dataverse anpassade API:er som backas upp av Power Fx uttryck som kan utlösa åtgärder internt eller externt till Dataverse.
Viktigt
- Detta är en förhandsversion.
- Förhandsversionsfunktioner ska inte användas i produktion och funktionerna kan vara begränsade. funktionerna är tillgängliga före den officiella publiceringen så att kunderna kan få tillgång tidigare och ge oss feedback.
Förutsättningar
För att kunna använda ett exempel på plugin-program för datahändelsen måste Dataverse Accelerator-appen installeras i miljön. Mer information: Krav för att skapa ett plugin-program med låg kod
Anteckning
E-postmallar är endast tillgängliga för vissa tabeller. Mer information: Skapa mallar för e-post
Returnera ett icke-negativt värde
Detta exempel använder Abs()-funktionen för att returnera dess arguments icke-negativa värde. Om ett tal är negativt returnerar Abs
motsvarande positiva tal.
Spela upp Dataverse Accelerator-appen i kommandofältet, välj Ny åtgärd > Direkt plugin-program.
Ange en visningsnamn, till exempel formelns namn och beskrivning.
Skapa en
Out
parameter för att verifiera förväntat beteende som är meningsfullt, till exempel en sträng. Om du vill använda indataparametrar för att göra testningen enklare, så att den är meningsfull med formeln.I formelredigeraren sveper du in
Out
parametern i klammerparenteser:{Out: "" }
Ange ett uttryck som testar formeln:
- Verifiera att intellisense accepterar formeln (texten blir ljusblå).
- Implementera exempelvis ett uttryck som tillhandahåller utdata för att verifiera resultatet.
{Out: "Abs(-5) = 5: " & Text( Abs(-5) = 5 ) }
Välj Nästaoch välj sedan Spara.
Välj Testa om du vill testa formeln. Verifiera resultatet med hjälp av utdataparametern.
Indataverifiering och anpassade fel
Dubblettidentifiering
Implementera serverbaserade indatavalidering, till exempel dubblettfelidentifiering, som ger ett anpassat felmeddelande.
- Spela upp Dataverse Accelerator-appen i kommandofältet, välj Ny åtgärd > Automatiska plugin-program.
- I rutan Namn anger du Dubblettkontroll.
- För Tabell, välj Kontakt.
- För Kör denna plugin-programmet när raden är, välj Skapad.
- I rutan Formel, ange denna 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")
)
- Välj Spara.
Testa plugin-programmet
- Testa plugin-programmet genom att skapa en app med hjälp av kontakttabellen genom att följa stegen här: Ange en tabell
- Skapa en kontaktrad.
- Skapa ytterligare en kontakt med samma namn som i föregående steg.
- Ett meddelande visas som anger att dubblettposter har hittats. Välj Ignorera och spara i felmeddelandet.
Det här anpassade felmeddelandet visas: Du har två kontakter med samma för- och efternamn.
Datavalidering
Visa specifika typer av fel med hjälp av uppräkningen ErrorKind.
Skapa ett nytt automatiskt plugin-program.
Ange följande värden:
- Namn: validering av indata
- Beskrivning: Söker efter giltigt datum och ger ett felmeddelande om ogiltigt
- Table: Appointment
- Kör detta plugin-program när raden är: Uppdaterad
Ange formeln nedan:
If(ThisRecord.'Due Date' < Now(), Error({ Kind: ErrorKind.Validation , Message: "The due date cannot be in the past" }) );
Under Avancerade alternativ anger du När ska den köras till Före åtgärd. Du vill köra regeln innan data sparas för att förhindra ogiltiga data.
Välj Spara.
Gå till Error() funktion för att lära dig mer om anpassade fel.
Skicka e-post baserat på en datahändelse
Förutsättningar:
- Synkronisering på serversidan är inställd för din miljö. Mer information: Inställning av serversynkronisering av e-postmeddelanden, avtalade tider, kontakter och uppgifter
- Lägg till e-postmall.
Exempel på en e-postmall
Här är ett exempel på en e-postmall som du kan skapa för SenMail-baserade datahändelsen:
- Malltyp: Global
- Namn: Tack för din beställning
- Beskrivning: Använd den här mallen om du vill tacka en kund för att han har lagt en order hos dig.
- Ämne:
Thank you for your order <orderconfirmation-{!salesorder:Order Number; }>
- Brödtext: Använd den här koden.
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
Skapa ett automatiskt plugin-program
- Spela Dataverse Accelerator-app och välj sedan +Nytt plugin-program under Automatiska plugin-program.
- Ange följande information:
Namn: SendEmailUponCreate
Tabell: Välj det logiska tabellnamnet för försäljningsorderna, som är SalesOrder. Händelsen baseras på tabellen Försäljningsorder.
Kör detta plugin med raden är: Skapad
Formel: Klistra in koden nedan i rutan Formel. För mer information abut på SendEmailFromTemplate-funktion, till SendEmailFromTemplate-åtgärd.
XSendEmailFromTemplate( LookUp('Email Templates',StartsWith(title,"Order Thank You")).'Email Template', ThisRecord, LookUp(Users,'Primary Email'="sampleemail@sample.com"),[ThisRecord.Email] )
- Välj Avancerad > Efter åtgärd.
- Välj Spara.
Bekräftelsemeddelandet om Plugin-programmet har sparats visas.
Skicka avisering via app baserat på en snabbåtgärd
Med avisering i app kan utvecklare konfigurera kontextuella och användbara meddelanden för användare i modellbaserad appar.
Skapa det plugin-program för låg kod som skickar en avisering via app
- Spela Dataverse Accelerator-app och välj sedan +Nytt plugin-program under Direkta plugin-program.
- Ange följande information , väljNästa:
- Namn: NotifyTechnican1
- Beskrivning: Appanvändaren meddelas med det här snabbprogrammet.
- På sidan Definitioner, skapa indataparametrar med dessa datatyper:
- OrderID: Sträng
- TechnicianEmail: Sträng
- Formel. Klistra in följande kod i rutan Formel. Mer information om denna funktion finns i SendAppNotification åtgärden.
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' ) ] )
- Välj Nästa.
- På sidan Sammanfattning, välj Spara.
Aktivera snabbåtgärden för avisering i appen
- Välj en arbetsyteapp och välj Redigera i kommandofältet (eller skapa en ny).
- Välj skärm i det vänstra navigeringsfönstret eller skapa en ny.
- I menyn Infoga, lägg till en Knapp på sidan med Text Meddela tekniker.
- Markera knappen och ange följande i formelfältet där fx formelfält DataCardValue17 är kolumnen som innehåller order-ID och DataCardValue15 är kolumnen som innehåller teknikerns e-postadress. I det här exemplet används en app med namnet App för servicebeställning.
Environment.cr8b8_Notifytechnician1({ OrderID: DataCardValue17.Text, TechnicianEmail: DataCardValue15.Text }); Notify("The technician was notified!", NotificationType.Success, 2000);
- Spara och Publicera ändringarna.
När du väljer åtgärden meddela tekniker i appen skickas en avisering via appen till den tekniker som har tilldelats serviceordern. En åtgärd i meddelandet öppnar serviceorderinformationen i ett sidofönster.
Prova direkt plugin-program med MSN Weather-anslutningsprogrammet
Det här plugin-programmet returnerar aktuell information om en specifik plats med hjälp av MSN Weather-anslutningsprogrammet.
Förutsättningar:
- Förutsättningar för att skapa ett plugin-program med låg kod
- MSN Weather-anslutningsprogram tillåts i miljön
Skapa en anslutningsreferens för MSN Weather om det inte är tillgängligt ännu i miljön:
Kopiera kodavsnitt:
Slutför redigeringen av formeln med intellisense och använd de egenskaper för anslutningssvar som behövs:
Spara
Tips
Använd funktionen With() om du vill hämta hela svaret från en åtgärd om du vill ha tillgång till olika egenskaper som svaret kan ha. I exemplet nedan finns en indataparameter Location
(sträng) och en utdataparameter Out
(sträng).
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."
})
Regelverk
Hantera loopfel i automatiserade plugin-program med låg kod
Skriv inget programuppdateringsutdrag på ett automatiskt plugin-program vid händelsen Uppdatering, där programuppdateringen sker i samma tabell som plugin-programmet. Detta leder till oändliga loopar och misslyckanden i körningen av plugin-program.
Återkommande mönster: Om du använder Patch()
-formeln utlöses en ny uppdatering.
Rekommenderat mönster: Använd formeln Set()
i stället för att undvika det här problemet.