Przejdź do treści

Dane wejściowe automatyzacji

Dane wejściowe to pliki podawane automatyzacji na czas konkretnego uruchomienia - faktury do przetworzenia, arkusz z listą kontrahentów, paczka dokumentów do wysyłki. W odróżnieniu od pakietu robota, nie są częścią kodu i nie muszą być takie same przy każdym wywołaniu.

Zarządzasz nimi w zakładce Dane wejściowe, obok zakładek Pliki automatyzacji i Zmienne i sekrety.

Zakładka Dane wejściowe z wgranymi plikami

Nad listą widnieje przypomnienie o roli tych plików:

Tymczasowe pliki wejściowe do lokalnych uruchomień. Nie są częścią opublikowanej automatyzacji.

Pliki zebrane są w grupie ./input/ opisanej jako katalog wejściowy - to dokładnie ta ścieżka, którą zobaczy skrypt. Licznik przy nazwie zakładki pokazuje, ile plików czeka na najbliższe uruchomienie.


1. Pakiet robota a dane wejściowe

Rozróżnienie tych dwóch rzeczy jest kluczowe dla dobrego zaprojektowania automatyzacji.

Pakiet robota Dane wejściowe
Co zawiera Kod, moduły, konfigurację, manifest zależności Materiał do przetworzenia
Jak często się zmienia Rzadko, wraz z nową wersją Potencjalnie przy każdym uruchomieniu
Gdzie ląduje Katalog główny środowiska roboczego Katalog input/
Czy jest częścią opublikowanej wersji Tak Nie

Dane wejściowe nie są wersjonowane

Pliki wgrane jako dane wejściowe służą lokalnym uruchomieniom testowym i nie wchodzą w skład opublikowanej wersji automatyzacji. Publikacja utrwala kod, nie materiał do przetworzenia.


2. Wgranie danych wejściowych

  1. W widoku automatyzacji przejdź do zakładki Dane wejściowe.
  2. Upuść pliki na obszar wgrywania albo skorzystaj z przycisków Dodaj pliki i Dodaj folder.
  3. Pliki pojawią się na liście i będą dostępne przy kolejnym uruchomieniu.

Wybór plików wejściowych

Menu (⋮) przy każdym pliku pozwala go podejrzeć, pobrać albo usunąć - przydaje się, gdy chcesz wymienić jedną pozycję ze wsadu bez wgrywania całości od nowa.


3. Odczyt w skrypcie

Pliki wgrane jako dane wejściowe lądują w katalogu input/ względem katalogu roboczego. Czytaj je ścieżką względną:

import json
from pathlib import Path

for plik in sorted(Path("input").glob("*.json")):
    dane = json.loads(plik.read_text(encoding="utf-8"))
    print("przetwarzam:", plik.name, "->", dane["numer"])

Sortowanie warto dodać świadomie: kolejność zwracana przez glob nie jest gwarantowana, a przy wsadzie dokumentów zwykle zależy nam na powtarzalnym porządku.

Konkretny plik po nazwie:

from pathlib import Path

manifest = Path("input/kontrahenci.csv")
if not manifest.is_file():
    raise SystemExit("Brak pliku kontrahenci.csv w danych wejściowych")

Warto sprawdzać obecność plików na starcie: automatyzacja uruchomiona bez oczekiwanych danych powinna zakończyć się od razu czytelnym komunikatem, a nie przetworzyć pustą listę i zameldować sukces. Zerowa liczba przetworzonych pozycji rzadko bywa poprawnym wynikiem.


4. Wzorce przekazywania danych

4.1. Plik konfiguracyjny sterujący przebiegiem

Poza materiałem do przetworzenia dane wejściowe dobrze nadają się do sterowania zachowaniem robota bez zmiany kodu:

{
  "tryb": "pelny",
  "limit_pozycji": 500,
  "pomijaj_bledne": true
}
import json
from pathlib import Path

cfg = json.loads(Path("input/parametry.json").read_text(encoding="utf-8"))
limit = cfg.get("limit_pozycji", 100)

Takie podejście sprawdza się, gdy parametrów jest dużo albo mają strukturę. Dla pojedynczych wartości prostsze i czytelniejsze są zmienne.

Odróżnij konfigurację od materiału do przetworzenia

Skrypt, który bierze wszystkie pliki z input/ jako dane do obróbki, potknie się o dorzucony parametry.json. Albo czytaj konfigurację po dokładnej nazwie i pomijaj ją w pętli, albo trzymaj ją w pakiecie (jak config/ustawienia.json), a w danych wejściowych zostaw sam materiał.

4.2. Dane wsadowe dla uruchomień produkcyjnych

Zakładka Dane wejściowe obsługuje uruchomienia testowe wykonywane z panelu. Dla procesów produkcyjnych, gdzie każde wywołanie ma własną paczkę dokumentów i własną referencję, służy mechanizm zgłoszeń - pozwala przygotować komplet plików, opisać go referencją i dopiero wtedy wypuścić uruchomienie.


5. Katalog wejściowy a katalog wyjściowy

Nie myl obu katalogów - mają rozłączne role:

Katalog Kierunek Zawartość
input/ do robota Pliki, które wgrałeś przed uruchomieniem
output/ od robota Pliki, które robot wytworzył i które wrócą jako artefakty

Plik zapisany do input/ w trakcie pracy nie wróci do panelu. Wszystko, co ma być widoczne po zakończeniu, musi trafić do katalogu wskazywanego przez OUTPUT_DIR - patrz Kontrakt skryptu.