@Pitiyankee: das Problem, die Dokumente einzeln zu exportierten ist aber, dass ich dann zum einen mal locker über 100 xml-Dateien habe, anstatt eines einfachen Streams. Das weitere handling würde dann etwas ausufern.
Also nichtsdestotrotz hab ich das Wunder hinbekommen, die DocumentCollection in der gewünschten Reihenfolge zu erzeugen.
Die Dokumente stehen also an den gewünschten Stellen.
Jetzt kommt aber das Problem, dass der dxlExporter meine Reihenfolge ignoriert.
Er exportiert die Dokumente nämlich immer so, wie sie in der Kategorie "All Documents" steht (ich benutze die Datenbank "personal journal", die in jeder Notes-Version dabei sein müsste, als Testapplikation).
Die Sortierungen nach "By Category" und "By Diary Date" kann ich zwar in meiner Collection erzeugen, das juckt den Exporter aber herzlich wenig.
Zurzeit sieht der Agent wie folgt aus:
import lotus.domino.*;
import java.io.FileOutputStream;
import java.util.Random;
public class dxlExporter extends AgentBase
{
private String Path = "Path-to-file";
public void NotesMain()
{
try
{
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
Database db = agentContext.getCurrentDatabase();
DocumentCollection selectedDocs = agentContext.getUnprocessedDocuments();
DocumentCollection coll = createDocumentCollection(db);
View view = selectedDocs.getFirstDocument().getParentView();
ViewEntryCollection viewNav = view.getAllEntries();
System.out.println(db.getViews());
ViewEntry entry = viewNav.getFirstEntry();
while(entry != null)
{
Document doc = entry.getDocument();
if(doc != null)
{
System.out.println(doc.getItemValue("Subject"));
if(selectedDocs.getDocument(doc) != null)
coll.addDocument(doc, false);
}
entry = viewNav.getNextEntry();
}
System.out.println("blubberblabla\n\n");
Document doc3 = coll.getFirstDocument();
while(doc3 != null)
{
System.out.println(doc3.getItemValue("Subject"));
doc3 = coll.getNextDocument();
}
exportDocs(coll, session, db);
} catch(Exception e) { e.printStackTrace(); }
}
public DocumentCollection createDocumentCollection(Database db) throws NotesException
{
double b = new Random().nextDouble();
return db.FTSearch(null);
}
void exportDocs(DocumentCollection coll, Session session, Database db) throws Exception
{
NoteCollection coll2 = db.createNoteCollection(true);
System.out.println(coll2.getCount());
Document doc = coll.getFirstDocument();
while(doc != null)
{
coll2.add(doc);
doc = coll.getNextDocument();
}
System.out.println(coll2.getCount());
DxlExporter exp = session.createDxlExporter();
exp.setOutputDOCTYPE(false);
exp.setConvertNotesBitmapsToGIF(true);
String dxlResult = exp.exportDxl(coll2);
FileOutputStream out = new FileOutputStream(Path);
out.write(dxlResult.getBytes("utf-8"));
out.close();
}
}