PDA

View Full Version : CPF Messages in CL beantworten



THH
30-01-08, 07:31
Hallo alle zusammen
hoffe einer kann mir helfen.

Ich habe ein CL - Programm,
welches mir Spools - als E-mail versendet.
das ganze ist DataQ. gesteuert.

aus Timing gründen (Spool wird per
Remoute-Outq gesendet)
und das Programm lauft durch das Triggern an, obwohl die Spool noch nicht fertig ist)

dan steht der Job im Msgw und muss mit
"R" beantwortet werden,
dieses "R" möchte ich im CL setzen,
damit ich nicht immer den job anschauen muss.

Globale Replaylist fällt aus, da ich nur
diesen einen job so behandeln will

vielen dank

Fuerchau
30-01-08, 08:03
Es geht nur über globale Antwortliste.
Allerdings zieht diese nur, wenn dein Job per CHGJOB auch auf automatische Beantwortung gestellt ist.

Schau dir mal bei der CPF-Nachricht genau die Feldinhalte an (DSPMSGD). Dann kannst du ggf. in der Antwortliste per Vergleichswert die Antwort auf dein Programm beschränken.

kuempi von stein
30-01-08, 09:33
Hallo,

wo genau platzt denn die Meldung auf?
Im CLP?

Dann könnte man doch entweder (Falls das nicht Massenware ist und zeitkritisch) eine kleine Wartezeit (5 Sekunden oder so) einbauen...

oder den Fehler mit MONMSG abfangen und im Loop laufen lassen.

Wenn das im RPG passiert, könnte man den Fehler ähnlich abfangen und nen Loop programmieren.

So einen Loop dann natürlich mit Zähler, um Endloslauf abzufangen...

k.

THH
30-01-08, 09:51
Die meldung kommt nach dem Aufruf des
"Externen" CLP (call mailsend)
dieses ist ein CLP wo allerdings nur objekte da sind.
eine globale schleife kommt nicht in farge, da es ca 12000 Mails(Auftragsbestätigungen, Versandbestätigung usw) pro tag sind und wenn do immer ne Pause ist dann kommen diese der Menge wegen nicht mehr durch automatische Replay fällt aus, da genau diese Meldungen auch anderweitig auftauchen, und do dürfen sie nicht automatisch beantwortet werden.
Loop auf CPF geht auch nicht, da der job im Subsystem lauft, und somit
stehen bleibt und beantwortet werden will.
Leider keine passende lösung, weiss jemand noch eine (zb mit RCVMSG und RPYLE) mur welche parameter sind dort zu setzen ?

Gruss
THH

BenderD
30-01-08, 10:06
Hallo,

das ist doch immer dasselbe, das HKG Prinzip hat wieder mal zugeschlagen. Am elegantesten wäre es natürlich, wenn man den close des Spoolfiles mitbekommen würde, was aber bei der remote outq möglicherweise schwierig wird.
Auf die Schnelle fällt mir nur ein die Logik dahingehend zu ändern, das man einen steuernden Job schreibt, der per Spool APIs fertige EInträge ermittelt und dann den jetzigen Worker anschiebt (und soweit man dies bisher nicht tut, den Spool löscht, oder in eine ArchivQ verschiebt).

mfg

Dieter Bender


Die meldung kommt nach dem Aufruf des
"Externen" CLP (call mailsend)
dieses ist ein CLP wo allerdings nur objekte da sind.
eine globale schleife kommt nicht in farge, da es ca 12000 Mails(Auftragsbestätigungen, Versandbestätigung usw) pro tag sind und wenn do immer ne Pause ist dann kommen diese der Menge wegen nicht mehr durch automatische Replay fällt aus, da genau diese Meldungen auch anderweitig auftauchen, und do dürfen sie nicht automatisch beantwortet werden.
Loop auf CPF geht auch nicht, da der job im Subsystem lauft, und somit
stehen bleibt und beantwortet werden will.
Leider keine passende lösung, weiss jemand noch eine (zb mit RCVMSG und RPYLE) mur welche parameter sind dort zu setzen ?

Gruss
THH

Fuerchau
30-01-08, 14:10
Wenn an eine OUTQ eine DTAQ angehängt wird, gibt's einen DTAQ-Eintrag nur, wenn der Spool geschlossen ist, und auf den Status RDY geht !

Prüfe mal, ob dein Programm nicht erst dann getriggert werden kann. Dann gibt's diese Probleme gar nicht.

Du kannst auch per RTVSPLFA-API erst den Status des Spools abfragen, bevor du die weitere Verarbeitung durchführst.

Eine automatische Beantwortung mit "R" kann die CPU-Last sehr schnell auf 100% ansteigen lassen, da der Fehler sich ja nicht innerhalb weniger Millisekunden beheben läßt.

Prüfe also dein Design.