Definicja Hook Contract: Schemat numeracji

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

Czy ten artykuł był pomocny?