Login



agorum core
Willkommen, Gast
Relationen übertragen (1 Leser) (1) Gast
Zum Ende gehen Neues Thema Beliebt: 0
THEMA: Relationen übertragen
#6945
merlin (Benutzer)
Fresh Boarder
Beiträge: 13
graphgraph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Relationen übertragen vor 9 Jahren, 6 Monaten Karma: 0  
Hallo,
ich möchte Relationen eines Ordners auf einen anderen (bestehenden) Ordner übertragen. Das auslesen des alten Ordners ist kein Problem, aber wie hänge ich die Relationen an den neuen Ordner bzw. erstelle eine ordentliche Definition ?

Code:


FolderObjectClientBean targetFolderObject = (FolderObjectClientBean) sessionController.findGlobalObjectByPath("/agorum/roi/Files/target");
FolderObjectClientBean sourceFolderObject = (FolderObjectClientBean) sessionController.findGlobalObjectByPath("/agorum/roi/Files/source");
if (sourceFolderObject.getRightwardRelationObjects() != null) {
GlobalObjectClientBean[] rRelationsObj = sourceFolderObject.getRightwardRelationObjects();
for (int i=0;i<rRelationsObj.length;i++) {
GlobalObjectClientBean obj = rRelationsObj[i];
RelationObjectClientBeanDefinition def = new RelationObjectClientBeanDefinition(sessionController);
// wie setze ich die Definition ?
targetFolderObject.addRelationship(targetFolderObject, def );
}
}




Btw.: Die Vorschaufunktion funktioniert im Firefox nicht.
 
Moderator informieren   Gespeichert Gespeichert  
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
#6947
andreas.wild (Admin)
Admin
Beiträge: 281
graphgraph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Aw: Relationen übertragen vor 9 Jahren, 6 Monaten Karma: 3  
Hallo,

zunächst wollen Sie die Auswahl der Relationen möglicherweise durch einen Parameter für getRightwardRelationObjects() einschränken (z.B. AttachmentRelationObjectClientBean.CLASS_NAME), ansonsten werden wirklich _alle_ zugehörigen Relationen kopiert (kompletter Inhalt des Ordners, alle Attachments, eventuelle Synchronisierungsinformationen).

Ansonsten sollten Sie pro hinzugefügter Relation eine eigene Definition erstellen, da diese intern weiter verwendet wird. Sie erstellen diese Definition bereits korrekt, in Ihrem Fall dürfte da nicht mehr notwendig sein, da Sie keine erweiterten Optionen für die Erstellung setzen.
 
Moderator informieren   Gespeichert Gespeichert  
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
#6958
merlin (Benutzer)
Fresh Boarder
Beiträge: 13
graphgraph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Aw: Relationen übertragen vor 9 Jahren, 6 Monaten Karma: 0  
Ich versuche in diesem Fall eine Verknüpfung zu kopieren. Die Relation vom source Ordner bekomme ich auch, allerdings nimmt der target Ordner diese Relation nicht an.
Gibt es da Beschränkungen oder muss ich noch etwas anders aufbauen ?
Woher weiss meine Definition welches Objekt zu benutzen ist ? Ich habe den sessionController mit dem ich die Definition erzeuge und dann die targetFolder die ich beim Hinzufügen der Relation übergeben. Bei längerem Nachdenken glaube ich, dass meine Zeile
Code:


targetFolderObject.addRelationship(targetFolderObject, def );


falsch ist. Kann das sein ?
 
Moderator informieren   Gespeichert Gespeichert  
 
Letzte Änderung: 07.12.2011 07:18 von merlin.
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
#6959
merlin (Benutzer)
Fresh Boarder
Beiträge: 13
graphgraph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Aw: Relationen übertragen vor 9 Jahren, 6 Monaten Karma: 0  
So funktioniert es:
Code:


RelationObjectClientBean[] relations = sourceFolderObject.getRightwardRelations();
for (int i=0;i<relations.length;i++) {
RelationObjectClientBeanDefinition def = (RelationObjectClientBeanDefinition) relations[i].getDefinition(sessionController);
GlobalObjectClientBean obj = relations[i].getRightObject();
targetFolderObject.addRelationship(obj, def );

 
Moderator informieren   Gespeichert Gespeichert  
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
#6960
merlin (Benutzer)
Fresh Boarder
Beiträge: 13
graphgraph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Aw: Relationen übertragen vor 9 Jahren, 6 Monaten Karma: 0  
und doch hat sich noch ein Fehler eingeschlichen. Wenn ich den obigen Code für die Leftward nutze, wird auch der parent Ordner mitgenommen und das Verzeichnis gelöscht. Wie kann ich das verhindern ?
 
Moderator informieren   Gespeichert Gespeichert  
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
#6962
andreas.wild (Admin)
Admin
Beiträge: 281
graphgraph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Aw: Relationen übertragen vor 9 Jahren, 6 Monaten Karma: 3  
Um die linksseitigen Relationen zu kopieren, müssen Sie stattdessen über die zugehörigen Objekte iterieren und dort den Zielordner mit addRelationship() verknüpfen (addRelationship() verknüpft immer nach rechts).

Wollen Sie Verknüpfungen (Attachments) oder Verlinkungen (Elemente im Ordner) kopieren? Im ersten Fall wäre für getXRelations der Parameter AttachmentsRelationObjectClientBean.CLASS_NAME zu empfehlen, im zweiten Fall FolderPathRelationObjectClientBean.CLASS_NAME.
 
Moderator informieren   Gespeichert Gespeichert  
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
#6966
merlin (Benutzer)
Fresh Boarder
Beiträge: 13
graphgraph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Aw: Relationen übertragen vor 9 Jahren, 6 Monaten Karma: 0  
Ich möchte die alle Relationen eines Ordners kopieren. Das habe ich inzwischen auch hinbekommen, indem ich das ParentObjekt beim kopieren auslasse. Der Ordner wird gelöscht wenn ich die Leftward Relation lösche.
Naja, das funktioniert jetzt alles soweit. Allerdings habe ich bei allen Ordnern eine RightwardRelation DOCUMENTTEXTOBJECT_xxxxxxxxx wobei x=0-9.
Woher kommt diese Relation ? Es geht bei der Übertragung um Archivierung. Es sollen also alle Attribute und Relationen mit ins Archiv genommen werden. Sollte das DOCUMENTTEXTOBJECT_ auch übertragen werden oder nicht ?
 
Moderator informieren   Gespeichert Gespeichert  
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
#6968
andreas.wild (Admin)
Admin
Beiträge: 281
graphgraph
Benutzer offline Hier klicken, um das Profil dieses Benutzers zu sehen
Aw: Relationen übertragen vor 9 Jahren, 6 Monaten Karma: 3  
DocumentText-Objekte werden während der Textindizierung automatisch generiert und ermöglichen die Volltextsuche. Sie müssen für eine Archivierung nicht mit kopiert werden.
 
Moderator informieren   Gespeichert Gespeichert  
  Kein öffentlicher Schreibzugriff erlaubt, bitte erst registrieren!
Zum Anfang gehen Neues Thema
Powered by FireBoarddie neusten Beiträge direkt auf Ihrem Desktop erhalten