1. Einleitung
Das Outlook-Addin kümmert sich um den kompletten Ablauf - von der UI in Outlook über das selektieren der jeweiligen Mails und die Übergabe nach Domino.
Die Mails werden dabei durch das Addin zunächst in die Outlook-Addin-Datenbank (oa.nsf) erstellt - diese repräsentiert sich für den Entwickler wie eine Mail-Datenbank in Domino.
In Domino kann sich der Entwickler somit auf seine Verarbeitung der heruntergeladenen/vorbereiteten Mails konzentrieren.
Für den Entwickler haben wir es dabei so einfach wie möglich gemacht: alles für die Verarbeitung ist per LotusScript und dort über LotusScript-Klassen realisiert!
Es gibt aktuell zwei Möglichkeiten das UI und damit die Integration von Domino in Outlook zu gewährleisten:
per einfacher LotusScript-gesteuerter UI
per teamWorkr von unserem Entwicklungspartner Team Technology
2. Nutzung per teamWorkr
2.1. Backend
Um im Backend entwickeln zu können, wird zunächst eine Basisklasse bereitgestellt: die COA_CAgent_STW (LotusScript-Bibliothek).
Wir befinden uns hier im Kontext eines (LotusScript-)Agenten.
Für jede Mail, welche verarbeitet werden soll, wird die Methode “UploadOneDocument” aufgerufen (siehe nachfolgenden Beispielcode).
2.2. Beispiel LotusScript-Bibliothek
Für jede Mail, welche verarbeitet werden soll, wird die Methode “UploadOneDocument” aufgerufen (siehe nachfolgenden Beispielcode).
Das Dokument “odocControl” ist dabei das “Austauschdokument” welches zwischen der UI und dem Backend abgeglichen wird.
Option Public
Option Declare
Use "COA_CAgent_STW"
Class F_COA_CAgent_STW_Sample
' ###### Produce Function Produce As Variant On Error Goto Err_Exit Goto Err_RunCode
Err_Exit: Call ctool_ErrorSetDescrWP( "F_COA_CAgent_STW_Sample", "F-TOOL-00725", Null, Null, Null, Null, Null, Null, Null, Null, Null, Null )
Err_RunCode:
Set Produce = New COA_CAgent_STW_Sample End Function
End Class
Class COA_CAgent_STW_Sample As COA_CAgent_STW
' ###### UploadOneDocument Sub UploadOneDocument( odocControl As NotesDocument, nEntry, odocXChange As NotesDocument ) On Error Goto Err_Exit Goto Err_RunCode
Err_Exit:
Call ctool_ErrorSetDescrWP( "COA_CAgent_STW_Sample", "F-TOOL-00726", odocControl, Null, Null, Null, Null, Null, Null, Null, Null, Null )
Err_RunCode:
End Sub
End Class
3. CTOOL_CExchange - Klasse
3.1. Einleitung
Mit dieser Klasse wird die Arbeit mit dem Prozess des Herunterladens und der Übergabe in die Zieldatenbank ermöglicht - und natürlich auch die Interaktion mit dem UI gesteuert.
Für jede Aktion gibt es eine Methode, welche nachfolgend beschrieben wird
3.2. PropertiesMap
Um mit dem JS-basierten UI umgehen zu können werden Eigenschaften über ein Key-Value String an das UI übergeben und von dort gelesen.
Dem Entwickler wird dies sowohl im Backend als auch in der UI “abgenommen” - hier dennoch eine Beschreibung der möglichen Einträge:
dbserver = Datenbank-Server der Zieldatenbank
dbpath = Datenbank-Pfad der Zieldatenbank
notuploadedinfo = Zusatztext für not uploaded
notesURL = Notes-URL zum Dokument in der Zieldatenbank
webURL = Browser-URL zum Dokument in der Zieldatenbank
status = processed oder notprocessed
warning2user = true oder false
uploadstatus = true oder false
uploadedinfo = Zusatztext für uploaded
unid = die UNID des Dokumentes in der Zieldatenbank
unidxchange = die UNID der von Exchange heruntergeladenen Dokumentes in der Outlook-Addin-Datenbank
3.3. Eigenschaften (Properties)
odocControl (NotesDocument) = das “Austauschdokument” welches zwischen der UI und dem Backend abgeglichen wird.
nUploaded = die Gesamtanzahl der in die Zieldatenbank hochgeladenen/übertragenen Dokumente
nNotUploaded = die Gesamtanzahl der in die Zieldatenbank (noch) nicht hochgeladenen/übertragenen Dokumente
nProcessed = die Gesamtanzahl der als abgearbeitet markierten Dokumente
nNotProcessed = die Gesamtanzahl der als (noch) nicht abgearbeitet markierten Dokumente
lAllUploaded
true = alle Dokumente wurden in die Zieldatenbank hochgeladen/übertragen
false = (noch) nicht alle Dokumente wurden in die Zieldatenbank hochgeladen/übertragenlAllProcessed
true = alle Dokumente wurde als abgearbeitet markiert
false = (noch) nicht alle Dokumente wurde als abgearbeitet markiert
3.4. Methoden
3.4.1. Entries_SetNthEntryUploaded4( nEntry, odocUploaded As NotesDocument, lNoWEBURL, lNoNotesURL, lWarning2User, cInfo )
Mit dieser Methode wird der Klasse mitgeteilt, welcher Eintrag in die Zieldatenbank hochgeladen/übertragen wurde.
nEntry = Nummer des Eintrages
odocUploaded = das Dokument welches in die Zieldatenbank übertragen wurde
lNoWEBURL
true = es soll keine Browser-URL für das Anzeigen des hochgeladenen Dokumentes an die UI übergeben werden
false =es soll eine Browser-URL für das Anzeigen des hochgeladenen Dokumentes an die UI übergeben werdenlNoNotesURL
true = es soll keine Notes-Client-URL für das Anzeigen des hochgeladenen Dokumentes an die UI übergeben werden
false =es soll eine Notes-Client-URL für das Anzeigen des hochgeladenen Dokumentes an die UI übergeben werdenlWarning2User
true = es soll ein Hinweistext (per CSS definiert) an den Benutzer in die UI übergeben werden
false = es soll keein Hinweistext (per CSS definiert) an den Benutzer in die UI übergeben werdencInfo = zusätzlicher Text für den Status “hochgeladen”
3.4.2. Entries_GetNthEntryUploaded( nEntry, cInfo )
Mit dieser Methode kann man abfragen ob ein Eintrage hochgeladen wurde und die Info dazu zurückgeben lassen
nEntry = Nummer des Eintrages
cInfo = zusätzlicher Text für den Status “hochgeladen”
Rückgabe
true = Eintrag steht als hochgeladen in der Klasse
False = Eintrag steht als nicht hochgeladen in der Klasse
3.4.3. Entries_SetNthEntryNotUploaded( nEntry, cInfo )
Mit dieser Methode wird der Klasse mitgeteilt, welcher Eintrag nicht in die Zieldatenbank hochgeladen/übertragen werden konnte.
nEntry = Nummer des Eintrages
cInfo = zusätzlicher Text für den Status “nicht hochgeladen”
3.4.4. Entries_GetNthEntryNotUploaded( nEntry, cInfo )
Mit dieser Methode kann man abfragen ob ein Eintrage (noch) nicht hochgeladen wurde und die Info dazu zurückgeben lassen
nEntry = Nummer des Eintrages
cInfo = zusätzlicher Text für den Status “nicht hochgeladen”
Rückgabe
true = Eintrag steht als nicht hochgeladen in der Klasse
False = Eintrag steht als hochgeladen in der Klasse