Definition

Menüaufruf: (Konfiguration) - (Integrationspunkt)

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.

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.

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:

  1. org.nuclet.novabit.handel.Artikel UpdateRules
  2. org.nuclet.lager.Artikel UpdateRules
  3. update table
  4. org.nuclet.novabit.handel.Artikel UpdateFinalRules
  5. 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. 


Voll konfigurierbar ist ein Integrationspunkt nur, wenn das Nuclet des Integrationspunktes sich im Quell-Modus befindet.




AttributBedeutungEinfluss auf die BO-Klasse
NucletDiesem 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 NucletDient der Einschränkung der Auswahl des Ziel BOs.
Ziel BusinessobjektAlle Verwendungen des Integrationspunktes werden auf dieses BO umgeleitet. Wird von einem Integrator nach einem Nucletimport gesetzt.
View NameWird 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

SpalteBedeutungEinfluss auf die BO-Klasse
NameMuss eindeutig für diesen Integrationspunkt sein.Wie bei einem Standard BO-Attribut
DatentypDas 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
FeldbreiteSchränkt die Auswahl des Ziel Attributes ein.
NachkommastellenSchränkt die Auswahl des Ziel Attributes ein.
Referenz auf IntegrationspunkteDas 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 BusinessobjektDas 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 AttributAlle 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.


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!


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!

 

Beisipiel

Es ist sinnvoll und praktisch nur Nuclets zu erstellen und mit Integrationspunkten zu versehen die in sich logisch abgeschlossen sind (Beispiel : Lager, SEPA, CAMT ), da der Integrationspunkt der Wiederverwendbarkeit dient. Eine fachliche Trennung in Nuclets für eine Anwendung ist nicht praktikabel, da  ein zusätzlicher Aufwand zum Erstellen und Pflegen des Integrationspunktes entsteht.  Beim Erstellen eines separaten Nuclets ist zu überlegen, ob sich die Logik wiederverwerten lässt!

Erster Fall : Eine Referenz in  Businessobject aus Nuclet A  zu Businessobject aus Nuclet B erstellen.


HerausforderungLösung-BeschreibungImage

Im Businessobject-Wizzard soll  in einem Quell-BO eine Referenz auf ein Ziel-BO eines anderen Nuclets erstellt werden.

In der Auswahlliste der zu referenzierenden Businessobjecte erscheint mein BO nicht



Es ist ein Integrationspunkt erforderlich : Menü: Konfiguration/Integrationspunkt

Der Name des Integrationspunktes ist frei wählbar

Unter Nuclet ist das Quell-Nuclet auszuwählen

Unter Ziel-Nuclet das ...

Unter Ziel-Businessobjekt ....


siehe Beispiel rechts

Erst dann kann eine Referenz im Quell.Businessobjekt erzeugt werden