> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/powershell-universal/da/automatisering/workflows.md).

# Arbejdsflows

Kæd scripts og AI-prompts sammen til arbejdsflows med flere trin i PowerShell Universal ved hjælp af variablerne Workflow og PSUItem til at overføre data mellem aktiviteter.

> Denne funktion kræver en [licens](/powershell-universal/da/licensing.md).

Arbejdsflows i PowerShell Universal kæder scripts og AI-prompts sammen til ét automatiseringsflow. Brug arbejdsflows til at sende data mellem trin, dirigere kørslen ud fra et resultat, køre uafhængigt arbejde samtidigt og planlægge den resulterende proces. Kørsler af arbejdsflows opretter jobs, som De kan overvåge i standardjobhistorikken.

## Opret et arbejdsflow

1. Gå til **Build > Workflows**, og vælg **Create Workflow**.
2. Angiv et navn og en valgfri beskrivelse.
3. Tilføj arbejdsflowparametre, når kaldere skal angive værdier såsom et miljø, et godkendelsesmål eller en opbevaringsperiode.
4. Gem arbejdsflowet, og åbn det derefter for at bruge **Workflow Designer**.

Parametre har et navn, en standardværdi, en indstilling for, om de er påkrævet, og hjælpetekst. Der spørges om dem, når arbejdsflowet køres manuelt, og de er tilgængelige for arbejdsflowudtryk.

## Byg arbejdsflowet

Designeren har en aktivitetspalet, et sekvenslærred og en egenskabsrude.

1. Tilføj en aktivitet ved at trække den fra paletten til en slipzone på lærredet, eller vælg knappen **plus** ved siden af aktiviteten for at føje den til sekvensen.
2. Vælg en aktivitet for at konfigurere dens egenskaber i ruden til højre.
3. Træk aktiviteter i sekvensen for at omarrangere dem.
4. Vælg **Save Workflow** efter at have foretaget ændringer.

Scriptaktiviteter eksponerer de PowerShell-parametre, der er defineret i deres målscript. Angiv en bogstavelig værdi, eller vælg **PowerShell** for et udtryk, der evalueres ved kørsel. AI-promptaktiviteter giver Dem mulighed for at vælge en AI-agent og angive den prompt, der skal køres.

## Beslutningsgrene

Brug en **Decision**-aktivitet til at oprette en True- og en False-gren. Dette er nyttigt til godkendelsesflows, valideringstjek og håndtering af et tidligere jobresultat.

1. Tilføj **Decision** fra aktivitetspaletten.
2. Angiv en PowerShell-betingelse, der returnerer `$true` eller `$false`. Hvis De lader den være tom, evaluerer beslutningen det første outputelement fra den forrige aktivitet.
3. Brug **Add activity** i hver True- eller False-bane til at definere arbejdet for det pågældende resultat.
4. Tilføj eventuelle efterfølgende aktiviteter efter Decision; hver fuldført gren fortsætter til den næste aktivitet i det primære arbejdsflow.

Et script kan f.eks. returnere, om en udrulning er godkendt. Decision kan bruge standardbetingelsen for forrige output eller bruge et eksplicit udtryk såsom:

```powershell
$Workflow.Environment -eq 'Production' -and $PreviousActivity.Status -eq 'Completed'
```

`$PreviousActivity` indeholder den forrige aktivitets id, type, navn, job-id, status, start- og sluttidspunkter samt pipelineoutput. Brug den, når grenbetingelsen har brug for jobmetadata såvel som dens output.

## Kør aktiviteter parallelt

Brug en **Parallel**-aktivitet, når uafhængige script- eller AI-promptaktiviteter kan køre samtidig.

1. Tilføj **Parallel** fra aktivitetspaletten.
2. Vælg **Add activity** i Parallel-aktiviteten, og tilføj hver underordnet aktivitet, der kan køre uafhængigt.
3. Konfigurer hver underordnet aktivitet som sædvanligt.
4. Fortsæt det primære arbejdsflow, når Parallel-aktiviteten er fuldført.

PowerShell Universal starter de kvalificerede underordnede job samtidigt og venter på, at de alle afsluttes. Hvis en AI-prompt mislykkes, eller et underordnet script er konfigureret til at fejle ved scriptfejl og afsluttes i tilstanden failed, error eller timed-out, fejler Parallel-aktiviteten.

## Overfør data mellem aktiviteter

Arbejdsflowudtryk evalueres ved kørsel og kan bruge disse variabler:

| Variabel            | Brug                                                                                                                                |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| `$Workflow`         | Værdier for arbejdsflowparametre, der leveres, når kørslen starter.                                                                 |
| `$PSUItem`          | Det rå pipelineoutput fra den forrige aktivitet. Et målscript modtager det automatisk kun, når det erklærer en `PSUItem`-parameter. |
| `$Output`           | Navngivne værdier, der er produceret af et tidligere script, som returnerede én hashtable.                                          |
| `$PreviousActivity` | Metadata og output for den umiddelbart foregående aktivitet.                                                                        |

Send for eksempel en arbejdsflowparameter til en scriptaktivitetsegenskab:

```powershell
$Workflow.Environment
```

For at dekonstruere output skal et script returnere nøjagtigt én hashtable:

```powershell
@{
    Server = 'web01'
    Port = 443
}
```

Når **Deconstruct Hashtable Output** er aktiveret (standard), kan efterfølgende PowerShell-udtryk bruge de navngivne værdier:

```powershell
$Output.Server
```

Hvis scriptet returnerer flere objekter, eller det enkelte objekt ikke er en hashtable, skal De bruge `$PSUItem` til at arbejde med outputtet fra den forrige aktivitet i stedet.

## Kør og planlæg arbejdsflows

Vælg ikonet **Play** i **Build > Workflows** for at køre et arbejdsflow efter behov. PowerShell Universal beder om eventuelle konfigurerede parametre og åbner derefter det resulterende arbejdsflowjob.

Opret en workflow-tidsplan fra workflowets fane **Schedules** eller fra **Run > Schedules**. Workflows understøtter enkle, cron-, kontinuerlige og engangstidsplaner. Angiv de samme kørselsvalgmuligheder, der er tilgængelige for planlagt automatisering, herunder kørselsmiljø, legitimationsoplysning og computerindstillinger.

Brug `Invoke-PSUWorkflow` til at starte et arbejdsflow fra PowerShell eller anden automatisering i PowerShell Universal. De kan angive parameterværdier, når De kalder det.

## Administrer arbejdsflows som konfiguration

Når arbejdsflows vedligeholdes i et konfigurationslager, skal De bruge handlingen **Refresh Configuration > Workflows** i stifinderen til konfigurationsfiler til at synkronisere opdaterede arbejdsflowdefinitioner uden at genstarte PowerShell Universal.

Universal-modulet indeholder også `Get-PSUWorkflow`, `New-PSUWorkflow`, `Set-PSUWorkflow`, `Remove-PSUWorkflow`, `New-PSUWorkflowParameter`, `New-PSUWorkflowActivity` og `Invoke-PSUWorkflow` til scenarier med konfiguration og automatisering.

## Overvåg og fejlfind kørsler

Åbn arbejdsflowjobbet fra **Build > Workflows** for at gennemgå dets status, streams, pipelineoutput og fejl. Underordnede script- og AI-jobs er knyttet til arbejdsflowkørslen, hvilket gør det lettere at identificere den aktivitet, der mislykkedes.

Ved fejlfinding skal De kontrollere, at navnene på scriptparametre stemmer overens med metadataene for målscriptet, bruge et udtryk frem for en literal til værdier, der skal evalueres ved kørsel, og huske, at den første aktivitet ikke har noget tidligere output.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.devolutions.net/powershell-universal/da/automatisering/workflows.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
