Definicja Hook Contract: HashCodeInfo

Wprowadzenie

Definicja Hook Contract służy do opisu obiektu biznesowego typu HashCode, czyli obiektu biznesowego, którego klucz jest wyliczany na podstawie jego danych biznesowych. Definicja Hook-Contract umożliwia rozdzielenie w standardowym kodzie oraz wprowadzenie nowych obiektów biznesowych HashCode w postaci aplikacji.

Niniejszy artykuł opisuje, jakie rozszerzenia można wprowadzać za pomocą definicji Hook Contract oraz jakie ograniczenia i specyficzne atrybuty należy przy tym uwzględnić.

Opis interfejsu można znaleźć w odpowiednim obiekcie deweloperskim typu Hook Contract. Szczegółowe informacje o metodach zadeklarowanych w interfejsach znajdują się w powiązanych klasach Java.

Informacje na temat infrastruktury Hook Contract znajdują się w artykule Hook Contract.

Grupa docelowa

  • Deweloperzy

Opis

Ta definicja Hook Contract dostarcza informacji o obiekcie biznesowym typu HashCode. W szczególności konieczne jest podanie następujących danych:

  • Klasa obiektu biznesowego
  • Adapter, który ma zostać użyty
  • Informacja, czy wspierana jest reorganizacja

Definicja Hook Contract: com.cisag.app.general.hook.log.HashCodeInfo

Następujące obiekty biznesowe typu HashCode zostały już przystosowane do wykorzystania tej definicji Hook Contract w standardzie i służą jako przykładowe implementacje.

Obiekt biznesowy typu HashCode Implementacja Hook Contract
Schematy numeracji com.cisag.app.general.extension.log.HashCodeInfoNumericRangeImpl
Dane Intrastat com.cisag.app.general.intrastat.log.HashCodeInfoIntrastatDataInfoImpl
Adresy com.cisag.app.general.log.HashCodeInfoAddressDataImpl
Dane dostawy com.cisag.app.general.log.HashCodeInfoDeliveryDataInfoImpl
Dane fakturowania com.cisag.app.general.log.HashCodeInfoInvoicingDataInfoImpl
Dane zleceń dostawy com.cisag.app.general.log.HashCodeInfoOrderDeliveryDataInfoImpl
Dane zamówień partnerów com.cisag.app.general.log.HashCodeInfoOrderPartnerDataInfoImpl
Ograniczenia magazynowe com.cisag.app.inventory.location.log.HashCodeInfoStorageAreaRestrictionImpl
Strategia magazynowania com.cisag.app.inventory.location.log.HashCodeInfoStorageAreaStrategyImpl
Dane dostawy zleceń dystrybucyjnych com.cisag.app.multiorg.log.HashCodeInfoDistributionOrderDeliveryDataInfoImpl
Ustawienia wydruku zleceń dystrybucyjnych com.cisag.app.multiorg.log.HashCodeInfoDistributionOrderOutputSettingsImpl
Ustawienia wydruku zleceń produkcyjnych com.cisag.app.production.log.HashCodeInfoProductionOrderOutputSettingsImpl
Warunki i formuły com.cisag.app.production.parser.log.HashCodeInfoParameterizedStatementImpl
Dane zamówienia dostawcy com.cisag.app.purchasing.log.HashCodeInfoOrderSupplierDataInfoImpl
Ustawienia wydruku zamówień zakupu com.cisag.app.purchasing.log.HashCodeInfoPurchaseOrderOutputSettingsImpl
Dane zamówienia klienta com.cisag.app.sales.log.HashCodeInfoOrderCustomerDataInfoImpl
Ustawienia wydruku zamówień sprzedażowy com.cisag.app.sales.log.HashCodeInfoSalesOrderOutputSettingsImpl
Uwaga
Ścieżka implementacji Hook Contract jest następująca:
– Nazwa przestrzeni nazw obiektu biznesowego typu HashCode
– Prefiks HashCodeInfo
– Nazwa obiektu biznesowego
– Sufiks Impl

Cechy szczególne

Wszystkie obiekty biznesowe HashCode są zarządzane przez klasę HashCodeLogic. W tym celu wymagany jest adapter.
Adapter ten musi posiadać tę samą wartość CisModuleId co implementacja Hook Contract. Wyjątkiem jest DefaultHashCodeAdapter (w przestrzeni nazw com.cisag.app.general.hook.log) – ten adapter może być używany przez dowolną implementację Hook Contract: HashCode.
Następujące pierwotne typy danych są obsługiwane przez klasę DefaultHashCodeAdapter:

  • Binary
  • GUID
  • boolean
  • byte
  • char
  • liczba dziesiętna
  • int
  • long
  • short
  • String
  • Valueset

Obsługiwane są również złożone typy danych (Part), które zawierają tylko określone pierwotne typy danych i tablice.

W przypadku tworzenia nowego obiektu HashCode Business, który zawiera tylko określone pierwotne typy danych, należy użyć adaptera DefaultHashCodeAdapter jako adaptera.

Uwaga
Atrybut należy dołączyć do obiektu HashCode Business tylko wtedy, gdy dana kombinacja danych występuje często. Dobrym wyborem są na przykład ustawienia i kombinacje danych podstawowych, które tylko w niektórych przypadkach różnią się indywidualnie, ale zazwyczaj pozostają takie same.

Dane operacyjne, które np. zależą od bieżącej daty, z reguły nie są odpowiednie – dlatego typy danych takie jak byte, liczba dziesiętna, int, long, short oraz String powinny być używane wyłącznie do ustawień, a nie do danych, które zmieniają się np. z każdą pozycją dokumentu (np. ilości i wartości).

Czy ten artykuł był pomocny?