Definition
Eine View mit Dokumenten erstellen.
Wenn man eine View erstellen möchte, in der Dokumente angezeigt werden, reicht es nicht aus, ein virtuelles oder generisches Businessobjekt zu erstellen.
Der Grund dafür ist, dass die Dateien nicht in der Datenbank abgelegt sind, sondern im Installationsverzeichnis des Nuclos-Servers (spezifisch [nuclos-home]/data/documents).
Sowohl virtuelle, als auch generische Businessobjekte können lediglich Daten aus der Datenbank anzeigen - hier sind aber nur die Namen und IDs der Dokumente hinterlegt.
Daher verwenden wir in diesem Fall ein Proxy-BO - üblicherweise wird dieses verwendet, wenn die Daten von außerhalb kommen.
Letzten Endes ermöglicht uns dieses Vorgehen, die View mit Java-Code zu generieren, weshalb wir die Dokumente aus dem Dateisystem laden können.
Bedenken Sie auch, dass Proxy-BOs nur als Subform an ein anderes Objekt ([eltern-objekt]) gehängt werden können - wenn es eigenständig sein soll, müssen Sie ein Schreib-Proxy-BO erstellen (Beispiele für Regel-Implementationen von ProxyBOs).
Konfiguration
Erstellen Sie ein Proxy-BO mit Hilfe des BO-Wizards. Legen Sie hier die gewünschten Felder an, mindestens werden Sie ein Feld für den Dokumentenanhang, sowie eine Referenz auf das [eltern-objekt] benötigen. An dieses [eltern-objekt] wird unser Proxy-BO später als Subform angehängt. Im Zuge dessen wird auch automatisch ein Interface generiert, welches wir später implementieren müssen. | |
Legen Sie nun eine Datenquelle an, in der Sie die eigentliche View implementieren. Sie können sich am Beispiel orientieren, entscheiden ist aber vor allem, dass die folgenden vier Felder vorhanden sind:
Des Weiteren ist es wichtig, dass die Möglichkeit besteht, die Ergebnisdaten über einen Parameter auf das gegebene [eltern-objekt] einzuschränken. | |
Als nächstes muss nun eine Regel erstellt werden, in der das automatisch generierte Interface implementiert wird. Legen Sie über Regelwerke → Regeln (serverseitig) eine neue Regel an - es empfiehlt sich, diese nach dem Interface zu benennen. Hier müssen nun einige Methoden implementiert werden. Für unseren Fall reicht es aber aus, lediglich die Methode getByElternObjekt(java.lang.Long pElternobjektId) so zu bauen, dass tatsächlich Daten zurückgegeben werden, da nur diese aufgerufen wird, wenn das Proxy-Objekt über das Layout des [eltern-objekt] aufgerufen wird. Alle anderen Methoden können null zurückgeben (sofern ein Rückgabewert erforderlich ist). | |
Zu guter Letzt muss das Proxy-BO noch ins Layout des [eltern-objekt] eingefügt werden. Das Vorgehen unterscheidet sich nicht von dem für eine "normale" Subform. |