Přeskočit na hlavní obsah
Verze: 0.23.1

Spuštění scénáře mimo editor

Scénář, který si v editoru uložíte, je obyčejný soubor .json. Dá se spustit i bez otevřeného okna editoru — jedním příkazem, plánovačem, nebo přes Prefect. Robot přitom dělá přesně to, co byste viděli v editoru; jen se nic nekreslí na obrazovku.

Kdy použít co
PotřebaPoužijte
Plánované běhy, kdy editor zůstává otevřený na stanici nebo na VMOrchestrator
Běhy úplně bez okna editoru — CI, server, externí plánovačtuto stránku

Spuštění jedním příkazem

Kromě scénáře potřebujete profil robota — ten, který si ukládáte v dialogu Otevřít prostředí; je to také soubor .json.

aiviro-editor run --scenario faktury.json --profile robot_profile.json

Oba přepínače jsou povinné.

PřepínačEfekt
--scenario CESTASoubor .json se scénářem. Povinné.
--profile CESTAProfil robota, proti kterému se scénář spustí. Povinné.
--prod / --testOstrý nebo testovací režim. Výchozí je --prod, takže scénář běží ostře, dokud nepředáte --test.
--run-log CESTAUloží záznam běhu (stavy akcí a logy) do zadaného .zip. Otevřete ho v prohlížeči logů přes Soubor → Otevřít externí log.

Dva přepínače platí pro příkaz jako celek a lze je předat i přes prostředí:

PřepínačProměnná prostředíEfekt
--log-to-console, -lAIVIRO__LOG_TO_CONSOLELoguje do konzole — to chcete ve výstupu CI.
--debugAIVIRO__DEBUGZapne vývojářské prvky rozhraní. Bez okna nemá využití.

Spuštění aiviro-editor bez podpříkazu otevře desktopové rozhraní.

Návratové kódy

Příkaz skončí kódem 0 při úspěchu a 1 při chybě, takže se dá zapojit do jakéhokoli plánovače nebo skriptu. Při chybě navíc vypíše na chybový výstup Scenario failed: <souhrn>.

aiviro-editor run --scenario faktury.json --profile robot_profile.json --run-log run.zip || echo "selhalo"
varování

Interaktivní akce v tomto režimu neprojdou. Scénář obsahující Vstupní formulář skončí chybou Interactive action encountered in headless mode — bez okna totiž není komu otázku položit. Takové akce omezte na Povoleno (jen Test), aby v produkci nikdy neběžely.

tip

Cesty ke scénáři i profilu můžete zadat absolutně, nebo relativně ke složce, ve které příkaz spouštíte.


Pravidelné spouštění přes Prefect

Pro pravidelné běhy se scénář zabalí do Prefect flow. Níže je šablona — zkopírujte ji do souboru ve složce flows/ svého projektu, například flows/flow_faktury.py, a upravte hodnoty popsané pod výpisem.

import aiviro
from aiviro.modules.prefect_v3.storage import AiviroGitDockerStorage
from aiviro_editor.headless.runner import run_editor_scenario
from prefect import flow

from src import get_file_path, get_work_dir

SCENARIO_FILE = "scenarios/faktury.json"
PROFILE_FILE = "data/robot_profile.json"


@flow(log_prints=True, name="Zpracovani faktur")
def main() -> None:
result = run_editor_scenario(
get_file_path(SCENARIO_FILE),
profile=get_file_path(PROFILE_FILE),
is_prod=True,
)
if not result.success:
raise RuntimeError("Scenario failed: " + result.error_summary)


if __name__ == "__main__":
main.from_source(
source=AiviroGitDockerStorage(project_path=get_work_dir(), git_branch="main"),
entrypoint="flows/flow_faktury.py:main",
).deploy(
name="main",
work_pool_name="aiviro-local",
work_queue_name="default",
cron="0 6 * * *",
job_variables={aiviro.AIVIRO_DEBUG_KEY: "0"},
)

Co si v kopii upravit

HodnotaVýznam
SCENARIO_FILE, PROFILE_FILECesty ke scénáři a profilu robota. Píší se od kořene projektu a používají lomítka /, protože je čte server.
name u @flowNázev, pod kterým flow uvidíte v Prefectu.
entrypointMusí přesně odpovídat umístění a názvu souboru, jinak jej server nenajde.
git_branchVětev, ze které se má scénář brát.
cronKdy se má scénář spouštět. Hodnota None znamená jen ruční spouštění.
is_prodTrue pro ostrý běh, False pro testovací.
varování

Scénář i profil musí být uložené v projektu a nahrané v gitu — server je při běhu čte odtamtud, ne z vašeho počítače.


Python API

run_editor_scenario je jednorázová obálka a přijímá víc, než ukazuje šablona:

ParametrVýznam
scenarioCesta k .json, nebo už načtený scénář.
profileCesta k profilu, nebo načtený objekt profilu.
robotExistující robot, proti kterému se má běžet, místo profile. Musí být zadán právě jeden z profile / robot.
is_prodTrue (výchozí) pro ostrý běh, False pro testovací.
run_log_pathKam zapsat záznam běhu .zip.
wait_afterKolik sekund počkat po dokončení scénáře.

Vrací výsledek s poli success, error_summary a run_log_path.

tip

Když potřebujete spustit víc scénářů proti jednomu robotovi, použijte přímo EditorRunner místo opakovaného volání run_editor_scenario — robota připojí jednou a znovu ho použije, čímž u každého scénáře ušetříte celé připojení a nastartování.


Kontrolní seznam před nasazením bez editoru

  • Všechny přihlašovací údaje jsou v trezoru a klíče existují na stroji, který bude scénář spouštět.
  • V produkci neběží žádný Vstupní formulář ani jiná interaktivní akce.
  • Scénář končí hlášením — viz Aby scénář přežil běh bez obsluhy.
  • Je nastavené --run-log, aby po neúspěšném běhu zůstalo co číst.
  • Profil robota na cílovém stroji má správnou adresu, přihlašovací údaje a monitor.