Darbo užsakymų kūrimas naudojant "Power Automate"

Galite automatiškai kurti darbo užsakymus "Dynamics 365 Field Service" naudodami "Power Automate" srautus. Tai naudinga, kai darbo užsakymus reikia kurti remiantis išoriniais paleidikliais, pvz., "IoT" įspėjimu, formos pateikimu, aptarnavimo užklausa iš kitos sistemos arba susijusio įrašo pakeitimu.

Power Automate srautai naudoja Microsoft Dataverse jungtį, kad sąveikautų su "Field Service" įrašais. Norėdami gauti informacijos apie darbo užsakymų kūrimą naudojant kodą, eikite į Darbo užsakymų kūrimas naudojant "Dataverse" žiniatinklio API.

Būtinosios sąlygos

  • "Power Automate" licencija (įtraukta į daugumą "Dynamics 365" licencijų).
  • Bent vienas iš šių "Field Service" saugos vaidmenų, priskirtų srauto ryšio paskyrai. Sužinokite daugiau skyriuje Vartotojų ir saugos vaidmenų nustatymas.
    • Lauko tarnyba – dispečeris
    • „Field Service“ – administratorius
  • Esami įrašai apie paieškos laukus, naudojamus jūsų darbo užsakymo procese:
    • Darbo užsakymo tipas (msdyn_workordertype objektas)
    • Kainoraštis (pricelevel subjektas), jei jūsų procesas to reikalauja
    • Paslaugos paskyra (account entity), jei pasirinktas Darbo užsakymo tipas reikalauja Paslaugos paskyros arba jei norite paskyros konteksto

1 parinktis: darbo užsakymo kūrimas, kai pasikeičia "Dataverse" įrašas

Naudokite šį šabloną norėdami sukurti darbo užsakymą reaguodami į kitos "Dataverse" lentelės pakeitimą, pvz., kai pasikeičia kliento turto būsena.

Nustatykite paleidiklį

  1. Dalyje Power Automate pasirinkite Create>Automated cloud flow.

  2. Ieškokite ir pasirinkite Kai eilutė pridedama, modifikuojama arba ištrinama (Microsoft Dataverse jungtis).

  3. Kai būsite paraginti, prisijunkite prie Microsoft Dataverse jungties naudodami Dynamics 365 kredencialus. Jei jau turite ryšį su aplinka, pasirinkite jį išplečiamajame sąraše. Paleidiklio konfigūracijos laukai neužpildomi, kol neužmezgamas aktyvus ryšys.

  4. Sukonfigūruokite paleidiklį:

    Laukas Reikšmė
    Keisti tipą Modifikuota
    Lentelės pavadinimas Kliento turtas
    Taikymo sritis Organizacija
  5. Pasirinktinai įtraukite sąlygą Filtruoti eilutes , kad apribotumėte srauto vykdymą. Pavyzdžiui: msdyn_operationalstatus eq 690970001 (Reikia aptarnavimo).

Arbatpinigiai

Norėdami išbandyti darbo užsakymo kūrimo veiksmus nekeisdami "Dataverse" įrašo, sukurkite srauto kopiją ir pakeiskite "Dataverse" paleidiklį į Rankiniu būdu suaktyvinti srautą. Įtraukite įvesties parametrus (pvz., aptarnavimo abonemento ID, darbo užsakymo tipo ID ir kainoraščio ID teksto įvestis), kad vykdydami srautą galėtumėte perduoti bandomąsias reikšmes. Patikrinę, ar darbo užsakymas sukurtas teisingai, grįžkite į "Dataverse" paleidiklį savo gamybos eigoje.

Įtraukti veiksmą Kurti darbo užsakymą

  1. Pasirinkite + Naujas veiksmas ir ieškokite Pridėti naują eilutę (Microsoft Dataverse jungtis).

  2. Pasirinkite tą patį "Dataverse" ryšį, kurį naudojote paleidikliui. Lentelės pavadinimo laukas rodomas tik pasirinkus ryšį.

  3. Nustatykite lentelės pavadinimą į Darbo užsakymai.

  4. Užpildykite reikiamus laukus:

    Laukas Reikšmė
    Darbo užsakymo numeris Įveskite išraišką guid() kaip vietos rezervavimo ženklą. Laukas Darbo užsakymo numeris reikalingas "Dataverse" jungties vartotojo sąsajai, tačiau "Field Service" automatinio numeravimo papildinys automatiškai priskiria teisingą nuoseklaus darbo užsakymo numerį, kai įrašas įrašomas. Norėdami įvesti išraišką, pasirinkite lauką, perjunkite į dinaminio turinio skydo skirtuką Išraiška , įveskite guid()ir pasirinkite Gerai.
    Paslaugos abonementas Reikalinga tik tada, kai pasirinktas Darbo užsakymo tipas reikalauja Paslaugų paskyros. Pasirinkite paskyrą naudodami paieškos lauką arba įveskite išraišką concat('/accounts(', 'service-account-guid', ')')Išraiškų skirtuke, jei reikia naudoti kietai koduotą arba dinaminį GUID. Palikite šį lauką tuščią darbo užsakymų tipams, kai Paslaugų paskyra nėra reikalinga ir darbo užsakymas naudoja kitą paslaugos kontekstą.
    Darbo užsakymo tipas Pasirinkite darbo užsakymo tipą naudodami ieškos lauką arba įveskite išraišką concat('/msdyn_workordertypes(', 'work-order-type-guid', ')') skirtuke Išraiška , jei reikia naudoti užkoduotą arba dinaminį GUID. Žiūrėkite žemiau, kaip tai rasti.
    Kainoraštis Pasirinkite kainoraštį naudodami ieškos lauką arba įveskite išraišką concat('/pricelevels(', 'your-price-list-guid', ')') skirtuke Išraiška , jei reikia naudoti užkoduotą arba dinaminį GUID. Jei kainoraštį nuskaitote dinamiškai, naudodami veiksmą Sąrašo eilutės , esančią Kiekvienam ciklui, naudokite concat('/pricelevels(', items('YourLoopName')?['pricelevelid'], ')') vietoj to, pakeisdami YourLoopName ciklo pavadinimu. Žiūrėkite žemiau, kaip tai rasti.
    Sistemos būsena 690970000 (Neplanuota)
    Apmokestinamasis false
    Instrukcijas Naudokite dinaminį paleidiklio turinį, pvz., ištekliaus pavadinimą

    Aptarnavimo paskyra: įveskite paskyros pavadinimą tiesiai į lauką Aptarnavimo paskyra , kad jo ieškotumėte ir pasirinktumėte. Jei paleidiklis yra kliento turto pakeitimas ir turtas susietas su paskyra, dinaminio turinio skydelyje galite pasirinkti Paskyra (kliento turtas). Jei jums reikia naudoti GUID tiesiogiai, eikite į "Field Service" aptarnavimo srities >klientų>paskyros , atidarykite paskyrą ir nukopijuokite įrašo ID iš naršyklės URL (reikšmė tarp %7B ir %7Darba paprastas GUID, jei URL neužkoduotas). Sužinokite daugiau skiltyje "Konfigūruoti paslaugų paskyros reikalavimus darbo užsakymams".

    Darbo užsakymo tipas: įveskite darbo užsakymo tipo pavadinimą tiesiai į lauką Darbo užsakymo tipas , kad jo ieškotumėte ir pasirinktumėte. Jei GUID reikia naudoti tiesiogiai, eikite į "Field Service" sritį Parametrų darbo >užsakymo>tipai , atidarykite darbo užsakymo tipą ir nukopijuokite įrašo ID iš naršyklės URL.

    Kainoraštis: įveskite kainoraščio pavadinimą tiesiai į kainoraščio lauką, kad jo ieškotumėte ir pasirinktumėte. Jei GUID reikia naudoti tiesiogiai, eikite į "Field Service" parametrų>bendruosius>kainoraščius , atidarykite kainoraštį ir nukopijuokite įrašo ID iš naršyklės URL.

    Pastaba.

    "Dataverse" jungčiai reikia peržvalgos laukų, kad būtų naudojamas "OData" objekto nuorodos kelias (pvz., /accounts(guid)), o ne paprastas GUID. Įvedus pliką GUID, ODataUnrecognizedPathException atsiranda vykdymo laikas. Aukščiau concat pateiktos išraiškos sukuria teisingą kelio formatą.

  5. Išsaugokite ir išbandykite srautą.

2 parinktis: darbo užsakymo kūrimas iš HTTP užklausos

Naudokite šį šabloną norėdami sukurti darbo užsakymą iš išorinės sistemos, pvz., klientų portalo, bilietų sistemos arba "IoT" platformos.

Nustatykite paleidiklį

  1. Programoje Power Automate pasirinkite Create>Instant cloud flow.

  2. Pavadinkite srautą ir pasirinkite Kai gaunama HTTP užklausa kaip paleidiklį.

  3. Pasirinkite Kurti.

  4. Lauke Užklausos turinys JSON schema įklijuokite šią schemą:

    {
      "type": "object",
      "properties": {
        "serviceAccountId": { "type": "string" },
        "workOrderTypeId": { "type": "string" },
        "priceListId": { "type": "string" },
        "instructions": { "type": "string" }
      },
      "required": ["workOrderTypeId", "priceListId"]
    }
    

    Nurodykite serviceAccountId , kada pasirinktas darbo užsakymo tipas reikalauja Paslaugos paskyros arba kai norite, kad užsakymas naudotų iš paskyros gautą kontekstą. Atsisakykite to darbo užsakymų tipams, kai Service Account nereikalinga.

  5. Dalyje Kas gali suaktyvinti srautą pasirinkite vieną iš šių parinkčių:

    Parinktis Kada naudoti
    Tik mano nuomotojo vartotojai Rekomenduojama gamybai. Skambinantieji turi autentifikuotis naudodami "Microsoft Entra ID" ir pateikti galiojantį "OAuth" turėtojo atpažinimo ženklą. Naudokite tai vidinėms sistemoms arba patikimiems tarnybos pagrindiniams subjektams.
    Kiekvienas Pats URL veikia kaip kredencialas – nereikia papildomos autentifikavimo antraštės. Naudokite tik tada, kai skambinanti sistema negali gauti Entra ID rakto ir galite užtikrinti, kad URL būtų saugiai saugomas.

    Sužinokite daugiau apie HTTP suaktyvintų srautų apsaugą HTTP užklausų paleidiklių "OAuth" autentifikavimo įtraukimas.

  6. HTTP URL laukas skirtas tik skaityti – jo nepildykite. "Power Automate" automatiškai užpildo jį, kai pirmą kartą įrašote srautą.

  7. Įrašykite srautą. HTTP URL laukas dabar užpildytas galinio punkto URL. Nukopijuokite šį URL ir pateikite jį tiems, kurie konfigūruoja išorinę sistemą (pvz., kūrėjui arba sistemos administratoriui). Išorinė sistema suaktyvina srautą siųsdama HTTP POST užklausą į šį URL su JSON tekstu, atitinkančiu jūsų apibrėžtą schemą. Pavyzdžiui:

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

    Kiekvieną kartą, kai išorinė sistema siunčia šią užklausą, "Power Automate" vykdo srautą ir sukuria darbo užsakymą "Field Service".

Įtraukti veiksmą Kurti darbo užsakymą

  1. Pasirinkite + Naujas veiksmas ir ieškokite Pridėti naują eilutę (Microsoft Dataverse jungtis).

  2. Prisijunkite prie "Microsoft Dataverse" jungties arba pasirinkite esamą ryšį. Lentelės pavadinimo laukas rodomas tik pasirinkus ryšį.

  3. Nustatykite lentelės pavadinimą į Darbo užsakymai.

  4. Susiekite HTTP užklausos teksto laukus su darbo užsakymo laukais:

    Darbo užsakymo laukas Reikšmė
    Darbo užsakymo numeris Įveskite išraišką guid() kaip vietos rezervavimo ženklą. Laukas Darbo užsakymo numeris reikalingas "Dataverse" jungties vartotojo sąsajai, tačiau "Field Service" automatinio numeravimo papildinys automatiškai priskiria teisingą nuoseklaus darbo užsakymo numerį, kai įrašas įrašomas. Norėdami įvesti išraišką, pasirinkite lauką, perjunkite į dinaminio turinio skydo skirtuką Išraiška , įveskite guid()ir pasirinkite Gerai.
    Paslaugos abonementas Naudokite concat('/accounts(', triggerBody()?['serviceAccountId'], ')') tik tada, kai serviceAccountId yra numatyta. Jei Paslaugų paskyra nėra reikalinga pasirinktam Darbo užsakymo tipui ir užklausa neįtraukia serviceAccountId, nepriskirkite šio paieškos lauko.
    Darbo užsakymo tipas concat('/msdyn_workordertypes(', triggerBody()?['workOrderTypeId'], ')')
    Kainoraštis concat('/pricelevels(', triggerBody()?['priceListId'], ')')
    Sistemos būsena 690970000 (Neplanuota)
    Instrukcijas @{triggerBody()?['instructions']}
  5. Pasirinktinai įtraukite veiksmą Atsakymas , kad grąžintumėte naują darbo užsakymo ID į skambinančią sistemą:

    1. Pasirinkite + Naujas veiksmas ir ieškokite Atsakymas (iš užklausos jungties).
    2. Nustatykite būsenos kodą į 200.
    3. Lauke Tekstas pasirinkite dinaminio turinio piktogramą ir pasirinkite msdyn_workorderid iš veiksmo Įtraukti naują eilutę . Tai unikalus ką tik sukurto darbo užsakymo ID.

    Be šio veiksmo skambinanti sistema negauna atsakymo, o HTTP užklausos laikas baigiasi po laukimo. Jei įtrauksite šį veiksmą, skambinanti sistema gaus 200 atsakymą su darbo užsakymo ID, kai tik srautas bus baigtas.

Sistemos būsenos parinkčių rinkinio reikšmės

Naudokite šias sveikųjų skaičių reikšmes nustatydami sistemos būseną sraute arba API iškvietime.

Žyma Reikšmė
Nesuplanuota 690970000
Suplanuoti 690970001
Vykdoma 690970002
Baigta 690970003
Užregistruota 690970004
Atšaukta 690970005

Į ką atsižvelgti

Srauto ryšio paskyros nuosavybė

Srauto sukurti darbo užsakymai priklauso ryšio paskyrai, naudojamai "Dataverse" jungtyje. Įsitikinkite, kad šis abonementas turi tinkamą saugos vaidmenį ir kad srauto sukurti darbo užsakymai būtų rodomi numatomuose rodiniuose ir eilėse.

Antriniai įrašai

Veiksmas Įtraukti naują eilutę sukuria tik darbo užsakymo antraštę. Norėdami įtraukti darbo užsakymo produktų, paslaugų ar aptarnavimo užduočių, įtraukite atskirus kiekvienos antrinės lentelės veiksmus Įtraukti naują eilutę (msdyn_workorderproduct, msdyn_workorderservicemsdyn_workorderservicetask, ) ir nustatykite darbo užsakymo peržvalgos lauką į ID, kurį grąžina kūrimo veiksmas.

API spartos apribojimai

"Power Automate" srautams taikomi "Dataverse" API apribojimai. Didelės apimties scenarijams apsvarstykite galimybę naudoti "Dataverse" žiniatinklio API paketinį galinį punktą arba srauto vykdymo paskirstymą naudojant suplanuotą paleidiklį su paketiniu apdorojimu.

Pasikartojančių darbo užsakymų vengimas

Jei srautas dažnai vykdomas tuo pačiu paleidikliu, prieš kurdami naują įtraukite sąlygą, kad patikrintumėte, ar darbo užsakymas jau yra. Naudokite veiksmą Sąrašo eilutės , filtruotas pagal šaltinio įrašo ID, kad patikrintumėte, ar yra esamų darbo užsakymų.

Klaidų tvarkymas

Gamybos srautams apvyniokite veiksmą Įtraukti naują eilutę į veiksmą Aprėptis ir įtraukti lygiagrečią šaką, sukonfigūruotą vykdyti, nepavyko. Naudokite šią šaką klaidai registruoti arba pranešimui siųsti. HTTP suaktyvintuose srautuose visada įtraukite atsakymo veiksmą, kad skambinanti sistema gautų sėkmės arba gedimo būsenos kodą, o ne skirtąjį laiką.

Paskesni veiksmai