Autor Thema: Formel-Agent läuft und funktioniert bei Wiederholungen evtl. nicht mehr.  (Gelesen 2604 mal)

Offline Heiho2008

  • Frischling
  • *
  • Beiträge: 3
Hallo liebes Forum,

ich habe einen sehr einfachen Agenten in Formelsprache geschrieben (da mir Script nicht so liegt), der auch funktioniert, aber aus mir unerfindlichen Gründen plötzlich nicht mehr Ergebnisse ausgibt.

Der Agent soll eine Erinnungsmail generieren, wenn ein bestimmter Termin verstrichen ist. Die Erinnerungsmail soll an eine Notes-Adresse gehen, die in einem Namensfeld in einem Dokument genannt ist.  Der Agent soll periodisch in einer Domino 8.5.3FP4 Umgebung ausgeführt werden. Manchmal funktioniert der Agent und manchmal nicht. Im Agent-Protokoll steht wenn er nicht funktioniert, dass 0 Dokumente gefunden wurden, die die Suchkriterien erfüllen, obwohl entsprechende Dokumente vorhanden wären.

Wird im Agent z.B. eine unrelevante Änderung (z.B. ein Leerzeichen gelöscht) vorgenommen, dann kann es sein, dass der Agent funktioniert. Dieser sporadische Fehler tritt sowohl bei der Server-Ausführung als auch bei manueller Ausführung auf kann aber auch sporadisch in beiden Ausführungsvarianten funktionieren. Info: Der Server darf auch Mails versenden. Hat jemand eine Idee? Einen fast identischen Agenten setzen wir seit einigen Jahren ohne Probleme ein. Für mich sieht es nach einem Notes-Bug aus und ich weiß nicht mehr wo ich suchen soll.

Vielen Dank für eure Hilfe!

Grüße

Heiko

Hier der Code:

REM {Dieser Agent erstellt erinnerungen per E-Mail, wenn der Erledigungstermin unbearbeitet verstrichen ist. Die Fälligkeit und die Empfänger können unten ggf. angepasst werden.


REM {Hier werden die benötigten Felder aus der DB-Maske geholt und entsprechend vorgehaltenl};
FIELD K_Bediener := K_Bediener;
FIELD WVL_1 := WVL_1;
FIELD D_erledigt := D_erledigt;
FIELD T_Prüfungshandlung := T_Prüfungshandlung;
FIELD D_Nummer := D_Nummer;

REM {Hier wird die Fälligkeit festgesetzt z.B. -1 bedeutet: Ein Tag nach Fälligkeit lt. WVL aus dem Revisionsprotokoll};
faellig := @Adjust(@Today;0;0;-1;0;0;0);

REM {Hier wird geprüft, ob Wiedervorlage mit Fälligkeit übereinstimmt (Formel wird nur einmal bei Fälligkeit true/gültig) und ob das Protokoll noch nicht abgeschlossen ist durch ein leeres Erledigungsdatum.};
REM  {Wenn alles war ist, wird eine E-Mail generiert an die verantwortliche Stelle sowie obligatorisch aus Revisionsgründen an eine Protokoll-DB als Blindkopie. Die oben aus der Maske gezogenen Werte z.B. T_Prüfungshandlung werden in den E-Mail-Body eingebaut und es wird zum Schluss ein Link auf das entsprechende Dok angefügt.};
@If( faellig >= WVL_1 & D_erledigt = ""; @MailSend(K_Bediener;"";"$Log";"1. Erinnerung eines abgelaufenen Erlediungsprotokolls von der IR [al90]";"Ihr Erledigungsprotokoll  (Nr.: " + @Text(D_Nummer) + ") der Prüfungshandlung: ' " +@Text(T_Prüfungshandlung)+  "' ist zum "+ @Text(WVL_1) +" abgelaufen."  + @NewLine + @NewLine + "Bitte bearbeiten Sie das als Dokumentenlink angefügte Erledigungsprotokoll. Sollte eine Fristverlängerung* erforderlich sein, beantragen Sie diese bitte über den entsprechenden Button im Erledigungsprotokoll. "  + @NewLine  + @NewLine + "Ihr Vorgesetzter wird nach 5 Kalendertagen und der Vorstand nach 10 Kalendertagen bei Nichtbearbeitung automatisch informiert. "  + @NewLine  + @NewLine + "* Hinweis zur Fristverlängerung "  + @NewLine + "Bitte beachten Sie, dass bei der 1. Fristverlängerung ihr Vorgesetzter / Bereichsleiter eine Kopie der Verlängerung zur Kenntnis erhält. Sollte eine 2. Verlängerung notwendig sein, wird zusätzlich der Vorstand informiert. " + @NewLine  + @NewLine +"Hinweis: Diese Mail wurde elektronisch erstellt."  + @NewLine  + @NewLine +"Bitte klicken Sie auf den Dokumentenlink -->" ;"";[IncludeDoclink]);"");SELECT @All;

klaussal

  • Gast
Ich würde da mal ein paar @prompt`s einbauen, um zu sehen, was da vor sich geht.

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Ich würde schwer vermuten, dass im Feld K_Bediener kein eindeutiger Name steht, so dass eine "Ambigious"- Meldung kommen würde, dann bricht der Agent ab.
Ach ja: Diese ganzen FIELD- Anweisungen waren tatsächlich bis Version 5 nötig, seit Version 6 braucht man die aber nicht mehr.

Ich würde also diese Zeile:

FIELD K_Bediener := K_Bediener;

so ändern:

_bediener := K_Bediener + "@EureNotesDomain"

und dann natürlich weiter unten:

@Mailsend( _bediener ... ) statt @Mailsend( K_Bediener....

Damit bekommt zwar u.U. der Signer des Agenten einen Zustellfehler, wenn die Adresse nicht eindeutig ist, aber wenigstens läuft der Agent durch.

EDIT: Ach ja, dass die Anwendung eine Standard- Ansicht hat, davon gehe ich einfach mal aus, denn sonst funktioniert das Versenden von Mails mit IncludeDocLink ja gar nie, und nicht nur sporadisch nicht.
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Heiho2008

  • Frischling
  • *
  • Beiträge: 3
Vielen Dank für eure schnellen Antworten!

@Tode: Danke für den Tipp, ich werde es gleich ausprobieren bzw. testen.

Grüße

Heiko

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Was mich an den bisherigen Vorschlägen stört, ist die Aussage des Ursprungs-Posts: Tut der Agent nicht, dann meldet er im Agent-Protokoll, daß 0 Dokumente gefunden wurden, die den Suchkriterien entsprechen.
Ein Agent mit Code diesen Typs gibt *immer" die Gesamtanzahl aller Dokumente an, die in der DB sind. Hier ist also etwas ganz anderes faul. Beispielsweise: Er rennt nur auf "Neue oder geänderte Dokumente". Dann tut er wirklich nur auf diese - solange, bis der Agent selber geändert wurde - dann sind wieder alle Dokumente neu (ist ja auch ein "neuer" Agent ...).

Bernhard

Glombi

  • Gast
Was ist denn in den Agenteigenschaften eingestellt? Soll er über alle Dokumente laufen oder nur über geänderte Dokumente. Falls letzteres, würde es ja das Verhalten des Agenten erklären.

Andreas

Offline Heiho2008

  • Frischling
  • *
  • Beiträge: 3
Nach der Umsetzung von Todes Vorschlag mit der Änderung des Adressfelds hat der Agent ein Mal funktioniert und dann kam wieder der Fehler, dass 0 Dokumente gefunden wurden, die den Suchkriterien entsprechen.

Bernhard und Andreas hatten den richtigen Riecher! In den Agent-Eigenschaften war bei Ziel eingestellt: "Alle neuen und geänderten Dokumente". Nach der Umstellung auf "Alle Doks in der Datenbank" wurden viel mehr Doks gefunden (als je zuvor), die den Suchkriterien entsprechen und es wurden die erwarteten Mails versendet. Ich denke es müsste jetzt passen und ich werde testen... Rückmeldung folgt.  :)

Vielen Dank und ein schönes Wochenende.

Grüße

Heiko

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz