Hook-Contract-Definition: Nummernkreis

1                     Themenübersicht

Die Hook-Contract-Definition „Nummernkreis“ dient der Erweiterung der Anwendung „Nummernkreise“ und der Erstellung neuer Nummernkreise. In dieser Dokumentation ist beschrieben, welche Erweiterungen Sie mit der Hook-Contract-Definition vornehmen können.

Eine Schnittstellenbeschreibung finden Sie im zugehörigen Entwicklungsobjekt vom Typ Hook Contract. Ausführliche Informationen zu den in den Schnittstellen deklarierten Methoden finden Sie in den zugehörigen Java-Klassen.

Informationen zur Hook-Infrastruktur finden Sie in der Dokumentation „Hook Contracts“.

Aufgrund der fachlichen Nähe zwischen der Erweiterung von Nummernkreisen und deren Erweiterung über zusätzliche Datenquellen, wird in diesen Dokument auch auf die Datenquellen eingegangen.

2                     Zielgruppe

  • Entwickler

3                     Beschreibung

Nummernkreise können durch Apps erweitert werden. Es können neben neuen Nummernkreis-Typen und Nummernkreis-Subtypen auch neue Datenquellen angelegt werden, mit denen die Herkunftsmöglichkeiten der Bestandteilsdefinitionen erweitert würden.

Die Anlage von Subtypen erfolgt durch Implementierung der Hook-Contract-Definition: com.cisag.app.general.hook.log.NumberRangeSubTypeHook. Siehe hierzu die Erläuterungen in der Dokumentation Hook-Contract-Definition: Nummernkreis-Subtyp.

Die Erweiterung der Datenquellen von Nummernkreis-Typen und Nummernkreis-Subtypen unterscheidet sich nicht. Siehe hierzu Erweiterung von Datenquellen und die Dokumentation Hook-Contract-Definition: Application-Server-Start zur Registrierung neuer Nummernkreisparameter.

3.1.1          Erweiterung von Nummernkreisen

Zur Erstellung von Nummernkreis-Typen muss neben der Erweiterung des ValueSet

com.cisag.app.meta.NumberRangeType

auch eine Hook Implementierung für den neuen Nummernkreis-Typ zur Verfügung gestellt werden. Hierzu dient die Hook-Contract-Definition

com.cisag.app.general.hook.log.NumberRange.

Zur Hook Implementierung des jeweiligen Nummernkreis-Typs muss das Hook Interface

com.cisag.app.general.numberrange.hook.log.NumberRangeTypeHook

implementiert werden. Für jeden Nummernkreis-Typ muss ein logischer Datentyp und eine DataDescription angelegt werden. Aus der DataDescription werden dann folgende Werte ermittelt, die bei der Anlage definiert werden müssen.

  • Label: definiert die Bezeichnung des Nummernkreis-Typs
  • Maximale Feldbreite: definiert die maximale Länge des Nummernkreises
  • Ablehnen: dieser Wert ist optional, und ermöglicht die Kennzeichnung dieses Nummernkreis-Typs als abgelehnt („deprecated“)

Im Standard sind bereits die bisherigen Nummernkreis-Typen als Hook Implementierungen umgesetzt worden. Diese können als Beispiele für neue Standard Nummernkreis-Typen dienen.

 

Nummernkreis-Typ Hook-Contract-Implementierung
Vertriebsaufträge com.cisag.app.sales.order.log.NumberRangeTypeSalesOrderImpl

Die bereits vorhandenen Hook Implementierungen der Nummernkreistypen können ebenfalls als Beispielimplementierungen dienen.

Implementierungen Java-Klasse
Vertriebsaufträge com.cisag.app.sales.order.log. NumberRangeTypeHookSalesOrderImpl

3.1.2          Erweiterung von Datenquellen

Zur Erweiterung der Datenquellen von Nummernkreis-Typen müssen Hook Implementierungen erstellt werden. Hierzu dient die Hook-Contract-Definition

com.cisag.pgm.appserver.Server.

Zur Registrierung der neuen Datenquellen muss das Hook Interface

com.cisag.pgm.appserver.hook.NumberRangeParameterRegistryHook

implementiert werden. Ausführliche Informationen zu den in der Schnittstelle deklarierten Methoden finden Sie in den zugehörigen Java-Klassen. Die Datenquellen sind Implementierungen des Interface

com.cisag.pgm.base.numberrange.NumberRangeParameter.

Sie benötigen einen spezifischen Kontext zur Wertermittlung beim Erzeugen des Nummernbestandteils. Des Weiteren wird die Verknüpfung zur Formatierung über den logischen Datentyp, der in der Annotation angegeben werden muss, hergestellt. Der Rückgabewert der Wertermittlung muss mit diesem kompatibel sein, z. B. Date, CisDate, String, Long.

Die Angabe einer festen Länge dieses Nummernbestandteils als Annotation ist optional.

Im Standard sind bereits einige Hook Implementierungen zur Erweiterung der Datenquellen von Nummernkreis-Typen erstellt worden. Diese können als Beispiele dienen.

Nummernkreis-Typ Hook-Contract-Implementierung
Vertriebsaufträge com.cisag.app.sales.order.log.NumberRangeParameterRegistrySalesOrderImpl

Die bereits vorhandenen Implementierungen, der zu registrierenden Datenquellen, können ebenfalls als Beispielimplementierungen dienen.

Implementierungen Java-Klasse
Datenquelle Vertriebs-Auftragsart com.cisag.app.sales.order.log.NumberRangeParameterRegistrySalesOrderImpl#SalesOrderTypeCode
Kontext com.cisag.app.sales.order.log. SalesOrderNumberRangeContext

 

Czy ten artykuł był pomocny?