Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: mangler am 25.01.10 - 10:12:04

Titel: Welche Felder für eigenen Kalender?
Beitrag von: mangler am 25.01.10 - 10:12:04
Hallo Zusammen,

welche Felder brauche ich um Dokumente einer Eigenanwendung in meinen Notes-Kalender zu kopieren?

Hintergrund:
Wir haben eine Eigenanwendung in der die Personaldaten verwaltet werden. Schmankerl ist ein Geburtstagskalender (wo aber nur Tag+Monat hinterlegt sind). Nun häufen sich anfragen, wo Mitarbeiter die Geburtstage ihrer Kollegen gerne in ihren Kalender übernehmen würden...

Hat da Jemand vielleicht schon mal was gebaut und hat Tips für mich?

Viele Grüße
Tatiana
Titel: Re: Welche Felder für eigenen Kalender?
Beitrag von: eknori am 25.01.10 - 10:18:01
Gucke dir das mal an http://www.lotusguru.com/lotusguru/LGBlog.nsf/d6plinks/20100125-8228B7

in den Slides finden sich auch Links zu den Feldern des C&S
Titel: Re: Welche Felder für eigenen Kalender?
Beitrag von: m3 am 25.01.10 - 10:25:44
Technote #1229486: Notes/Domino Calendaring & Scheduling field descriptions (http://www.ibm.com/support/docview.wss?rs=463&context=SSKTMJ&dc=DB520&uid=swg21229486&loc=en_US&cs=UTF-8&lang=en&rss=ct463lotus)

IBM Lotus Notes Calendaring & Scheduling Schema (http://www.ibm.com/developerworks/lotus/documentation/dw-l-calendarschema.html)
Titel: Re: Welche Felder für eigenen Kalender?
Beitrag von: mangler am 25.01.10 - 10:42:07
Prima, danke!

Das schaue ich mir gleich mal an.  ;D
Titel: Re: Welche Felder für eigenen Kalender?
Beitrag von: KlaSpa am 25.01.10 - 16:18:42
Hallo mangler,

habe so etwas ähnliches über einen Agenten gelöst. Allerdings wirst du Jahreszahlen brauchen, du musst also schon abfragen für wie viele Jahre der Termin Eingetragen werden soll. Mir war das zuviel Arbeit, deshalb erstellen ich einfach einen Termineintrag und lasse den Rest vom User erledigen (Wiederholungen etc.)

gruss KlaSpa


Option Public
Use "MailLibrary"

''Deklarations MailLibrary
Dim ws As NotesUIWorkspace

Dim session As NotesSession
Dim db As NotesDatabase
Dim maildb As NotesDatabase
Dim note As NotesDocument
Dim mailnote As NotesDocument
Dim collection As NotesDocumentCollection
Dim profile As NotesDocument

Sub InstantiateVariables
   Set ws = New NotesUIWorkspace
   Set session = New NotesSession
   Set db = session.CurrentDatabase
   Set maildb = New NotesDatabase("","")
   maildb.OpenMail
   Set profile = maildb.GetProfileDocument("CalendarProfile")
   counter = 0
   Set collection = db.UnprocessedDocuments
End Sub
'''''ENDE

'AGENTEN CODE
Sub Initialize
   Dim nMinutes As Integer
   Dim nSeconds As Integer
   Dim x As Integer
   
   Dim startdt As NotesDateTime
   Dim enddt As NotesDateTime
   Dim trdr As NotesDateRange
   
   InstantiateVariables
   
   If (collection.Count = 0) Then
      Messagebox "Es wurden keine Dokumente ausgewählt.",0,"Fehler"
      Exit Sub
   End If
   
'Kann nur einen Eintrag erstellen
   Set note = collection.GetFirstDocument
'Das hier muss angepast werden
   If Ucase(note.MType(0)) <> "PROJEKT" Then Exit Sub


   Set mailnote = New NotesDocument(maildb)
   mailnote.EnterSendTo = ""
   mailnote.Form = "Appointment"                       <<<<<<<<<<
   mailnote.AppointmentType = "0"
   mailnote.Chair = profile.Owner(0)
   mailnote.Principal = profile.Owner(0)
   mailnote.Subject = note.DokName(0)               <<<<<<<<<<
   Set itemA = note.GetFirstItem( "Body" )
   Call itemA.CopyItemToDocument( mailnote, "" )
   
   
   
   Set item = note.GetFirstItem( "AmUm" )     <<<<<<<<
   Set startdt = item.DateTimeValue
   
   nMinutes = Minute(startdt.LSLocalTime)
   nSeconds = 0 - Second(startdt.LSLocalTime)
   
   
   startdt.AdjustSecond(nSeconds)
   
   Set mailnote.StartDate = startdt
   Set mailnote.StartDateTime = startdt
   
   Set item = note.GetFirstItem( "EndeUm" )    <<<<<<<<
   Set enddt = item.DateTimeValue
   
   Set trdr = session.CreateDateRange
   Set trdr.StartDateTime = startdt
   Set trdr.EndDateTime = enddt
   Set mailnote.TimeRange = trdr
   Set mailnote.EndDate = enddt
   Set mailnote.EndDateTime = enddt
   
   Call ws.EditDocument(True,mailnote)
End Sub
Titel: Re: Welche Felder für eigenen Kalender?
Beitrag von: koehlerbv am 25.01.10 - 16:26:28
Achtung, liebe Kinder: Macht das nicht nach! Da fehlen wichtige Items, damit das C&S richtig funktioniert.

Hier klappt das zwar, da das Dokument im Backend erstellt und dann sofort im Frontend geöffnet wird (das erledigt dann den Rest, solange in keinem Feld auf @IsNewDoc geprüft wird, aber für eine reine Backend-Aktion taugt das nicht.

Bernhard
Titel: Re: Welche Felder für eigenen Kalender?
Beitrag von: KlaSpa am 25.01.10 - 16:42:59
Hallo koehlerbv,

du hast Recht, es funktioniert  _nur_ weil es im Frontend geöffnet und bearbeitet wird...
ausserdem eignet es sich nicht für Wiederholungseinträge da die entsprechenden Felder fehlen.

Ich schaue das nächste mal etwas genauer hin...

gruss KlaSpa