Obsługa baz projekcji (Registry)
Eximee Registry API w ScriptCode
API api.registry.v1 służy do zapisywania, aktualizowania i odczytywania danych w podręcznej bazie projekcji.
Dzięki pełnej integracji z silnikiem platformy, z Registry API korzystasz bezpośrednio w kodzie JavaScript:
W kontekście interfejsu użytkownika (formularza): W skryptach walidacji, serwisach stron (PageService) oraz skryptach wejścia/wyjścia (EntryService, ExitService).
W kontekście automatyzacaji procesów: W zadaniach skryptowych SciptCode Taks oraz konsumentach zdarzeń z Kafka/MQ.
Wartości do zapisu można wyliczyć w serwisach formularza (EntryService, PageService...) lub pobierać bezpośrednio z modelu danych aplikacji (api.model.v1.get()). Wyniki wyszukiwania można dynamicznie prezentować użytkownikowi na ekranie lub wykorzystywać w algorytmach, np. do weryfikacji warunków widoczności.
API
Poniższa tabela zawiera opis metod i parametrów interfejsu api.registry.v1
save
namespace: String, id: String, data: String
void
Zapisuje lub aktualizuje (upsert) dane tekstowe pod wskazanym identyfikatorem w wybranej przestrzeni nazw.
saveVersion
namespace: String, id: String, data: String, version: String
void
Zapisuje dane wraz z jawnym określeniem ich wersji schematu.
get
namespace: String, id: String
String
Pobiera i zwraca zapisany ciąg znaków dla danej przestrzeni nazw oraz identyfikatora.
getVersion
namespace: String, id: String
TempStoreVersionItem
Pobiera obiekt zawierający zarówno model danych, jak i wersję schematu.
delete
namespace: String, id: String
void
Trwale usuwa wpis o wskazanym identyfikatorze z wybranej przestrzeni nazw.
Obsługa formatu JSON (data)
Ponieważ metody zapisu przyjmują oraz zwracają dane jako ciąg znaków (String), w skryptach JavaScript należy stosować serializację i deserializację obiektów:
Przy zapisie (save / saveVersion): Przekazywany obiekt JavaScript należy zamienić na tekst za pomocą JSON.stringify(object).
Przy odczycie (get): Pobrany tekst należy sparsować do obiektu za pomocą JSON.parse(string).
TempStoreVersionItem
Obiekt zwracany przez metodę getVersion posiada właściwości (gettery) dostępne bezpośrednio w JavaScript:
data (String) – Surowy ciąg znaków z zapisanym modelem danych.
version (String) – Przypisana wersja schematu.
Znaczenie przestrzeni nazw (namespace)
Parametr namespace nie jest sztywnym słownikiem narzuconym przez platformę Eximee. Daje on low-coderowi pełną swobodę w definiowaniu logicznych domen zapisu i wyszukiwania (tzw. context-bounded domains).
Możesz go traktować jako autonomiczną przestrzeń adresową – dowolny, zdefiniowany przez Ciebie ciąg znaków, który logicznie grupuje powiązane ze sobą wpisy. Dzięki temu osiągamy:
Separacja danych: Ta sama aplikacja low-code może zapisywać różne aspekty tej samej sprawy do osobnych domen (np. "KredytHipoteczny_Wniosek", "KredytHipoteczny_Zabezpieczenia", "KredytHipoteczny_Scoring"), co ułatwia zarządzanie uprawnieniami i czytelność danych.
Brak kolizji: Różne aplikacje mogą korzystać z dokładnie tych samych identyfikatorów (np. tego samego numeru PESEL), ponieważ ich dane są odizolowane wewnątrz swoich przestrzeni nazw.
Elastyczne wyszukiwanie: Wyszukując informacje metodą get, odpytujesz wyłącznie wybraną, precyzyjnie określoną domenę, co gwarantuje błyskawiczne czasy odpowiedzi bazy projekcji.
Strategia wyboru klucza biznesowego
Przed zapisaniem danych należy określić klucz główny (id), który jednoznacznie zidentyfikuje rekord w bazie projekcji. Rejestr nie narzuca sztywnego formatu – kluczem może być dowolny unikalny ciąg znaków.
Częste scenariusze to:
PESEL lub CIF klienta: Gdy chcesz agregować i sprawdzać wnioski powiązane z daną osobą (np. blokada wielokrotnego wnioskowania).
NIP lub REGON firmy: Gdy chcesz powiązać sprawy dotyczące danej firmy.
Numer rachunku bankowego: W przpadku potrzeby powiązania różnych procesów modyfikujących parametry konta
Identyfikator koszyka zakupowego / transakcji (basketId): Gdy sprawa dotyczy grupy produktów procesowanych wspólnie.
Klucz kompozytowy: Dynamiczne połączenie kilku parametrów (np. PESEL_KODPRODUKTU) utworzone w skrypcie.
Przykład: Ograniczenie liczby równoczesnych procesów kredytowych do 1
Chcemy kontrolować liczbę wniosków kredytowych klienta i ograniczyć ją do jednego. Jeżeli klient spróbuje rozpocząć drugi wniosek otrzyma informację o konieczności zakończenia poprzedniego wniosku lub zostania automatycznie przekierowany do wniosku rozpoczętego wcześniej.
Zapis faktu wnioskowania o kredyt (Inicjalizacja)
Skrypt podpinany najczęściej pod akcję przejścia do kolejnej strony lub kliknięcia przycisku "Wyślij":
Weryfikacja i blokada wielokrotnego wnioskowania.
Skrypt uruchamiany na wejściu do formularza (EntryService), sprawdzający czy klient nie posiada już aktywnego wniosku w toku:
Usuwanie informacji o aktywnym procesie
Skrypt uruchamiany na zakończenie proceswania wniosku, np. jako ServiceTask
Ostatnia aktualizacja
Czy to było pomocne?
