Autor Thema: Besprechungseinladung aus Datenbank  (Gelesen 3264 mal)

Offline Holgi3389

  • Frischling
  • *
  • Beiträge: 14
  • Geschlecht: Männlich
Besprechungseinladung aus Datenbank
« 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

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Besprechungseinladung aus Datenbank
« Antwort #1 am: 14.09.10 - 09:26:58 »
ich habe die Aufgabe etwas damit umzusetzten und brauche dafür professionelle Hilfe. :)
Dein Budget?

Zitat
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
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Besprechungseinladung aus Datenbank
« Antwort #2 am: 14.09.10 - 09:32:05 »
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.

Offline Holgi3389

  • Frischling
  • *
  • Beiträge: 14
  • Geschlecht: Männlich
Re: Besprechungseinladung aus Datenbank
« Antwort #3 am: 14.09.10 - 09:49:51 »
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

Offline Holgi3389

  • Frischling
  • *
  • Beiträge: 14
  • Geschlecht: Männlich
Re: Besprechungseinladung aus Datenbank
« Antwort #4 am: 15.09.10 - 11:52:23 »
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:


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)   

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Besprechungseinladung aus Datenbank
« Antwort #5 am: 15.09.10 - 12:22:56 »
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.

Offline Holgi3389

  • Frischling
  • *
  • Beiträge: 14
  • Geschlecht: Männlich
Re: Besprechungseinladung aus Datenbank
« Antwort #6 am: 15.09.10 - 12:28:31 »
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

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Besprechungseinladung aus Datenbank
« Antwort #7 am: 15.09.10 - 12:42:49 »
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.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Besprechungseinladung aus Datenbank
« Antwort #8 am: 15.09.10 - 12:46:42 »
Aber es funktioniert

doc.~$Name = neuerwert

Bernhard

Offline Holgi3389

  • Frischling
  • *
  • Beiträge: 14
  • Geschlecht: Männlich
Re: Besprechungseinladung aus Datenbank
« Antwort #9 am: 15.09.10 - 14:49:51 »
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?
« Letzte Änderung: 15.09.10 - 14:56:12 von Holgi3389 »

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Besprechungseinladung aus Datenbank
« Antwort #10 am: 15.09.10 - 15:51:44 »
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 ...

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Besprechungseinladung aus Datenbank
« Antwort #11 am: 15.09.10 - 16:54:51 »
die Meldung hatte ich hier:
http://atnotes.de/index.php/topic,39081.0.html
auch und das ComputeWithForm war die Lösung (Antwort 1 von Peter).
Gruß
Demian

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz