| Inhalt | ||
|---|---|---|
|
Ein Proxy Businessobjekt (Proxy-BO) wird verwendet, wenn Daten nicht direkt aus der Nuclos-Datenbank stammen, sondern über Java-Code aus externen Quellen bereitgestellt oder geschrieben werden sollen (z. B. externe Systeme, Dateien oder Webservices).
Dabei wird ein Interface erzeugt, das in einer Regel implementiert wird. Diese Implementierung übernimmt das Lesen, Schreiben oder Löschen der Daten.
Typische Einsatzfälle:
Integration von Drittsystemen
Zugriff auf Dateisystemdaten
Daten aus Webservices
Daten, die nicht in der Nuclos-Datenbank gespeichert sind
Ein Proxy-Businessobjekt besteht aus zwei Teilen:
Businessobjekt-Definition in Nuclos
Java-Implementierung des Proxy-Interfaces
Die Benutzeroberfläche zeigt Datensätze wie bei einem normalen Businessobjekt an.
Die Daten werden jedoch durch den Java-Code der Proxy-Implementierung bereitgestellt oder verändert.
| Codeblock | ||||||
|---|---|---|---|---|---|---|
| ||||||
@Override
public Object insert(final VirtualBO pVirtualBO) throws BusinessException {
AnyBO anyBo = new AnyBO();
anyBo.save();
return anyBo.getId();
} |
Öffne
Konfiguration → Businessobjekt
Erstelle ein neues Businessobjekt.
Aktiviere die Option Proxy Businessobjekt.
Dadurch wird automatisch ein Java-Interface für dieses BO generiert.
Lege die benötigten Attribute an, z. B.:
ID
Name
Datum
Referenz auf ein Elternobjekt
Proxy-BOs werden häufig als Unterformular eines anderen Businessobjekts verwendet.
Nuclos erzeugt ein Interface wie z. B.:
org.nuclet.businessentity.RechnungProxy
Dieses muss in einer Java-Klasse implementiert werden.
Beispiel:
publicclassRechnungProxyImplimplementsorg.nuclet.businessentity.RechnungProxy {
publicList<Rechnung> getAll() {
// Daten aus externem System laden
}
publicRechnunggetById(Longid) {
// Datensatz aus externem System laden
}
publicvoidinsert(Rechnungrechnung) throwsBusinessException {
// Datensatz im externen System speichern
}
publicvoidupdate(Rechnungrechnung) throwsBusinessException {
// Datensatz aktualisieren
}
publicvoiddelete(Longid) throwsBusinessException {
// Datensatz löschen
}
}
Diese Methoden definieren, wie Nuclos mit den externen Daten interagiert.
Die Implementierung muss voll qualifiziert mit Package angegeben werden, damit Nuclos sie erkennt.
Das Proxy-BO kann anschließend:
als Unterformular
oder als Datenquelle für externe Daten
verwendet werden.
Benutzer sehen Datensätze im Proxy-BO wie in normalen Businessobjekten.
Daten werden jedoch dynamisch über Java-Code geladen oder gespeichert.
Änderungen werden im externen System durchgeführt.
| Szenario | Lösung |
|---|---|
| Rechnungen liegen in Fremdsystem | Proxy-BO liest Daten über API |
| Dokumente im Dateisystem | Proxy-BO lädt Dateien |
| Daten aus Webservice | Proxy-BO ruft Service auf |
| Daten sollen nicht lokal gespeichert werden | Proxy-BO ersetzt DB-Speicherung |