Seitenhistorie
Integrationspunkte dienen der Integration von zwei Nuclets miteinander. Ein Integrationspunkt dient in Nuclet A der Repräsentation eines Businessobjektes in Nuclet B. Mithilfe der Definition von Integrationspunkten, kann damit zum einen ein Businessobjekt in Nuclet A ein Referenzfeld auf ein Businessobjekt in Nuclet B enthalten, zum anderen können Regeln in Nuclet A auf Businessobjekte in Nuclet B zugreifen. Dabei verhält sich der Integrationspunkt so, als wäre das repräsentierte Businessobjekt in Nuclet B ein Businessobjekt in Nuclet A, entsprechend kann in Regeln auch mit Integrationspunkten wie gewohnt mit der Nuclos API (http://api.nuclos.de) gearbeitet werden.
Warnung | ||
---|---|---|
| ||
Ab Nuclos 4.20 können Businessobjekten eines Nuclets keine Referenzfelder mehr auf Businessobjekte anderer Nuclets hinzugefügt werden. Für diesen Zweck ist nun erst ein Integrationspunkt zu definieren. Bereits vorhandene Referenzfelder auf "fremde" Businessobjekte funktionieren bis auf Weiteres weiter. Ebenso können Regeln nicht mehr direkt auf Businessobjekte anderer Nuclets zugreifen. Auch für diesen Zweck ist erst ein Integrationspunkt zu definieren. Auf diese Weise sollen die Schnittstellen zwischen Nuclets zukünftig klarer und sichtbarer werden. |
Beispiel
Integration von Nuclet Lagerwesen und Basisnuclet für Handelsunternehmen:
Richtung 1: Lagerbestand im Nuclet Lagerwesen referenziert Artikel, Regeln im Nuclet Lagerwesen greifen auf Artikel, Aufträge, Lieferscheine und Bestellungen zu.
Richtung 2: Maske für Artikel im Basisnuclet für Handelsunternehmen benötigt Felder für Standardlager und Standardlagerort.
Aspekte einer Integration
Jedes Nuclet kann (beliebig viele) BOs in (beliebig vielen) anderen Nuclets benötigen. Ein Nuclet kann nicht mehrfach in ein anderes Nuclet integriert werden.
Eine Integration muss immer vollständig durchgeführt werden bevor mit dem System wieder gearbeitet werden kann. D.h. insbesondere, dass das Mapping eines Integrationspunktes unmittelbar nach dem Nucletimport vorgenommen werden muss, anderenfalls kann der Wartungsmodus nicht verlassen werden.
Bei Bedarf können während der Integration fehlende Attribute im Nuclet, in das integriert werden soll, automatisch generiert werden.
Funktion eines Integrationspunktes
Ein Integrationspunkt ist ein Verweis auf ein BO eines anderen Nuclets. Jeder Integrationspunkt definiert sich durch die Attribute, die in einem anderen BO erwartet werden. Im einfachsten Fall durch das BO selbst, ohne Angabe von Attributen.
Mit Integrationspunkten kann man in Regeln im Wesentlichen dasselbe tun wie mit einem Businessobjekt. Die API sorgt für eine entsprechende Umleitung, womit Regeln nicht länger nach einem Nucletimport angepasst werden müssen. Hierfür generiert Nuclos für jeden Integrationspunkt eine Businessobjekt Klasse.
Regelverwendungen an Businessobjekten in anderen Nuclets
Ein Nuclet mit Integrationspunkten kann Regeln (Insert / InsertFinal / Update / UpdateFinal / Delete / DeleteFinal / Custom) mitbringen, die mit dem Ziel Businessobjekte ausgeführt werden sollen. Zum Ausdruck gebracht wird dies durch den Nuclethersteller, indem die Regel in Regelmanager an Integrationspunkte gehängt wird. Diese Regeln werden immer nach den Regeln des Ziel BOs ausgeführt. Für unser Beispiel (siehe unten) bedeutet dies beim Speichern von Änderungen:
- org.nuclet.novabit.handel.Artikel UpdateRules
- org.nuclet.lager.Artikel UpdateRules
- update table
- org.nuclet.novabit.handel.Artikel UpdateFinalRules
- org.nuclet.lager.Artikel UpdateFinalRules
Regeln bei einem Statuswechsel sind manuell nachzutragen. Entsprechende Hinweise können im hierfür vorgesehen Memo-Feld oder einer externen Readme URL (Verweis auf das eigene Wiki o.ä.) gegeben werden.
Eine weitere Ausbaustufe mit einer Art von Integrations-Statusmodell ist in Planung.
Referenzen auf Integrationspunkte
Im Businessobjekt Editor können Referenzen auf nicht optionale Integrationspunkte konfiguriert werden. Es stehen nur Integrationspunkte des eigenen Nuclets zur Auswahl, aus Sicht des zu editierenden BOs. In unserem Beispiel ist es das BO "Lagerbestand" des Lagernuclets, welches auf den Integrationspunkt "Artikel" verweisen soll.
Mit dem Setzen des Integrationspunktes vom Integrator wird automatisch auch die Referenz auf das Ziel Businessobjekt hergestellt. Die Darstellung wird standardmäßig von der Titelbeschriftung des Ziel BOs übernommen. In unserem Beispiel war das "${artikelnummer} - ${artikelbezeichnung}"
Integrationspunkt Maske
(Menü Konfiguration)
Im folgenden Screenshot ist die Maske aus Sicht eine Integrators: Nur die Ziel-Attribute können gesetzt werden.
Info |
---|
Voll konfigurierbar ist ein Integrationspunkt nur, wenn das Nuclet des Integrationspunktes sich im Quell-Modus befindet. |
Attribut | Bedeutung | Einfluss auf die BO-Klasse | |
---|---|---|---|
Nuclet | Diesem Nuclet wird der Integrationspunkt zugeordnet. | Java Package | |
Name | Name des Integrationspunktes. Dieser muss im Nuclet eindeutig sein, und darf nicht als normales BO im Einsatz sein. | Name der Klasse | |
Mit Statusmodell? | Muss das Ziel BO mit Statusmodell konfiguriert sein? Auswahl Ja: Schränkt die Auswahl der Ziel Businessobjekte ein. | Auswahl Ja: implements Stateful; Getter für StatusId | |
Nur lesen? (Derzeit nicht verwendbar, siehe NUCLOS-6293) | Wird auf das Ziel BO nur lesend zugegriffen? Auswahl Ja: Erweitert die Auswahl der Ziel BOs auf nicht schreibbare, wie z.B. Dynamische oder Virtuelle. | Auswahl Ja: Keine Setter für Attribute Auswahl Nein: implements Modifiable | |
Optional? | Wenn der Integrationspunkt als Optional gekennzeichnet wird, muss er von einem Integrator nicht bearbeitet werden. Die Verwendung in Regeln wird keinen Fehler werfen. Queries liefern immer leere Ergebnisse und Aufrufe von BusinessObjectProvider.update etc. laufen einfach ins Leere. Aber Achtung: Insert liefert NULL, anstatt einer ID. | ||
Probleme? | Es sind Probleme auftreten. Z.B. weil ein Attribut noch nicht bearbeitet wurde. Weitere Details finden Sie im Unterformular. Mit jedem Speichern des Punktes werden die Probleme analysiert und die Ausgabe aktualisiert. | ||
Ziel Nuclet | Dient der Einschränkung der Auswahl des Ziel BOs. | ||
Ziel Businessobjekt | Alle Verwendungen des Integrationspunktes werden auf dieses BO umgeleitet. Wird von einem Integrator nach einem Nucletimport gesetzt. | ||
View Name | Wird benötigt um den Integrationspunkt in einer Datenquelle verwenden zu können. In der Datenbank wird die View <prefix>_ip_<view name> angelegt. |
Unterformular Attribute
Spalte | Bedeutung | Einfluss auf die BO-Klasse | |
---|---|---|---|
Name | Muss eindeutig für diesen Integrationspunkt sein. | Wie bei einem Standard BO-Attribut | |
Datentyp | Das Ziel Attribut muss von diesem Typ sein. Bei einer Referenz ist es leer zu lassen. Schränkt die Auswahl des Ziel Attributes ein. | Wie bei einem Standard BO-Attribut | |
Feldbreite | Schränkt die Auswahl des Ziel Attributes ein. | ||
Nachkommastellen | Schränkt die Auswahl des Ziel Attributes ein. | ||
Referenz auf Integrationspunkte | Das Ziel Attribut muss auf den hier ausgewählten Integrationspunkt referenzieren. Das setzt eine Integration dieses Punktes voraus. Es stehen nur Integrationspunkte des eigenen Nuclets zur Auswahl. Schränkt die Auswahl des Ziel Attributes ein. | ||
Referenz auf Businessobjekt | Das Ziel Attribut muss auf das hier ausgewählte Businessobjekt referenzieren. Es stehen nur Businessobjekte des eigenen Nuclets zur Auswahl. Schränkt die Auswahl des Ziel Attributes ein. | ||
Nur lesen? | Wird auf das Attribut nur lesend zugegriffen? Auswahl Ja: Erweitert die Auswahl der Ziel Attributs um nicht schreibbare, wie z.B. berechnete Attribute. | Auswahl Ja: Kein Setter | |
Optional? | Wenn ausgewählt und von Integration nicht gesetzt, so werden alle Aufrufe der Getter und Setter ignoriert bzw. liefern null. | Auswahl Ja: Es wird keine Query-Konstante generiert. | |
Ziel Businessobjekt Attribut | Alle Verwendungen des Attributes werden auf das ausgewählte umgeleitet. Wird von einem Integrator nach einem Nucletimport gesetzt. |
Nuclet Import/Export Verhalten
Ein Integrationspunkt ist, ebenso wie seine Attribute und Regelverwendungen, automatisch Teil des Nuclets. Der standard Zuweisungsdialog von Bestandteilen zu einem Nuclet listet keine Integrationspunkte auf.
Info | ||||
---|---|---|---|---|
| ||||
Die Integration selbst, also die Auswahl des Ziel BOs mit Attributen, ist immer auch Teil des Exports. Bei einem Erstimport wird die Integration wenn möglich wiederhergestellt, was ein Vorhandensein des gleichen Ziel Nuclets erfordert. Damit kann die Integration auf einem Entwicklungssystem vorbereitet werden und mittels eines simplen Nucletimports auf einer produktiven Umgebung ausgerollt werden. Eine nachträgliche Änderung jedoch nicht! |
Info | ||||
---|---|---|---|---|
| ||||
Die Integration selbst, also die Auswahl des Ziel BOs mit Attributen, ist immer auch Teil des Exports. Bei einem Erstimport wird die Integration wenn möglich wiederhergestellt, was ein Vorhandensein des gleichen Ziel Nuclets erfordert. Damit kann die Integration auf einem Entwicklungssystem vorbereitet werden und mittels eines simplen Nucletimports auf einer produktiven Umgebung ausgerollt werden. Um die Updatefähigkeit zu gewährleisten werden Änderungen an der Integration bei einem Import nur übernommen, wenn das Ziel BO auch Teil des zu importierenden Nuclets ist. Dies setzt voraus, dass das Nuclet mit den Integrationspunkten als Abhängigkeit im "Projekt"-Nuclet eingetragen ist. Ansonsten gilt: Eine vorhandene Integration wird nicht angefasst! |