DODATEK · FAPI · find() / EventLogEntryEXT OF · Rozdział 8
Dodatek F / Głębiej: Śledzenie produkcji

Schemat i eventy Shotgun/ShotGrid API

Rozdział 8 pokazał, jak status w przeglądarce trafia na dysk. Ten dodatek pokazuje mechanizm: schemat encji i triggery reagujące na zmianę pola.

TL;DR

Rozdział 8 opisał Task, Shot i Version jako rekordy w bazie danych, bez wchodzenia w to, jak dokładnie programista odpytuje tę bazę ani jak wygląda mechanizm, który pozwala jej „reagować" na zmiany, wspomniany w Rozdziale 18. Ten dodatek pokazuje obie te warstwy.

Etap: Schemat, który każde studio zmienia po swojemu

Te same encje, różne pola

Encje z Rozdziału 8 — Shot, Task, Version — istnieją w każdym wdrożeniu ShotGrid czy ftrack, ale schemat pól przypisanych do każdej z nich jest w pełni konfigurowalny. Jedno studio dodaje do Taska własne pole sg_priority, inne — pole wskazujące na dział odpowiedzialny za zatwierdzenie, jeszcze inne dorzuca customowy typ encji nieistniejący nigdzie indziej, np. „Sekwencja kamery" dla produkcji motion capture (Dodatek U). To dlatego Rozdział 8 mówił o „tym samym modelu" w trzech narzędziach ostrożnie — model bazowy jest wspólny, ale każde studio buduje na nim swoją, unikalną warstwę pól.

Etap: Odpytywanie bazy

Filtr, encja, pola — nic więcej

Typowe zapytanie do API systemu śledzenia ma zawsze ten sam kształt: jaką encję chcesz, jakie warunki (filtry) muszą spełniać zwrócone rekordy, i jakie pola faktycznie Cię interesują — API nie zwraca nigdy całego rekordu ze wszystkimi polami, tylko te, o które poprosisz, co ma znaczenie przy zapytaniach zwracających tysiące rekordów naraz.

# przykładowa, uproszczona składnia zapytania
tasks = sg.find(
    "Task",
    filters=[["sg_status_list", "is", "apr"]],
    fields=["content", "entity", "task_assignees"]
)

Powyższe zapytanie zwraca wszystkie taski o statusie „zatwierdzony", razem z ich nazwą, powiązanym shotem czy assetem i listą przypisanych osób — dokładnie ten sam typ zapytania stoi za każdym dashboardem opisanym w Rozdziale 8.

Etap: Eventy — jak baza „reaguje"

Dziennik zdarzeń i nasłuchujący proces

Mechanizm automatyzacji z Rozdziału 18 opiera się na tym, że każda zmiana w bazie — nowy rekord, zmiana statusu, dodana notatka — tworzy wpis w dzienniku zdarzeń (event log). Osobny, stale działający proces nasłuchuje tego strumienia zdarzeń i porównuje każde nowe zdarzenie z zarejestrowaną listą reguł: „jeśli status Taska zmienił się na apr, uruchom ten skrypt". Kiedy trafi na dopasowanie, wywołuje odpowiedni hook — dokładnie ten drugi z dwóch sposobów podpięcia automatyzacji, które Rozdział 18 opisał jako alternatywę dla hooków wbudowanych bezpośrednio w narzędzie publikujące.