---
title: "Skúšobné behy a história — Workflows for Laravel | Roundly"
description: "Prejdite workflow bez zápisu — jednu cestu alebo všetky vetvy — a čítajte históriu inštancií, záznam krokov s vyhodnoteným vstupom a prehľad behov."
url: https://roundly-consulting.com/sk/open-source/navody/workflows-for-laravel/skusobne-behy-a-historia
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Workflows for Laravel](https://roundly-consulting.com/sk/open-source/navody/workflows-for-laravel.md)

# Skúšobné behy a história

## Skúšobné behy

```php
$result = Workflows::definition('purchase-approval', $team)
    ->dryRun()                                  // the current version, else the draft; dryRun(3) for v3
    ->subject($request)                         // or ->sample(['amount' => '60000', 'requester' => 5])
    ->input(['reason' => 'laptops'])
    ->event('purchase_request.submitted', ['amount' => '60000'])
    ->assume(['legal_cfo' => 'rejected'])       // outcomes for steps that can't be simulated
    ->at(now()->addDay())
    ->by($user)
    ->log()                                     // write one workflow_dry_runs row
    ->run();                                    // DryRunResult — or ->explore() for every branch (DryRunTree)

$result->nodes();     // the path's node ids
$result->path;        // list<DryRunStep{node, type, outcome, assumed, at, input}>
$result->actions;     // list<WouldBeAction{node, type, status, description, details}>
$result->endedBy;     // end | limit | invalid | not_started

Workflows::versions()->dryRun($graphOrVersion, $definition)->sample([...])->run();   // an unsaved graph
```

Prechádzač overí graf, vyhodnotí spúšťač (vstup, podmienku spúšťača, zhodu vlastníka) a prechádza od spúšťača s virtuálnymi hodinami a počítadlom krokov:

- čisté typy (condition, branch, loop, end) sa skutočne vyhodnotia nad subjektom alebo vzorkou;
- typy s vedľajšími efektmi zavolajú simulate(), ak ho majú (vypíšu sa ich akcie wouldDo()); inak sa uvedú ako would\_run a vezmú assume\[node\], inak svoj prvý povinný výsledok označený ako assumed;
- delay vypočíta čas splatnosti (vrátane pracovného času) a posunie hodiny;
- wait vezme assume\[node\], inak svoj prvý výsledok; eskalácie sa vypíšu s časmi splatnosti.

reason je jedno z invalid\_graph, missing\_trigger, owner\_mismatch, invalid\_input, condition\_false, missing\_edge. Každý DryRunStep nesie vstup, ktorý by krok videl — jeho konfiguráciu s vyhodnotenými odkazmi, zobrazenú presne ako vstup skutočného behu.

Nič nezapíše. Nespustí sa žiadny handler, neuloží sa žiadny model, neodošle sa žiadny job ani udalosť, odovzdaný subjekt sa naklonuje a všetko prebieha v transakcii, ktorá sa vždy vráti späť. ->log() (alebo dry\_run.log = on) po vrátení zapíše jeden riadok workflow\_dry\_runs — jediný zápis. Vzorka prijme len registrované polia.

## Všetky vetvy

\->explore() prejde všetky cesty, ktorými sa graf môže uberať: všade, kde bolo treba výsledok predpokladať (krok s vedľajšími efektmi bez simulate(), čakanie), sa rozvetví na každý výsledok, ktorým krok môže skončiť. Je obmedzený na graph.max\_nodes prechodov (vetva, na ktorú rozpočet nestačí, ostane listom), nikdy nezapisuje záznam a run() ostáva jednou cestou:

```php
$tree = Workflows::definition('purchase-approval', $team)->dryRun()->subject($request)->explore();

$tree->branchesAt;                         // 'approve'
array_keys($tree->branches);               // ['approved', 'rejected', 'expired']
$tree->paths();                            // list<DryRunResult>: every complete path, left to right
$tree->toArray();                          // {result, branches_at, branches}
```

## História a záznam krokov

```php
Workflows::for($request)->instances();                       // newest first, cursor-paginated
Workflows::definition('purchase-approval', $team)->instances(InstanceStatus::Waiting);
Workflows::instances()->find($ulidOrId);
Workflows::instances()->steps($instance);                    // every attempt, in order (each with its input)
Workflows::instances()->recent(InstanceStatus::Failed, 'purchase-approval', limit: 20);
Workflows::instances()->detail($instance);                   // loads the step log, pending waits and escalations
$instance->path();                                           // node ids of the completed steps
$instance->failure();                                        // FailureCode, a host step's string code, or null
```

Každý pokus zaznamená svoj vstup: konfiguráciu uzla s vyhodnotenými odkazmi, modely ako {id, type}, so stropom workflows.steps\_input.max\_bytes.

## Prehľad behov

Jeden zoskupený dopyt spočíta bežiace, čakajúce a zlyhané inštancie verzie podľa aktuálneho uzla — dáta, ktoré editor vykreslí nad grafom:

```php
$overlay = Workflows::versions()->overlay($version);   // OverlayReport{version, nodes, total}
$overlay->node('approve')?->waiting;                   // NodeOverlay{node, running, waiting, failed}
```

## Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

[Ďalšie spôsoby podpory vrátane kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/workflows-for-laravel.md)
