Autor Thema: Sub Terminate wird nicht abgearbeitet  (Gelesen 1431 mal)

cubetoon

  • Gast
Sub Terminate wird nicht abgearbeitet
« am: 04.11.05 - 15:47:27 »
Hallo liebe Leidensgenossen :-)
Ich bin gerade einmal wieder beim debuggen der IBM Standard-Templates. Im speziellen dem Newsletter-Agent des R6 Teamrooms.
Mein Problem ist hier, dass dieses (soweit habe ich es nun schon herausgefunden) den Sub Terminate nicht ausführt, was zur Ffolge hat, das alle Dokumente aus sicht des Agents weiterhin unprocessed sind und somit beim nächsten Agentlauf wieder alle Dokumente als neue Dokumente vermailt.
Nun habe ich (testweise) in einer Datenbank die dafür verantwortliche Funktion an das Ende der Sub Initialize gestellt - ab dem Moment funktioniert das ohne Probleme.
Welche Gründe kann es geben, dass der Sub Terminate gar nicht angetriggert wird? Hier geht es wie gesagt um den ganz normalen Newsletter-Agent im Teamroom, da ist nichts customized.
Vielen Dank,
Christian

PS: für diejenigen, die die Prozedur nicht auswendig kennen:

Code
Sub Terminate
	If Not (failed) Then
		Set collection = db.UnprocessedDocuments
		For n = 1 To collection.Count
			Set note = collection.GetNthDocument(n)
			Call s.UpdateProcessedDoc(note)
		Next
		
	End If     
End Sub

Failed wird im Fehlerfall (onError) auf True gesetzt ansonsten ist es immer False

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Sub Terminate wird nicht abgearbeitet
« Antwort #1 am: 05.11.05 - 00:57:15 »
Dem Terminate-Event traue ich auch nicht über den Weg, ich muss aber ehrlich sagen, dass ich das schlicht nicht brauche, sondern alles gezielt im eigentlichen Code abfackle.

Was Dein Problem angeht: Warum die Aufgabe denn nicht wirklich im Terminate abhandeln ? Und: Wird Terminate überhaupt nicht angesprungen (oder mag da der Debugger - eben wegen dem Terminate - nur nicht mehr ?) Was sagt eine Messagebox an der Stelle ? Wie ist Failed wirklich belegt ?

Wegen des Codes an sich: Du erreichst das Ziel wesentlich performanter mit NotesDocumentCollection.UpdateAll als über eine Schleife.

An Deinen weiteren erfahrungen bin ich sehr interessiert - wie gesagt, Terminate ignoriere ich für gewöhnlich ... (was ggf. sträflich ist)

Bernhard

cubetoon

  • Gast
Re: Sub Terminate wird nicht abgearbeitet
« Antwort #2 am: 07.11.05 - 11:51:15 »
Hallo Bernhard,
ich glaube ich schließe den Test mit der Erfahrung ab, dass ich den Sub Terminate niemals verwenden werden.
Was habe ich also rausgefunden:
1. Sub Terminate wird abgearbeitet
2. failed = false - die Schleife wird also begonnen
3. dann scheint es jedoch so als ob die collection nichts vernüftiges zurück gibt bzw. leer ist.
4. Auch die nochmalige Variablendeklaration innerhalb des Terminate-Sub hilft da nicht weiter
Vernüftiges Debugging scheint hier leider nicht möglich. Nur Prompt und Messagebox.
Daher bleibe ich bei meinem einleitenden Satz und vergesse, dass es den Sub Terminate überhaupt gibt - es sei denn jemand weiß noch einen Grund.
Christian

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Sub Terminate wird nicht abgearbeitet
« Antwort #3 am: 07.11.05 - 12:01:24 »
Jetzt sehe ich erst, wo der Hund begraben liegt: In einem Agent kannst Du eine NotesDocumentCollection über UnprocessedDocuments nur einmal bilden - danach sind sie für den Agent nicht mehr Unprocessed.
Ich sehe allerdings nach wie vor keinen Grund, für das UpdateAll das Terminate-Event herzunehmen. Wenn Du das doch machen willst / musst, dann deklariere die Collection für den Agent global und instantiiere sie im Initialize.

HTH,
Bernhard

cubetoon

  • Gast
Re: Sub Terminate wird nicht abgearbeitet
« Antwort #4 am: 07.11.05 - 12:17:13 »
das klingt logisch - wie eingangs erwähnt ist der Mist ja nicht mal bei mir entstanden. Der Script ist im Original Teamroom Template der Version 6 so enthalten und die User beschweren sich eben, dass sie täglich über alle - und nicht nur die neuen Dokumente informiert werden. Dem wollte ich dann mal auf den Grund gehen.
Insofern habe ich nun aber generelle bedenken über die Funktionalität des Agents. Denn dort wird pro Newsletter - Abonement eine neue Suche innerhalb der UnprocessedDocuments durchgeführt - demzufolge bekommt nur der erste überhaupt eine Mail ...
Interessant, hat das IBM getestet. No Matter - wir nutzen die Funktion nicht wirklich, war nur interessehalber. Dennoch gut zu wissen!
Christian

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Sub Terminate wird nicht abgearbeitet
« Antwort #5 am: 07.11.05 - 14:08:56 »
Schau dir den Agent mal genauer an. In der Regel hängt es daran, das er an ein Dokument kommt bei dem er nicht genug Rechte hat um das zu lesen, dann bricht er nämlich ohne Vorwarnung ab.
Da hab ich mal lange daran rumgetüftelt bis ich rausbekommen hab woran das liegt.

Grundsätzlich ist der Newsletter Agent sowieso schrott, weil er nämlich auch nicht zwischen neuen und geänderten Dokumenten unterscheidet. Das hab ich mal sehr grundlegend geändert.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline mrtachles

  • Frischling
  • *
  • Beiträge: 34
  • Geschlecht: Männlich
    • Die ECOBoys
Re: Sub Terminate wird nicht abgearbeitet
« Antwort #6 am: 07.11.05 - 17:18:05 »
Hi,

für 6.5.1 habe ich von IBM für den deutschen Client mal die Info bekommen, besser nix in das Terminate-Event einzubauen...

Wir hatten dabei immer einen Red-Screen, wenn das Event zum zweiten Mal (also beim verlassen des zweiten Docs) ausgeführt wurde.

Gruss
Thomas

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz