Domino 9 und frühere Versionen > ND7: Entwicklung

Bilder exportieren, DXLExporter Fehler "Operation failed"

(1/3) > >>

Wieczorrek:
Guten Morgen,

ich habe zu meinem Problem schon viel gelesen, aber noch nichts sinnvolles gefunden, vielleicht weiss hier jemand etwas.

Ich habe ein Datenbank, die wurde ursprünglich bereits 1999, also unter 4.6 erstellt. In den meisten Dokumenten gibt es ein (oder mehrere) Bild(er). Diese Bilder wurden in der Regel als jpg oder gif über den "Import" Befehl eingefügt. Es gibt aber auch Bilder, die per cut/paste mit STRG+V eingefügt wurden. Ich muss diese Bilder unter dem Dateinamen url_1.jpg oder .gif auf Platte bannen. Aktuell verwende ich die Version 7.01.

Da Notes meines Wissens nach immer noch keine Funktionen zum Bearbeiten eingebetteter Bilder bietet, gehe ich folgenden Weg:

Schleife über alle Dokumente, jedes Dokument durch den Exporter nudeln und im XML Code die Bilder ausschnipseln (und dann decodieren). Das geht auch ganz gut. Jedenfalls mit 70% meiner Dokumente. Bei den restlichen 30% macht der Exporter aber die Grätsche mit der wenig hilfreichen Fehlermeldung "Operation failed".

Wenn ich die LOG Meldung auslese, kann ich noch eine halbe NOTES-ID auslesen und bekomme den Hinweis "Invalid parameter".

Wenn ich über die NOTES-ID das problemverursachende Dokument ganz, ganz genau ansehe, dann stelle ich nichts ungewöhnliches fest. Es läßt sich öffnen, schließen, verändern, löschen usw. Nur eben nicht DXL-exportieren.

Kennt jemand eine Lösung?
Oder alternativ: Kann ich aus Lotus-Script die Formelsprache aufrufen? Warum? In der Formelsprache gibt es einen Befehl (sinngemäß) Document.ExportAsRTF. Aus dieser RTF-Datei kann ich auch Bilder ausschnipseln. Leider kennt Lotus-Script diese Funktion nicht.

Gruß

Carsten Wieczorrek

Lotuseffekt:
Hallo Carsten,

Du kannst aus Lotusscript Formelsprache aufrufen. Stichwort ist 'Evaluate'. Schau Dir noch einmal in der Hilfe ganuer an...
Der Syntax dazu lautet:
variant = notesSession.Evaluate( formula$, doc )

Bsp:
Dim.... as...
....
formel = {_values := eintraege; @If(_values != ""; @Sort(@Trim(@Left(_values; "§") + " (") + @ReplaceSubstring(@Right(_values; "$");  "!!" : "&&"; "%") + ")"); "")}
Call doc.ReplaceItemValue("dsp_source", Evaluate(formel, doc))

Ob Dir das Deinem Problem mit DXL weiter hilft, kann ich Dir allerdings nicht sagen...
Gruß!

Wieczorrek:
Hallo Frischling,

ich habe also doch nicht alles komplett beschrieben.

Ja, man kann die Formelssprache mit NotesScript verwenden, aber leider nicht innerhalb eines Agenten. Ich will die Dokumente ja nicht manuell anklicken.

Gruß

Carsten

klaussal:
Wo steht denn, dass man EVALUATE nicht in Agenten einsetzen darf ?

animate:
Vermutlich handelt es sich bei der gewünschten Funktion um @Command( [FileExport] ) und @Commands können nicht zusammen mit Evaluate verwendet werden.
Ich habe mal sowas ähnliches wie deine Alternativlösung gemacht. Grob sah das so aus und hat recht gut funktioniert:

- Maske erstellen, die die Felder enthält, in denen die Bilder sind
- Im Postopen-Event der Maske den @Command( [FileExport] ) Befehl einbauen (Filenamen aus Dokument-Id und Endung zusammenbauen)
- Per LotusScript oder Formel (weiß nicht mehr genau) die gewählten Dokumente durchlaufen
- Für jedes Dokument: temporär die neue Maske zuweisen, Dokument öffnen und schließen (im Frontend)
Beim Öffnen des Dokuments wird das Dokument dann in eine Datei exportiert.

Wie gesagt, schon lange her, aber so in der Art sollte es funktionieren.

Besser wäre natürlich, den Fehler beim DXL-Export zu finden. Wahrscheinlich aber auch viel aufwändiger.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln