Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Du kan automatisk oprette arbejdsordrer i Dynamics 365 Field Service ved hjælp af Power Automate flow. Dette er nyttigt, når arbejdsordrer skal oprettes på baggrund af eksterne udløsere, f.eks. en IoT-besked, en formularindsendelse, en tjenesteanmodning fra et andet system eller en ændring af en relateret post.
Power Automate flows bruger connectoren Microsoft Dataverse til at interagere med Field Service-poster. Du kan finde oplysninger om oprettelse af arbejdsordrer via kode ved at gå til Opret arbejdsordrer ved hjælp af Web-API'en til Dataverse.
Forudsætninger
- En Power Automate licens (inkluderet i de fleste Dynamics 365 licenser).
- Mindst en af følgende Field Service-sikkerhedsroller er tildelt flowets forbindelseskonto. Få mere at vide under Konfigurer brugere og sikkerhedsroller.
- Field Service – Ekspeditør
- Field Service – administrator
- Eksisterende poster for de påkrævede opslagsfelter:
-
Tjenestekonto (
accountentitet) -
Arbejdsordretype (
msdyn_workordertypeenhed) -
Prisliste (
pricelevelentitet)
-
Tjenestekonto (
Mulighed 1: Opret en arbejdsrækkefølge, når en Dataverse-post ændres
Brug dette mønster til at oprette en arbejdsrækkefølge som svar på en ændring i en anden Dataverse-tabel, f.eks. når et kundeaktivs status ændres.
Konfigurer udløseren
I Power Automate skal du vælge Opret>Automated cloudflow.
Søg efter og vælg Når en række tilføjes, ændres eller slettes (Microsoft Dataverse connector).
Når du bliver bedt om det, skal du logge på Microsoft Dataverse connectoren ved hjælp af dine Dynamics 365 legitimationsoplysninger. Hvis du allerede har en forbindelse til dit miljø, skal du vælge den på rullelisten. Udløserens konfigurationsfelter udfyldes ikke, før der er oprettet en aktiv forbindelse.
Konfigurer udløseren:
Felt Værdi Ændr type Ændret Tabelnavn Kundeaktiver Område Organisation Du kan også tilføje betingelsen Filterrækker for at begrænse, hvornår flowet kører. For eksempel:
msdyn_operationalstatus eq 690970001(Needs Service).
Tip!
Hvis du vil teste trinnene til oprettelse af arbejdsordrer uden at ændre en Dataverse-post, skal du oprette en kopi af dit flow og erstatte udløseren Dataverse med Udløs et flow manuelt. Tilføj inputparametre (f.eks. tekstinput for tjenestekonto-id'et, arbejdsordretype-id og prisliste-id), så du kan bestå testværdier, når du kører flowet. Når du har kontrolleret, at arbejdsordren er oprettet korrekt, skal du skifte tilbage til udløseren Dataverse i dit produktionsflow.
Tilføj handlingen Opret arbejdsordre
Vælg + Nyt trin og søg efter Tilføj en ny række (Microsoft Dataverse connector).
Vælg den samme Dataverse-forbindelse, som du brugte til udløseren. Feltet Tabelnavn vises kun, når der er valgt en forbindelse.
Angiv Tabelnavn til Arbejdsordrer.
Udfyld de påkrævede felter:
Felt Værdi Arbejdsordrenummer Angiv udtrykket guid()som pladsholder. Feltet Arbejdsordrenummer kræves af brugergrænsefladen for Dataverse-connectoren, men Field Service-plug-in'en med autonummerering tildeler automatisk det korrekte sekventielle arbejdsordrenummer, når posten gemmes. Hvis du vil angive et udtryk, skal du vælge feltet, skifte til fanen Udtryk i panelet med dynamisk indhold, skriveguid()og vælge OK.Servicekonto Vælg kontoen ved hjælp af søgefeltet, eller angiv udtrykket concat('/accounts(', 'service-account-guid', ')')under fanen Udtryk , hvis du vil bruge et hardcoded eller dynamisk GUID. Se nedenfor for at få mere at vide om, hvordan du finder dette.Type af arbejdsordre Vælg arbejdsordretypen ved hjælp af søgefeltet, eller angiv udtrykket concat('/msdyn_workordertypes(', 'work-order-type-guid', ')')under fanen Udtryk , hvis du vil bruge et hardcoded eller dynamisk GUID. Se nedenfor for at få mere at vide om, hvordan du finder dette.Prisliste Vælg prislisten ved hjælp af søgefeltet, eller angiv udtrykket concat('/pricelevels(', 'your-price-list-guid', ')')under fanen Udtryk , hvis du vil bruge et hardcoded eller dynamisk GUID. Hvis du henter prislisten dynamisk ved hjælp af handlingen Listerækker i en For hver løkke, skal du brugeconcat('/pricelevels(', items('YourLoopName')?['pricelevelid'], ')')i stedet for at erstatteYourLoopNamemed navnet på løkken. Se nedenfor for at få mere at vide om, hvordan du finder dette.Systemstatus 690970000(Ikke-planlagte)Skattepligtig falseInstruktioner Brug dynamisk indhold fra udløseren, f.eks. navnet på aktivet Tjenestekonto: Skriv kontonavnet direkte i feltet Tjenestekonto for at søge efter og vælge det. Hvis udløseren er en ændring af kundeaktiver, og aktivet er knyttet til en konto, kan du i stedet vælge Konto (Kundeaktiver) i panelet med dynamisk indhold. Hvis du har brug for at bruge et GUID direkte, skal du gå til Tjenesteområde>Kunder>Konti i Field Service, åbne kontoen og kopiere post-id'et fra browserens URL-adresse (værdien mellem
%7Bog%7Deller det almindelige GUID, hvis URL-adressen ikke er kodet).Arbejdsordretype: Skriv navnet på arbejdsordretypen direkte i feltet Arbejdsordretype , der skal søges efter, og vælg den. Hvis du har brug for at bruge et GUID direkte, skal du gå til området >Arbejdsordre>Arbejdsordretyper i Field Service, åbne arbejdsordretypen og kopiere post-id'et fra browserens URL-adresse.
Prisliste: Skriv navnet på prislisten direkte i feltet Prisliste for at søge efter og vælge det. Hvis du har brug for at bruge et GUID direkte, skal du gå til Indstillinger>Generelle>prislister i Field Service, åbne prislisten og kopiere post-id'et fra browserens URL-adresse.
Note
Dataverse-connectoren kræver, at opslagsfelter bruger en OData-objektreferencesti (f.eks.
/accounts(guid)) i stedet for et almindeligt GUID. Hvis du angiver et bare GUID, medfører det enODataUnrecognizedPathExceptionpå kørselstidspunktet. Udtrykkeneconcatovenfor konstruerer det korrekte stiformat.Gem, og test flowet.
Mulighed 2: Opret en arbejdsordre ud fra en HTTP-anmodning
Brug dette mønster til at oprette en arbejdsordre fra et eksternt system, f.eks. en kundeportal, et billetsystem eller en IoT-platform.
Konfigurer udløseren
I Power Automate skal du vælge Opret>Instant cloudflow.
Navngiv flowet, og vælg Når der modtages en HTTP-anmodning som udløser.
Vælg Opret.
I feltet JSON-skema for anmodningsbrødtekst skal du indsætte følgende skema:
{ "type": "object", "properties": { "serviceAccountId": { "type": "string" }, "workOrderTypeId": { "type": "string" }, "priceListId": { "type": "string" }, "instructions": { "type": "string" } }, "required": ["serviceAccountId", "workOrderTypeId", "priceListId"] }Vælg en af følgende indstillinger for Hvem kan udløse flowet:
Indstilling Hvornår skal den bruges Kun brugere i min lejer Anbefalet til produktion. Opkaldere skal godkende med Microsoft Entra ID og præsentere et gyldigt OAuth-ihændehavertoken. Brug dette til interne systemer eller tjenesteprincipaler, der er tillid til. Nogen Selve URL-adressen fungerer som legitimationsoplysningerne – der kræves ingen yderligere godkendelsesheader. Bruges kun, når opkaldssystemet ikke kan hente et Entra ID token, og du kan sikre, at URL-adressen er gemt sikkert. Få mere at vide om sikring af HTTP-udløste flow i Tilføj OAuth-godkendelse for HTTP-anmodningsudløsere.
URL-adressen til HTTP-feltet er skrivebeskyttet. Udfyld det ikke. Power Automate udfylder det automatisk, første gang du gemmer flowet.
Gem flowet. FELTET HTTP URL-adresse udfyldes nu med URL-adressen til slutpunktet. Kopiér denne URL-adresse, og angiv den til den person, der konfigurerer det eksterne system (f.eks. en udvikler eller systemadministrator). Det eksterne system udløser flowet ved at sende en HTTP POST-anmodning til denne URL-adresse med en JSON-brødtekst, der svarer til det skema, du har defineret. F.eks.:
POST <paste the HTTP URL here> Content-Type: application/json { "serviceAccountId": "<account record GUID>", "workOrderTypeId": "<work order type record GUID>", "priceListId": "<price list record GUID>", "instructions": "Reported issue: equipment not functioning" }Hver gang det eksterne system sender denne anmodning, kører Power Automate flowet og opretter en arbejdsordre i Field Service.
Tilføj handlingen Opret arbejdsordre
Vælg + Nyt trin og søg efter Tilføj en ny række (Microsoft Dataverse connector).
Log på den Microsoft Dataverse connector, eller vælg en eksisterende forbindelse. Feltet Tabelnavn vises kun, når der er valgt en forbindelse.
Angiv Tabelnavn til Arbejdsordrer.
Knyt HTTP-anmodningsbrødtekstfelterne til felterne i arbejdsordren:
Arbejdsordre-felt Værdi Arbejdsordrenummer Angiv udtrykket guid()som pladsholder. Feltet Arbejdsordrenummer kræves af brugergrænsefladen for Dataverse-connectoren, men Field Service-plug-in'en med autonummerering tildeler automatisk det korrekte sekventielle arbejdsordrenummer, når posten gemmes. Hvis du vil angive et udtryk, skal du vælge feltet, skifte til fanen Udtryk i panelet med dynamisk indhold, skriveguid()og vælge OK.Servicekonto concat('/accounts(', triggerBody()?['serviceAccountId'], ')')Type af arbejdsordre concat('/msdyn_workordertypes(', triggerBody()?['workOrderTypeId'], ')')Prisliste concat('/pricelevels(', triggerBody()?['priceListId'], ')')Systemstatus 690970000(Ikke-planlagte)Instruktioner @{triggerBody()?['instructions']}Du kan eventuelt tilføje en svarhandling for at returnere det nye arbejdsordre-id til det kaldende system:
- Vælg + Nyt trin , og søg efter Svar (fra connectoren Anmod om ).
- Angiv Statuskode til
200. - I feltet Brødtekst skal du vælge ikonet for dynamisk indhold og vælge msdyn_workorderid i trinnet Tilføj en ny række . Dette er det entydige id for den arbejdsordre, der netop er oprettet.
Uden dette trin modtager det kaldende system ikke noget svar, og HTTP-anmodningen får timeout efter at have ventet. Hvis du tilføjer dette trin, modtager det kaldende system et svar med arbejdsordre-id'et
200, så snart flowet er fuldført.
Værdier for systemstatusvalg sæt
Brug disse heltalsværdier, når du angiver Systemstatus i et flow eller API-kald.
| Label | Værdi |
|---|---|
| Ikke-planlagt | 690970000 |
| Planlagt | 690970001 |
| I gang | 690970002 |
| Fuldført | 690970003 |
| Opslået | 690970004 |
| Annulleret | 690970005 |
Overvejelser
Ejerskab af flowforbindelseskontoen
De arbejdsordrer, der oprettes af et flow, ejes af den forbindelseskonto, der bruges i Dataverse-connectoren. Sørg for, at denne konto har den korrekte sikkerhedsrolle, og at arbejdsordrer, der er oprettet af flowet, vises i de forventede visninger og køer.
Underordnede poster
Handlingen Tilføj en ny række opretter kun arbejdsordrehovedet. Hvis du vil tilføje arbejdsordreprodukter, -tjenester eller -serviceopgaver, skal du tilføje separate tilføj nye rækketrin for hver underordnede tabel (msdyn_workorderproduct, msdyn_workorderservice, msdyn_workorderservicetask) og angive opslagsfeltet Arbejdsordre til det id, der returneres af oprettelsestrinnet.
API-hastighedsgrænser
Power Automate flow er underlagt Dataverse API-grænser. I forbindelse med scenarier med store mængder kan du overveje at bruge batchslutpunktet for Dataverse Web API eller sprede flowkørsler ved hjælp af en planlagt udløser med batchbehandling.
Undgå dublerede arbejdsordrer
Hvis et flow ofte kører på den samme udløser, skal du tilføje en betingelse for at kontrollere, om der allerede findes en arbejdsordre, før du opretter en ny. Brug handlingen Listerækker filtreret efter kildepost-id'et til at kontrollere, om der er eksisterende arbejdsordrer.
Fejlhåndtering
I forbindelse med produktionsflow skal du indpakke trinnet Tilføj en ny række i handlingen Område og tilføje en parallel forgrening, der er konfigureret til at køre er mislykket. Brug denne forgrening til at logføre fejlen eller sende en meddelelse. For HTTP-udløste flow skal du altid tilføje en svarhandling , så det kaldende system modtager en statuskode for succes eller fejl i stedet for at få timeout.