Domino 9 und frühere Versionen > ND6: Entwicklung
EMail an OLE- / COM-Object übergeben
TGroener:
Hallo zusammen,
leider habe ich über die Suche nicht das gefunden was ich suche (oder falsch gesucht ;)) ...
Ich möchte ein "Makro" schreiben, welches es dem Anwender ermöglicht, auf Knopfdruck, die aktuell selektierte EMail an eine DLL zu übergeben, damit diese dann die EMail weiterverarbeitet. Leider bin ich (immer noch) ein totaler LN-Neuling und habe absolut keine Ahnung wie das möglich ist. ???
Hintergrund ist, das wir die EMails in ein Content-Management-System einlesen wollen, um diese dann darin weiter zu verarbeiten.
Vielen Dank schon einmal im vorraus :)
Glombi:
Eine E-Mail ist ein kompliziertes Gebilde (Notes-Dokument) das man nicht an eine DLL übergeben kann.
Du kannst Informationen (Feldinhalte) an die DLL übergeben oder die Dokument-ID, mit der die DLL dann -via COM - das Backenddokument holen und weiterverarbeiten kann.
Andreas
TGroener:
--- Zitat von: Glombi am 20.12.06 - 11:41:17 ---Eine E-Mail ist ein kompliziertes Gebilde (Notes-Dokument)
--- Ende Zitat ---
und das nicht nur in LN :)
--- Zitat von: Glombi am 20.12.06 - 11:41:17 ---Du kannst Informationen (Feldinhalte) an die DLL übergeben oder die Dokument-ID
--- Ende Zitat ---
Die Dokument-ID würde mir ja schon reichen, (funktionierende) Routinen um damit dann meine Informationen auszulesen hab ich schon. Ich weiß nur keinen Ansatz wo und wie ich das ganze in LN "einbauen" kann ...
Greetz
Glombi:
Wie bindet man eine DLL mit Script ein:
Unter (Declarations)
Declare Function FunktionsName Lib "namedll.dll" Alias "FunktionsNameAlias" (Byval DocID As String) As Integer
Aufruf
... hier normale Script Code ... 'sei doc das Notes-Backenddokument
call FunktionsNameAlias( doc.UniversalID)
übergibt dann die DocID an die DLL.
FunktionsName ist den Name der Function in Notes
FunktionsNameAlias muss der Name der Function sein, die in der DLL verwendet wird.
In der Regel verwende ich als namen der Notes Function den gleichebn Namen wie in der DLL.
Es kann aber Sinn machen, wenn man betriebssystemunabhängig programmieren will. Das säehe dann so aus:
Private Const DLL_NAME_W32 = "namedll.dll"
Private Const DLL_NAME_UNIX = "/data/notesdata/namedll.so"
Declare Function FunktionsName_W32 Lib DLL_NAME_W32 Alias "FunktionsName" (Byval sz As String) As Integer
Declare Function FunktionsName_UNIX Lib DLL_NAME_UNIX Alias "FunktionsName" (Byval sz As String) As Integer
Der Aufruf wäre dann so
Dim Session as New NotesSession
DLL_Platform = Session.Platform
Select Case DLL_Platform
Case "Windows/32":
call FunktionsName_W32(doc.UniversalID)
Case "UNIX":
call FunktionsName_UNIX(doc.UniversalID)
End Select
Andreas
TGroener:
So ... Ich habe das jetzt soweit eingebaut, jetzt habe ich folgende Funktion:
--- Code: ---declare function ImportMail ......
Sub Import
dim lvobjWS as New NotesUIWorkspace
dim lvobjMail as NotesDocument
set lvobjMail = lvobjWS.CurrentDocument.Document
call ImportMail(lvobjMail.UniversalID
end sub
--- Ende Code ---
Dummerweise ist aber lvobjWS.CurrentDocument nicht gefüllt. Wenn ich mir die anderen Eigenschaften von lvobjWS im Script Debugger anschaue sehen die richtig aus (lvobjWS.Currentview steht auf dem richtigen Eintrag usw.).
Was mach ich denn hier falsch?
greetz Thomas
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln