Domino 9 und frühere Versionen > ND8: Entwicklung
Agent arbeitet Dokumente ab - verschiebt aber nicht alle z.B. in einen Ordner
ThomasM:
Hallo zusammen,
ich bin mittlerweille zum alle vier Jahre Programmierer verkommen.
Und sollte nun mal wieder ein kleines Progrämmle schreiben. ist mir auch soweit gelungen
nur verarbeiter der Agent (LotusScript) nicht alle Dokumente in einer bestimmten View.
Was soll erreicht werden:
- Mails gehen ein in eine Mail-in-Db
- spezielle View in welcher nur Dokumente mit einem bestimmten Betreff gelistet werden
- der Agent soll nun diese abarbeiten, ein Antwortmail senden und danach in bestimmte Ordner verschieben und als gelesen markieren
was er nicht tut:
- es waren zwei mails in der view enthalten, beide wurden abgearbeitet
- nur eines war im gesendet
- nur eines war im Ordner "Sperrmüllanmeldung benatwortet"
- beide sind im Ordner "Sperrmüllanmeldung" aber nur eines als gelesen markiert
Woran kann es liegen?
Hier ist der Code
Dim session As New NotesSession
Dim ndb As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument, docMemo As NotesDocument
Set ndb = session.CurrentDatabase
Set view = ndb.GetView( "(AnfageUnBeantwortet)" )
Set doc = view.GetFirstDocument
Set docmemo = New NotesDocument( ndb )
view.AutoUpdate = False
While Not(doc Is Nothing)
If Not doc.beantwortet(0)= "ja" Then
docMemo.Form = "Memo"
docMemo.sendto = doc.from(0)
docMemo.From = "abfallberatung@landkreis-tuttlingen.de"
docMemo.ReplyTo = "abfallberatung@landkreis-tuttlingen.de"
docMemo.Subject = "Ihre Sperrmuellanmeldung"
Set nrit = New NotesRichTextItem( docMemo, "Body" )
Call nrit.AppendText( "Wir haben Ihre Sperrmüll-Anmeldung erhalten." )
Call nrit.AddNewLine( 2 )
Call nrit.AppendText( "In der Woche vor der Sammlung werden Sie von der Firma Alba benachrichtigt," )
Call nrit.AddNewLine( 1 )
Call nrit.AppendText( "wann bei Ihnen die sperrigen Abfälle abgeholt werden." )
Call nrit.AddNewLine( 1 )
Call nrit.AppendText( "Die Abholung erfolgt spätestens 3 - 4 Wochen nach ihrer Anmeldung," )
Call nrit.AddNewLine( 1 )
Call nrit.AppendText( "kann aber je nach Tourenplanung auch schon früher erfolgen. " )
Call nrit.AddNewLine( 2 )
Call nrit.AppendText( "Am Abfuhrtag stellen Sie den Sperrmüll bitte bis spätestens 6.00 Uhr" )
Call nrit.AddNewLine( 1 )
Call nrit.AppendText( "an den Gehwegrand zur Abholung bereit." )
Call nrit.AddNewLine( 1 )
Call nrit.AppendText( "Holz, Elektrogeräte und Sperrmüll bitte getrennt bereitstellen. Es wird" )
Call nrit.AddNewLine( 1 )
Call nrit.AppendText( "mit drei Fahrzeugen gesammelt die zu unterschiedlichen Zeiten kommen." )
Call nrit.AddNewLine( 2 )
Call nrit.AppendText( "Wenn Sie noch Fragen haben, wenden Sie sich bitte an die Abfallberatung:" )
Call nrit.AddNewLine( 1 )
Call nrit.AppendText( "Tel 07461-926 6000" )
Call nrit.AddNewLine( 1 )
Call nrit.AppendText( "Fax 07461-926 99 6000" )
Call nrit.AddNewLine( 1 )
Call nrit.AppendText( "abfallberatung@landkreis-tuttlingen.de" )
Call nrit.AddNewLine( 1 )
Call nrit.AppendText( "www.abfall-tuttlingen.de" )
Call docMemo.Save( True , False, True )
Call docMemo.MarkRead()
Call docMemo.PutInFolder( "Sperrmüllanmeldung beantwortet" )
Call docMemo.Send(True)
Call doc.PutInFolder( "Sperrmüllanmeldung" )
doc.beantwortet = "ja"
Call doc.Save( True, False, True )
Call doc.MarkRead()
End If
Set doc = view.GetNextDocument(doc)
Call view.Refresh
Wend
Vielen Dank schon im voraus.
koehlerbv:
Was auf den ersten Blick auffällt:
Vor der Schleife hast Du ein NotesView.AutoUpdate = False.
In der Schleife hast Du ein NotesView.Refresh.
Meinst Du nicht, dass das ein wenig gaga ist?
Bernhard
ThomasM:
Hallo Bernhard,
danke für die schnelle Antwort.
ja, wahrscheinlich ist es gaga!
Den refresh hab ich vorher eingebaut um nen versuch zu starten dem Problem Herr zu werden.
Thomas
Peter Klett:
Dim session As New NotesSession
Dim ndb As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument, docMemo As NotesDocument
Set ndb = session.CurrentDatabase
Set view = ndb.GetView( "(AnfageUnBeantwortet)" )
Set doc = view.GetFirstDocument
Set docmemo = New NotesDocument( ndb )
view.AutoUpdate = False
While Not(doc Is Nothing)
If Not doc.beantwortet(0)= "ja" Then
Set docmemo = New NotesDocument( ndb )
docMemo.Form = "Memo"
...
Damit hättest Du schon einmal die ersten beiden Fehler behoben.
koehlerbv:
Peter, was sollte da stören (ausser, dass es auch "gaga" ist und Bewegung im RAM bedeutet)?
Thomas: Was beobachtest Du im Debugger? Ich (und sicherlich auch andere) haben derzeit schlicht keine Zeit, Deinen Fall nachzustellen. Vielleicht ist der Fehler auch offensichtlich, aber ich derblicks derzeit nicht auf Anhieb.
Bernhard
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln