Autor Thema: Doclink in Reminder einfügen per LS  (Gelesen 3328 mal)

Offline Alexis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 534
  • Geschlecht: Männlich
  • LotusNotes macht süchtig!
Doclink in Reminder einfügen per LS
« am: 15.09.04 - 16:15:01 »
Hallo Forum,

mühsam ist es mir gelungen aus einem Querysave eines Dokumentes einen "Reminder" in den Kalender etwa mit folgenden Code zu setzen.  

Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim session As notessession
Dim db As notesdatabase
Dim ws As notesuiworkspace
Dim view As notesview
Dim doc As notesdocument

Dim db2 As New NotesDatabase ("Mailserver",Mailbox)
Dim uidoc2 As NotesUIDocument
Dim dbserver As String
dbserver = db2.server
dbfilename=db2.filepath
Set ws = New notesuiworkspace
Set uidoc2 = ws.ComposeDocument (dbserver,dbfilename,"Appointment")
StartDate=source.FieldGetText("DueDate")
Call uidoc2.FieldSetText("AppointmentType","4")
Call uidoc2.Reload
Call uidoc2.FieldSetText("Subject","Reminder")
Call uidoc2.FieldSetText("StartDate", StartDate)
Call uidoc2.FieldSetText("Body", Chr(10) & "Today is Due Date for …… ”)
Call uidoc2.FieldSetText("AppointmentType", "Reminder")
Call uidoc2.Save()
Call uidoc2.Close()
End Sub

Nun möchte ich gern auch noch den Link zurück auf das erzeugende Dokument mit in den Reminder übertragen.

Mein Bemühen aus dem Forum mittels der Beispiele für doclink den weiteren Code zu generieren ist kläglich an Unkenntnis gescheitert. Kann mir jemand unter die Arme greifen?

Alexis
« Letzte Änderung: 13.12.04 - 15:09:05 von Alexis »
wenn ich kein Problem hätte, wär' ich nicht hier ---
wenn ich im Forum eine Lösung gefunden hätte, wär' ich nicht hier ---
wenn ich nicht wüsste, dass mir hier fast immer geholfen wird, wär' ich AUCH nicht hier ---

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Doclink in Reminder einfügen per LS
« Antwort #1 am: 15.09.04 - 18:55:11 »
Hi,

du erstellst das Kalender-Dokument mittels Frontend-Methoden. Besser ist es das Ganze mit Backend-Funktionen zu realisieren. Dann kannst du auch problemlos einen Doclink einfügen. Ich hab so was mal für Aufgaben gemacht.
Die Umstellung auf ein Kalender-Dokument sollte kein Problem darstellen.

Hier ein Code-Auszug:

Zitat
...

Dim rtitem As NotesRichTextItem

...
'Prüfen ob Mail-DB vorhanden
Set maildb = New NotesDatabase("","")
Call maildb.OpenMail
If Not maildb.IsOpen Then
   Messagebox "Mail-Datenbank kann nicht geöffnet werden." + Chr$(10) + "Es wird keine Aufgabe erstellt.", 16, "Adressen"
   Exit Sub
End If  'If Not maildb.IsOpen Then

'Neue Aufgabe erstellen
Set taskdoc = New NotesDocument(maildb)
taskdoc.Form = "Task"
Call taskdoc.ComputeWithForm(True, True)

taskdoc.Subject = "Aufgabe zu einem Vorgang"
   
'Anlegen und füllen des Richtextfeldes
Set rtitem = taskdoc.CreateRichTextItem("Body" )
Call rtitem.AppendText("Hier kommt der Doclink")   
Call rtitem.AddNewLine(2)
Call rtitem.AppendText("Vorgang -> ")   
Call rtitem.AppendDocLink(doc, "")

Call taskdoc.Save(True,False)

...

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Alexis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 534
  • Geschlecht: Männlich
  • LotusNotes macht süchtig!
Re:Doclink in Reminder einfügen per LS
« Antwort #2 am: 16.09.04 - 11:53:09 »
Hallo,

mein Script sieht derzeit so aus:

Dim rtitem As NotesRichTextItem
         Dim maildb As NotesDatabase
         Dim Mailbox As String
         Dim uidoc As notesuidocument
         Dim doc As NotesDocument
         Dim workspace As notesuiworkspace
         Dim currentdoc As NotesDocument
         Set workspace = New notesuiworkspace
         Set uidoc = workspace.currentdocument  
         Set doc = uidoc.Document  
         
         ID=source.FieldGetText("ID_Owner")      
         Mailbox="Mail\ABC" & ID & ".NSF"
         
'Prüfen ob Mail-DB vorhanden
         Set maildb = New NotesDatabase("Mail007.XYZ.COM","Mailbox")
         Call maildb.OpenMail
         If Not maildb.IsOpen Then
            Messagebox "Mail-Datenbank kann nicht geöffnet werden." + Chr$(10) + "Es wird keine Aufgabe erstellt.", 16, "Adressen"
            Exit Sub
         End If  'If Not maildb.IsOpen Then
         
'Neue Aufgabe erstellen
         Set taskdoc = New NotesDocument(maildb)
         taskdoc.Form = "Task"
         Call taskdoc.ComputeWithForm(True, True)
         
         taskdoc.Subject = "Aufgabe zu einem Vorgang"
         
'Anlegen und füllen des Richtextfeldes
         Set rtitem = taskdoc.CreateRichTextItem("Body" )
         Call rtitem.AppendText("Hier kommt der Doclink")  
         Call rtitem.AddNewLine(2)
         Call rtitem.AppendText("Vorgang -> ")  
         Call rtitem.AppendDocLink(doc, "Dokumentenlink")
         
         Call taskdoc.Save(True,False)

Leider kommt in der vorletzten Zeile die Fehlermeldung:
<Could't get default view id for database> hoch.

Was fehlt da noch?

Alexis
wenn ich kein Problem hätte, wär' ich nicht hier ---
wenn ich im Forum eine Lösung gefunden hätte, wär' ich nicht hier ---
wenn ich nicht wüsste, dass mir hier fast immer geholfen wird, wär' ich AUCH nicht hier ---

Driri

  • Gast
Re:Doclink in Reminder einfügen per LS
« Antwort #3 am: 16.09.04 - 12:04:01 »
Hat die Datenbank denn eine Standardansicht ? Sonst gibts Probleme bei verschiedenen Funktionen.

Offline Alexis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 534
  • Geschlecht: Männlich
  • LotusNotes macht süchtig!
Re:Doclink in Reminder einfügen per LS
« Antwort #4 am: 16.09.04 - 12:06:30 »
Die Datenbank hat noch keine Standard-View, kann sie  aber sofort einrichten und teste den Vorgang abermals.

Alexis
« Letzte Änderung: 16.09.04 - 12:09:16 von Alexis »
wenn ich kein Problem hätte, wär' ich nicht hier ---
wenn ich im Forum eine Lösung gefunden hätte, wär' ich nicht hier ---
wenn ich nicht wüsste, dass mir hier fast immer geholfen wird, wär' ich AUCH nicht hier ---

Offline Alexis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 534
  • Geschlecht: Männlich
  • LotusNotes macht süchtig!
Re:Doclink in Reminder einfügen per LS
« Antwort #5 am: 16.09.04 - 12:13:32 »
Hallo Driri,

das war's.

Vielen Dank für den Tipp.

Alexis
wenn ich kein Problem hätte, wär' ich nicht hier ---
wenn ich im Forum eine Lösung gefunden hätte, wär' ich nicht hier ---
wenn ich nicht wüsste, dass mir hier fast immer geholfen wird, wär' ich AUCH nicht hier ---

Offline Alexis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 534
  • Geschlecht: Männlich
  • LotusNotes macht süchtig!
Re:Doclink in Reminder einfügen per LS
« Antwort #6 am: 16.09.04 - 14:18:16 »
Hallo Forum,

leider ist der Fall doch noch nicht abgeschlossen.

Die Verbindung mit einem Task-Eintrag klappt, ich möchte aber einen Reminder-Eintrag generieren. Also setze ich Form = "Appointment" und AppointmentType = "4" (siehe Code). Nun erhalte ich die vielsagende Fehlermeldung: Validation failed.

Dim rtitem As NotesRichTextItem
         Dim maildb As NotesDatabase
         Dim Mailbox As String
         Dim uidoc As notesuidocument
         Dim doc As NotesDocument
         Dim workspace As notesuiworkspace
         Dim currentdoc As NotesDocument
         Set workspace = New notesuiworkspace
         Set uidoc = workspace.currentdocument  
         Set doc = uidoc.Document  
         
         ID=source.FieldGetText("ID_Owner")      
         Mailbox="Mail\ABC" & ID & ".NSF"
         
'Prüfen ob Mail-DB vorhanden
         Set maildb = New NotesDatabase("Mail007.XYZ.COM","Mailbox")
         Call maildb.OpenMail
         If Not maildb.IsOpen Then
            Messagebox "Mail-Datenbank kann nicht geöffnet werden." + Chr$(10) + "Es wird keine Aufgabe erstellt.", 16, "Adressen"
            Exit Sub
         End If  'If Not maildb.IsOpen Then
         
'Neue Aufgabe erstellen
         Set taskdoc = New NotesDocument(maildb)
         taskdoc.Form = "Appointment"
taskdoc.appointmenttype = "4"

         Call taskdoc.ComputeWithForm(True, True)
         
         taskdoc.Subject = "Aufgabe zu einem Vorgang"
         
'Anlegen und füllen des Richtextfeldes
         Set rtitem = taskdoc.CreateRichTextItem("Body" )
         Call rtitem.AppendText("Hier kommt der Doclink")  
         Call rtitem.AddNewLine(2)
         Call rtitem.AppendText("Vorgang -> ")  
         Call rtitem.AppendDocLink(doc, "Dokumentenlink")
         
         Call taskdoc.Save(True,False)

Weiss jemand den Grund?

Alexis
wenn ich kein Problem hätte, wär' ich nicht hier ---
wenn ich im Forum eine Lösung gefunden hätte, wär' ich nicht hier ---
wenn ich nicht wüsste, dass mir hier fast immer geholfen wird, wär' ich AUCH nicht hier ---

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Doclink in Reminder einfügen per LS
« Antwort #7 am: 16.09.04 - 16:59:08 »
Hi,

Wann erhälst du den die Fehlermeldung? Bestimmt beim Speichern, richtig?

Wahrscheinlich ist eines der Felder nicht oder nicht richtig gefüllt. Wie ich das sehe, hast du mein Beispiel fast 1-zu-1 übernommen. Da das aber nur ein Beispiel für das einfügen eines Doclinks war fehlen da noch so einige Felder.

In deinem ersten Posting hast du ja noch so Felder wie DueDate, StartDate und AppointmentType gesetzt. Versuche mal die Felder entsprechend zu setzen.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Alexis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 534
  • Geschlecht: Männlich
  • LotusNotes macht süchtig!
Re:Doclink in Reminder einfügen per LS
« Antwort #8 am: 16.09.04 - 17:49:57 »
Hallo Axel,

Dein Code war mir grad recht!

Beim Experimentieren ging's mir drum:

1. Statt Task-Eintrag den Reminder-Eintrag (AppointmentType=4) zu generieren. Beim ersteren habe ich keinerlei Probleme gesehen.

2. Einige Felder zu übergeben.

Ich werde Deinem Rat folgend alle Felder noch einmal in Ruhe checken, erst Recht ob es sich dabei um Mussfelder handelt.

Alexis
« Letzte Änderung: 16.09.04 - 17:51:46 von Alexis »
wenn ich kein Problem hätte, wär' ich nicht hier ---
wenn ich im Forum eine Lösung gefunden hätte, wär' ich nicht hier ---
wenn ich nicht wüsste, dass mir hier fast immer geholfen wird, wär' ich AUCH nicht hier ---

Offline Alexis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 534
  • Geschlecht: Männlich
  • LotusNotes macht süchtig!
Re:Doclink in Reminder einfügen per LS
« Antwort #9 am: 18.09.04 - 22:32:22 »
Hi @all,

die Krux lag an der Übergabe der Datumsfelder! Die Formatierung ist (für mich) wirklich ein Buch mit 7 Siegeln.

Allen Tippgebern ein Dankeschön. Meine Aufgabenstellung ist nunmehr bestens gelöst.

alexis
wenn ich kein Problem hätte, wär' ich nicht hier ---
wenn ich im Forum eine Lösung gefunden hätte, wär' ich nicht hier ---
wenn ich nicht wüsste, dass mir hier fast immer geholfen wird, wär' ich AUCH nicht hier ---

Offline Alexis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 534
  • Geschlecht: Männlich
  • LotusNotes macht süchtig!
Re: Doclink in Reminder einfügen per LS
« Antwort #10 am: 13.12.04 - 14:47:14 »
Hallo Forum,

meine Euphorie war etwas zu laut. Die Funktion klappt bestens nur dass ich neben dem Eintrag als Reminder auch noch einen Eintrag als Mail Draft erhalte, was von mir nicht gewünscht ist.

Hat jemand eine Idee woran das liegt?

Hier der betreffende Code-Ausschnitt:

Set taskdoc = New NotesDocument(maildb)
         taskdoc.Form = "Appointment"
         taskdoc.appointmenttype = "4"     
         taskdoc.ReplaceItemValue "$Alarm", 1
         taskdoc.ReplaceItemValue "$AlarmMemoOptions", "2"
         taskdoc.ReplaceItemValue "$AlarmSendTo", UName
         taskdoc.ReplaceItemValue "$AlarmDescription",  subject
         taskdoc.ReplaceItemValue "$AlarmSound", "Defsound"
         taskdoc.ReplaceItemValue  "ViewIcon",    "67" 
         taskdoc.Alarms= "1"
         taskdoc.Principal = UName
         taskdoc.StartDateTime = Cdat(duedate)
         taskdoc.StartDate = Cdat(duedate)
         taskdoc.StartTime=Cdat(duedate)
         taskdoc.EndDate=Cdat(duedate)
         taskdoc.Endtime=Cdat(duedate)
         taskdoc.EndDateTime=Cdat(duedate)
         taskdoc.CalendarDateTime=Cdat(duedate)
         taskdoc.Subject = "Action Item Reminder"
         Set rtitem = taskdoc.CreateRichTextItem("Body")         
         Call rtitem.AddNewLine(2)
         Call rtitem.AppendText("Action Item No. " & aino & " has a Due Date for Today")   
         Call rtitem.AddNewLine(2)
         Call rtitem.AppendText("Use Link to Action Item in SupportLineTool - Database --> ")   
         Call rtitem.AppendDocLink(doc, "Document Link")
         Call taskdoc.ComputeWithForm(True, True)
         Call taskdoc.Save(True,True)

Alexis
wenn ich kein Problem hätte, wär' ich nicht hier ---
wenn ich im Forum eine Lösung gefunden hätte, wär' ich nicht hier ---
wenn ich nicht wüsste, dass mir hier fast immer geholfen wird, wär' ich AUCH nicht hier ---

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Doclink in Reminder einfügen per LS
« Antwort #11 am: 13.12.04 - 14:54:48 »
Hi,

füge die fettgedruckte Zeile an die entsprechende Stelle in deinen Code ein. Dann sollte das funktionieren.

...
taskdoc.ReplaceItemValue "$AlarmSound", "Defsound"
taskdoc.ReplaceItemValue  "ViewIcon",    "67" 
taskdoc.Alarms= "1"
taskdoc.Principal = UName
taskdoc.ExcludeFromView = "D"
taskdoc.StartDateTime = Cdat(duedate)
...


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Alexis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 534
  • Geschlecht: Männlich
  • LotusNotes macht süchtig!
Re: Doclink in Reminder einfügen per LS
« Antwort #12 am: 13.12.04 - 15:08:17 »
@Alex,

Super! Woher wisst Ihr das immer :o.

Danke

Alexis
wenn ich kein Problem hätte, wär' ich nicht hier ---
wenn ich im Forum eine Lösung gefunden hätte, wär' ich nicht hier ---
wenn ich nicht wüsste, dass mir hier fast immer geholfen wird, wär' ich AUCH nicht hier ---

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Doclink in Reminder einfügen per LS
« Antwort #13 am: 13.12.04 - 15:10:26 »
Super! Woher wisst Ihr das immer :o.

Alexis, noch nicht gemerkt, dass wir alle Dir über die Schultern schauen ......  ;D
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Doclink in Reminder einfügen per LS
« Antwort #14 am: 13.12.04 - 15:19:57 »
Super! Woher wisst Ihr das immer :o.

Ich hatte das gleiche Problem. Da hab' ich mit auf Entdeckertour in die Mail-Schablone begeben. Da findet man so einiges. unter anderem auch die berühmte "Stecknadel im Codehaufen".  ;)


Axel

Ohne Computer wären wir noch lange nicht hinterm Mond!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz