Autor Thema: EMail an OLE- / COM-Object übergeben  (Gelesen 1788 mal)

Offline TGroener

  • Frischling
  • *
  • Beiträge: 26
  • Geschlecht: Männlich
EMail an OLE- / COM-Object übergeben
« am: 20.12.06 - 11:35:24 »
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  :)
Rechtschreibfehler sind gewollt und dienen der allgemeinen Belustigung :)

Glombi

  • Gast
Re: EMail an OLE- / COM-Object übergeben
« Antwort #1 am: 20.12.06 - 11:41:17 »
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

Offline TGroener

  • Frischling
  • *
  • Beiträge: 26
  • Geschlecht: Männlich
Re: EMail an OLE- / COM-Object übergeben
« Antwort #2 am: 20.12.06 - 11:44:47 »
Eine E-Mail ist ein kompliziertes Gebilde (Notes-Dokument)

und das nicht nur in LN  :)


Du kannst Informationen (Feldinhalte) an die DLL übergeben oder die Dokument-ID

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
Rechtschreibfehler sind gewollt und dienen der allgemeinen Belustigung :)

Glombi

  • Gast
Re: EMail an OLE- / COM-Object übergeben
« Antwort #3 am: 20.12.06 - 11:59:39 »
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

Offline TGroener

  • Frischling
  • *
  • Beiträge: 26
  • Geschlecht: Männlich
Re: EMail an OLE- / COM-Object übergeben
« Antwort #4 am: 20.12.06 - 14:12:56 »
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

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
Rechtschreibfehler sind gewollt und dienen der allgemeinen Belustigung :)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: EMail an OLE- / COM-Object übergeben
« Antwort #5 am: 20.12.06 - 14:15:06 »
Ist das Dokument den im Frontend geöffnet oder versuchst Du aus aus einer NotesUIView heraus?

Bernhard

Offline TGroener

  • Frischling
  • *
  • Beiträge: 26
  • Geschlecht: Männlich
Re: EMail an OLE- / COM-Object übergeben
« Antwort #6 am: 20.12.06 - 14:19:22 »
Ist das Dokument den im Frontend geöffnet oder versuchst Du aus aus einer NotesUIView heraus

Nein, ist es nicht. Ich habe ganz normal die Ansicht für die Inbox offen und dort in der Liste eine Mail markiert.
Rechtschreibfehler sind gewollt und dienen der allgemeinen Belustigung :)

Glombi

  • Gast
Re: EMail an OLE- / COM-Object übergeben
« Antwort #7 am: 20.12.06 - 14:21:31 »
Dann so:

declare function ImportMail ......


in der    Sub Click:


   Dim session As NotesSession
   Dim db As NotesDatabase
   Dim dc As NotesDocumentCollection
   Dim doc As NotesDocument
   
   
   Set session = New NotesSession
   Set db = session.CurrentDatabase
   Set dc = db.UnprocessedDocuments
   
   Set doc = dc.GetFirstDocument

call ImportMail( doc.UniversalID )
   

Offline TGroener

  • Frischling
  • *
  • Beiträge: 26
  • Geschlecht: Männlich
Re: EMail an OLE- / COM-Object übergeben
« Antwort #8 am: 20.12.06 - 14:46:18 »
...
db.UnprocessedDocuments

...

sind das nicht die ungelesenen Elemente  ... oder stehe ich da jetzt auf der Leitung??? Ich benötige ja mein markiertes Element / meine markierte Elemente?

Ich bin leider bisher nicht zum testen gekommen, da unser Server gerade neu gestartet werden muss :-(
Rechtschreibfehler sind gewollt und dienen der allgemeinen Belustigung :)

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: EMail an OLE- / COM-Object übergeben
« Antwort #9 am: 20.12.06 - 14:48:55 »
Ich bin leider bisher nicht zum testen gekommen, da unser Server gerade neu gestartet werden muss :-(
Entwickelst Du am Produktionsserver?  :o
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline TGroener

  • Frischling
  • *
  • Beiträge: 26
  • Geschlecht: Männlich
Re: EMail an OLE- / COM-Object übergeben
« Antwort #10 am: 20.12.06 - 14:51:31 »
Ich bin leider bisher nicht zum testen gekommen, da unser Server gerade neu gestartet werden muss :-(
Entwickelst Du am Produktionsserver?  :o
;D neine ... keine Bange :-) von Lotus gibt es bei uns gar keinen Produktionsserver, da wir eigentlich ein anderes Produkt (M... O....) einsetzen. Unsere Kunden haben aber teilweise LN, also sollten wir das ja dann auch unterstüzen ;-)
Rechtschreibfehler sind gewollt und dienen der allgemeinen Belustigung :)

Offline TGroener

  • Frischling
  • *
  • Beiträge: 26
  • Geschlecht: Männlich
Re: EMail an OLE- / COM-Object übergeben
« Antwort #11 am: 20.12.06 - 17:10:24 »
Dann so:

declare function ImportMail ......


in der    Sub Click:


   Dim session As NotesSession
   Dim db As NotesDatabase
   Dim dc As NotesDocumentCollection
   Dim doc As NotesDocument
   
   
   Set session = New NotesSession
   Set db = session.CurrentDatabase
   Set dc = db.UnprocessedDocuments
   
   Set doc = dc.GetFirstDocument

call ImportMail( doc.UniversalID )
   

so, aus dem DECLARE noch ein CreateObject gemacht und jetzt klappt alles.

Vielen Dank für die Hilfe. Ein dickes Lob an das Forum :-)
Rechtschreibfehler sind gewollt und dienen der allgemeinen Belustigung :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz