Notă
Accesul la această pagină necesită autorizare. Puteți încerca să vă conectați sau să modificați directoarele.
Accesul la această pagină necesită autorizare. Puteți încerca să modificați directoarele.
Poți crea automat comenzi de lucru în Dynamics 365 Field Service folosind fluxurile Power Automate. Acest lucru este util atunci când ordinele de lucru trebuie create pe baza unor declanșatoare externe, cum ar fi o alertă IoT, o trimitere de formular, o cerere de serviciu de la un alt sistem sau o modificare a unei înregistrări conexe.
Power Automate fluxurile folosesc conectorul Microsoft Dataverse pentru a interacționa cu înregistrările Field Service. Pentru informații despre crearea ordinelor de lucru prin cod, accesați Crearea ordinelor de lucru folosind API-ul web Dataverse.
Cerințe preliminare
- O licență Power Automate (inclusă cu majoritatea licențelor Dynamics 365).
- Cel puțin unul dintre următoarele roluri de securitate ale Serviciului de Teren este atribuit contului de conexiune al fluxului. Află mai multe în Configurarea utilizatorilor și rolurile de securitate.
- Field Service - Dispecer
- Serviciu de teren - Administrator
- Înregistrări existente pentru câmpurile de căutare folosite de procesul tău de comandă de lucru:
-
Tipul ordinului de lucru (
msdyn_workordertypeentitate) -
Listă de prețuri (
pricelevelentitate), dacă procesul tău o cere -
Cont de Serviciu (
accountentitate), dacă tipul de comandă de lucru selectat necesită Cont de Serviciu sau dacă dorești context derivat din cont
-
Tipul ordinului de lucru (
Opțiunea 1: Creează un ordin de lucru când o înregistrare Dataverse se modifică
Folosește acest tipar pentru a crea un ordin de lucru ca răspuns la o modificare într-un alt tabel Dataverse, cum ar fi atunci când statutul unui activ client se schimbă.
Pregătește declanșatorul
În Power Automate, selectați Create>Automated cloud flow.
Caută și selectează Când un rând este adăugat, modificat sau șters (conector Microsoft Dataverse).
Când ți se cere, conectează-te la conectorul Microsoft Dataverse folosind datele tale de autentificare Dynamics 365. Dacă ai deja o conexiune la mediul tău, selectează-l din meniul derulant. Câmpurile de configurare ale declanșatorului nu se umplu până când nu se stabilește o conexiune activă.
Configurează declanșatorul:
Câmp Valoare Schimbare a tipului Modificat Numele tabelului Active ale clienților Domeniu de aplicare Organizație Opțional, adaugă o condiție Filter rows pentru a limita momentul în care curge debitul. De exemplu:
msdyn_operationalstatus eq 690970001(Necesită serviciu).
Sfat
Pentru a testa pașii de creare a ordinului de lucru fără a schimba o înregistrare Dataverse, creează o copie a fluxului tău și înlocuiește declanșatorul Dataverse cu Declanșarea manuală a fluxului. Adaugă parametri de intrare (cum ar fi intrări text pentru ID-ul contului de serviciu, ID-ul tipului comenzii de lucru și ID-ul listei de prețuri) ca să poți trece valorile de test când rulezi fluxul. După ce verifici că ordinul de lucru este creat corect, revino la declanșatorul Dataverse din fluxul tău de producție.
Adaugă acțiunea Crearea ordinului de lucru
Selectează + Pas nou și caută Adaugă un rând nou (conector Microsoft Dataverse).
Selectează aceeași conexiune Dataverse pe care ai folosit-o pentru declanșator. Câmpul de nume tabel apare doar după ce o conexiune este selectată.
Setează numele tabelului la Ordine de lucru.
Completează câmpurile necesare:
Câmp Valoare Numărul comenzii de lucru Introduceți expresia guid()ca un loc provizoriu. Câmpul Număr de Ordine de Lucru este necesar de interfața conectorului Dataverse, dar pluginul autonumber al Field Service atribuie automat numărul corect al ordinului de lucru secvențial atunci când înregistrarea este salvată. Pentru a introduce o expresie, selectați câmpul, comutați la fila Expresie din panoul de conținut dinamic, tastezguid(), și selectați OK.Cont de serviciu Este necesar doar când tipul selectat de Ordin de Muncă necesită Cont de Serviciu. Selectează contul folosind câmpul de căutare sau introdu expresia concat('/accounts(', 'service-account-guid', ')')în fila Expresie dacă ai nevoie să folosești un GHID hardcodat sau dinamic. Lasă acest câmp gol pentru tipurile de comenzi de lucru în care Contul de Serviciu nu este necesar și ordinul de lucru folosește un alt context de serviciu.Tip comandă de lucru Selectează tipul ordinului de lucru folosind câmpul de căutare sau introdu expresia concat('/msdyn_workordertypes(', 'work-order-type-guid', ')')în fila Expresie dacă ai nevoie să folosești un GUID hardcodat sau dinamic. Vezi mai jos cum să găsești acest lucru.Lista de preturi Selectați lista de prețuri folosind câmpul de căutare sau introduceți expresia concat('/pricelevels(', 'your-price-list-guid', ')')în fila Expresie dacă aveți nevoie să folosiți un GHID hardcodat sau dinamic. Dacă recuperezi lista de prețuri dinamic folosind o acțiune List rows în interiorul unei bucle Pentru fiecare , foloseșteconcat('/pricelevels(', items('YourLoopName')?['pricelevelid'], ')')în schimb, înlocuindYourLoopNamecu numele buclei tale. Vezi mai jos cum să găsești acest lucru.Starea sistemului 690970000(Neprogramat)Impozabile falseInstrucţiuni Folosește conținut dinamic din trigger, de exemplu numele activului Cont de serviciu: Scrie numele contului direct în câmpul Contului de Serviciu pentru a-l căuta și selecta. Dacă declanșatorul este o modificare a unui activ client și activul este legat de un cont, poți selecta în schimb contul (active client) din panoul dinamic de conținut. Dacă ai nevoie să folosești direct un GUID, mergi la Conturi de Clienți>> de serviciu în Field Service, deschide contul și copiază ID-ul de înregistrare de pe URL-ul browserului (valoarea dintre
%7Bși%7D, sau GUID simplu dacă URL-ul este necodificat). Află mai multe în Configurează cerințele contului de service pentru ordinele de lucru.Tipul ordinului de lucru: Tastează numele tipului ordinului de lucru direct în câmpul Tip Ordin de lucru pentru a-l căuta și selecta. Dacă trebuie să folosești direct un GUID, mergi la zona >Setări Ordine>de lucru Tipuri de ordine de lucru în Field Service, deschide tipul ordinului de lucru și copiază ID-ul recordului din URL-ul browserului.
Listă de prețuri: Tastează numele listei de prețuri direct în câmpul Listă de prețuri pentru a-l căuta și selecta. Dacă ai nevoie să folosești direct un GUID, mergi la Setări>Liste Generale> dePrețuri în Field Service, deschide lista de prețuri și copiază ID-ul înregistrării din URL-ul browserului.
Notă
Conectorul Dataverse necesită ca câmpurile de căutare să folosească o cale de referință a entității OData (de exemplu,
/accounts(guid)) în loc de un GUID simplu. Intrarea într-un GUID gol cauzează unODataUnrecognizedPathExceptiontimp de rulare at. Expresiileconcatde mai sus construiesc formatul corect al traseului.Salvați și testați fluxul.
Opțiunea 2: Creează un ordin de lucru pornind de la o cerere HTTP
Folosește acest tipar pentru a crea un ordin de lucru dintr-un sistem extern, cum ar fi un portal pentru clienți, un sistem de tichete sau o platformă IoT.
Pregătește declanșatorul
În Power Automate, selectați Create>Instant cloud flow.
Denumește fluxul și selectează când o cerere HTTP este primită ca declanșator.
Selectați Creați.
În câmpul Request Body JSON Schema , lipiți următoarea schemă:
{ "type": "object", "properties": { "serviceAccountId": { "type": "string" }, "workOrderTypeId": { "type": "string" }, "priceListId": { "type": "string" }, "instructions": { "type": "string" } }, "required": ["workOrderTypeId", "priceListId"] }Include
serviceAccountIdcând tipul selectat de Ordin de Muncă necesită Cont de Serviciu sau când vrei ca ordinul de lucru să folosească context derivat din cont. Omintește-l pentru tipurile de comenzi de lucru unde nu este necesar un cont de serviciu.Pentru Cine poate declanșa fluxul, selectați una dintre următoarele opțiuni:
Opțiune Când se utilizează Doar utilizatorii din chiriașul meu Recomandat pentru producție. Apelanții trebuie să se autentifice cu Microsoft Entra ID și să prezinte un token OAuth valid. Folosiți-o pentru sisteme interne sau pentru principii de servicii de încredere. Oricine URL-ul în sine acționează ca o acreditare — nu este necesar un antet suplimentar de autentificare. Folosește doar când sistemul apelant nu poate obține un token Entra ID și poți asigura că URL-ul este stocat în siguranță. Aflați mai multe despre securizarea fluxurilor declanșate HTTP în autentificarea Add OAuth pentru declanșatoarele de cereri HTTP.
Câmpul URL HTTP este doar citire — nu îl completa. Power Automate îl completează automat când salvezi fluxul pentru prima dată.
Salvați fluxul. Câmpul URL HTTP este acum populat cu URL-ul de la endpoint. Copiați acest URL și furnizați-l oricui configurează sistemul extern (cum ar fi un dezvoltator sau administrator de sistem). Sistemul extern declanșează fluxul trimițând o cerere HTTP POST către acest URL cu un corp JSON care corespunde schemei definite. De exemplu:
POST <paste the HTTP URL here> Content-Type: application/json { "workOrderTypeId": "<work order type record GUID>", "priceListId": "<price list record GUID>", "serviceAccountId": "<optional account record GUID>", "instructions": "Reported issue: equipment not functioning" }De fiecare dată când sistemul extern trimite această cerere, Power Automate rulează fluxul și creează un ordin de lucru în Field Service.
Adaugă acțiunea Crearea ordinului de lucru
Selectează + Pas nou și caută Adaugă un rând nou (conector Microsoft Dataverse).
Conectează-te la conectorul Microsoft Dataverse sau selectează o conexiune existentă. Câmpul de nume tabel apare doar după ce o conexiune este selectată.
Setează numele tabelului la Ordine de lucru.
Mapați câmpurile corpului cererii HTTP la câmpurile comenzilor de lucru:
Câmpul de ordine de lucru Valoare Numărul comenzii de lucru Introduceți expresia guid()ca un loc provizoriu. Câmpul Număr de Ordine de Lucru este necesar de interfața conectorului Dataverse, dar pluginul autonumber al Field Service atribuie automat numărul corect al ordinului de lucru secvențial atunci când înregistrarea este salvată. Pentru a introduce o expresie, selectați câmpul, comutați la fila Expresie din panoul de conținut dinamic, tastezguid(), și selectați OK.Cont de serviciu Folosiți-l concat('/accounts(', triggerBody()?['serviceAccountId'], ')')doar cândserviceAccountIdeste oferit. Dacă Contul de Serviciu nu este necesar pentru tipul selectat de Ordin de Lucru și cererea nu includeserviceAccountId, nu mapa acest câmp de căutare.Tip comandă de lucru concat('/msdyn_workordertypes(', triggerBody()?['workOrderTypeId'], ')')Lista de preturi concat('/pricelevels(', triggerBody()?['priceListId'], ')')Starea sistemului 690970000(Neprogramat)Instrucţiuni @{triggerBody()?['instructions']}Opțional, adăugați o acțiune Răspuns pentru a returna noul ID al ordinului de lucru în sistemul apelant:
- Selectează + Pas nou și caută Răspuns (din conectorul Request ).
- Setează codul de stare la
200. - În câmpul Corp , selectează pictograma de conținut dinamic și alege msdyn_workorderid din pasul Adaugă un nou rând . Acesta este ID-ul unic al ordinului de lucru care tocmai a fost creat.
Fără acest pas, sistemul apelant nu primește niciun răspuns, iar cererea HTTP expiră după așteptare. Dacă adaugi acest pas, sistemul apelant primește un
200răspuns cu ID-ul ordinului de lucru imediat ce fluxul se încheie.
Valori ale setului opțiunilor de stare a sistemului
Folosiți aceste valori întregi atunci când setați Starea Sistemului într-un flux sau apel API.
| Etichetă | Valoare |
|---|---|
| Neplanificat | 690970000 |
| Programată | 690970001 |
| În desfășurare | 690970002 |
| Finalizat | 690970003 |
| Publicată | 690970004 |
| Anulat | 690970005 |
Considerații
Proprietatea contului de conexiune de flux
Ordinele de lucru create de un flux sunt deținute de contul de conexiune folosit în conectorul Dataverse. Asigură-te că acest cont are rolul corect de securitate și că ordinele de lucru create de flux apar în vizualizările și cozile așteptate.
Recorduri pentru copii
Acțiunea Adaugă un rând nou creează doar antetul comenzii de lucru. Pentru a adăuga produse de ordine de lucru, servicii sau sarcini de serviciu, adăugați pași separați Adaugă un nou rând pentru fiecare tabel copil (msdyn_workorderproduct, msdyn_workorderservice, msdyn_workorderservicetask) și setați câmpul de căutare Ordine de lucru la ID-ul returnat de pasul de creare.
Limite ale ratei API
Fluxurile Power Automate sunt supuse limitelor API-ului Dataverse. Pentru scenarii cu volum mare, luați în considerare utilizarea endpoint-ului batch al API-ului web Dataverse sau rulări de distribuire a fluxului folosind un trigger programat cu procesare batch.
Evitarea ordinelor de muncă duplicate
Dacă un flux rulează frecvent pe același declanșator, adaugă o condiție pentru a verifica dacă un ordin de lucru există deja înainte de a crea unul nou. Folosește o acțiune List rows filtrată după ID-ul registrului sursă pentru a verifica dacă există comenzi de lucru existente.
Gestionarea erorilor
Pentru fluxurile de producție, înfășurează pasul Adaugă un nou rând într-o acțiune Scope și adaugă o ramură paralelă configurată să ruleze dacă a eșuat. Folosește această ramură pentru a înregistra eroarea sau pentru a trimite o notificare. Pentru fluxurile declanșate HTTP, adaugă întotdeauna o acțiune de răspuns astfel încât sistemul apelant să primească un cod de stare de succes sau eșec, în loc să expire temporizarea.