Das Notes Forum
Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Holgi3389 am 14.09.10 - 09:16:53
-
Hallo alle zusammen,
ich bin absoluter Neuling in der Programmierung von Lotus Script und ich habe die Aufgabe etwas damit umzusetzten und brauche dafür professionelle Hilfe. :)
Wir haben eine Datenbank in der ein Termin für einen 6-Wochencheck erstellt wird für einen Kundendienstmitarbeiter. Beim erstellen soll ein Agent ausgeführt werden, der dem Mitarbeiter eine Einladung zu einer Besprechung für diesen Termin per Mail sendet. Ich habe schon versucht mich da etwas rein zu arbeiten, aber bisher ohne Erfolg.
Würde mich über Hilfe freuen.
MFG Holgi
-
ich habe die Aufgabe etwas damit umzusetzten und brauche dafür professionelle Hilfe. :)
Dein Budget?
Ich habe schon versucht mich da etwas rein zu arbeiten, aber bisher ohne Erfolg.
Würde mich über Hilfe freuen.
Deine Frage lautet?
Empfohlene Lektüre: http://www.tty1.net/smart-questions_de.html#explicit
-
An Deiner Stelle würde ich in 2 Schritten an die Aufgabe gehen.
Zuerst baust Du Dir ein Script, das eine beliebige Mail verschickt. Informationen dazu findest Du in der Hilfe und bestimmt auch hier im Forum.
Funktioniert das, sendest Du manuell eine Besprechungseinladung, so wie sie vom Agenten gesendet werden soll. Von dieser Mail schaust Du Dir bevor die geöffnet wurde die Felderliste an (Eigenschaften Dokument, 2. Reiter), vergleichst die mit der Felderliste des per Script versendeten und erweiterst Dein Script um alle fehlenden Felder.
-
An Deiner Stelle würde ich in 2 Schritten an die Aufgabe gehen.
Zuerst baust Du Dir ein Script, das eine beliebige Mail verschickt. Informationen dazu findest Du in der Hilfe und bestimmt auch hier im Forum.
Funktioniert das, sendest Du manuell eine Besprechungseinladung, so wie sie vom Agenten gesendet werden soll. Von dieser Mail schaust Du Dir bevor die geöffnet wurde die Felderliste an (Eigenschaften Dokument, 2. Reiter), vergleichst die mit der Felderliste des per Script versendeten und erweiterst Dein Script um alle fehlenden Felder.
Danke da habe ich wenigstens schonmal einen Ansatz für die Aufgabe
-
Ich habe es jetzt bereits soweit das eine Mail per Agent abgeschickt wird, nun bin ich dabei eine Besprechungseinladung daraus zu machen.....soweit klappt auch alles nur wenn ich die Mail dann öffne dann kommt folgende Fehlermeldung:
"Fehler beim Öffnen des Dokuments: Element des Dokuments nicht gefunden"
Allerdings wird es geöffnet nur nicht ganz richtig...das sieht dann so aus:
(http://s3.directupload.net/images/100915/kweds626.jpg) (http://www.directupload.net)
Folgende Frage: Habe ich etwas im Script vergessen oder liegt es an einer Einstellung die ich irgendwo vornehmen muss
Hier ist der derzeitige Script
Dim session As NotesSession
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim db As NotesDatabase
Dim thedoc As Notesdocument ' Das Originaldokument
Dim maildoc As NotesDocument 'Maildokument
Set session = New NotesSession
Set db = session.CurrentDatabase
Set uidoc = ws.CurrentDocument
Set thedoc = uidoc.Document
'Erstelle Mail
Set maildoc = db.CreateDocument
maildoc. Form = "Notice"
maildoc.AppointmentType = "3"
maildoc.tmpAppointmentType = "3"
maildoc.tmpAppointmentType_1 = "3"
maildoc.tmpUseLongDate = "0"
maildoc.tmpStartTime ="07:00:00"
maildoc.tmpEndTime = "07:30:00"
maildoc.tmpStartDate = thedoc.DatumKD_6WC_erstellt_1
maildoc.tmpEndDate = thedoc.DatumKD_6WC_erstellt_1
maildoc.Subject = thedoc.Firma
maildoc.SendTo = thedoc.Mitarbeiter
maildoc.Organizer = thedoc.Mitarbeiter
maildoc.chair = thedoc.Mitarbeiter
'Sende Mail
Call maildoc.Send(False)
-
Bist Du sicher, dass Du die Felderliste des manuell gesendeten Dokumentes im geschlossenen und noch nie geöffneten Dokument abgeglichen hast? (Felderliste aus der Ansicht öffnen, nicht aus dem geöffneten Dokument!)
Feldnamen wie tmp_AppointmentType und tmp_AppointmentType_1 sehen mir stark nach berechneten oder zur Anzeige berechneten Feldern aus.
Wenn das Dokument, das Du sendest, exakt die gleichen Felder und die gleichen Feldinhalte (einschließlich Typen der Felder) hat, kann da nichts passieren. Du musst also wirklich ganz penibel alle Felder und Feldeigenschaften miteinander vergleichen.
-
Kann gut sein das es daran liegt....ich hatte das Dokument gerade geöffnet zum Vergleichen....war mein Fehler
Muss ich den auch alle Felder mit $ vorweg im Script mit eintragen wie z.B. $Alarm
-
Du musst die Felder in den Dokumenten wirklich miteinander vergleichen. Es gibt Felder, die sind automatisch dabei (z.B. $UpdatedBy, $Revisions usw.), andere nicht. Das per Script versendete Dokument sollte wirklich identisch sein.
Falls Du ein Feld mit einem $ setzen musst, verwende
Call doc.ReplaceItemValue ("$Name", neuerwert)
doc.$Name = neuerwert
funktioniert nämlich nicht.
Aus dem Kopf kann ich Dir leider auch nicht sagen, welche Felder Du brauchst, und welche nicht. Dazu hast Du ja eine funktionierende Anwendung (die manuelle Einladung), die Du nur zu kopieren brauchst.
-
Aber es funktioniert
doc.~$Name = neuerwert
Bernhard
-
Aber es funktioniert
doc.~$Name = neuerwert
Bernhard
hab ich so ausprobiert und es funktioniert
das mit der besprechungseinladung funktioniert jetzt auch....das einzigste problem was ich noch habe ist mit dem datum und der zeit....in der maske in der der agent ausgeführt wird ist ein feld indem ein datum ausgewählt werden kann für den entsprechenden geplante termin....ich bekomme es nur nicht hin das dieses datum dann auch in der einladung genommen wird.....desweiteren soll die uhrzeit festgelegt werden....ich habe es mit zwei verschieden werten probiert, da ich nicht wusste ob man datum und zeit verbinden kann. mein versuch sieht wie folgt aus:
Dim StartDatum As New NotesDateTime("thedoc.DatumKD_6WC_erstellt_1")
Dim EndDatum As New NotesDateTime("thedoc.DatumKD_6WC_erstellt_1")
Dim StartUhrzeit As New NotesDateTime("07:00:00")
Dim EndUhrzeit As New NotesDateTime("07:30:00")
maildoc.StartDate = StartDatum.lsLocaltime
maildoc.StartTime = StartUhrzeit.lsLocaltime
maildoc.StartDateTime = StartDatum.lsLocaltime
maildoc.EndDate = EndDatum.lsLocaltime
maildoc.EndTime = EndUhrzeit.lsLocaltime
maildoc.EndDateTime = EndDatum.lsLocaltime
muss ich die uhrzeit extra machen, da es in der maske nur ein datumsfeld gibt? und warum nimmt er die werte nicht für die einladung....ist ein fehler in dem script?
-
Ich wiederhole mich ungern, aber Du musst dafür sorgen, dass die Felder identisch sind. Wenn es nicht so klappt, wie es soll, muss es einen Unterschied in den Felderlisten zwischen funktionierendem und nicht funktionierendem Dokument geben.
Dieser Teil des Scriptes kann nicht funktionieren:
Dim StartDatum As New NotesDateTime("thedoc.DatumKD_6WC_erstellt_1")
Dim EndDatum As New NotesDateTime("thedoc.DatumKD_6WC_erstellt_1")
Korrekt wäre
Dim StartDatum As New NotesDateTime(thedoc.DatumKD_6WC_erstellt_1 (0))
Dim EndDatum As New NotesDateTime(thedoc.DatumKD_6WC_erstellt_1 (0))
Vielleicht ist das schon alles, was fehlt ...
-
die Meldung hatte ich hier:
http://atnotes.de/index.php/topic,39081.0.html (http://atnotes.de/index.php/topic,39081.0.html)
auch und das ComputeWithForm war die Lösung (Antwort 1 von Peter).