Autor Thema: Wechseln der Schablone aus Java.  (Gelesen 4081 mal)

Offline thorsten_w

  • Junior Mitglied
  • **
  • Beiträge: 60
  • Geschlecht: Männlich
Wechseln der Schablone aus Java.
« am: 13.03.06 - 12:49:09 »
Hi @ All,
geht das irgendwie ? Bin ich mal wieder zu Blind um das zu finden?

Danke für Eure Hilfe

Gruss Thorsten.
« Letzte Änderung: 15.03.06 - 14:29:21 von thorsten_w »

Offline thorsten_w

  • Junior Mitglied
  • **
  • Beiträge: 60
  • Geschlecht: Männlich
Re: Wechseln der Schablone aus Java.
« Antwort #1 am: 13.03.06 - 15:27:30 »
Habe etwas in der Dokumentation gefunden.

So soll es angeblich gehen:

Code
					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:
Code
<?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

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Wechseln der Schablone aus Java.
« Antwort #2 am: 13.03.06 - 17:32:53 »
Deine Fragestellung ist sehr lückenhaft...
Welche Notes Version?
Was hat dxl mit Notes-Schablonen zu tun?

Wofür brauchst du einen automatisierten Schablonenwechsel?
Im Prinzip könnte es auch darüber gehen, indem der entsprechende Befehl einfach in einer shell aufgerufen wird. Das geht zwar auch über Java. Ist Java für so etwas die optimale Programmiersprache? Ich denke, nein.

Btw ist die xml-Fehlermeldung ziemlich eindeutig: Es fehlt ein schliessendes </form> tag.

Gruß Axel
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline thorsten_w

  • Junior Mitglied
  • **
  • Beiträge: 60
  • Geschlecht: Männlich
Re: Wechseln der Schablone aus Java.
« Antwort #3 am: 14.03.06 - 07:57:01 »
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.

Code
DxlImporter importer = session.createDxlImporter();
Code
       
DxlExporter exporter = session.createDxlExporter();
Code
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
« Letzte Änderung: 14.03.06 - 07:59:46 von thorsten_w »

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Wechseln der Schablone aus Java.
« Antwort #4 am: 14.03.06 - 08:51:47 »
Torsten,

ich verstehe die Intention des ganzen nicht.
Ich verstehe auch nicht, was du unter Java verstehst (die Insel, die Sprache, die Plattform, die Java Api for Domino Objects, whatever  ??? )

Was hat dxl mit Notes-Schablonen zu tun?

Notes Datenbanken übernehmen von Notesschablonen Design automatisch durch den Designtask (gescheduled, per Konsolenbefehl "load design" oder über das Menü eines beliebigen Notes Clients).
Die Schablone wechseln kannst du über das Menü eines beliebigen Notes Clients.

Warum willst du überhaupt die Schablone wechseln?
Wenn sich die Gestaltung öfters ändert, sollen die Entwickler die Schablone ändern. Die Gestaltung der Datenbank ändert sich irgendwann automatisch.
Wenn sich die Gestaltung selten ändert, kannst du auf eine Schablone verzichten.

Wieso du da versuchst, eine in Notes vorhandene Funktionalität zu duplizieren, kann ich nicht verstehen.



Gruß Axel
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Wechseln der Schablone aus Java.
« Antwort #5 am: 14.03.06 - 09:01:18 »
vielleicht hilft das:
http://www-10.lotus.com/ldd/sandbox.nsf/85d5b6903071400e8525676d0079b3ae/821a88919969356885256f1c0044f446?OpenDocument
Ist zwar in LotusScript. Man kann es allerdings aus Java per Agenten in der DB (oder ähnlichem) ansprechen. Oder die benötigten Teile in Java transkribieren, falls das geht.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline thorsten_w

  • Junior Mitglied
  • **
  • Beiträge: 60
  • Geschlecht: Männlich
Re: Wechseln der Schablone aus Java.
« Antwort #6 am: 14.03.06 - 09:32:59 »
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.

Code
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.

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re: Wechseln der Schablone aus Java.
« Antwort #7 am: 14.03.06 - 10:20:57 »
Hallo thorsten!

Ich würde mal beim DXLExporter ForceNoteFormat=true angeben. Leider ist das DXL nicht vollständig implementiert, so dass wenn du manche Features in deinen Forms verwendest diese nicht vollständig exportiert werden. In diesem Fall hilft ForceNoteFormat=true. Du bekommst dann ein ziemlich unleserliches DXL, dass ziemlich viel Binärcode enthält, was dir aber für deine Anwendung egal sein sollte. Eventuell hilft dir das. Normalerweise enthält das formatierte DXL einen Kommentar, dass es nicht vollständig ist und man ForceNoteFormat verwenden soll.

Grüße

Ralf
Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Wechseln der Schablone aus Java.
« Antwort #8 am: 14.03.06 - 10:51:00 »
Dies hier funktioniert hervorragend nur, sobald ich den setSelectForms rausnehme kommt der Fehler.

Und genau das ist mein Problem...
Hallo Thorsten,

hört sich interessant an.
Für mich ist das aber immer schwer nachzuvollziehen, wenn ich den Kontext nicht kenne. Deshalb die Nachfragen.
Du kannst auch ein notes.net Posting versuchen.
War nicht auf openNtf ein ziemlich ehrgeiziges dxl Projekt, das ähnlich war ?
Schau mal nach.

Wenn du irgendwo hängenbleibst... und dxl/xml ist in Notes ex-post eingeführt worden..

vielleicht hilft ja doch diese ältere DB aus der Sandbox, wenn du mit dem dxl Ansatz nicht weiterkommst.
Oder du kannst die ntf an der erwarteten Stelle (direkt in notes-Data) öffnen und ein paar Properties auslesen.
Wären halt alternative Ansätze.

Gruß Axel
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Wechseln der Schablone aus Java.
« Antwort #9 am: 14.03.06 - 16:32:42 »
Ich würde mal sagen das klappt mit Java /DXL nicht. Da fehlen im DXL Import z.T. einige Sachen.

Ich hab das ersetzen von Embedded Outlines via DXL realisiert. Dabei wurden jedoch z.B. die Hintergründe von Feldern nicht wieder importiert, obwohl diese im DXL File waren.

Ich kann mir sehr gut vorstellen, falls der Import irgendwann mal ohne Fehlermeldung klappt, dass einige Elemente nicht aktualisiert wurden, bzw. fehlerhaft importiert wurden....  :-[

Als Alternative könntest Du z.B. die NotesNoteCollection verwenden und alle Designelemente von der Zieldb löschen und durch deine eigenen ersetzen...
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline thorsten_w

  • Junior Mitglied
  • **
  • Beiträge: 60
  • Geschlecht: Männlich
Re: Wechseln der Schablone aus Java.
« Antwort #10 am: 15.03.06 - 14:29:00 »
Hallo Ihrs,

Danke für den Vorschlag Ralf, mit dem ForceNoteFormat hat es leider nicht geklappt. Nur soweit, dass sich die Fehlermeldung geändert hat.

@Umi dein Vorschlag scheint wunderbar zu funtionieren. Vielen Dank dafür. Auf den ersten Blick werden so alle Gestaltungen übernommen.

Ich muss das aber noch genauer Testen. Wenn Probleme auftauchen, dann melde ich mich nochmal.


Gruss Thorsten

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Wechseln der Schablone aus Java.
« Antwort #11 am: 15.03.06 - 15:00:18 »
Mit der NotesNoteCollection kopierst Du ja die "DesignDokumente" 1 zu 1, also sollten da keine weiteren Probleme auftreten. Damit kann man schöne Add-ins in bestehende DB's installieren :-)
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz