2016-04-19 5 views
0

Ich habe die OpenNTF ODA für Java in Xpages angenommen. Es ist wirklich großartig, und ich denke, ich habe gerade die Oberfläche berührt.Xpages: Java-Methode mit OpenNTF ODA nicht speichern Dokument

Ich rufe eine Java-Methode und möchte ein Dokument speichern. Die Methode wird aufgerufen, und ich sehe keine Fehler, aber das Dokument wird nie aktualisiert.

Das Dokument wird "gespeichert", aber es verschwindet nur aus den Ansichten.

import lotus.domino.NotesException; 

import org.openntf.domino.*; 
import org.openntf.domino.utils.Factory; 
import org.openntf.domino.Database; 
import org.openntf.domino.Session; 
import java.io.Serializable; 

public class Build implements Serializable { 
    private static final long serialVersionUID = 1L; 

    public void process1(String docID) { 

     try { 

     System.out.println("Got here."); 
     Session session = Factory.getSession(); 
     Database thisDB = session.getCurrentDatabase(); 
     Database PCDataDB = session.getDatabase(thisDB.getServer(), "scoApps\\PC\\PCData.nsf", false); 
     Document thisDoc = PCDataDB.getDocumentByUNID(docID); 
     Item itm = thisDoc.replaceItemValue("status",2, true); 
     thisDoc.save(true,false); 
     System.out.println("Got here."); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 
+0

Gibt es alle SYSOUT-Anweisungen aus? Mir ist nichts bewusst, was dort ein Problem verursachen sollte. Ich habe den dritten Parameter für replaceItemValue() nicht wirklich verwendet, aber die Tatsache, dass er verschwindet, deutet darauf hin, dass kein Fehler ausgegeben wird. Wenn ich mir den Code anschaue, kann ich keinen Fehler im Code sehen und habe den aktuellen ODA in der Demo-Datenbank ausprobiert. Es wird korrekt als Zusammenfassungsfeld festgelegt und der Wert wird in einer Spalte in der Ansicht angezeigt. Es lohnt sich möglicherweise, org.opentnt.0.0.log zu überprüfen, um zu überprüfen, ob ODA selbst Fehler verursacht. –

+0

Ich habe noch nie den dritten Parameter verwendet, obwohl ich bezweifle, dass das das Problem ist. Normalerweise erstelle ich auch kein "item itm" -Objekt, um nur einen Wert zu schreiben. Wenn du nichts mit "itm" machst, brauchst du es nicht. Etwas anderes passiert. Möglicherweise was Rob Mason vorschlägt. Ich würde auch vorschlagen, den xpages Protokollleser auch zu installieren. –

+0

Es werden die Systemanweisungen ausgedruckt. Ich habe nur die dritte Stufe eingegeben, um zu sehen, ob es einen Unterschied macht. Die seltsame Sache ist, dass wenn ich mit dem Debugger durchgehe, ich das Dokument sehen kann, aber ich sehe nicht die Felder, die ich sehen sollte. –

Antwort

2

Ich vermute, dass das Dokument tatsächlich gespeichert wird, aber es ist ein Wert auf dem Dokument festgelegt zu werden bedeutet, dass aus der Sicht ausgeschlossen Sie suchen.

Sie können eine Ansicht "Alle Dokumente" erstellen. Legen Sie die Formel auf Select @All fest. Fügen Sie eine Spalte für Formular und eine für Letztes bearbeitetes Datum hinzu, legen Sie geeignete Sortieroptionen fest, und Sie sollten in der Lage sein, das Dokument zu finden und zu sehen, warum es aus der Ansicht ausgeschlossen wird.

0

Dies war ein Versehen meinerseits. Der Code änderte das Feld "status" von 1 auf 2, aber als ich das Feld anfing, war es Text, keine Nummer. Also fiel mein Dokument aus allen Ansichten. Als ich Robs Rat annahm und alle Dokumente betrachtete, war es einfach zu sehen, was vor sich ging.

+0

Schön ein Bryan. Ich fügte diese Antwort nur hinzu, weil ich in genau diesem Boot gewesen war und am Ende Haare herauszog, um zu versuchen, auf den Grund davon zu kommen. –

Verwandte Themen