Autor Thema: Notes-Kalender überschreibt Datum/Zeit auf aktuell...  (Gelesen 2999 mal)

Offline sja

  • Senior Mitglied
  • ****
  • Beiträge: 328
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Hallo Zusammen,

werde unendlich dankbar, wenn jemand beim folgenden Problem mir helfen würde. Wir hatten auf  Domino V. 5 (Kalender-Template  StdR50Mail)eine Anwendung,, wo unter anderen wird ein Termin-Dokument erstellt. Aus dem Termin-Dokument mit  einem Aktions-Schalter kann man einen Termin in ausgewähltem Kalender erstellen mit der Übernahme entsprechenden Daten. Nach dem Umzug auf V. 6 (Kalender-Template  iNotes6) funktioniert diese nicht mehr richtig. D. h. alle Daten werden richtig übernommen, ausser Datum und Uhrzeit, die werden nach aktuellen Datum und Uhrzeit überschrieben. Man kann das sogar kurz sehen beim Erstellen des Termins-Dokumentes im Kalender wie in den Datum- und Zeitfelder wird erst ausgewählten Datum und Zeit eingetragen und dann auf aktuelle überschrieben.
Hier ist das Source von dem Aktions-Schalter:

Sub Click(Source As Button)
   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 Text As Variant
   Dim tmpOrt As String
   Dim tmpSubject As String
   Dim tmpDokuTitel As String
   Dim tmpKundenName As String
   Dim rtitem As NotesRichTextItem
   
   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 = uiDocA.FieldGetText("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 uiDocM = ws.composeDocument(tmpSRV, tmpMAIL, "Appointment",4,4)
   Set docM = uiDocM.Document
   
   Call uiDocM.FieldSetText("AppointmentType", "3")
   Call uiDocM.FieldSetText("EnterSendTo",  Einlad)
   Call uiDocM.FieldSetText("StartDate", AnfangD)
   Call uiDocM.FieldSetText("EndDate", EndeD)
   Call uiDocM.FieldSetText("StartTime", AnfangZ)
   Call uiDocM.FieldSetText("EndTime", EndeZ)
   Call uiDocM.FieldSetText("Subject", tmpSubject)
   Call uiDocM.FieldSetText("Location", tmpOrt)
   Call uiDocM.FieldSetText("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 )
   Call docM.Save( True, True )
   Call uiDocM.Save
   Call uiDocM.Close   
   
   
End Sub


Vielen Dank im Voraus
Sofia
« Letzte Änderung: 26.07.04 - 11:01:32 von sja »

Offline sja

  • Senior Mitglied
  • ****
  • Beiträge: 328
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re:Notes-Kalender überschreibt Datum/Zeit auf aktuell...
« Antwort #1 am: 26.07.04 - 14:18:55 »
Hallo,

vielleicht habe ich meine Frage nicht klar formuliert (wegen meiner Sprachschwierigkeiten), versuche ich noch mal.
Also, es sollte einen Termin von einer Anwendung per Aktions-Schaltfläche in der Notes-Kalender übernommen werden.
Auf Domino 5 (Kalender-Template  StdR50Mail) funktionierte das ohne Problem.
Auf Domino 6 (Kalender-Template  iNotes6) werden alle gewünschte Daten richtig übernommen ausser Datum und Zeit.

Ich habe das Feld „StartDate“ ( Form „Appointment“) in der beiden Template verglichen und festgestellt, dass Vorgabewertformel, Eingabeumsetzungsformel, Eingabevalidierungsformel, und Scripts sind absolut gleich, trotzdem die Datum und Zeit in der V. 6 auf aktuelle überschrieben werden.

Vielen Dank für jeder Hilfe
Sofia

Glombi

  • Gast
Re:Notes-Kalender überschreibt Datum/Zeit auf aktuell...
« Antwort #2 am: 26.07.04 - 15:30:09 »
In der Maske Appointment ist unter R6 eine Menge Scriptcode. Du solltest versuchen, die Felder auch im Backend zu setzen, auch noch die Felder StartDateTime und EndDateTime.

Andreas

Offline sja

  • Senior Mitglied
  • ****
  • Beiträge: 328
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re:Notes-Kalender überschreibt Datum/Zeit auf aktuell...
« Antwort #3 am: 26.07.04 - 16:15:33 »
Vielen Dank Andreas, ich versuche’s.

Offline sja

  • Senior Mitglied
  • ****
  • Beiträge: 328
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re:Notes-Kalender überschreibt Datum/Zeit auf aktuell...
« Antwort #4 am: 26.07.04 - 17:05:30 »
volgendes habe ich gemacht, leider ohne Erfolg:
   ...
                Call uiDocM.FieldSetText("AppointmentType", "3")
   Call uiDocM.FieldSetText("EnterSendTo",  Einlad)
   Call uiDocM.FieldSetText("Subject", tmpSubject)
   Call uiDocM.FieldSetText("Location", tmpOrt)
   Call uiDocM.FieldSetText("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 =AnfangD & " " & AnfangZ
   docM.EndDateTime =EndeD & " " & EndeZ
   docM.StartDate = AnfangD
   docM.EndDate = EndeD
   docM.StartTime =AnfangZ
   docM.EndTime = EndeZ
   Call docM.Save( True, True )
   Call uiDocM.Save
   Call uiDocM.Close
                ...   

alles wird richtig übernommen ausser Datum und Zeit -> es wurde aktuelle Datum und Zeit genommen.
Oder habe ich das falsch gemacht ???

Vielen Dank für Hilfe
Sofia


Glombi

  • Gast
Re:Notes-Kalender überschreibt Datum/Zeit auf aktuell...
« Antwort #5 am: 26.07.04 - 17:10:10 »
ich würde nur ins Backend schreiben und noch VOR dem
Call docM.Save( True, True )
ein
Call docM.ComputeWithForm( false, false )
einbauen.

Das ganze UI Zeugs brauchst Du eigentlich gar nicht, wenn ich das richtig sehe.

Andreas

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Notes-Kalender überschreibt Datum/Zeit auf aktuell...
« Antwort #6 am: 26.07.04 - 17:15:33 »
Ich kann das jetzt aus Zeitmangel nicht Schritt für Schritt nachvollziehen, aber trotzdem ein paar Empfehlungen von mir:
Das Vermischen von FrontEnd- und BackEnd-Methoden bei der Erstellung oder Änderung eines Dokuments sind ein No-No. In Deinem konkreten Beispiel: Du erzeugst ein Dokument im FrontEnd - damit schlagen die entsprechenden FrontEnd-Events zu (hier lohnt sich dann ein Blick in die CoreEmailClasses, um zu sehen, was da noch so alles getrieben wird). Dann änderst Du Werte im Backend und speicherst diese ab. Schön und gut, aber im Frontend haben sich mittlerweile ganz andere Dinge ereignet. Dann speicherst Du im das Frontend-Dokument - und bügelst damit alles platt, was Du gerade im Backend gespeichert hast.
Also: Entweder alles im Frontend oder alles im Backend oder genau ermitteln, was wann wo passiert und gegeneinander abgleichen (nicht empfehlenswert !).

Wie gesagt: Nicht getestet, aber probier mal folgendes aus: Speichere erst das Frontend-Dokument und erst anschliessend das im Backend. Da wirst Du schon andere Resultate bekommen. Das mindert aber nicht meine Warnung, Front- und Backend-Methoden zu vermischen. Du arbeitest sonst mit zwei Instanzen. Vulgär ausgedrückt: Du reisst mit dem Arsch wieder ein, was Du gerade mit den Händen aufgebaut hast  ;)

HTH,
Bernhard

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Notes-Kalender überschreibt Datum/Zeit auf aktuell...
« Antwort #7 am: 26.07.04 - 17:16:34 »
Ich sehe gerade: ndreas hat mit anderen und kürzeren Worten gerade gleiches gepostet.

Bernhard

Offline sja

  • Senior Mitglied
  • ****
  • Beiträge: 328
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re:Notes-Kalender überschreibt Datum/Zeit auf aktuell...
« Antwort #8 am: 26.07.04 - 17:52:10 »
Andreas, vielen Dank für Deine Hilfe. Ich habe folgendes gemacht:

   Set db = New NotesDatabase( tmpSRV, tmpMAIL )
   Set docM = db.CreateDocument
   docM.Form = "Appointment"
   docM.AppointmentType = "3"
   docM.EnterSendTo = Einlad
   docM.Subject = tmpSubject
   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 =AnfangD & " " & AnfangZ
   docM.EndDateTime =EndeD & " " & EndeZ
   docM.StartDate = AnfangD
   docM.EndDate = EndeD
   docM.StartTime =AnfangZ
   docM.EndTime = EndeZ
   Call docM.ComputeWithForm( False, False )
   Call docM.Save( True, True )

Mit Debugger ausgeführt, alle Felder waren richtig angezeigt, nach ComputeWithForm( False, False ) wurden alle andere Felder angezeigt alles ohne Fehlermeldungen gelaufen. Nur weder Termin-Dokument im Kalender noch Einladung habe ich nicht gefunden.  ???

Sofia

Offline sja

  • Senior Mitglied
  • ****
  • Beiträge: 328
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re:Notes-Kalender überschreibt Datum/Zeit auf aktuell...
« Antwort #9 am: 26.07.04 - 18:43:57 »
Andreas,
Bernhard,

danke schön.

Habe doch das dokument in der Ansicht "Alle Dokumente" gefunden. Beim Versuch das zu öffnen, erschien folgende Fehlermeldung:
"Fehler beim Öffnen des Dokuments: Element des Dokuments nicht gefunden."
und nach "OK"
"Feld: „StartDate_2“: Falscher Datentyp für Operator oder @Funktion: Zeit/Datum erwartet"
Das Feld "StartDate_2" ist erst in V6 und wird zur Anzeige berechtnet.
Dann habe ich in dem Eigenschaften-Box die Felder StartDate, StartDateTime ... gekuckt. Die sind von Datentyp: "Textliste".
In normales Termin-Dokument sind die Felder von Datentyp "Zeit/Datum".

Wie bekomme ich das richtig?

Vielen Dank für Euro Hilfe
Sofia



Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Notes-Kalender überschreibt Datum/Zeit auf aktuell...
« Antwort #10 am: 26.07.04 - 19:32:05 »
Hm,
Code
docM.EndDateTime =EndeD & " " & EndeZ
ist aber auch ein String - Notes tat, wie ihm geheissen wurde  ;)

Mach' daraus mal daraus den richtigen Datentyp:
Code
docM.EndDateTime = CDat (EndeD & " " & EndeZ)

Alle anderen fraglichen Werte natürlich auch anpassen !

HTH,
Bernhard
« Letzte Änderung: 30.07.04 - 11:09:00 von koehlerbv »

Glombi

  • Gast
Re:Notes-Kalender überschreibt Datum/Zeit auf aktuell...
« Antwort #11 am: 26.07.04 - 19:40:54 »
Damit der Eintrag im Kalender angezeigt wird, muss das Feld "CalendarDateTime"  noch gesetzt werden.

Also
docM.CalendarDateTime = docM.StartDateTime

zuvor natürlich die von Bernhard angesprochenen CDat Operationen durchführen.

Andreas

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Notes-Kalender überschreibt Datum/Zeit auf aktuell...
« Antwort #12 am: 26.07.04 - 20:12:07 »
@Andreas: Genauso ist es.

Was mich an der ganzen Sache mehr als wundert: Alle Fehler schlagen in R5 exakt genauso zu - hier ist bisher nichts R6-typisches erkennbar ...

Bernhard

Glombi

  • Gast
Re:Notes-Kalender überschreibt Datum/Zeit auf aktuell...
« Antwort #13 am: 26.07.04 - 20:21:33 »
Hi Bernhard,

das wundert mich eigentlich auch, aber so genau habe ich mir die Unterschiede in der Maske zwischen R5 und R6 noch nicht angesehen.
Offenbar gibt es da im UI einige Änderungen.

Ich habe letztens eine VB Script programmiert, das Kalendereintrage aus Access in der Notes 6 Mail-DB macht. Da hat alles funktioniert, wenn es nur über das Backend läuft.

Andreas

Offline sja

  • Senior Mitglied
  • ****
  • Beiträge: 328
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re:Notes-Kalender überschreibt Datum/Zeit auf aktuell...
« Antwort #14 am: 30.07.04 - 10:11:54 »
Hallo,

Andreas.
Bernhard.
herzlichen Dank für Eure Hilfe.
Es sieht schon bei mir nicht schlecht aus mit der Ausnahme von zwei Problemchen, die ich unten beschreibe. Entschuldigung, dass ich mit der Verzögerung antworte, da ich die ganze Zeit voll mit dem IBM Content Manager beschäftig war.
Hier das Source

   Set db = New NotesDatabase( tmpSRV, tmpMAIL )
   Set docM = db.CreateDocument
   docM.Form = "Appointment"
   docM.AppointmentType = "3"
   docM.Subject = tmpSubject
   docM.Body = tmpBody
   docM.SendTo = Einlad

   docM.EnterSendTo = Einlad
   docM.RequiredAttendees = Einlad
   docM.AltRequiredNames = Einlad
   docM.tmpRequiredAttendees  = Einlad
   
   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.CalendarDateTime =Cdat(AnfangD & " " & AnfangZ)  ’für das Einzeige in der Ansicht „Calendar“
   Call docM.ComputeWithForm( False, False )
   Call docM.Save( True, True )
   Call docM.Send( False, Einlad )

Zwei Sachen kann ich nicht  kriegen:
1. (Wichtig für mich!)
Obwohl die Einladungen an den Eingeladenen geschickt wurden, sind die Empfänger in dem Dokument nicht eingezeigt. Nachdem, als ich das Feld
docM.RequiredAttendees = Einlad
gesetzt habe, sind die Eingeladenen in dem Dokument des Empfängers angezeigt worden, aber nicht in dem Dokument des Absenders.
Wenn ich das richtig verstehe, ist in der Maske „Appointment“ das berechnete Feld
                       itmpRequiredAttendees:
@If
      (
           NamePreference = "1" & @Trim(AltRequiredNames) != "";
   AltRequiredNames;
   @Trim(RequiredAttendees)
       )
dafür verantwortlich.

Dann habe ich in dem Script alle beteiligten Felder eingesetzt:
                docM.EnterSendTo = Einlad
                docM.RequiredAttendees = Einlad
   docM.AltRequiredNames = Einlad
   docM.tmpRequiredAttendees  = Einlad
und ohne Erfolg, die Eingeladene wurden nur in dem Dokument des Empfängers angezeigt, nicht in dem Dokument des Absenders.

2.
Die Dokumente erscheinen in dem $Inbox des Empfängers und in der Ansicht ($All) des Absenders mit dem Symbol 164 (privat) markiert:

iconTwo := @If(iconOne=124;0;CSisPrivate="1"; 164;  isImportant="1"; 150; 0);
CSisPrivate := @If(@IsUnavailable($PublicAccess) & @IsAvailable($CSVersion);"1";"0");

Ich habe folgendes versucht:
DocM.$PublicAccess = “1“
und bekam die Fehler
 72: Unexpected: $PublicAccess; Expected: Identifier
Dann habe ich folgendes versucht:
   tmp = $PublicAccess
   DocM.tmp = “1“
mit der Fehlermeldung:
   74: Illegal product constant:  PublicAccess
und ehrlich zu sagen, weiss nicht weiter.

Für weiteren Typ danke sehr.
Mit freundlichen Grussen
Sofia
« Letzte Änderung: 30.07.04 - 10:14:59 von sja »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Notes-Kalender überschreibt Datum/Zeit auf aktuell...
« Antwort #15 am: 30.07.04 - 11:12:45 »
Systemfelder, die mit einem Dollarzeichen beginnen, können nicht auf "herkömmliche " Weise angesprochen werden. Hierfür ist entweder ReplaceItemValue zu verwenden oder - einfacher - 'ne "Mathilde" davorzustellen:
doc.~$PublicAccess = "1"

HTH,
Bernhard

Offline sja

  • Senior Mitglied
  • ****
  • Beiträge: 328
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re:Notes-Kalender überschreibt Datum/Zeit auf aktuell...
« Antwort #16 am: 30.07.04 - 11:31:12 »
Hi Bernhard,

danke danke danke .... es hat geklappt, also das 2. Prob ist gelöst
 :)
und bleibt nur 1. -> die Eingeladenen werden nicht in dem Absender-Dokument angezeigt


Viele Grussen
Sofia
« Letzte Änderung: 30.07.04 - 11:35:09 von sja »

Offline sja

  • Senior Mitglied
  • ****
  • Beiträge: 328
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re:Notes-Kalender überschreibt Datum/Zeit auf aktuell...
« Antwort #17 am: 18.08.04 - 13:40:05 »
Hallo,

wenn jemand daran Interesse hat: das Problem mit Eingeladenen habe ich auf folgende Weise gelöst:

da das Feld "SendTo" nicht in der Maske "Appointment" enthalten ist, deswegen wird das auch nicht mit
Call docM.ComputeWithForm( False, False )
berechnet, vermute ich. Deshalb habe ich das Item erstellt

Dim item As NotesItem
Set item = docM.GetFirstItem( "SendTo" )

Damit sind alle meine Probleme in dem Fall erledigt.  :)

Noch mal vielen Dank für eure vorherige Hilfe

Gruesse
Sofia

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz