Das Notes Forum

Lotus Notes / Domino Sonstiges => Java und .NET mit Notes/Domino => Thema gestartet von: Birgit R. am 07.09.12 - 16:33:38



Titel: Java: in DocumentCollection wird immer nur das erste Dokument gespeichert
Beitrag von: Birgit R. am 07.09.12 - 16:33:38
Hallo

ich habe in einem Java-Agenten eine DocumentCollection, in der ich alle Dokumente vor der eigentlichen Verarbeitung nochmalig mit "ComputewithForm" neu berechne und anschließend speichere.
Allerdings wird immer nur beim ersten Dokument in der Collection das Speichern wirklich durchgeführt.
Wenn ich das erste Dokument aus der Datenbank lösche und das zweite zum ersten Dokument wird in der Collection wird, dann wird dieses gespeichert.
Im Protokoll ist anhand der URL zu erkennen, dass er bei jedem Durchlauf durch die Schleife ein neues Dokument im Zugriff hat.
Replizierkonflikte werden nicht erzeugt und die Rechte auf die Dokumente sind alles die gleichen. Eine Notes-Exception gibt es nicht.

Hat irgendjemand noch eine Idee, woran das Verhalten liegen kann oder wie ich ein Speichern nach dem Compute erzwingen kann?

Vielen Dank
Birgit Rink

while (docKond != null)
{
    // Dokument neu berechnen
    blCompute = docKond.computeWithForm(false, false);
    if (blCompute == true )
    {
     System.out.println("Compute erfolgreich: " + docKond.getNotesURL());
     blSave = docKond.save(true);
     if (blSave == true )
     {
                System.out.println("Dokument gespeichert: " + docKond.getNotesURL());
      }
     else
     {
                System.out.println("nicht gespeichert Dokument : " + docKond.getNotesURL());
           }
   }
   else
   {
      System.out.println("Compute ging daneben : " + docKond.getNotesURL());
    }
                  
   docTemp = colExport.getNextDocument();
   docKond.recycle();
   docKond = docTemp;
}


Titel: Re: Java: in DocumentCollection wird immer nur das erste Dokument gespeichert
Beitrag von: flaite am 08.09.12 - 19:16:35
Seltsam. Kann aus meiner Sicht nur was in den Dokumenten sein. Vielleicht, dass durch das Speichern des ersten Dokuments irgendwas im nächsten Dokument geändert wird?
Was gibt false? Das computeWithForm oder das save?


Titel: Re: Java: in DocumentCollection wird immer nur das erste Dokument gespeichert
Beitrag von: Birgit R. am 10.09.12 - 08:34:58
Hallo

das ComputewithForm gibt immer "true" zurück, bei allen Dokumenten. Die Dokumente haben keinerlei Verbindungen zueinander.

Dankeschön


Titel: Re: Java: in DocumentCollection wird immer nur das erste Dokument gespeichert
Beitrag von: Ralf_M_Petter am 10.09.12 - 08:46:54
Hallo Birgit!

Dein Code kann gar nicht funktionieren, da du die boolean Variablen nicht deklariert hast. Stell doch mal den Code ein, wie du ihn wirklich laufen lässt. Wahrscheinlich ist da ein blöder Fehler drinnen, den du beim abspecken irrtümlich verschleiert hast. sonst kannst du ihn mir auch gerne als PN schicken.

Grüße

Ralf


Titel: Re: Java: in DocumentCollection wird immer nur das erste Dokument gespeichert
Beitrag von: Birgit R. am 10.09.12 - 13:41:28
Hallo

Ich hab das Problem jetzt gefunden, nachdem ich den Source-Code nochmalig extrahiert und eine Version erstellt habe, die nur den "computewithForm" ausführt und speichert.

Das Problem lag am ComputewithForm. Das wurde zwar ausgeführt, da es aber keine Änderung am Dokument bewirkte, hat der Agent das Dokument auch nicht gespeichert.

Wir haben auf dem Server 8.5.2 und es gibt wohl in dieser Version ein Bug mit der Funktion "computewithForm". Nachdem ich ein "System.out.println(docKond.getUniversalID());" vor dem Compute eingefügt habe, läuft die Verarbeitung jetzt wie gewünscht.

Vielen Herzlichen Dank fürs Mitdenken
Birgit