Habe etwas in der Dokumentation gefunden.
So soll es angeblich gehen:
DxlImporter importer = session.createDxlImporter();
importer.setReplaceDbProperties(true);
importer.setReplicaRequiredForReplaceOrUpdate(false);
importer.setAclImportOption(
DxlImporter.DXLIMPORTOPTION_REPLACE_ELSE_IGNORE);
importer.setDesignImportOption(
DxlImporter.DXLIMPORTOPTION_REPLACE_ELSE_CREATE);
DxlExporter exporter = session.createDxlExporter();
try {
importer.importDxl(exporter.exportDxl(template), database);
} catch (Exception e) {
System.out.println(importer.getLog());
System.out.println(importer.getLogComment());
throw e;
}
Dieses passiert dann:
<?xml version='1.0'?>
<DXLImporterLog>
<fatalerror source='inpu' line='59877' column='90'>Expected end of tag 'form</fatalerror>
<error>Unknown DXL class library erro</error>
<error>DXL importer operation failed</error>
</DXLImporterLog>
NotesException: DXL importer operation failed
at lotus.domino.local.DxlImporter.NimportDxlString(Native Method)
at lotus.domino.local.DxlImporter.importDxl(Unknown Source)
Zeile 59877 ist genau das letzte Zeichen. Davor steht </database> und das scheint richtig zu sein.
Jemand eine Idee ?
Gruss Thorsten
Hallo Axel.
Lückenhaft ?
Es geht darum die Gestaltung einer Datenbank zu übernehmen!
Und das ganze MUSS von Java ausgehen.
Version ist Domino 6.5 und höher.
DxlImporter importer = session.createDxlImporter();
DxlExporter exporter = session.createDxlExporter();
importer.importDxl(exporter.exportDxl(template), database);
und Augrund dieses Beispiels frage ich mich WARUM der form - tag fehlt ???
Das er fehlt sehe ich selbst :)
PS: Der erste Abschnitt ist ein Beispiel aus der Designer Hilfe 6.5
Hallo Axel,
Leider ist das Problem nicht einfach mit der Designübernahme eines Admins ohne weiteres zu lösen.
Wir haben eine komplexe Applikation, die, ohne Betreuung durch Entwickler, bei Kunden installiert ist.
Leider gibt es immer wieder Kunden, die keinen oder nur schlecht ausgebildete Notes Administratoren haben.
Ich versuche nun eine Installations / Update Routine zu schreiben, die den Admin in einem Dialog betreut und die notwendigen Schritte unternimmt.
Den Command "Load Design" kann ich möglicherweise nicht nutzen, da ich nicht weiss, ob ein Admin vielleicht an den Datenbanken gestellt hat und evtl der DesignTemplateName nicht mehr stimmt. Da im Domino Java API die Property DesignTemplateName und TemplateName nur read only sind stellt sich dieses Problem.
Das DXL Beispiel (ich sagte es schon oben) steht in der Designer Hilfe als Möglichkeit Gestaltungen von Datenbanken zu übernehmen.
Das funktioniert auch soweit ganz gut für alle Designelemente , NUR für die Forms offensichtlich nicht.
NoteCollection collection = template.createNoteCollection(false);
collection.selectAllDesignElements (true);
collection.setSelectForms(false);
collection.buildCollection();
DxlImporter importer = session.createDxlImporter();
importer.setReplaceDbProperties(true);
importer.setReplicaRequiredForReplaceOrUpdate(false);
importer.setAclImportOption(
DxlImporter.DXLIMPORTOPTION_REPLACE_ELSE_IGNORE);
importer.setDesignImportOption(
DxlImporter.DXLIMPORTOPTION_REPLACE_ELSE_CREATE);
DxlExporter exporter = session.createDxlExporter();
try {
importer.importDxl(exporter.exportDxl(collection), database);
} catch (Exception e){
System.out.println(importer.getLogComment());
System.out.println(importer.getLog());
e.printStackTrace();
}
Dies hier funktioniert hervorragend nur, sobald ich den setSelectForms rausnehme kommt der Fehler.
Und genau das ist mein Problem...
Gruss Thorsten.