Definicja serii

Ostatnio modyfikowane 2025/11/07 13:15 przez Jan Slezák

Przypisywanie nowej wartości seryjnej

Przypisanie nowej wartości seryjnej jest możliwe automatycznie (klawisz F6) lub ręcznie.

Automatyczne tworzenie:

  • Przypisuje się pierwszą niewykorzystaną wartość z serii.
  • W zależności od ustawień serii użytkownik może uzupełnić wartość serii o prefiks i sufiks.

Ręczne tworzenie:

  • Użytkownik może utworzyć dowolną wartość należącą do dowolnej serii dla danego typu dokumentu.
  • Zgodnie z ustawieniami serii sprawdzana jest poprawność wartości seryjnych pod kątem duplikatów.
  • Ręczne tworzenie wartości seryjnych może powodować powstawanie luk.
  • Jeśli podczas ręcznego tworzenia wartości seryjnej nie można przypisać żadnej serii (patrz mechanizm przypisywania serii do wartości seryjnej), wówczas:
    • dla typu serii sygnatura i sygnatura magazynowa zostanie utworzona nieprzypisana wartość seryjna
    • dla pozostałych typów serii system nie pozwoli na zapisanie wartości

Podstawowe zasady

Seria musi być unikalna dla każdej biblioteki – nie może istnieć seria, która ma ten sam typ, maskę i rodzaj dokumentu (przecięcie zbiorów) i nie może pokrywać się zakres (wartość minimalna i maksymalna).
Seria jest zawsze przypisana do konkretnej biblioteki.
Seria to przedział kolejnych wartości określonych danych tomu, które należy:

  • wygenerować (zaoferować) użytkownikowi jako kolejne w kolejności
  • sprawdzić pod kątem formy (składni) dane mają pewien przepis, jak mogą być wprowadzone
  • sprawdzić pod kątem duplikatów (dane nie mogą być zapisane w dwóch lub więcej rekordach)

Ustawienia serii

Typ: Można zdefiniować serie dla następujących najczęściej występujących danych dla związków

  • INCREMENTAL NUMBER – Numer przyrostowy
  • WRITE_OFF_NUMBER – Numer ubytek
  • ORDER_NUMBER – Numer zamówienia
  • SIGNATURE – Sygnatura związku
  • STORE_MARK – Sygnatura magazynowa

Maska: Zawiera zawsze znak $ (dolar) reprezentujący zmienną liczbę interwału,
              oprócz tego może poprzedzać ją grupa znaków jako stała.

Regularna przedrostka, końcówka: wyrażenie regularne, które musi być spełnione, aby wartość była prawidłowa i zapisana:

np.: /[0-9A-Za-z] kompletna definicja wyrażeń regularnych

: http://www.regularnivyrazy.info/regularni-vyrazy-zaklady.html#.VBXGz1dBFyY

Domyślny przedrostek, rozszerzenie:  umożliwia wstępne wypełnienie jednocześnie z generowaniem wartości serii (zazwyczaj stosowane w przypadku wartości seryjnych należących do tej samej serii, do których dodawany jest bieżący rok)

Typy dokumentów, dla których obowiązuje seria (skróty rodzajów dokumentów są oddzielone średnikami. Jeśli nie zostanie wypełnione, obowiązuje dla wszystkich typów dokumentów).

Wyrównanie: określa liczbę miejsc, do których zostanie wyrównana część numeryczna wartości porządkującej, np. 10

Zakres - niektóre serie mają tę samą maskę (kod kreskowy), wtedy mogą być podzielone na więcej serii dla różnych rodzajów dokumentów

  • minimalna wartość serii
  • maksymalna wartość serii

Minimalna wartość generowania: cała liczba dodatnia, która jest używana jako pierwsza przy wywołaniu serii, jeśli w zakresie nie ma już zapisanej wyższej wartości.

Typ generowania wartości porządkującej: określa, czy zostanie użyty standardowy kod systemu, czy też kod specjalny.

  • PREFIX_VALUE – maska jest typu Prefiks i Wartość
  • PREFIX_VALUE_SUFFIX – maska jest typu Prefiks Wartość Sufiks
  • VALUE_SUFFIX – maska jest typu Wartość i Sufiks
  • VALUE – maska jest typu Wartość
  • CUSTOM – kod specjalny, tzn. typ maski jest inny niż w poprzednich standardowych przypadkach
  • ILS_REQUEST_NUMBER – wnioski MVS
  • ORDER_NUMBER – numer zamówienia

Wyrównaj wyświetlaną wartość: decyduje, czy wyświetlana wartość jest wyrównywana do określonej liczby zer.

Regularne końcówki - przykłady

  • Maska - A1
    • Regularne zakończenie - [a-z]|/[0-9]{1,4}[a-z\\-]{0,1}[0-9]{0,4}[/]{0,1}[IVXLCDM]*
      • Wartości zgodne: A1a, A1/1, A1/1a, A1/1995, A1/1995a, A1/1995/I, A1/51, A1/77-1

Mapowanie serii na wartość

Należy pamiętać, że regulary są bardzo „żarłoczne” od lewej do prawej strony, tzn. starają się zmapować na daną część regulary jak najwięcej znaków, jak to tylko możliwe.
  1. Mapování kombinace regulární předpony [^0-9]*, masky $ a regulární koncovky .*
    1. Vnitřně se převede na následující regulár: ([^0-9]*)?(\d+)(.*)?
    2. Pro sériovou hodnotu 433595 se pak provede tohle mapování:
      1. Na první skupinu ([^0-9]*)? pro prefix se nenamapuje nic, protože jsou za začátku jen čísla.
      2. Na druhou skupinu (\d+) pro samotnou hodnotu se namapují číslice 433595.
      3. Na třetí skupinu (.*)? pro suffix se už nenamapuje zase nic, protože tam už nic není.
    3.  Pro sériovou hodnotu AA1234/45 se to pak namapuje takto:
      1. Na první skupinu ([^0-9]*)? pro prefix se namapuje AA.
      2. Na druhou skupinu (\d+) pro samotnou hodnotu se namapují číslice 1234.
      3. Na třetí skupinu (.*)? pro suffix se namapuje ten zbytek, tzn. /45.

         

  2. Mapování kombinace regulární předpony .*, masky $ a regulární koncovky .*
    1. Vnitřně se převede na následující regulár: (.*)?(\d+)(.*)?
    2. Pro sériovou hodnotu 433595 se pak provede tohle mapování:
      1. Na první skupinu (.*)? pro prefix se pokusí namapovat co nejvíc znaků je možné, aby přesto byly splněny podmínky dalších skupin → namapuje 43359.
      2. Na druhou skupinu (\d+) pro samotnou hodnotu se namapuje pouze 5.
      3. Na třetí skupinu (.*)? pro suffix se už nenamapuje zase nic, protože tam už nic není.
  1. Mapowanie kombinacji regularnego przedrostka [^0-9]*, maski $ i regularnego zakończenia .*
    1. Wewnętrznie przekształca się to w następujący wzorzec regularny: ([^0-9]*)?(\d+)(.*)?
    2. Dla wartości seryjnej 433595 wykonuje się następujące mapowanie:
      1. Pierwsza grupa ([^0-9]*)? dla przedrostka nie jest mapowana, ponieważ na początku znajdują się tylko cyfry.
      2. Druga grupa (\d+) dla samej wartości jest mapowana na cyfry 433595.
      3. Trzecia grupa (.*)? dla sufiksów nie jest mapowana, ponieważ nie ma tam już nic.
    3.  W przypadku wartości seryjnej AA1234/45 mapowanie wygląda następująco:
      1. W pierwszej grupie ([^0-9]*)? dla przedrostka mapowane jest AA.
      2. W drugiej grupie (\d+) dla samej wartości mapowane są cyfry 1234.
      3. W trzeciej grupie (.*)? dla sufiksów mapowana jest pozostała część, tj. /45.
  2. Mapowanie kombinacji regularnego przedrostka .*, maski $ i regularnego sufiks .*
    1. Wewnętrznie przekształca się to na następujący regularny wzorzec: (.*)?(\d+)(.*)?
    2. Dla wartości seryjnej 433595 mapowanie przebiega następująco:
      1. Do pierwszej grupy (.*)? dla przedrostka zostanie przypisana jak największa liczba znaków, aby spełnić warunki kolejnych grup → zostanie przypisane 43359.
      2. Do drugiej grupy (\d+) dla samej wartości zostanie przypisane tylko 5.
      3. Do trzeciej grupy (.*)? dla sufiksów nie zostanie przypisane nic, ponieważ nie ma tam już nic.

Generowanie wartości do serii