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 |