Autor Thema: In einem bestehendem Dokument im Feld Body einen Anhang einfügen  (Gelesen 1788 mal)

Offline Christian192

  • Frischling
  • *
  • Beiträge: 13
  • Ich liebe dieses Forum!
Hallo. Wir möchten in einem bestehendem Dokument in dem Feld Body eine Datei (.ZIP) anhängen.
Wir steuern LotusNotes per ActiveX aus unserem Konfiguratorprogramm (camos.Devleop) an.

Wir haben hingekriegt dass wir das Dokument per ID öffnen und der Anhang auch gespeichert wird, leider aber nicht im Body-Feld, sondern unter einem neuen Abschnitt/waagrechtem Strich.

Was machen wir falsch?

Kann uns jemand einen Tip geben? Anbei auch der Coder der derzeitigen Methode().

Vielen Dank im voraus
Christian

Zitat
_NotesSession := 1;
NotesSession := _NotesSession;
_NotesUIWorkspace := 1;
NotesUIWorkSpace := _NotesUIWorkspace;
NotesUIWorkSpace.OPENDATABASE("xxxxxx/xxxxxxxxxx", "xxxxx\dokument.nsf", "DevelopKIF2014", "current", "false", "false");
NotesUIDatabase := NotesUIWorkSpace.CURRENTDATABASE;
NotesDatabase := NotesUIDatabase.DATABASE;
NotesUIDocument := NotesDatabase.GETDOCUMENTBYID("DC5A8E");
IF NotesUIDocument = NOVALUE THEN
  WinMessage("error", "Kein Dokument");
  RETURN;
ENDIF;
NotesUIDocument := NotesUIWorkSpace.EDITDOCUMENT("false", NotesUIDocument);
NotesDocument := NotesUIDocument.DOCUMENT;
NotesRichTextItem := NotesDocument.GETFIRSTITEM("Body");
NotesRichTextItem.EMBEDOBJECT(1454, "", "C:\Temp\test.zip", "test.ZIP");
NotesUIDocument.SAVE();
NotesUIDocument.CLOSE();
#

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Warum wird das Dokument zum Öffnen bearbeitet? Das erscheint mir sinnfrei zu sein, da es nachher ja wieder geschlossen wird. Möglicherweise geht dabei irgendetwas kaputt. Ihr überprüft auch nicht, ob es "Body" überhaupt gibt, auch da könnte irgendetwas schief laufen.

Ich würde zuerst die rot markierten Zeilen/Zeichen weglassen, das Script macht dann das Gleiche, wie vorher, nur schneller und weniger umständlich. Das Speichern erfolgt dann im Backend, falls Ihr irgendetwas aus dem Frontend braucht, müsste das ggf. ergänzt werden.

Später würde ich dann noch eine Überprüfung auf die Existenz des Body-Feldes einfügen und bei Bedarf das Item neu erstellen. Möglicherweise raucht das Script aber auch schon ab, wenn das Item fehlt. LotusScript würde dort jedenfalls aussteigen.

_NotesSession := 1;
NotesSession := _NotesSession;
_NotesUIWorkspace := 1;
NotesUIWorkSpace := _NotesUIWorkspace;
NotesUIWorkSpace.OPENDATABASE("xxxxxx/xxxxxxxxxx", "xxxxx\dokument.nsf", "DevelopKIF2014", "current", "false", "false");
NotesUIDatabase := NotesUIWorkSpace.CURRENTDATABASE;
NotesDatabase := NotesUIDatabase.DATABASE;
NotesUIDocument := NotesDatabase.GETDOCUMENTBYID("DC5A8E");
IF NotesUIDocument = NOVALUE THEN
  WinMessage("error", "Kein Dokument");
  RETURN;
ENDIF;
NotesUIDocument := NotesUIWorkSpace.EDITDOCUMENT("false", NotesUIDocument);
NotesDocument := NotesUIDocument.DOCUMENT;

NotesRichTextItem := NotesDocument.GETFIRSTITEM("Body");
NotesRichTextItem.EMBEDOBJECT(1454, "", "C:\Temp\test.zip", "test.ZIP");
NotesUIDocument.SAVE();
NotesUIDocument.CLOSE();
#

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Du fügst (korrekterweise) das Attachment im Backend in das RichTextItem ein. Dann speicherst Du aber aber das Frontenddokument - und das weiss genau gar nichts von dem geänderten RichTextItem, dass Du da gerade im Backend eingeschmuggelt hast. Ergo speicherst Du den Urzustand, und Deine Mühen waren für die Katz.

Lass die Finger von der Mischung Back- und Frontend und mach das nur im Backend.

Bernhard

Offline Christian192

  • Frischling
  • *
  • Beiträge: 13
  • Ich liebe dieses Forum!
Hallo. Vielen Dank für die schnellen Antworten - so funktioniert es prima!

Genial, wenn man sich den Weg über das Frontend sparen kann.
Die zusätzliche Prüfung ob es das Item schon gibt habe ich auch noch eingebaut.

Danke nochmal und schönen Tag noch.

Christian

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz