Behandle arbeidskøer
Behandling av arbeidskøer refererer til behandling av en liste over arbeidselementer som må fullføres i en bestemt rekkefølge. Denne listen inneholder informasjon om hvert element, for eksempel navn, prioritet, utløpsdato, status og den faktiske verdien som skal behandles.
Måter å behandle arbeidskøer på:
Skrivebordsflytbasert behandling i Power Automate Desktop (PAD).
Bruke Dataverse-funksjoner for proutviklere (bare for avanserte integreringsscenarier):
Lær mer om Dataverse.pro-kodeverktøy: Dataverse-utviklerdokumentasjon.
Gjennomganger for behandling
Her er tre ulike behandlingsscenarioer for å presentere noen av de tilgjengelige behandlingsalternativene.
Skrivebordsflytbasert arbeidskøbehandling i Power Automate desktop (PAD)
Behandle arbeidskøelementer og oppdateringseksempler
Det første trinnet i bruk av arbeidskøhandlinger i Power Automate er å opprette en arbeidskø i miljøet du arbeider i, og laste inn noen køelementer med data som skal brukes nedstrøms. Køelementer kan lastes inn i en arbeidskø via en skrivebordsflyt, skyflyt eller samlet som skissert her, som fyller ut køelementer. I dette eksemplet har noen køelementer blitt lagt til manuelt i en arbeidskø for å forklare hvordan handlinger i Power Automate desktop kan brukes.
Arbeidskøelementene er opprettet, og verdifeltet inneholder tekst i JSON-format som vil bli brukt nedstrøms i skrivebordsflyten.
Eksempelflyten vi skal bruke til å demonstrere bruk av arbeidskøhandling, etterligner en prosess som bruker et arbeidskøelement fra skyen, behandler dataene som er inkludert i verdifeltet, og konverterer det til et egendefinert objekt som skal behandles nedstrøms. Vær oppmerksom på at det ikke er obligatorisk å bruke JSON- eller egendefinerte objekter som verdier for arbeidskøelementene, men det kan være en nyttig metode for å ordne verdier som har flere egenskaper og følger et bestemt skjema.
Handlingen Behandle arbeidskøelementer brukes til å angi hvilken arbeidskø du vil bruke elementer fra og behandle i skrivebordsflyten. Handlingen kan konfigureres til å velge en arbeidskø fra en liste ved hjelp av rullegardinpilen, og sende en variabel som inneholder kønavnet. Når denne handlingen kjøres, henter den første (eldste) element fra arbeidskøen til flyten som inneholder statusen i kø. Når køelementet begynner å behandle i flyten, endres statusen automatisk til behandling.
Et stoppunkt (rød prikk) ble angitt ved å klikke ved siden av handling 3 i flyten og deretter kjøre gjennom PAD-konsollen. Når prosessen stanser midlertidig ved stoppunktet, kan variabelen WorkQueueItem åpnes ved å dobbeltklikke den utsjekkede verdien under Flytvariabler og dette viser alle egenskapene som er tilknyttet arbeidskøelementet som behandles.
I handling 2 av flyten konverterte jeg den returnerte JSON-verdien, som i dette tilfellet åpnes til via %WorkQueueItem.Value% til et egendefinert objekt. Årsaken til dette er at det hjelper til å analysere JSON-en og bruke JSON-egenskapene nedstrøms i flyten. I dette tilfellet brukes informasjonen til å opprette oppføringer i Farbrikam-finansportalen.
{ "InvoiceId": "I-1006", "InvoiceDate": "06/04/2023", "AccountName": "Fabrikam", "ContactEmail": "invoicing@fabrikam.com", "Amount": 1253.78, "Status": "Paid", "WorkQueueKey": "Vendor Invoices", "ComponentState": 0, "OverwriteTime": "1900-01-01T00:00:00" }
La oss for eksempel si at det var et krav om å angi faktura-ID-en i et felt i et økonomisystem som en del av en prosess der du automatiserer brukergrensesnittet for en web- eller skrivebordsapp – du kan kalle den verdien ved å bruke %JsonAsCustomObject.InvoiceId% for å fylle ut et tekstfelt og trykke en knapp.
Videre inneholder dette eksemplet noen betingede setninger når den har fullført behandlingen av trinnene og bruker dataene fra det egendefinerte objektet i underflyten Fabrikam-dataoppføring. Hvis prosessen kjører ende-til-ende uten å støte på noen inndatasystemrelaterte unntak, brukes handlingen Oppdater arbeidskøelement til å endre statusen for arbeidskøelementet til Behandlet, og behandlingsresultat-feltet kan brukes til å angi noen valgfrie notater. Hvis feltet som utløper, står tomt, beholder det nye køelementet verdien for Elementer utløper etter som er definert i egenskapene for arbeidskøen.
Alternativer for unntakshåndtering kan konfigureres ved å klikke ved feil i konfigurasjonsvinduet for oppdater arbeidskøelement-handlingen. Tre alternativer er tilgjengelige for tilpassing i den avanserte fanen. Finner ikke arbeidskøelement kan oppstå hvis arbeidskøelementet fjernes fra køen, enten manuelt eller gjennom en annen systematisk prosess, før det fullfører behandlingen i PAD. Arbeidskøelement på vent kan oppstå hvis en automatisert prosess eller noen endrer statusen for arbeidskøelementet som behandles, til på vent i flytportalen mens køelementet behandles. Kan ikke oppdatere arbeidskøelement kan oppstå hvis køelementet ikke lenger finnes i køen eller er plassert i statusen på vent. Alle de ovennevnte tilfellene er sjeldne tilfeller som kan oppstå – finn ut mer om håndtering av feil i flyter på skrivebordet her.
Hvis et problem ble fastslått under behandlingen av dataene for arbeidskøelementet til dataregistreringssystemet, kan elementet alternativt få tilordnet en status som generisk unntak, IT-unntak eller forretningsunntak. Disse unntaksstatusene er tilgjengelige for bruk når, eller hvis, det automatiske brukstilfellet oppfyller vilkårene som kan gjelde.
La oss si at scenario 2 ble oppfylt under behandling av et køelement. I dette tilfellet er køelementet merket som et generisk unntak i den opprinnelige køen. Avhengig av scenarioet kan det hende at du bestemmer deg for å endre statusen for køelementer som ikke kan behandles riktig som et av de alternative statusalternativene. Derfra kan du bestemme om menneskelig inngripen er nødvendig, eller bygge en etterfølgende prosess med logikken som kreves for å administrere hver unntaksstatus.
Mønster for automatisk nytt forsøk
Handlingen Behandle arbeidskøelementer på Power Automate Desktop inneholder et avansert alternativ for å konfigurere eller overstyre en mekanisme for automatisk nytt forsøk. Med denne funksjonen kan du angi maksimalt antall automatiske nye forsøk per arbeidskøelement, noe som er nyttig for å håndtere IT-unntak som midlertidige nettverksfeil eller midlertidig systemutilgjengelighet. Det gjør det mulig for maskinen å beholde elementet og utføre kontrollerte nye forsøk uten å legge elementet i kø, noe som sikrer mer effektiv og fleksibel behandling av arbeidskøer.
Du kan angi og sentralt kontrollere det maksimale antallet nye forsøk på arbeidskøoppføringen i Dataverse. Denne standardverdien gjelder for alle skrivebordsflyter som behandler denne arbeidskøen gjennom handlingen Behandle arbeidskøelementer .
Hvis du vil overstyre standardinnstillingen på kønivå i flyten , går du til Avansert-delen av handlingen Behandle arbeidskøelementer og veksler mellom alternativet Overstyr konfigurasjon av automatiske forsøk for arbeidskø. Med denne innstillingen kan du justere maksimalt antall nye forsøk til en høyere eller lavere verdi, eller til og med deaktivere mekanismen for nye forsøk ved å sette maksimalt antall nye forsøkt til 0.
Når du bruker handlingen Oppdater arbeidskøelement med statusen satt til IT exception
og et maksimalt antall automatisk nye forsøk større enn 0, sender ikke systemet umiddelbart oppdateringen til arbeidskøorkestratoren. I stedet prøver den operasjonen på nytt til den når det angitte maksimale antallet nye forsøk. Den eneste verdien som oppdateres i arbeidskøelementet er retrycount
. Denne verdien øker fra det andre oppdateringsforsøket og fremover til det maksimale antallet automatiske nye forsøk er nådd. I tillegg økes en lokal variabel for arbeidskøelement kalt CurrentRetryCount
intervaller for hvert nye forsøk. Med denne variabelen kan du implementere egendefinert logikk basert på verdien om nødvendig.
Flyten ber ikke om et nytt element når den løkker tilbake til toppen av handlingen Behandle arbeidskøelementer hvis følgende betingelser er oppfylt:
- Det maksimale antallet nye forsøk nås ikke.
- Ingen andre oppdateringer forekommer, bortsett fra IT-unntak.
Når det maksimale antallet nye forsøk er nådd, sender oppdateringshandlingen oppdateringen til orkestratoren, endrer elementets status til IT-unntak og inkluderer eventuelle angitte behandlingsnotater.
Eksempler på legge til og sette arbeidskøelementer i kø igjen fra PAD
Med Legg til arbeidskøelement kan brukere av skrivebordsflyt fylle ut arbeidskøelementer i en arbeidskø som er konfigurert i flytportalen. Oppretting av satsvise elementer støttes ved hjelp av handlingen Legg til arbeidskøelementer .
I dette eksemplet blir en Excel-fil i CSV lagt til i en mappe daglig, og hver rad må legges til i en arbeidskø.
De første handlingene i denne eksempelprosessen tilordner en mappe der den daglige filen Contoso Invoices.csv droppes – når prosessen kjører, begynner den ved å lese datatabellen fra CSV-filen. CSVTable-variabelen inneholder dataene som er importert og vil bli behandlet til nye køelementer.
Handlinger 3 og 4 genererer tidspunktet da vi velger at de nye køelementene skal utløpe etter at de er lagt til i en arbeidskø. Handling 3 registrerer gjeldende systemdata og -tidspunkt, og i dette eksemplet legges det til 7 dager i den ved hjelp av handlingen %Legg til i datetime%. Utdataene lagres i en variabel kalt ExpiryDatetime, som vil bli brukt i handlingen Legg til arbeidskøelement.
Handling 5 introduserer løkken For hver, som brukes til å gå gjennom hver datarad i den importerte CSVTable – handlingen gjengir en datarad for gjeldende element som behandles.
Alle de foregående handlingene i dette eksemplet på skrivebordsflyten er nå innlemmet i angivelse av verdiene for handlingen Legg til arbeidskøelement.
Parameteren arbeidskø er satt til køen som vi vil legge til nye arbeidskøelementer i – i dette tilfellet ble Demo PAD-køen valgt ved å velge den fra rullegardinmenyen.
Parameteren Prioritet blir værende som standard, Normal, men alternativer for Lav og Høy er også valgfrie. Arbeidskøelementer med høyere prioritet behandles først, deretter normal og sist når de blandes inn i samme arbeidskø.
Name-parameteren er angitt med et statisk prefiks sammen med variabelverdien CurrentItem['ID'] – som inneholder verdien fra ID-cellen i dataraden som behandles. Dette er valgfritt, men kan være nyttig avhengig av brukssaken din.
Ved hjelp av verdiene fra dataraden i variabelen CurrentItem ble Input-parameteren angitt i JSON-format. Legg merke til at hvert overskriftsnavn ble lagt til i currentitem-variabelen ved hjelp av notasjonen ['navn på hode']
Utløper-feltet fylles ut med datetime-variabelen vi la til 7 dager inn i de forrige trinnene. Når arbeidskøelementet som legges til, er tomt, inneholder det verdisettet for Elementer utløper etter for arbeidskøen.
Behandlingsnotater er valgfritt – bruk slik det anses som nødvendig.
Når prosessen kjøres, oppretter hver datarad i den importerte CSV-en et arbeidskøelement som inneholder statusen I kø, som betyr at det er tilgjengelig for behandling.
Dette er bare noen av mange måter som arbeidskøhandlinger kan brukes på i PAD. Ta deg tid til å utforske og finne kreativ bruk for å å innlemme arbeidskøer i Power Automate-flytene!
Eksempel på å sette element i kø på nytt med forsinkelse
Handlingen Sett element i kø på nytt med forsinkelse gjør at brukere av skrivebordsflyten kan sette elementer i kø på nytt og angi en forsinkelsesperiode som elementet kan frigis til behandling på nytt etter.
I dette eksemplet finnes det en arbeidskø med elementer som er satt til å utløpe om 24 timer, men de kan ikke behandles i tide fordi IT-avdelingen utfører regelmessig systemvedlikehold, og elementene må settes i kø på nytt. Vedlikeholdet fullføres i løpet av natten, så vi forsinker hvert køelement med 24 timer og angir deretter at de skal utløpe 24 timer etter frigivelsesperioden.
De tre første handlingene i denne eksempelprosessen er dato/klokkeslett-handlinger. Handlingen Hent gjeldende dato og klokkeslett registrerer systemets dato/klokkeslett i det øyeblikk handlingen kjøres. Vi brukte deretter handlingen Legg til i datetime til å oppfylle to krav, først må vi definere forsinkelsestiden ved å legge til 24 timer i gjeldende dato/klokkeslett, og deretter må vi legge til 48 timer i gjeldende dato/klokkeslett som utløpstidspunktet.
Deretter i eksemplet konfigureres handlingen Behandle arbeidskøelementer for å peke mot den innlastede arbeidskøen, og «Sett element i kø på nytt med forsinkelse» plasseres i løkken.
Verdiene som genereres for forsinkelsen og utløpet, kan nå sendes til handlingen Sett element i kø på nytt med forsinkelse. Feltet for arbeidskøelement fylles ut med variabelen som ble laget av løkken, og angir hvilket køelement som skal settes i kø på nytt. Vi la deretter inn verdiene som ble opprettet ved hjelp av datetime-handlingene for feltene Utsett til og Utløper. Utsett til er obligatorisk, men du kan bruke Utløper og Behandlingsresultat etter eget skjønn.
Med denne enkle prosessen kan du sette alle tilgjengelige elementer i en kø på nytt, forsinke dem i en bestemt periode, og bruke alternativer til å angi en utløpsdato og behandlingsresultat.
Skyflyt og koblingsbasert behandling
Det er enklest å ta ut et arbeidskøelement og behandle det på følgende måte:
Gå til Power Automate og logg deg på med legitimasjonen din.
Velg Mine flyter i venstre menyen.
På verktøylinjen velger du + Ny flyt, og velg deretter Direkte skyflyt.
Angi et Flytnavn, for eksempel Min første arbeidskøflyt, og velg deretter Utløs flytskjermer manuelt.
Velg Opprett.
Når flytutformingen åpnes, velger du + Nytt trinn, og deretter velger du Microsoft Dataverse-koblingen.
Velg Utfør en bundet handling fra listen over handlinger.
Parameter | Verdi | Bekrivelse |
---|---|---|
Tabellnavn | Arbeidskøer | Navnet på arbeidskøtabellen. |
Handlingsnavn | Ta ut av kø | Handlingen, som henter neste tilgjengelige element fra køen. |
Rad-ID | [Arbeidskø-ID] | Arbeidskø-ID-en (GUID) for køen du vil fjerne et element fra. Du kan få tilgang til denne verdien ved å gå til siden for arbeidskødetaljer i køen og åpne panelet Avanserte detaljer. |
Merk
En bundet handling er en Dataverse-handling som er definert i en bestemt tabell (arbeidskøer i vårt eksempel) og som bare kan utføres på oppføringer i tabellen. Bundne handlinger brukes av plattformen til å utføre tilpasset forretningslogikk eller operasjoner på en bestemt oppføring.
- Flyten skal ligne på denne nå.
Velg Lagre, og Test deretter flyten.
Velg Manuelt, Test, Kjør flyt, og velg deretter Fullført.
Hvis flyten ble vellykket, bør du få et lignende resultat (men med forskjellige IDer).
- Kopier deretter hele JSON-innholdet fra brødtekst-feltet, og velg deretter Rediger i øvre høyre hjørne av flyten.
Tips
Når du har fjernet et arbeidselement fra køen, bruker du JSON-innholdet for elementet som skjemaeksempel til å analysere elementets JSON-egenskaper. Dette gir deg enkel tilgang til en hvilken som helst egenskap for elementet som returneres av orkestertoren for arbeidskøen i påfølgende flythandlinger.
- Legg til et nytt trinn ved å velge + Nytt trinn , og søk etter en handling kalt Analyser JSON, og velg den.
- Plasser musen i Innhold-feltet , og velg brødtekst-egenskapen fra den forrige handlingen.
Velg Generer fra eksempel, og lim den tidligere kopierte JSON-strengen inn i dialogboksen, og velg Fullført.
Velg + Nytt trinn og søk etter og velg deretter Microsoft Dataverse-koblingen.
Velg Oppdater en rad fra listen over handlinger.
I feltet Tabellnavn velger du tabellen Arbeidskøelementer og plasserere markøren i Rad-ID-feltet.
I listen Dynamisk innhold har du nå alle feltene som er tilgjengelige i tabellen for arbeidskøelement.
Velg Vis avanserte alternativer, og angi deretter følgende verdier for Rad-ID Behandlingsresultat, Status og Statusårsak.
Felt | Verdi | Details |
---|---|---|
Rad-ID | workqueueitemid | Denne verdien kan velges i dialogboksen for dynamisk innhold-listen. |
Behandlingsresultat | Behandlingen av elementet var vellykket. | |
Status | Behandlet | |
Statusårsak | Behandlet |
Velg Lagre, og Test flyten en gang til.
Hvis flyten ble vellykket, skal du få et lignende resultat som det nedenfor.
Gå nå til siden for arbeidskødetaljer, og i listesidedelen for arbeidskøelement velger du Se alle.
Filtrer Status-feltet, slik at det bare vises elementer som Behandles og som er Behandlet for å bekrefte at våre handlinger for å fjerne fra kø og oppdatere fungerte som forventet.
Gratulerer, du har akkurat fullført ditt første arbeidskøbehandlingsscenario!
Skyflytbasert behandling med støtte for skrivebordsflyt
I dette scenariet utvider vi det forrige ved å legge til et trinn for behandlingstrinn for skrivebordsflyt også.
Gå tilbake og rediger Min første arbeidskøflyt.
Legg til en ny handling rett etter handlingen Analyser JSON, og søk etter Skrivebordsflyter-koblingen og Kjør en flyt bygd med Power Automate for skrivebordet.
I rullegardinlisten for skrivebordsflyt velger og redigerer du en eksisterende skrivebordsflyt, eller velger + Opprett en ny skrivebordsflyt og følger instruksjonene på skjermen for å opprette skrivebordsflyten og starte Power Automate for skrivebord. Hvis du ikke har lært mer om skrivebordsflyter, kan du finne ut mer her.
Når utformingen i Power Automate for skrivebord åpnes, oppretter du to inndata-variabler som kalles WorkQueueItemValue og WorkQueueItemValue, og deretter legger du til to utdata-variabler kalt henholdsvis ProcessingNotes og ProcessingStatus, som alle skal ha Tekst som datatype.
Angi en standardverdi for WorkQueueItem-variabelen , slik at du senere kan teste skriptet lokalt. Hvis du har fulgt opplæringen for masseimport, skal du ha arbeidskøelementer i Leverandør-fakturakøen som har verdiene i JSON-format. Her er et eksempel på en av verdiene som brukes.
{ "InvoiceId": "I-1006", "InvoiceDate": "06/04/2023", "AccountName": "Fabrikam", "ContactEmail": "invoicing@fabrikam.com", "Amount": 1253.78, "Status": "Paid", "WorkQueueKey": "Vendor Invoices", "ComponentState": 0, "OverwriteTime": "1900-01-01T00:00:00" }
Lagre deretter flyten.
Åpne handlingsgruppen Variabler i handlingspanelet, og dobbeltklikk Konverter JSON til egendefinert objekt-handling for å legge den til på utformingslerretet, som åpner egenskapsvinduet.
Velg variabelikonet i JSON-feltet, og velg variabelen WorkQueueItemValue.
Endre navnet på den produserte utdatavariabelen fra JsonAsCustomObject til VendorInvoice, og velg Lagre.
Deretter legger du til en If-handling fra Betingelser-gruppe og konfigurerer egenskapene på følgende måte:
First operand Operatør Second operand %VendorInvoice['Amount']% Mindre enn (<) 5000 Velg Lagre.
Legg til en annen handling fra Betingelser-gruppen kalt Else, og legg den til mellom If- og End-handlingen.
Nå legger du til ytterligere to handlinger fra Variabler-gruppen kalt Angi variabel og legger dem til i If- og Else-handlingene og angir ProcessingNotes- og ProcessingStatus-variablene til følgende verdier:
Variabel Verdi %ProcessingNotes% Fakturaen er behandlet %ProcessingStatus% Behandlet Kopier de to Angi variabel-handlingene, og lim dem inn mellom Else- og End-handlingen , og endre verdiene slik at de samsvarer med disse:
Variabel Verdi %ProcessingNotes% Forretningsunntak: Fakturabeløpet er større enn USD 5000, noe som krever godkjenning fra leder. %ProcessingStatus% Unntak Flyten skal ligne på denne nå.
Lagre flyten, og kjør den for å bekrefte at flytlogikken fungerer som forventet.
Gå tilbake for å redigere Min første arbeidskøflyt.
Velg den nylig opprettede (eller redigerte) skrivebordsflyten fra listen, og velg deretter Deltok som Kjøremodus.
Fyll ut parameterne Verdi for arbeidskøelement og Navn på arbeidskøelement som vises her:
Legg til en Betingelse-handling før handlingen Oppdater en rad.
Plasser musen i Velg en verdi-feltet, og velg Behandlingsstatus i dialogboksen for dynamisk innhold.
Plasser musen i det andre Velg en verdi-feltet, og angi Behandlet som tekstverdi.
Flytt og slipp Oppdater en rad-handlingen i delen Hvis ja i betingelseshandlingen.
Åpne Oppdater en rad-handlingsdetaljene, og erstatt verdiene for å samsvare med følgende:
I den røde Hvis nei-boksen legger du til en annen Oppdater en rad-handling og velger Arbeidskøelementer som Tabellnavn.
Deretter velger du workqueueitemid som Rad-ID og åpner delen Vis avanserte alternativer-delen og velger Behandler notater som verdien Behandler resultater.
Velg Feil som Status og GenericException for Statusårsak.
Velg Lagre og Test for å teste den samlede automatiseringen og følge utdataene fra flythandlingen for skrivebordet.
Hvis du vil bekrefte at arbeidskøelementet er behandlet, kan du gå til siden for arbeidskødetaljer, velge Se alle i delen om arbeidskøelementer og filtrere elementene etter Behandlet status.
Du har akkurat fullført et mer avansert scenario som inkluderte købehandling for hybridarbeid!