Przejdź do głównej treści

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:

  1. Kliknij menu aplikacji
  2. Wybierz moduł rejestry dostępny w lewym menu aplikacji
MENU Rejstry
MENU Rejstry

Definicja rejestru

  1. Na panelu bocznym nad drzewkiem kliknij przycisk nowy.
  2. 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
  3. Zapisz formatkę wygenerowana zostanie tabela w bazie danych w schemacie cregisters oraz domyślny raport dla rejestru.
Rejestry definicja
Rejestry definicja

Po zapisaniu formatki definicji rejestru możemy zaobserwować:

  1. Wygenerowany został podstawowy raport dla rejestru
  2. 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
Rejstry zakładki
Rejstry zakładki

Dodawanie pól

Na zakładce Pola:

  1. Kliknij przycisk "Dodaj", by zdefiniować nowe pole w tabeli rejestru.
  2. 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 "_"

  1. Zapisz formularz zostanie dodane pole w tabeli bazy danych wybranego typu
Rejestry definicja pól
Rejestry definicja pól

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.
Powiązania rejestru
Powiązania rejestru

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:

  1. Odczyt wszystkich (READ) – umożliwia przeglądanie/odczyt wszystkich wpisów w danym rejestrze
  2. 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.
  3. Zapis (UPDATE) – umożliwia zapis/modyfikację wpisów w rejestrze
  4. Usuwanie (DELETE) - umożliwia usuwanie wpisów z rejestru
  5. 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