Ich würde gern einen Lotus Notes Agent erstellen, der mir periodisch einen Kalender Export im "Structured Text"-Format durchführt. Der nachfolgende Code funktioniert soweit ganz gut. Allerdings kommt bei Ausführung immer das übliche Popup mit der Abfrage weiterer Parameter wie im angehängten Screenshot zu sehen.
@Command([OpenView]; "Calendar") ;
@Command([FileExport]; "Structured Text"; "N:\\notes_export.txt")
Nun meine Frage: Wie kann ich die Parameter am besten vorher schon setzen, so dass das Popup nicht mehr angezeigt werden muss? Ist das überhaupt möglich?
Schonmal vielen Dank im Voraus!
Du kannst auf die Suche gehen nach LotusScript-Code für den Export in das ICS-Format - das gibt es zuhauf. Und damit bist Du ja schon ganz nah dran.
Das habe ich gemacht und so langsam nähere ich mich der Lösung. Folgendes ist bisher dabei rausgekommen:
Sub Initialize
Dim session As New NotesSession
Set db = session.CurrentDatabase
Set col = db.UnprocessedDocuments
outputFile = Freefile()
Open "C:\\NotesCalendar.txt" For Output As outputFile
Set doc = col.GetFirstDocument
While Not (doc Is Nothing)
Set startDate = New NotesDateTime(doc.StartDateTime(0))
Set endDate = New NotesDateTime(doc.EndDateTime(0))
Print #outputFile, "Subject: " & doc.Subject(0)
Print #outputFile, "StartDate: " & startDate.DateOnly & " " & startDate.TimeOnly
Print #outputFile, "EndDate: " & endDate.DateOnly & " " & endDate.TimeOnly
Print #outputFile, "Location: " & doc.Location(0)
Print #outputFile, "Room: " & doc.Room(0)
Print #outputFile, "ApptUNID: " & doc.ApptUNID(0)
Print #outputFile, "AppointmentType: " & doc.AppointmentType(0)
Print #outputFile, "$Chair: " & doc.Chair(0)
Print #outputFile, "$From: " & doc.From(0)
For i=Lbound(doc.INetRequiredNames) To Ubound(doc.INetRequiredNames)
str_INetRequiredNames = str_INetRequiredNames & Cstr(doc.INetRequiredNames(i)) & ", "
Next
Print #outputFile, "$INetRequiredNames: " & str_INetRequiredNames
For i=Lbound(doc.RequiredAttendees) To Ubound(doc.RequiredAttendees)
str_RequiredAttendees = str_RequiredAttendees & Cstr(doc.RequiredAttendees(i)) & ", "
Next
Print #outputFile, "$RequiredAttendees: " & str_RequiredAttendees
' Funzt noch nicht
Print #outputFile, "$PublicAccess: " & doc.PublicAccess(0)
Print #outputFile, "$Alarm: " & doc.Alarm(0)
Print #outputFile, "$AlarmOffset: " & doc.AlarmOffset(0)
' Ende des Termins markieren über "\f"
Print #outputFile, Chr(12)
Set doc = col.GetNextDocument(doc)
Wend
Close outputFile
End Sub
Leider liefern mir die letzten drei (PublicAccess, Alarm, AlarmOffset) nichts zurück, obwohl über den Standard-Export als "Structured Text" hätte etwas kommen müssen.
SOLL (über den Standard Export)
$Alarm: 1
$AlarmOffset: -30
$PublicAccess: 1
IST (über den Lotus Script Agent)
$Alarm:
$AlarmOffset:
$PublicAccess:
Greife ich da evtl. falsch drauf zu? Wo könnte denn hier der Hund begraben liegen?
Bernhard, Du bist der Beste :knuddel: Da hätte ich ja lange suchen können...
Vielen Dank dafür!
BTW: Wofür steht eigentlich HTH?
Noch ein paar Fragen:
Wie kann ich den nachfolgenden Code in eine eigene Funktion auslagern und aufrufen? Kann ich die Funktion dann in die gleiche Datei hinter der Sub-Methode (also hinter "End Sub") schreiben? Und wie würde ich sie dann aus meinem o.g. Codebeispiel aufrufen?
str_RequiredAttendees = ""
For i=Lbound(doc.RequiredAttendees) To Ubound(doc.RequiredAttendees)
str_RequiredAttendees = str_RequiredAttendees & Cstr(doc.RequiredAttendees(i)) & ", "
Next
Print #outputFile, "$RequiredAttendees: " & str_RequiredAttendees
Schonmal vielen Dank im Voraus, Adam
[quote author=fettehenne link=topic=52422.msg338842#msg338842 date=1316192778]
Wie kann ich den nachfolgenden Code in eine eigene Funktion auslagern und aufrufen? Kann ich die Funktion dann in die gleiche Datei hinter der Sub-Methode (also hinter "End Sub") schreiben? Und wie würde ich sie dann aus meinem o.g. Codebeispiel aufrufen?
Ja, das kannst Du machen. Du kannst Dich dazu auch in die Options Section stellen. Du solltest aber auch über ScriptLibraries nachdenken (siehe DesignerHelp)
Bernhard
PS: Ich zähle sicherlich zu den Guten (sage ich jetzt mal ganz selbstbewusst), aber vom "Besten" bin ich ein gutes Stück weg. Aber ich arbeite nach wie vor daran :)