Wprowadzenie
Definicja hook contract Schematy numeracji służy do rozszerzenia aplikacji Schematy numeracji oraz do tworzenia nowych schematów numeracji. W niniejszej dokumentacji opisano, jakie rozszerzenia można wykonać przy użyciu definicji hook contract.
Opis interfejsu znajduje się w odpowiadającym obiekcie deweloperskim typu Hook Contract. Szczegółowe informacje dotyczące metod zadeklarowanych w interfejsach można znaleźć w odpowiadających klasach Java.
Informacje dotyczące infrastruktury hooków można znaleźć w artykule Hook Contracts.
Ze względu na powiązania merytoryczne między rozszerzeniem schematów numeracji a ich rozszerzaniem o dodatkowe źródła danych, dokument zawiera również informacje na temat źródeł danych.
Grupa docelowa
- Deweloperzy
Opis
Schematy numeracji mogą być rozszerzane za pomocą aplikacji. Oprócz ich nowych typów i subtypów mogą być również tworzone nowe źródła danych, umożliwiające rozszerzenie możliwości ustalania pochodzenia definicji komponentów.
Tworzenie subtypów odbywa się poprzez implementację definicji hook contract:com.cisag.app.general.hook.log.NumberRangeSubTypeHook
Szczegóły zawarte są w artykule Definicja hook contract: Podtyp Schematy numeracji.
Rozszerzenie źródeł danych dla typów i subtypów schematów numeracji nie różni się od siebie. W celu rejestracji nowych parametrów schematów numeracji należy zapoznać się z artykułem: Definicja Hook Contract: Start serwera aplikacji
Rozszerzenie schematów numeracji
W celu utworzenia typów schematów numeracji, oprócz rozszerzenia zbioru wartości com.cisag.app.meta.NumberRangeType
, konieczne jest również udostępnienie implementacji hook dla nowego typu schematu numeracji. Służy do tego definicja hook contract: com.cisag.app.general.hook.log.NumberRange
W implementacji hook danego typu schematu numeracji należy zaimplementować interfejs Hook:
com.cisag.app.general.numberrange.hook.log.NumberRangeTypeHook
Dla każdego typu schematu numeracji należy utworzyć Logical data type oraz DataDescription. Z DataDescription wyprowadzane są następujące wartości, które muszą zostać zdefiniowane podczas tworzenia:
-
Nazwa (Etykieta) – określa nazwę typu schematu numeracji
-
Maksymalna szerokość pola – określa maksymalną długość numeru
-
Odrzucony – wartość opcjonalna, umożliwiająca oznaczenie typu schematu numeracji jako wycofanego (deprecated)
W standardzie dostępne są już dotychczasowe typy schematów numeracji jako implementacje hook. Mogą one służyć jako przykłady nowych standardowych typów schematów numeracji.
Typ schematu numeracji | Implementacja Hook-Contract |
---|---|
Zamówienia sprzedaży | com.cisag.app.sales.order.log.NumberRangeTypeSalesOrderImpl |
Istniejące implementacje hook dla typów schematów numeracji również mogą być używane jako przykłady.
Implementacja | Klasa Java |
---|---|
Zamówienia sprzedaży | com.cisag.app.sales.order.log.NumberRangeTypeHookSalesOrderImpl |
Rozszerzenie źródeł danych
W celu rozszerzenia źródeł danych typów schematów numeracji należy utworzyć implementacje hook. Służy do tego definicja hook contract: com.cisag.pgm.appserver.Server.
W celu rejestracji nowych źródeł danych należy zaimplementować interfejs hook:
com.cisag.pgm.appserver.hook.NumberRangeParameterRegistryHook
Szczegółowe informacje dotyczące metod zadeklarowanych w interfejsie znajdują się w odpowiadających klasach Java. Źródła danych są implementacjami interfejsu:
com.cisag.pgm.base.numberrange.NumberRangeParameter
Wymagany jest specyficzny kontekst do określenia wartości podczas generowania komponentu numeru. Ponadto powiązanie z formatowaniem odbywa się poprzez logiczny typ danych, który należy określić w adnotacji. Zwracana wartość musi być z tym typem kompatybilna, np. Date
, CisDate
, String
, Long
.
Określenie stałej długości komponentu numeru jako adnotacja jest opcjonalne.
W standardzie dostępnych jest już kilka implementacji hook w celu rozszerzenia źródeł danych typów schematów numeracji. Mogą one służyć jako przykłady.
Typ schematu numeracji | Implementacja Hook-Contract |
---|---|
Zamówienia sprzedaży | com.cisag.app.sales.order.log.NumberRangeParameterRegistrySalesOrderImpl |
Istniejące implementacje zarejestrowanych źródeł danych również mogą być używane jako przykłady.
Implementacja źródła danych | Klasa Java |
---|---|
Typ Zamówienia sprzedaży | com.cisag.app.sales.order.log.NumberRangeParameterRegistrySalesOrderImpl#SalesOrderTypeCode |
Kontekst | com.cisag.app.sales.order.log.SalesOrderNumberRangeContext |