Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.
Kommentar: Optional -> Pflichtfeld

Ziel ist die Umsetzung einer Integrierbarkeit von Nuclets miteinander, unter Beibehaltung der Updatefähigkeit aller Nuclets. 

Es wird immer ein Nuclet in ein anderes integriert (dies schliesst eine Bidirektionalität nicht aus). Die Sicht der Integration ist grundsätzlich die, dass das zu integrierende Nuclet BOs in dem Nuclet, in das integriert werden soll, benötigt. Diese benötigten BOs werden mittels sogenannter Integrationspunkte im zu integrierenden Nuclet beschrieben und repräsentiert. 

Beispiel

Integration von Lager- und Handelsnuclet:

Richtung 1: z.B. Lagerbestand referenziert Artikel, Lagerregeln brauchen Artikel
Richtung 2: z.B. Artikel hat Subform Lagerbestand, Artikel referenziert (Standard)lager

 

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. 

Info

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?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. 

 

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
OptionalPflichtfeld?Wenn ausgewählt und von Integration nicht gesetzt, so werden alle

Ja: Attribut muss gesetzt werden und muss auch im Ziel BO ein Pflichtfeld sein.
Nein: Attribut muss nicht gesetzt werden, ist also optional. Falls es ausgewählt wird so kann es ein Pflichtfeld sein, muss aber nicht. Alle Aufrufe der Getter und Setter werden ignoriert bzw. liefern null.

Auswahl JaNein: 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 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!