Behandle arbejdskøer
Behandling af arbejdskø henviser til administrationen af en liste over arbejdselementer, der skal fuldføres i en bestemt ordre. Denne liste indeholder oplysninger om hvert enkelt element, f.eks. navn, prioritet, udløbsdato, status og den faktiske værdi, der skal behandles.
Sådan kan arbejdskøer behandles:
Skrivebordsflowbaseret behandling på Power Automate skrivebordet (PAD).
Cloudflowbaseret behandling med understøttelse af skrivebordsflow.
Brug Dataverse pro-udviklerfunktioner (kun til avancerede integrationsscenarier):
Få mere at vide om Dataverse-værktøjer til pro-code: Dataverse developer.
Behandle gennemgange
Hvis du vil vise nogle af de tilgængelige behandlingsindstillinger, er her tre forskellige behandlingsscenarier.
Procesbaseret arbejdskø til stationære computere behandles i Power Automate desktop (PAD)
Behandle elementer i arbejdskø og opdatere eksempler
Det første trin til at bruge handlinger til arbejdskø i Power Automate desktop er at oprette en arbejdskø i det miljø, du arbejder i, og indlæse visse køelementer med data, der skal forbruges downstream. Køelementer kan indlæses i en arbejdskø via et skrivebordsflow, et cloudflow eller flere ad gangen som skitseret her, hvorved køelementer udfyldes. I dette eksempel er nogle køelementer blevet tilføjet manuelt i en arbejdskø for at forklare, hvordan handlinger i Power Automate desktop kan bruges.
Arbejdskøelementerne er blevet oprettet, og værdifeltet indeholder tekst i JSON-format, der bruges downstream i desktopflowet.
Det eksempelflow, vi bruger til at vise brugen af arbejdskøens handling, efterligner en proces, der forbruger et arbejdskøelement fra skyen, behandler de data, der er inkluderet i værdifeltet og konverterer det til et brugerdefineret objekt, der skal behandles downstream. Bemærk, at det ikke er obligatorisk at bruge JSON eller brugerdefinerede objekter som værdier for elementerne i arbejdskøen, men det kan være en nyttig metode til organisering af værdier, der har flere egenskaber, og følge et bestemt skema.
Handlingen Procesarbejdskøelementer bruges til at angive, hvilken arbejdskø der skal forbruges elementer fra og behandles i skrivebordsflowet. Handlingen kan konfigureres til at vælge en arbejdskø på en liste ved hjælp af rullepilen og sende en variabel, herunder kønavnet. Når du kører, fungerer denne handling efter behov i det første (ældste) element fra arbejdskøen til dit flow, som indeholder en statussen i kø. Når køelementet begynder at behandle i flowet, ændres dets status automatisk til behandling.
Et breakpoint (red dot) blev indstillet ved at klikke ud for handling 3 i flowet og derefter køre gennem PAD-konsollen. Når processen holder pause ved pausepunktet, kan variablen WorkQueueItem åbnes ved at dobbeltklikke på den udfyldte værdi under Flow-variabler , og her vises alle de egenskaber, der er knyttet til elementet arbejdskø, der behandles.
I handling 2 af flowet konverterede jeg den returnerede JSON-værdi, som i dette tilfælde åbnes via %WorkQueueItem.Value% til et brugerdefineret objekt. Årsagen til dette er, at det hjælper med at fortolke JSON og bruge JSON-egenskaberne downstream i flowet. I dette eksempel bruges oplysningerne til at oprette poster i Farbrikams finansportal.
{ "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" }
Lad os f.eks. sige, at der var et krav om at angive faktura-id'et i et felt i et økonomisystem som en del af en proces, hvor du automatiserer brugergrænsefladen i en web- eller skrivebordsapp – du kan kalde den værdi ved hjælp af %JsonAsCustomObject.InvoiceId% for at udfylde et tekstfelt og trykke på en knap.
I dette eksempel er der nogle betingede sætninger, når trinnene er behandlet, og dataene fra det brugerdefinerede objekt bruges i underflow fabrikam-dataindtastning. Hvis processen køres fra slutpunkt til slutpunkt uden at støde på inputsystemrelaterede undtagelser, bruges handlingen Opdater arbejdskøelement til at ændre status for arbejdskøelementet til Behandlet, og feltet Behandlingsresultat kan bruges til at angive nogle valgfrie noter. Hvis feltet udløber er tomt, bevarer det nye køelement den værdi i Elementer udløber efter, der er defineret i egenskaberne for arbejdskø.
Indstillinger for håndtering af undtagelser kan konfigureres ved at klikke på fejl i opdateringselementet for arbejdskø. Der findes tre indstillinger for tilpasning under fanen Avanceret. Arbejdskøelement blev ikke fundet kan forekomme, hvis arbejdskøelementet fjernes fra køen enten manuelt eller via en anden systematisk proces, før behandlingen i PAD er afsluttet. Arbejdskø-element på hold kan forekomme, hvis en automatiseret proces eller nogen ændrer status for det arbejdskø-element, der behandles, til på hold i flowportalen, mens køelementet behandles. Kunne ikke opdatere arbejdskø-elementet kan forekomme, hvis køelementet ikke længere findes i køen eller er placeret i status på hold. Alle ovenstående er grænsetilfælde, der kan forekomme – få mere at vide om håndtering af fejl i skrivebordsforløb her.
Hvis der blev registreret et problem under behandling af dataene for arbejdskøelementet i dataindtastningssystemet, kan elementet også tildeles en status som generisk undtagelse, it-undtagelse eller forretningsundtagelse. Disse undtagelsesstatusser kan bruges, når eller hvis din automatiserede brugssag opfylder kriterier, der kan være gældende.
Lad os sige, at scenarie 2 blev opfyldt under behandling af et køelement. I dette tilfælde er køelementet markeret som en generisk undtagelse i den oprindelige kø. Afhængigt af scenariet kan du vælge at ændre status for køelementer, der ikke kunne behandles korrekt som en af de alternative statusindstillinger. Derfra kan du bestemme, om en handling fra en person er påkrævet, eller oprette en efterfølgende proces med den logik, der kræves for at administrere de enkelte undtagelsesstatusser.
Mønster for automatisk genforsøg
Handlingen Behandl elementer i arbejdskø i Power Automate Desktop indeholder en avanceret indstilling til at konfigurere eller tilsidesætte en mekanisme til automatisk genforsøg. Denne funktion giver dig mulighed for at angive det maksimale antal automatiske forsøg pr. arbejdskø-element, hvilket er nyttigt til håndtering af it-undtagelser som forbigående netværksfejl eller midlertidig systemutilgængelighed. Det gør det muligt for maskinen at beholde varen og udføre kontrollerede genforsøg uden at køre varen, hvilket sikrer en mere effektiv og robust behandling af arbejdskø.
Du kan angive og centralt styre det maksimale antal nye forsøg på arbejdskø-posten i Dataverse. Denne standardværdi gælder for alle skrivebordsflow, der behandler denne arbejdskø via handlingen Behandl elementer i arbejdskø.
Hvis du vil tilsidesætte standarden på køniveau i dit flow, skal du gå til sektionen Avanceret i handlingen Behandl elementer i arbejdskø og slå indstillingen Tilsidesæt konfiguration af automatisk genforsøg i arbejdskø. Denne indstilling giver dig mulighed for at justere det maksimale antal genforsøg til en højere eller lavere værdi eller endda deaktivere genforsøgsmekanismen ved at indstille det maksimale antal genforsøg til 0.
Når du bruger handlingen Opdater arbejdskø-element med en status, der er angivet til IT exception
og et maks. antal automatiske forsøg på mere end 0, sender systemet ikke opdateringen med det samme til orkestratoren i arbejdskøen. I stedet forsøger den handlingen igen, indtil den når det angivne maksimale antal nye forsøg. Den eneste værdi, der opdateres i elementet i arbejdskø, er retrycount
. Denne værdi stiger fra det andet opdateringsforsøg og fremefter, indtil det maksimale antal automatiske genforsøg er nået. Derudover øges en lokal arbejdskø-elementvariabel kaldet CurrentRetryCount
intervaller for hvert nyt forsøg. Denne variabel giver dig mulighed for at implementere brugerdefineret logik baseret på dens værdi, hvis det er nødvendigt.
Flowet anmoder ikke om et nyt element, når det går tilbage til toppen af handlingen Behandl elementer i arbejdskø, hvis følgende betingelser er opfyldt:
- Det maksimale antal nye forsøg er ikke nået.
- Der sker ingen andre opdateringer bortset fra IT-undtagelser.
Når det maksimale antal nye forsøg er nået, sender opdateringshandlingen opdateringen til orkestratoren, ændrer elementets status til IT-undtagelse og inkluderer eventuelle angivne behandlingsnoter.
Tilføje og sætte eksempler på arbejdskøelementer fra PAD i kø igen
Tilføj arbejdskøelement gør det muligt for brugere af skrivebordsflow at udfylde arbejdskøelementer i en arbejdskø, der er konfigureret i flowportalen.
I dette eksempel overføres der dagligt en Excel-fil i .csv-format til en mappe, og hver række skal føjes til en arbejdskø.
De første handlinger i denne eksempelproces tilknytter en mappe, hvor den daglige Contoso Invoices.csv-fil slippes – når processen kører, starter den med at læse datatabellen fra CSV-filen. CSVTable-variablen indeholder de data, der er importeret og behandles i nye køelementer.
I handlinger 3 og 4 genereres det tidspunkt, hvor vi vælger, at de nye køelementer skal udløbe, efter at de er føjet til en arbejdskø. I handling 3 registreres de aktuelle systemdata og -klokkeslæt, og i dette eksempel føjes der 7 dage til det ved hjælp af handlingen %Føj til dato/klokkeslæt. Outputtet gemmes i en variabel, der kaldes ExpiryDatetime, som bruges i handlingen Tilføj element i arbejdskø.
I handling 5 introduceres For hver-løkken, der bruges til at gentage de enkelte datarækker i den importerede CSVTable – denne handling gengiver en datarække for det aktuelle element, der behandles.
Alle de foregående handlinger i dette eksempel på et skrivebordsflow er nu indarbejdet i angivelsen af værdierne for handlingen Tilføj arbejdskøelement.
Parameteren Arbejdskø angives til den kø, hvor der skal føjes nye elementer til arbejdskøen. I dette tilfælde blev Demo PAD-køen valgt ved at vælge den i rullemenuen.
Parameteren Prioritet vises som standard, Normal, men indstillingerne for Lav og Høj er også valgfrie. Elementer i arbejdskø med højere prioritet behandles først, derefter normale og sidste, når de blandet i den samme arbejdskø.
Parameteren Navn er angivet med et statisk præfiks sammen med variabelværdien CurrentItem['ID'] - som indeholder værdien fra id-cellen i den datarække, der behandles. Dette er valgfrit, men kan være nyttigt, afhængigt af din use case.
Ved hjælp af værdierne fra datarækken i variablen CurrentItem blev inputparameteren angivet i JSON-format. Bemærk! Hvert enkelt overskriftsnavn er føjet til variablen currentitem ved hjælp af notationen ['navnet på header']
Feltet Udløber udfyldes med den dato/klokkeslætsvariabel, vi har føjet 7 dage til i de forrige trin. Når det arbejdskøelement, der tilføjes, ikke udfyldes, indeholder Elementer udløber efter den værdi, der er angivet for arbejdskøen.
Behandlingsnoter er valgfrie - brug efter behov.
Når processen køres, opretter hver datarække i den importerede CSV et arbejdskøelement, der indeholder statussen I kø, hvilket betyder, at det er tilgængeligt til behandling.
Dette er blot nogle af mange måder, som handlinger i arbejdskø kan bruges på i PAD. Tag dig tid til at udforske og finde oplysninger, der kan bruges til at inkorporere arbejdskøer i dine Power Automate-flows!
Eksempel på at sætte et element med forsinkelse i kø igen
Handlingen Sæt element med forsinkelse i kø igen giver brugere af skrivebordsflow mulighed for at sætte elementer i kø igen og angive en forsinkelsesperiode, hvor elementet kan frigives igen til behandling.
I dette eksempel er der en arbejdskø, der er indlæst med elementer, som er angivet til at udløbe inden for 24 timer, men de kan ikke behandles rettidigt, fordi it-afdelingen i øjeblikket udfører rutinemæssig vedligeholdelse af systemet, og elementerne skal sættes i kø igen. Vedligeholdelsen fuldføres i løbet af natten, så vi fortsætter med at udskyde hvert køelement med 24 timer og indstiller dem til at udløbe 24 timer efter frigivelsesperioden.
De første tre handlinger i denne eksempelproces er dato/klokkeslætshandlinger. Handlingen 'Hent aktuel dato og klokkeslæt' registrerer systemets dato/klokkeslæt i det øjeblik, handlingen køres. Derefter brugte vi handlingen "Tilføj til datetime" til at dække to krav. Først skal vi definere forsinkelsen ved at føje 24 timer til dags dato og klokkeslæt. Derefter skal vi føje 48 timer til dags dato og klokkeslæt som en udløbsdato.
I eksemplet konfigureres derefter handlingen 'Behandle arbejdskøelementer' til at pege på den indlæste arbejdskø, og 'Sæt element med forsinkelse i kø igen' placeres i løkken.
De værdier, der genereres for forsinkelsen og udløbet, kan nu overføres til handlingen 'Sæt element med forsinkelse i kø igen'. Feltet 'Arbejdskøelement' udfyldes af den variabel, der er produceret af løkken. Den fortæller, hvilket køelement der skal sættes i kø igen. Derefter indtastede vi de værdier, der blev oprettet ved hjælp af dato/klokkeslæt-handlingerne, i felterne 'forsinkelse indtil' og 'udløber'. 'Forsinkelse indtil' er obligatorisk, men du kan bruge 'udløber' og 'behandlingsresultat' efter eget valg.
Med denne simple proces kan du sætte alle tilgængelige elementer i kø igen, udskyde dem til et bestemt tidspunkt og angive indstillinger for også at angive en udløbsdato og et behandlingsresultat.
Cloudflow og connectorbaseret behandling
Den nemmeste måde at oprette et element på i en arbejdskø og behandle det på er følgende:
Gå til Power Automate, og log på med dine legitimationsoplysninger.
Vælg Mine flows i venstre rude.
Vælg + Nyt flow, og vælg Hurtigt skyflow på værktøjslinjen.
Angiv et flownavn, f.eks. Mit første arbejdskø-flow, og vælg derefter manuelt udløse et flow.
Vælg Opret.
Når flowdesigneren åbner, skal du vælge + Nyt trin og vælge Microsoft Dataverse-connector.
Vælg Udfør en bundet handling på listen med handlinger.
Parameter | Værdi | Beskrivelse |
---|---|---|
Tabelnavn | Arbejdskøer | Navnet på arbejdskøtabellen. |
Navn på handling | Fjerne fra kø | Den handling, der henter det næste tilgængelige element fra køen. |
Række-id | [Arbejdskø-id] | Id'et for arbejdskøen (GUID) for den kø, du vil fjernes fra. Du kan få adgang til denne værdi ved at gå til siden med oplysninger om arbejdskøen i din kø og åbne panelet Avancerede detaljer. |
Bemærk
En bundet handling er en Dataverse-handling, der er defineret i en bestemt tabel (arbejdskøer i eksemplet), og den kan kun udføres på poster i den pågældende tabel. Bundne handlinger bruges af platformen til at udføre brugerdefineret forretningslogik eller handlinger på en bestemt post.
- Dit flow skal se ud som her.
Vælg Gem, og derefter Test dit flow.
Vælg Manuelt i testruden Test, Kør flow og derefter Udført.
Hvis flowet er kørt korrekt, får du et lignende resultat (men med forskellige id'er).
- Kopiér derefter hele JSON-indholdet fra brødtekstfeltet og vælg derefter Rediger i øverste højre hjørne af flowet.
Tip
Når du har sat et element i arbejdskøen, skal du bruge JSON-indholdet i elementet som et skemaeksempel til fortolkning af elementets JSON-egenskaber. Det giver dig mulighed for nemt at få adgang til alle egenskaber for det element, der returneres af orkestratoren for arbejdskøen i efterfølgende flowhandlinger.
- Tilføj et nyt trin ved at vælge + Nyt trin, og søg efter en handling, der kaldes Fortolk JSON, og markér den.
- Placer musen i feltet Indhold, og vælg egenskaben brødtekst fra den forrige handling.
Vælg derefter Opret fra eksempel, og indsæt den tidligere kopierede JSON-streng i dialogboksen, og vælg Udført.
Vælg + Nyt trin, og vælg Microsoft Dataverse-connectoren.
Vælg Opdater en række under listen over handlinger.
Vælg tabellen Arbejdskøelementer i feltet Tabelnavn, og placer markøren i feltet Række-id.
På listen dynamisk indhold har du nu alle de felter, der er tilgængelige i elementtabellen for arbejdskøen.
Vælg Vis avancerede indstillinger, og angiv derefter felterne Række-id, Behandlingsresultat Status og Statusårsag til følgende værdier.
Felt | Værdi | Oplysninger |
---|---|---|
Række-id | workqueueitemid | Denne værdi kan vælges i dialogboksen med den dynamiske indholdsliste. |
Behandlingsresultat | Elementet er blevet behandlet. | |
Status | Forarbejdede | |
statusårsag | Forarbejdede |
Vælg Gem, og Test flowet igen.
Hvis flowet er kørt korrekt, får du et lignende resultat som følgende.
Naviger til siden med arbejdskødetaljer, og vælg Se alle på listen med arbejdskøelementer.
Filtrer feltet Status til kun at vise Behandler og Behandlede elementer for at bekræfte, at fjernelse fra kø og opdateringshandlinger virkede som forventet.
Tillykke, du har gennemført din første arbejdskøbehandling!
Skyflowbaseret behandling med understøttelse af skrivebordsflow
I dette scenario udvider vi det forrige scenario ved også at tilføje et trin til behandling af desktopflow.
Gå tilbage, og rediger flowet Min første arbejdskø.
Tilføj en ny handling direkte efter handlingen Fortolke JSON, og søg efter Skrivebordsflows-connector og Kør et flow, der er indbygget i Power Automate til skrivebordet.
På rullelisten for skrivebordsflow skal du enten vælge og redigere et eksisterende skrivebordsflow eller vælge + Opret et nyt skrivebordsflow, og følg instruktionerne på skærmen for at oprette skrivebordsflowet og starte Power Automate til skrivebord. Hvis du er ny bruger af skrivebordsflows, kan du få mere at vide her.
Når Power Automate til skrivebord-designeren åbnes, skal du oprette to inputvariabler, der kaldes WorkQueueItemValue og WorkQueueItemName og derefter tilføje to outputvariabler, der kaldes henholdsvis ProcessingNotes og ProcessingStatus, som alle skal have Tekst som datatype.
Angiv en standardværdi for variablen WorkQueueItem, så du senere kan teste scriptet lokalt. Hvis du har fulgt selvstudium til masseimport, skal du have elementer i arbejdskøen i køen Kreditorfaktura, der har deres værdier i JSON-format. Her er et eksempel på en af de anvendte værdier.
{ "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" }
Gem flowet.
Åbn handlingsgruppen Variabler i handlingspanelet, og dobbeltklik på handlingen Konverter JSON til det brugerdefinerede objekt for at føje den til designlærredet, som åbner egenskabsvinduet.
Vælg ikonet for variablen i feltet JSON, og vælg variablen WorkQueueItemValue.
Omdøb den outputvariabel, der produceres, fra JsonAsCustomObject til VendorInvoice, og vælg Gem.
Tilføj derefter en If-handling fra gruppen Betingede, og konfigurer egenskaberne på følgende måde:
First operand Operatør Second operand %VendorInvoice['Amount']% Mindre end (<) 5000 Vælg Gem.
Tilføj en anden handling fra gruppen Betingelser, der kaldes Ellers, og tilføje den mellem handlingen Hvis og Afslut .
Tilføj nu yderligere to handlinger fra gruppen Variabler, der kaldes Angiv variabel, og tilføj dem til følgende værdier i handlingerne Hvis og Ellers. Angiv variablerne ProcessingNotes og ProcessingStatus:
Variabel Værdi %ProcessingNotes% fakturaen er blevet behandlet %ProcessingStatus% Forarbejdede Kopiér de to Angiv variabel-handlinger, og indsæt dem mellem handlingen Ellers og Afslut, og rediger deres værdier, så de stemmer overens med disse:
Variabel Værdi %ProcessingNotes% Forretningsmæssig undtagelse: Fakturabeløbet er større end $5000, hvilket kræver chefens godkendelse. %ProcessingStatus% Undtagelse Dit flow skal se ud som her.
Gem flowet, og kør det for at bekræfte, at flowlogikken fungerer som forventet.
Gå tilbage for at redigere Mit første arbejdskøflow.
Vælg det netop oprettede (eller redigerede) desktopflow på listen, og vælg derefter Deltaget som kørselstilstand.
Udfyld parametrene Elementværdi for arbejdskø og Elementnavn for arbejdskø, som angivet her:
Tilføj handlingen Betingelse før handlingen Opdater en række.
Placer musen i feltet Vælg et værdifelt, og vælg Behandlingsstatus i dialogboksen med det dynamiske indhold.
Placer musen i det andet felt Vælg en værdi, og angiv Behandlet som tekstværdi.
Træk og slip handlingen Opdater en række til sektionen Hvis ja i betingelseshandlingen.
Åbn handlingsdetaljerne Opdater en række, og erstat værdierne til at matche følgende:
Tilføj en ny handling Opdater en række i det røde felt Hvis ikke, og vælg Arbejdskø-elementer som Tabelnavn.
Vælg derefter workqueueitemid som Række-id og åbn afsnittet Vis avancerede indstillinger, vælg Behandler noter som værdien Behandler resultater.
Vælg Fejl som Status og GenericException for Statusårsag.
Vælg Gem og Test for at teste den overordnede automatisering og observer outputtet fra skrivebordsflowhandlingen.
Du kan kontrollere, at elementet arbejdskø er behandlet, ved at gå til siden med oplysninger om arbejdskøen ved at vælge Vis alle i arbejdskøelementerne og filtrere elementerne efter statussen Behandlet.
Godt gået, du har lige fuldført et mere avanceret scenario, der inkluderede behandling af arbejdskø!