Rejestr
Rejestr
Rejestr to wirtualna przestrzeń w systemie na nasze dane. Dzięki temu mechanizmowi, w szybki sposób stworzyć własny dialog ze zdefiniowanymi polami i zakładkę gdzie dane te będą wyświetlane. Tak o to przygotowany rejestr możemy podłączyć pod inny obiekt. Może to być dokument, sprawa, zdarzenie lub inny rejestr.
Tworzenie rejestru
Będąc zalogowanym, postępuj zgodnie z krokami:
- Kliknij menu aplikacji
- Wybierz moduł rejestry dostępny w lewym menu aplikacji
Definicja rejestru
- Na panelu bocznym nad drzewkiem kliknij przycisk nowy.
- Następnie uzupełnij dane na formatce
- Zwróć uwagę na nazwę tabeli oraz nazwę kodową, późniejsza zmiana nazwy tabeli może być problematyczna
- Nazwa rejestru powinna być złożona z następujących trzech członów:
creg_{kod_aplikacji}_{nazwa_obiektu}
creg_
przedrostek wynikający z konwencji{kod_aplikacji}
- np: pm lub projects dla aplikacji projekty, agr lub agreements dla aplikacji umowy{nazwa_obiektu}
- nazwa obiektu, do którego zapisu rejestr będzie używany
- Zapisz formatkę wygenerowana zostanie tabela w bazie danych w schemacie
cregisters
oraz domyślny raport dla rejestru.
Po zapisaniu formatki definicji rejestru możemy zaobserwować:
- Wygenerowany został podstawowy raport dla rejestru
- Pojawiły się zakładki:
- Pola — definicja pól tabeli
- Powiązania — możliwość podpięcia formatki rejestru pod standardowe obiekty biznesowe systemu
- Udostępnianie — definicja możliwości edycji zawartości rejestru
Dodawanie pól
Na zakładce Pola:
- Kliknij przycisk "Dodaj", by zdefiniować nowe pole w tabeli rejestru.
- Wypełnij formularz definicji pola, zwróć uwagę na pole nazwa.
Pole "Nazwa" jest to pole tabeli bazy danych. Pamiętaj, że dozwolone są małe litery i znaki podkreślenia "_"
- Zapisz formularz zostanie dodane pole w tabeli bazy danych wybranego typu
Więcej informacji na temat tworzenia pól możesz przeczytać tutaj.
Rejestr jako zakładka
Istnieje możliwość podłączenia rejestru jako zakładka:
- Dokumentu
- Sprawy
- Kalendarz (spotkanie, rozmowa telefoniczna, termin, zadanie)
- Pozycja dokumentu/sprawy
- Pod rejestr
Zakładkę możemy podłączyć jako:
- formularz
- listę
- podmienić pierwszą zakładkę na formularz rejestru
- określić czy zakładka ma być zawsze widoczna, czy dopiero po dodaniu stworzeniu powiązanego wpisu w rejestrze.
Parametry do definicji rejestru
Rozmiar okna
Możemy sterować rozmiarem okna za pomocą JSONa przekazanego do pola parametry w definicji rejestru.
{
"dialog": {
"width": "520px",
"height": "750px"
}
}
Walidacja wpisu w rejestrze
Walidacja odbywa się po zapisaniu formularza (rekord jest już w bazie, ale transakcja nie jest jeszcze zatwierdzona). Dane zostaną zapisane, jeżeli zapytanie SQL query zwróci TRUE. W przeciwnym wypadku zmiany nie zostaną zapisane (ROLLBACK) i pokaże się komunikat o treści zdefiniowanej w parametrze message.
{
"validator": [
{
"message": "Nieprawidłowe dane!",
"query": "SELECT (data_urodzenia < now()) AND (strlen(pesel) = 11) FROM cregisters.creg_usc WHERE id____ = {PKEY_VALUE}"
}
]
}
Token {PKEY_VALUE}
zwróci nam ID wpisu z rejestru, który czeka na zatwierdzenie transakcji.
Wykonanie akcji JS po otwarciu okna
Odpowiada za to właściwość afterShow
, do której przekazujemy kod JavaScript. Kod zostanie uruchomiony raz po otwarciu dialoga. Jeżeli chcesz wykonać akcje po zmianie jakiegoś pola, zajrzyj tutaj.
Uwaga
Jeżeli kod będzie zawierał błędy, to formatka nie będzie prawidłowo działać!
{
"dialog": {
"afterShow": "/** JS */"
}
}
Poniższy przykład prezentuje akcje na 3 polach. Jeżeli pole 1 zawiera wartość, to schowa pole 2 i 3.
{
"dialog": {
"afterShow": "var mpk_l = $('{DIALOG_NAME}_l3354');var mpk = $('{DIALOG_NAME}_v3354v');var inne_l = $('{DIALOG_NAME}_l3355');var inne = $('{DIALOG_NAME}_v3355_wb');var uzas_l = $('{DIALOG_NAME}_l3356');var uzas = $('{DIALOG_NAME}_v3356_wb');if (mpk.value != '') { inne.style.display = 'none'; inne_l.style.display = 'none'; uzas.style.display = 'none'; uzas_l.style.display = 'none'; }"
}
}
System uprawnień
Prawo systemowe bswfms.cregisters.view
daje dostęp do modułu Rejestrów oraz okna uruchamianego poprzez Shift+R. Prawo to nie daje możliwości przeglądania (czytania wpisów) rejestrów (należy udostępnić enumeratywnie każdy z rejestrów). Prawo bswfms.system.cregisters_manage
daje możliwość zarządzania (tworzenie, usuwanie i modyfikacja definicji rejestrów) oraz przeglądania i modyfikacji wpisów we wszystkich rejestrach. Aby udostępnić rejestr dla wybranej grupy osób należy w konfiguracji uprawnień wybrać osoby lub grupy i wskazać poziom udostępnienia. Rodzaje uprawnień do rejestru:
- Odczyt wszystkich (READ) – umożliwia przeglądanie/odczyt wszystkich wpisów w danym rejestrze
- Odczyt powiązanych (READ_LINKED) - umożliwia przeglądanie/odczyt wpisów z kontekstu innego obiektu np. dokumentu, sprawy, itp.). Jeżeli użytkownik posiada prawo do odczytu w obiekcie nadrzędnym, będzie miał również dostęp do danych z rejestru powiązanych z tym obiektem. Kolejne uprawnienia działają w kontekście pierwszych dwóch. Np.: Aby zapisać/zmodyfikować wpis w rejestrze z poziomu dokumentu, do którego mamy prawo zapisu, potrzebne są prawa: odczyt powiązanych oraz zapis.
- Zapis (UPDATE) – umożliwia zapis/modyfikację wpisów w rejestrze
- Usuwanie (DELETE) - umożliwia usuwanie wpisów z rejestru
- Zmiana statusu (CHANGE_STATUS) - umożliwia modyfikację samego statusu dla wpisów w rejestrze (Uwaga! Wymaga również prawa Zapis)
Jeżeli chcemy otworzyć okno dla konkretnego rejestru (np. App.openDialogByCls('CREGISTERS_EXPLORER', 1);
) - to jedynym wymaganym prawem jest READ (odczyt wszystkich).
Rekordy rejestrów podlegają blokadzie do zapisu w przypadku kiedy status rekordu jest FINAL lub ACCEPTED. Blokowane są również te rekordy których element nadrzędny (skojarzony dokument lub nad rejestr) jest w statusie FINAL lub ACCEPTED. Dodatkowo można sterować własnością {enabled} dla składowych rejestru:
- PASEK ZADAŃ NAD LISTĄ
- REKORD
- PRZYCISK