PDA

View Full Version : Journalreceiver Abhängedatum im CL auslesen



Seiten : [1] 2

becama
15-02-18, 09:57
Hi *all,

wie kommt man am besten das Abhängedatum eines Receivers? Ich möchte es im CL auslesen und dann evtl. den/die uralten Receiver löschen.

Danke

KingofKning
16-02-18, 10:07
Was hälst Du denn von DSPJRNRCVA?

In Spool-Datei und dann Datei im CL auslesen

GG 4488

becama
16-02-18, 12:14
Den holprigen Umweg über ne Spoolfile wollte ich nicht gehen. Evtl. gibt es ja die Infos in irgendwelchen Systemtabellen, die ich anzapfen kann.

Fuerchau
16-02-18, 13:03
Journalreceiver sind keine Table-Objekte. Vor allem wenn sie abgehängt sind haben sie ja nochnicht mal einen Journalbezug.

becama
16-02-18, 13:19
Schade, aber irgendwo muss die Kiste das doch ablegen. Aber nur wo? Und vor allem, wie kommt man dran? Über ne API?

Christian Bartels
16-02-18, 13:38
API QjoRtvJrnReceiverInformation hilft, aber dazu muss das CL-Programm als ILE-Programm erstellt werden (Befehl: CRTBNDCL).

Der Beispielcode könnte so aussehen:

DCL VAR(&RECEIVER) TYPE(*CHAR) LEN(20)
DCL VAR(&BUFFER) TYPE(*CHAR) LEN(512)
DCL VAR(&BUFLEN) TYPE(*INT)
DCL VAR(&DETDATE) TYPE(*CHAR) LEN(13)
...
CHGVAR VAR(&RECEIVER) VALUE('RECEIVER LIBRARY ')
CHGVAR VAR(&BUFLEN) VALUE(512)
CALLPRC PRC('QjoRtvJrnReceiverInformation') +
PARM((&BUFFER *BYREF) (&BUFLEN *BYREF) +
(&RECEIVER *BYREF) ('RRCV0100' *BYREF))
CHGVAR VAR(&DETDATE) VALUE(%SST(&BUFFER 109 13))

...

Mit freundlichen Grüßen,
Christian Bartels.

BenderD
16-02-18, 13:49
Hi *all,

wie kommt man am besten das Abhängedatum eines Receivers? Ich möchte es im CL auslesen und dann evtl. den/die uralten Receiver löschen.

Danke

... Abhängezeitpunkt und create Zeitpunkt des Folgereceivers sind identisch - denk mal drüber nach. DSPOBJD und RTVOBJD kennst Du ja hoffentlich...

D*B

becama
16-02-18, 14:14
DANKE den Vorschlag mit dem API probiere ich mal aus.

Der Vorschlag mit DSPOBJD ist auch geil, man muss nur das Erstellungsdatum in ODCDAT und die Zeit ODCTIM nehmen und der lfd. Nr. des Journalrcv 1 subtrahieren.

Schon hat man den Namen des Receivers den man löschen kann, sofern er in das Zeitfenster passt, das man löschen will. Bingo

DANKE Guru Bender :) und schönes Wochenende

B.Hauser
16-02-18, 15:32
Bevor Du Dir allerdings mit dem API die Fingerchen brichst, oder zunächst mit einem CL-Befehl eine Tabelle/Datei generierst und dann darauf zugreifst, prüfe ob die die UDTF Object_Statistics in der Bibliothek QSYS2 nicht die gewünschten Informationen liefert.

Beispiel: Anzeige aller Journal Receiver auf dem System:

Select x.* from Table(Object_Statistics('*ALL', '*JRNRCV')) x
Order By ObjLib, ObjName;

Birgitta

becama
16-02-18, 15:54
WOW so etwas hatte ich mir erhofft. Danke Birgitta!!

Allerdings greift bei mir der select ins Leere. Und die Spalte ObjLib gibt's nicht. Ich mach das im grünen SQL unter 6.1.