Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: JD am 02.12.02 - 08:47:34

Titel: Dokumente mit einem Titel einzigartig?
Beitrag von: JD am 02.12.02 - 08:47:34
Hallo Ihr, wollte fragen wie ich es realisieren kann per Javaagent Dateien zu Überschreiben?

Ich habe einen Agent geschrieben, der mit ein Dokument zu einer Maske erstellt, wenn ich den zweimal oder mehrmal durchlaufen lasse habe ich n mal dieses Dokument, ich möchte es aber nur einmal haben -->das alte soll also bei jedem durchlauf überschrieben werden. Kann ich es irgendwie überschreiben oder muss ich es zuerst löschen und dann neu schreiben???
Titel: Re:Dokumente mit einem Titel einzigartig?
Beitrag von: Till_21 am 02.12.02 - 08:58:35
ruf nicht neu den konstruktor auf, sondern hol dir dieses existente dokument zb. über eine view mit getdocumentbykey.
falls es noch nicht gibt natürlich erstellen...
Titel: Re:Dokumente mit einem Titel einzigartig?
Beitrag von: klaussal am 02.12.02 - 09:00:55
hallo jd,
jedesmal, wenn der agnt läuft erstellt er ein neues dokument.
jetzt gibt es zwei möglichkeiten:
1. altes dok suchen und löschen, dann neues dok erstellen
2. altes dok suchen und update + wieder sichern
mfg
klaus  ;)
Titel: Re:Dokumente mit einem Titel einzigartig?
Beitrag von: wflamme am 02.12.02 - 09:21:23
Hallo Ihr, wollte fragen wie ich es realisieren kann per Javaagent Dateien zu Überschreiben?

Ich habe einen Agent geschrieben, der mit ein Dokument zu einer Maske erstellt, wenn ich den zweimal oder mehrmal durchlaufen lasse habe ich n mal dieses Dokument, ich möchte es aber nur einmal haben -->das alte soll also bei jedem durchlauf überschrieben werden. Kann ich es irgendwie überschreiben oder muss ich es zuerst löschen und dann neu schreiben???

Neues Dokument=neue UNID. Vie Replikationsaufwand, DB bläht sich unnötig auf und alle Referenzen/Links auf alte Versionen des Dokuments gehen flöten. Besser nur die Änderungen in vorh. Dokumente schreiben.
Titel: Re:Dokumente mit einem Titel einzigartig?
Beitrag von: klaussal am 02.12.02 - 09:25:14
@ wflamme,
es gibt (wie immer im leben) 2 möglichkeiten (s.o.)

@jd
du musst selber entscheiden, welche möglichkeit die bessere ist.
 ;D
Titel: Re:Dokumente mit einem Titel einzigartig?
Beitrag von: JD am 02.12.02 - 09:33:38
Okay danke werde mal sehen was Performancemäßig und Realisierungstechnisch am besten für meinen Fall ist.
Titel: Re:Dokumente mit einem Titel einzigartig?
Beitrag von: JD am 02.12.02 - 14:58:03
Hmmmm wie müsste das denn aussehen wenn das Dokument nicht gelöscht werden soll, sondern erneuert, damit die DB sich nicht unnötig aufbläht???Krieg da immer Probleme mit den Dokumenten.

DIe Lösung sollte dann so aussehen, dass wenn es vorhanden ist nur upgedated wird und wenn nicht vorhanden neu erstellt wird.

Hier mein code der das Dokument löscht (auszug)

Code
Database database = agentContext.getCurrentDatabase();
DocumentCollection docCollection = agentContext.getUnprocessedDocuments();
Document doc = docCollection.getFirstDocument();
 
View view = database.getView(nameOfView);
Document searchdoc = view.getDocumentByKey(shownName);
               
             
 if (searchdoc != null) //Wenn Dokument schon vorhanden dann..
    {
       searchdoc.remove(true);    
     }
Document joineddoc = database.createDocument(); //Hier wird das neue Dokument erstellt
joineddoc.appendItemValue("JoinName", shownName);
joineddoc.appendItemValue("Form", form); 
RichTextItem anzeige = joineddoc.createRichTextItem("anzeige");
RichTextItem rti = joineddoc.createRichTextItem("docfield");        
    
              while (doc != null) {
                  doc.renderToRTItem(rti);
                    anzeige.appendRTItem(rti);
                    doc = docCollection.getNextDocument(doc);
                    
               }  
                                      
                joineddoc.save(true, false);     
                   
      } catch(Exception e) {
         e.printStackTrace();
      }
   }
}

So funktioniert es wunderbar, erstelle halt nur bei jedem Durchgang ein komplett neues Dokument, was ich ja eigentlich nicht will.
Titel: Re:Dokumente mit einem Titel einzigartig?
Beitrag von: JD am 03.12.02 - 10:28:23
Das Problem welches ich bei der anderen Lösung hatte, war das ich dem Dokument dass durch getDocByKey erstellt wurde nicht mit dem neuen vertäglich war ich konnte keine Zuweisung vornehmen. Und das erstellen (anhängen) von Werten an die Felder bracht auch nur ärger! Also wenn jemand mal was ähnliches gecodet hat, immer rüber damit  ;D
Titel: Re:Dokumente mit einem Titel einzigartig?
Beitrag von: JD am 04.12.02 - 11:07:43
Mhhh keiner???? Ich wäre auch schon über einen Ansatz in Lotusscript erfreut, dann könnte ich das quasi nach Java portieren.

Also, altes Dokument soll nicht gelöscht werden, sondern nur die Feldwerte sollen völlig erneuert werden. Wenn das Dokument allerdings noch nicht vorhanden ist, dann soll es es erstellt werden.

Daaanke