Del via


Eksempel på lavkodebasert Dataverse-programtillegg (forhåndsversjon)

[Dette emnet inneholder dokumentasjon for forhåndsversjonen, og kan bli endret.]

Målet med disse eksempelprogramtilleggene er å hjelpe deg med å komme i gang ved å integrere dem i appene. Du vil forstå at redigeringsopplevelsen inkluderer redigering av egendefinerte API-er i Microsoft Dataverse understøttet av Power Fx-uttrykk, som kan utløse handlinger internt eller eksternt for Dataverse.

Viktig

  • Dette er forhåndsversjonsfunksjon.
  • Forhåndsversjonsfunksjonene er ikke ment for produksjonsbruk og kan ha begrenset funksjonalitet. Disse funksjonene er tilgjengelige før en offisiell utgivelse, slik at kunder kan få tidlig tilgang og gi tilbakemeldinger.

Forutsetning

Hvis du vil bruke et av eksempelprogramtilleggene for datahendelsen, må Dataverse Accelerator-appen være installert i miljøet. Mer informasjon: Forhåndskrav for å opprette et lavkodebasert programtillegg

Obs!

E-postmaler er bare tilgjengelige for bestemte tabeller. Mer informasjon: Opprette maler for e-post

Retur av en ikke-negativ verdi

Dette eksemplet bruker Abs()-funksjonen til å returnere den ikke-negative verdien for argumentet sitt. Hvis tallet er negativt, returnerer Abs den positive ekvivalenten.

  1. Spill av Dataverse Accelerator-appen. Gå til kommandolinjen, og velg Ny handling > Umiddelbart programtillegg.

  2. Angi et visningsnavn, for eksempel formelnavnet, og beskrivelsen.

  3. Opprett en Out-parameter for å validere en forventet virkemåte som gir mening, for eksempel en streng. Alternativt kan du bruke inndataparametere for å gjøre testingen enklere, for å gi mening med formelen.

  4. I formelredigeringsprogrammet setter du klammeparenteser rundt Out-parameteren:

    {Out: "" }
    
  5. Skriv inn et uttrykk som tester formelen:

    • Kontroller at intellisense godtar formelen (teksten blir lys blå).
    • Implementer et uttrykk som for eksempel gir utdata som bidrar til å validere resultatet.
    {Out: "Abs(-5) = 5: " & Text( Abs(-5) = 5 )  }
    
  6. Velg Neste, og velg deretter Lagre.

  7. Velg Test for å teste formelen. Bruk utdataparameteren til å validere resultatet.

Inndatavalidering og egendefinerte feil

Duplikatregistrering

Implementer inndatavalidering på serversiden, for eksempel duplikatfeilregistrering, som kaster en egendefinert feilmelding.

  1. Spill av Dataverse Accelerator-appen. Gå til kommandolinjen, og velg Ny handling > Automatisert programtillegg.
  2. I Navn-boksen skriver du inn Duplikatkontroll.
  3. For Tabell velger du Kontakt.
  4. For Kjør dette programtillegget når raden er, velger du Opprettet.
  5. Skriv inn følgende formel i Formel-boksen:
 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. Velg Lagre.

Test programtillegget

  1. Hvis du vil teste programtillegget, oppretter du en lerretsapp ved hjelp av kontakttabellen ved å følge fremgangsmåten her: Angi en tabell
  2. Opprett en kontaktrad.
  3. Opprett en annen kontakt med samme navn som i forrige trinn.
  4. Det vises en melding som angir at det finnes duplikatoppføringer. Velg Ignorer og lagre i feilmeldingen.

Denne egendefinerte feilmeldingen vises: Du har to kontakter med samme for- og etternavn.

Datavalidering

Vise bestemte typer feil ved å bruke ErrorKind-opplistingen.

  1. Opprett et nytt automatisert programtillegg.

  2. Angi følgende verdier:

    • Navn: Inndatavalidering
    • Beskrivelse: Kontrollerer om datoen er gyldig, og det oppstår en feil hvis ugyldig
    • Tabell: Avtale
    • Kjør dette programtillegget når raden er: Oppdatert
  3. Skriv inn formelen nedenfor:

    If(ThisRecord.'Due Date' < Now(), 
     Error({ Kind: ErrorKind.Validation , Message: "The due date cannot be in the past" })
    );
    
  4. Under Avanserte alternativer angir du Når skal dette kjøres til Før operasjon. Det er lurt å kjøre denne regelen før data lagres, for å unngå ugyldige data.

  5. Velg Lagre.

Gå til Error()-funksjonen for mer informasjon om egendefinerte feil.

Send e-post basert på en datahendelse

Forhåndskrav:

Eksempel på e-postmal

Her er et eksempel på en e-postmal som du kan opprette for den SenMail-baserte datahendelsen:

  • Maltype: Global
  • Navn: Takk for bestilling
  • Beskrivelse: Bruk denne malen til å takke en kunde for å ha bestilt hos deg.
  • Emne: Thank you for your order <orderconfirmation-{!salesorder:Order Number; }>
  • Brødtekst: Bruk denne 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 

Opprett det automatiserte programtillegget

  1. Spill av Dataverse Accelerator-appen, og velg deretter +Nytt programtillegg under Automatiserte programtillegg.
  2. Angi følgende informasjon:
    • Navn: SendEmailUponCreate

    • Tabell: Velg det logiske tabellnavnet for salgsordrene, som er SalesOrder. Denne hendelsen er basert på salgsordretabellen.

    • Kjør dette programtillegget når raden er: Opprettet

    • Formel: Lim inn koden nedenfor i Formel-boksen. Hvis du vil ha mer informasjon om SendEmailFromTemplate-funksjonen, går du til SendEmailFromTemplate-handlingen.

      XSendEmailFromTemplate(
          LookUp('Email Templates',StartsWith(title,"Order Thank You")).'Email Template',
      ThisRecord,
      LookUp(Users,'Primary Email'="sampleemail@sample.com"),[ThisRecord.Email]
      )
      
  3. Velg Avanert > Etter operasjon.
  4. Velg Lagre.

Bekreftelsesmeldingen Programtillegg lagret vises.

Send varsler i appen basert på en umiddelbar handling

Varsler i appen gjør det mulig for opprettere å konfigurere kontekstavhengige varsler for brukere i modelldrevne apper.

Opprett et lavkodebasert programtillegg som sender et varsel i appen

  1. Spill av Dataverse Accelerator-appen, og velg deretter +Nytt programtillegg under Umiddelbare programtillegg.
  2. Skriv inn følgende informasjon, og velg Neste:
    • Navn: NotifyTechnican1
    • Beskrivelse: Dette programtillegget varsler appbrukeren.
  3. Opprett inndataparametere med disse datatypene på Definisjoner-siden:
    • OrderID: Streng
    • TechnicianEmail: Streng
  4. Formel. Lim inn følgende kode i Formel-boksen. Hvis du vil ha mer informasjon om denne funksjonen, kan du gå til SendAppNotification-handlingen.
     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. Velg Neste.
  6. Sammendrag-siden velger du Lagre.

Aktiver direktehandlingen for meldinger i appen

  1. Velg en lerretsapp, og velg deretter Rediger på kommandolinjen (eller opprett en ny).
  2. Velg skjermen i den venstre navigasjonsruten, eller opprett en ny.
  3. Sett inn-menyen legger du til en knapp på siden ved å bruke Tekst Varsle tekniker.
  4. Velg knappen, og skriv inn følgende i fx-formellinjen, der DataCardValue17 er kolonnen som inneholder ordre-ID-en, og DataCardValue15 er kolonnen som inneholder teknikerens e-postadresse. I dette eksemplet brukes en lerretsapp kalt Serviceordre-app .
    Environment.cr8b8_Notifytechnician1({
           OrderID: DataCardValue17.Text,
       TechnicianEmail: DataCardValue15.Text 
    });
    
        Notify("The technician was notified!", NotificationType.Success, 2000);
    
    
    Legg til en knapp med Power Fx-formel for å sende varsel til tekniker
  5. Lagre og publiser endringene.

Når handlingen for å varsle tekniker velges i appen, sendes det et varsel i appen til teknikeren som er tilordnet til serviceordren. En handling i varselet åpner detaljene for serviceordren i en siderute.

Varsel sendt til tekniker som mottar det i appen

Eksempel på umiddelbare programtillegg med MSN Vær-kobling

Dette programtillegget returnerer gjeldende vær for et bestemt sted ved hjelp av MSN Vær-koblingen.

Forhåndskrav:

  1. Opprett en tilkoblingsreferanse for MSN Vær hvis den ikke er tilgjengelig i miljøet ennå: Opprett en tilkoblingsreferanse i appen fra ruten for tilkoblingsreferanser til høyre

  2. Kopier kodesknutten: Kopier handlingskodesnutten fra tilkoblingsruten

  3. Fullfør redigering av formelen med intellisense, og bruk tilkoblingssvaregenskapene etter behov: Fullfør definisjonen av programtillegget i redigeringsprogrammet

  4. Lagre

  5. Test programtillegget

Tips

Bruk With()-funksjonen til å registrere hele svaret fra én handling hvis du vil ha tilgang til forskjellige egenskaper som svaret kan ha. I eksemplet nedenfor finnes det en inndataparameter Location (streng) og en utdataparameter 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."
})

Beste fremgangsmåter

Håndtering av uendelig sløyfe-feil i automatiserte, lavkodebaserte plugin-moduler

Ikke skriv en Patch-setning på en automatisk plugin-modul ved "Update"-hendelse, der oppdateringen skjer i samme tabell som plugin-modulen. Dette fører til uendelige sløyfer og feil ved kjøring av plugin-moduler.

Problematisk mønster: Bruk av Patch()-formel utløser en ny oppdatering. "Problematisk formel i automatiske plugin-moduler"

Anbefalt mønster: Bruk formelen Set() i stedet, for å unngå dette problemet. "Anbefalt formel i automatiske plugin-moduler"

Se også

Lavkodebaserte programtillegg i Power Fx (forhåndsversjon)