Domino 9 und frühere Versionen > ND6: Entwicklung

Appointments erscheinen nicht in dem Planer

(1/2) > >>

sja:
Hallo alle zusammen,

verzweifelt bitte ich um Hilfe und vielen Dank im voraus. Es gibt in unserer Anwendung in einem s.g. Termin-Dokument ein Schalter, der folgende Funktion ausführen sollte:
-> drei Appointments in dem Kalender des Autors erstellen: Anreise, Termin, Abreise und ggf. die Einladungen an Teilnehmern senden.
Die Funktion habe ich (mit grenzlose Danke für die Forums-Hilfe) geschafft. Die Termine mit der Übernahme allen nötigen Daten werden in dem Kalender des Autors erstellt, die Einladungen gesendet. Das Problem liegt daran, dass die Terminen in dem Kalender des Autors erscheinen nicht in der eingebetteten Planer und natürlich nicht in dem Gruppenkalender etc.


Dim ws As NotesUIWorkspace   
Dim s As NotesSession
Dim db As NotesDatabase
Dim uidb As NotesDatabase
Dim uiDocA As NotesUIDocument
Dim docA As NotesDocument
Dim uiDocM As NotesUIDocument
Dim docM As NotesDocument
Dim tmpSRV As String
Dim tmpMAIL As String
Dim AnfangD As Variant
Dim EndeD As Variant
Dim AnfangZ As String
Dim EndeZ As String
Dim Einlad As Variant
Dim tmpBody As Variant
Dim tmpOrt As String
Dim tmpSubject As String
Dim tmpDokuTitel As String
Dim tmpKundenName As String
Dim rtitem As NotesRichTextItem
Dim item As NotesItem
Sub Click(Source As Button)
   Set s = New NotesSession
   Set ws = New NotesUIWorkspace
   Set uidb = s.CurrentDatabase
   Set uiDocA = ws.CurrentDocument   
   Call uiDocA.Refresh
   Call uiDocA.Save
   Set docA = uiDocA.Document
   Einlad = docA.SendTo
   AnfangD = uiDocA.FieldGetText("StartDate")
   EndeD = uiDocA.FieldGetText("StartDate")
   AnfangZ = Strleft(uiDocA.FieldGetText("TimeRange"), "-")
   EndeZ = Strright(uiDocA.FieldGetText("TimeRange"), "-")
   tmpOrt = uiDocA.FieldGetText("Ort")
   tmpBody = uiDocA.FieldGetText("DokuBeschreibung")
   tmpDokuTitel = uiDocA.FieldGetText("DokuTitel")
   tmpKundenName = uiDocA.FieldGetText("KundenName")   
   tmpSubject = tmpKundenName & " -> " & tmpDokuTitel
   tmpSRV = uiDocA.FieldGetText("srv_1")
   tmpMAIL = uiDocA.FieldGetText("MailDatei")
   Set db = New NotesDatabase( tmpSRV, tmpMAIL )
   Call MailSenden()
   If uiDocA.FieldGetText("Anreisezeit") <> "" Then
      tmpSubject = "Anreisezeit -> " & tmpKundenName & " -> " & tmpDokuTitel
      AnfangZ = Strleft(uiDocA.FieldGetText("Anreisezeit"), "-")
      EndeZ = Strright(uiDocA.FieldGetText("Anreisezeit"), "-")
      If uiDocA.FieldGetText("RZbuchen") = "" Then
         Einlad = ""
      End If
      Call MailSenden()
   End If
   If uiDocA.FieldGetText("Abreisezeit") <> "" Then
      tmpSubject = "Abreisezeit -> " & tmpKundenName & " -> " & tmpDokuTitel
      AnfangZ = Strleft(uiDocA.FieldGetText("Abreisezeit"), "-")
      EndeZ = Strright(uiDocA.FieldGetText("Abreisezeit"), "-")
      If uiDocA.FieldGetText("RZbuchen") = "" Then
         Einlad = ""
      End If
      Call MailSenden()
   End If   
End Sub
Function MailSenden()
   Set docM = db.CreateDocument
   Set item = docM.GetFirstItem( "SendTo" )
   docM.Form = "Appointment"
   docM.AppointmentType = "3"
   docM.EnterSendTo = Einlad
   docM.SendTo = Einlad
   docM.RequiredAttendees = Einlad
   docM.AltRequiredNames = Einlad
   docM.tmpRequiredAttendees  = Einlad
   docM.Subject = tmpSubject
   docM.Location = tmpOrt
   docM.Body = tmpBody
   Set rtitem = New NotesRichTextItem( docM, "Body" )
   Call rtitem.AppendText( tmpBody )
   Call rtitem.AddNewLine( 2 )
   Call rtitem.AppendText( "Dokumentverknüpfung:  " )
   Call rtitem.AppendDocLink ( docA, tmpSubject )
   docM.StartDateTime =Cdat(AnfangD & " " & AnfangZ)
   docM.EndDateTime =Cdat(EndeD & " " & EndeZ)
   docM.StartDate = Cdat(AnfangD)
   docM.EndDate = Cdat(EndeD)
   docM.StartTime =Cdat(AnfangZ)
   docM.EndTime = Cdat(EndeZ)
   DocM.~$PublicAccess = "1"
   docM.CalendarDateTime =Cdat(AnfangD & " " & AnfangZ)
   Call docM.ComputeWithForm( False, False )
   Call docM.Save( True, True )
   If (Einlad(0) <> "") Then
      Call docM.Send( False, Einlad )
   End If
   Call docM.Save( True, True )
   
Danke und viele Gruessen
Sofia

Driri:
Von welchem Gruppenkalender und welchem eingebetteten Planer redest Du ?

Allgemein tippe ich, daß bestimmte Felder nicht gesetzt sind, die für Anzeige benötigt werden. Welche genau, kann ich dir leider nicht sagen.

Ach ja, die Zeile hier in der Function MailSenden ist überflüssig  ;)


--- Zitat ---Set item = docM.GetFirstItem( "SendTo" )
--- Ende Zitat ---

koehlerbv:
Auf jeden Fall fehlt schon mal das für C & S  entscheidende Item $BusyName.
Schau Dir einfach mal die Items in einem Kalendereintrag bei Dir an.

HTH,
Bernhard

sja:
Hallo Driri,
Hallo Bernhard,
vielen Dank für eure Aufmerksamkeit,

Driri,
wenn Du die Maske « Appointment » in Notes-Mail-Datei öffnest, dann wirst Du schon sehen, was meine ich unter eingebetteten Planer
Die Zeile „Set item = docM.GetFirstItem( "SendTo" )“ ist hier tatsächlich überflüssig, aber das ist in dem Fall irrelevant.

Bernhard,
nach deine frühere Hilfe mit DocM.~$PublicAccess = "1", habe ich doch mit 
DocM.~$BusyPriority ="1"
schon auch ausprobiert, hat nicht geholfen.

Und da ich weiss nicht wie mit dem eingebetteten Planer in der Notes-Kalender umzugehen, habe ich in Frontend auch folgendes versucht:

Function MailSenden()


   Call docM.ComputeWithForm( False, False )
   Call docM.Save( True, True )

%REM
   If (Einlad(0) <> "") Then
      Call docM.Send( False, Einlad )
   End If
   Call docM.Save( True, True )
%END REM

Set uiDocM = ws.EditDocument( True, docM )


In diesem Fall die Emails an den Teilnehmer werden nicht gesendet, sondern wird in der Notes-Kalender des Autors im Backend erstellte Appointment geöffnet und man sollte eigentlich auf die Schalter „Speichern und Einladungen senden“ klicken. Das Problem nur in dem Fall, dass alle Daten werden in Appointment übernommen, ausser Eingeladenen.
Wie ich verstanden habe ist dafür das Feld

    „RequiredAttendees“

verantwortlich und obwohl das Feld habe in im Backend gesetzt

Set item = docM.AppendItemValue( "RequiredAttendees" , Einlad)

und in den Eigenschaften des Dokuments das Feld ist zu sehen und zwar mit dem richtigen Wert, beim Öffnen des Dokumentes ist das Feld nicht mehr da.
Wenn ich damit ausprobiert:

Call uiDocM.FieldSetText("RequiredAttendees ",  Einlad)

Bekam ich “Notes Fehler – Das Feld nicht gefunden”.

Dann habe  ich auch folgendes versucht:

Call uiDocM.FieldSetText("EnterSendTo",  Einlad)

und obwohl in dem Feld in Frontend erscheint richtigen Wert, trotzdem mit dem Klick auf den Schalter „Speichern und Einladungen senden“, Einladungen werden nicht gesendet und den Termin wird nicht in dem Planer zu sehen.

Gruessen
Sofia

sja:
Hallo Bernhard.

Du hattest ja Recht (wie immer) mit dem Item $BusyName. Alles Funktioniert in Backend.

Du bist eine Perle und hast mir das Leben gerettet.  Meine Dankbarkeit hat keine Grenzen.  :)

Vielen vielen Dank

Sofia

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln