Domino 9 und frühere Versionen > ND8: Entwicklung

Doclink eines Excel-Anhangs in Excel ermitteln

<< < (3/4) > >>

lawern:
Der Vorschlag von Roland klingt schon spannend. Ich werde morgen mal ausprobieren welche Infos ich so bekomme.
Gibt es irgendwo Beispiel-Source-Code für so einen NSF_HOOK?


--- Zitat von: Peter Klett am 02.11.11 - 21:00:38 ---So ganz verstanden habe ich zwar immer noch nicht, was nachher als Ergebnis herauskommen soll. Aber irgendwie hört sich das ja doch nach einer Art Katalog an. Wäre es da nicht einen Gedanken wert, einen Agenten zu schreiben, der über die gespeicherten Dokumente geht und die Informationen sammelt?

Wobei Du natürlich dann nur die Dateinamen der Anhänge bekommst, und die können natürlich zu tausenden identisch sein. Ist dann die Frage, was das aussagt.

Von der Exceldatei als Quelle auszugehen, halte ich - nach meinem derzeitigem Wissensstand über Euer Vorhaben - für falsch herum (mag mich aber gerne irren).

--- Ende Zitat ---

Ergebnis ist eine Liste aller Excel-Dokumente im Unternehmen. Nur ein Teil der Dokumente ist in Notes-DBs gespeichert, der Rest liegt auf File-Servern.
Die Notes-DBs zu modifizieren kommt leider aus politischen Gründen erstmal nicht in Frage.

Lars

pram:
google mal nach "DBHOOKVEC", wenn du russisch kannst gibts auch etwas Beispielcode ;)

soweit ich das verstehe, wirst du über jede geöffnete / gespeicherte Note in der DLL benachrichtigt. D.h. du kannst nicht herausfinden, ob und wann ein Anhang angeklickt wurde. (also eher weniger für dein Vorhaben geeignet)

Bei meiner Suche bin ich noch über den Lotus Notes Extension Manager gestolpert. (war mir bis jetzt auch neu)
http://www-12.lotus.com/ldd/doc/tools/c/6.0.2/api60ref.nsf/0/CCB2911F1DF6C7AF8525681000480140?OpenDocument
Damit kann man sich für jede C-Api Funktion ein Callback registrieren lassen. (z.B. EM_NSFNOTEEXTRACTFILE )
-> http://www-12.lotus.com/ldd/doc/tools/c/6.0.2/api60ref.nsf/0/85255D56004D3F6385255BA400093629?OpenDocument

file_name wäre dann deine Datei (Vermutlich gleich der Pfad im Temp-Dir)
und handle das Handle zum Dokument. Mittels NSFNoteGetInfo o.ä. kannst du weitere Infos aus dem Dokument auslesen und dir in ein Textfile oder wohin auch immer eine Tabelle mit UNID<=>Filename ablegen.


(Zur Umsetzung sind allerdings schon fortschrittliche C + Notes-C-API Kenntnisse erforderlich)

Gruß
Roland

marschul:
Laut Objektkatalog in Excel kennt dieses auch CustomProperties. Damit habe ich mit Word schon sehr gute Erfahrungen gemacht. Funktioniert folgendermaßen (und einwandfrei ;)):

In Notes gibt es eine Funktion (LotusScript) zum Öffnen des Anhangs. Diese öffnet und instanziert Word als OLE-Objekt. Die Datei wird in einen speziellen Pfad (Lokale Einstellungen im UserProfile) entpackt, in Word geöffnet und gleichzeitig ebenfalls als OLE-Objekt verknüpft. In den CustomProperties des Word-Dokuments kann man sich dann mit der Methode Add beliebig austoben, um z.B. DB-Eigenschaften aus Notes bzw. die DocUNID festzuhalten. Parallel lade ich ein AddIn mit Makros, welches mit (auch aus Notes produzierten) Schaltflächen in Word verknüpft wird. Diese dienen dazu, Änderungen in Word direkt zu speichern und den Anhang in Notes zu aktualisieren. Entgegen kommt mir dabei, dass der Anhang sich nicht im aktuellen Notes-Dokument, sondern in Antwortdokumenten befindet, so dass hier nix mit dem FrontEnd durcheinandern kommt.
Es ist auch kein Problem, ein Makro in Word / Excel von Notes aus zu starten, welches die Informationen weiterverarbeitet.

Sollte alles auch in Excel funktionieren, d.h. dort kannst Du die CustomProperties wieder auslesen und weißt, woher das Ganze stammt...

Mit der saved-Eigenschaft des Objektes lässt sich übrigens verhindern, dass das Hinzufügen der CustomProperties als Änderung "wahrgenommen" wird.

Edit: CustomProperties beziehen sich auf die Excel-Applikation, für die Arbeitsmappe heißen die CustomDocumentProperties.

lawern:

--- Zitat von: marschul am 03.11.11 - 09:12:11 ---Laut Objektkatalog in Excel kennt dieses auch CustomProperties. Damit habe ich mit Word schon sehr gute Erfahrungen gemacht. Funktioniert folgendermaßen (und einwandfrei ;)):

In Notes gibt es eine Funktion (LotusScript) zum Öffnen des Anhangs. Diese öffnet und instanziert Word als OLE-Objekt. Die Datei wird in einen speziellen Pfad (Lokale Einstellungen im UserProfile) entpackt, in Word geöffnet und gleichzeitig ebenfalls als OLE-Objekt verknüpft. In den CustomProperties des Word-Dokuments kann man sich dann mit der Methode Add beliebig austoben, um z.B. DB-Eigenschaften aus Notes bzw. die DocUNID festzuhalten.

--- Ende Zitat ---

Danke für den Hinweis! Die CustomProperties von Excel nutzen wir schon.
Wenn ich den Vorschlag richtig verstehe müsste hier aber jede Notes-DB einzeln um den OLE-Aufruf modifiziert werden, oder?

Lars

marschul:

--- Zitat von: lawern am 03.11.11 - 09:49:33 ---Danke für den Hinweis! Die CustomProperties von Excel nutzen wir schon.
Wenn ich den Vorschlag richtig verstehe müsste hier aber jede Notes-DB einzeln um den OLE-Aufruf modifiziert werden, oder?
--- Ende Zitat ---

Nein, das kann man ja zentral von einer DB aus machen und auf die anderen DBs zugreifen, um die Anhänge wunschgemäß zu bearbeiten. An die CustomDocumentProperties werden dann die Eigenschaften der jeweiligen DB / Dokumente übergeben.

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln