Autor Thema: Fehlerbehandlung beim Senden  (Gelesen 2263 mal)

Offline Lancelot

  • Senior Mitglied
  • ****
  • Beiträge: 357
  • Geschlecht: Männlich
  • Tu was Du willst, aber schade keinem!
Fehlerbehandlung beim Senden
« am: 18.02.08 - 08:45:07 »
Hey Leute,

ich habe einen Agent, der über eine Ansicht läuft, die nur Dokument enthält, die ein Wiedervorlagedatum haben.

Der Agent vergleicht das Wiedervorlagedatum mit dem heutigen Datum und wenn das Datum erreicht oder überschritten ist,
soll der Agent eine Mail an den im Dokument gespeicherten Mitarbeiter schicken.

Es kommt jedoch vor, dass einige Mitarbeiter bei uns beim Wiedervorlagenempfänger einen Namen eingeben, den es bei uns im
Adressbuch nicht gibt. Wie die das auch immer schaffen.

Jetzt soll der Agent aber nicht abgebrochen werden, sondern ich soll dem Admin eine Mail schicken, welches Doc
den falschen Mitarbeiter eingetragen hat und danach soll das nächste Doch in der View verarbeitet werden.

Ich habe es schon mit "On Error GoTo Fehler" versucht, aber da ich die Sprungmarke vor "End Sub" eingefügt habe, liest der Agent nicht das nächste Doc.

Was mache ich falsch.

Hier der Code:

While Not (doc Is Nothing)
      
      On Error Goto Fehler
      
      Set memo = New NotesDocument( db )
      memo.SaveMessageOnSend = False
      
      Const NotesMacro$ = "@Elements(wrpdate)"
      result = Evaluate(NotesMacro$, doc)
      resvar = result(0)-1
      i = 0
      
      SendToVar = doc.wrpname(i)
      
      Do While i <= resvar
         
         Set datetime2 = New NotesDateTime( doc.wrpdate( i ) )
         docdate = datetime2.dateonly      
         
         docyear = Year(docdate )
         docmonth = Month(docdate )
         docday = Day(docdate )
         y = (docyear*10000)+(docmonth*100)+(docday)
         
         If x >= y Then
            
            SendToVar = doc.wrpname(i)
            memo.Subject = "WIVO fällig: " + doc.wrpAusp(z) + " zu '" + doc.Projekt(0) + " / " + doc.Beschreiben(0) + "!"
            memo.form ="Memo"
            Set rtitem = New NotesRichTextitem(memo, "Body")
            memo.SendTo = SendToVar
            Call rtitem.appendText("Dieser Link führt Sie direkt zu Ihrer WIVO! "  &"   ---> ")
            Call rtitem.appendDocLink(doc, "Public\projektseg.nsf")
            Call memo.Send(True)
         End If
         zahl = zahl + 1
         i = i+1
         z=z+1
      Loop
      Set doc = View.GetNextDocument(doc)
      z=0
   Wend
   
Fehler:
   
   Set memo = New NotesDocument( db )
   memo.Subject = "FEHLER:   Der Agent ist nicht gelaufen!"
   memo.form ="Memo"
   memo.SendTo = "Admin Notes/segmueller/DE"
   Call memo.Send(True)
   
   
End Sub

Bin für jede Idee dankbar.  ;-)
Gruß Gerry (Lancelot)

klaussal

  • Gast
Re: Fehlerbehandlung beim Senden
« Antwort #1 am: 18.02.08 - 08:50:57 »
Ich habe das mal mit einem "On Error resume next" gelöst. Ist zwar nicht elegant, aber da es eine unbedeutende Anwendung ist, habe ich es mal so gelassen.

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Fehlerbehandlung beim Senden
« Antwort #2 am: 18.02.08 - 08:51:34 »
zum Bleistift


NextDoc:
     Set doc = View.GetNextDocument(doc)
      z=0
   Wend
   
Goto endofsub

Fehler:
   
   Set memo = New NotesDocument( db )
   memo.Subject = "FEHLER:   Der Agent ist nicht gelaufen!"
   memo.form ="Memo"
   memo.SendTo = "Admin Notes/segmueller/DE"
   Call memo.Send(True)
   goto NextDoc
   
endofsub:

End Sub
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Fehlerbehandlung beim Senden
« Antwort #3 am: 18.02.08 - 09:17:56 »
oder:

   wend
exit Sub
Fehler:

ich beende die Routine immer vor drm Errorhandler.

Grüsse

Dau-in

mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline Lancelot

  • Senior Mitglied
  • ****
  • Beiträge: 357
  • Geschlecht: Männlich
  • Tu was Du willst, aber schade keinem!
Re: Fehlerbehandlung beim Senden
« Antwort #4 am: 18.02.08 - 09:30:58 »
Danke Euch allen für die Beiträge.

Da alle Vorschläge funktionieren, muß ich mich jetzt für einen entscheiden.

Nochmals Danke!  ;-))
Gruß Gerry (Lancelot)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Fehlerbehandlung beim Senden
« Antwort #5 am: 18.02.08 - 09:44:20 »
Zu Andrés Vorschlag (dem ich ansonsten beipflichte) nur noch eine Anmerkung: Statt Goto NextDoc eine Resume NextDoc (um den Fehlerstatus auch richtig totzuschlagen).

Bernhard

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Fehlerbehandlung beim Senden
« Antwort #6 am: 18.02.08 - 10:01:49 »
Oh, danke Bernhard, Resume ist natürlich Richtig.
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline Lancelot

  • Senior Mitglied
  • ****
  • Beiträge: 357
  • Geschlecht: Männlich
  • Tu was Du willst, aber schade keinem!
Re: Fehlerbehandlung beim Senden
« Antwort #7 am: 18.02.08 - 10:08:23 »
Danke Bernhard,

mit "Resume Next" sieht es jetzt richtig elegant aus.  ;-)

So laß ich den Agent jetzt stehen.

Danke für Eure Hilfe!
Gruß Gerry (Lancelot)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz