PDA

View Full Version : DTAARA, MSG und CL



Q_SYS
15-04-09, 09:19
hallo gemeinde,

folgende situation: an einer bestimmten stelle der dateibeschreibung, sagen wir an der 8., steht eine 3-stellige information, die ich a.) gerne mit folgende message als breakmessage versenden möchte:" sie arbeiten aktuell in firma xxx!" und b.) würde ich diese information gerne in einer DTAARA abstellen, da ich später mit einer IF-schleife darauf gehe. das ganze muss in einem CL passieren - wie mache ich das?
konkret: wie muss ich das SNDPGMMSG aufbauen, damit diese 3-stellige info mitgeht und wie packe ich die info in eine DTAARA? vermutlich muss ich eine variable (DCL?) füllen, die dann später ausgelesen wird??? fragen, nix als fragen...

danke schon jetzt für eure zahlreichen und hilfreichen tipps...

kuempi von stein
15-04-09, 09:30
Hallo,

zeige doch mal, was Du schon hast.
Dann könnte man da ansetzen.
Ansonsten hier noch ein link zu den Handbüchern.
http://publib.boulder.ibm.com/infocenter/iseries/v5r3/topic/pdf_table/launcher.htm

Gruß

kuempi

Pikachu
15-04-09, 09:55
Vielleicht in etwa so?

NAME muß natürlich durch den jeweiligen Datei- bzw. Datenbereichsnamen ersetzt werden.


PGM
DCL VAR(&MSG) TYPE(*CHAR) LEN(512)
DCL VAR(&MSGQ) TYPE(*CHAR) LEN(10)
DCL VAR(&TEXT) TYPE(*CHAR) LEN(50)
DCL VAR(&FIRMA) TYPE(*CHAR) LEN(3)
MONMSG MSGID(CPF0000)

RTVJOBA JOB(&MSGQ)
RTVOBJD OBJ(NAME) OBJTYPE(*FILE) TEXT(&TEXT)
CHGVAR VAR(&FIRMA) VALUE(%SST(&TEXT 8 3))
CHGVAR VAR(&MSG) VALUE('Sie arbeiten aktuell in +
Firma' *BCAT &FIRMA *CAT '!')
SNDBRKMSG MSG(&MSG) TOMSGQ(&MSGQ)
CRTDTAARA DTAARA(NAME) TYPE(*CHAR) LEN(100)
CHGDTAARA DTAARA(NAME (1 3)) VALUE(&FIRMA)
RTVDTAARA DTAARA(NAME (1 3)) RTNVAR(&FIRMA)
IF COND(&FIRMA *EQ '890') THEN(DO)
SNDBRKMSG MSG(OK) TOMSGQ(&MSGQ)
ENDDO
ENDPGM

Q_SYS
15-04-09, 10:04
yep, genau so! vielen dank!!!!

Q_SYS
16-04-09, 09:23
nochmal vielen dank, hat super perfekt funktioniert!

ich würde nun gerne keine durchbruchsnachricht senden, sondern, wenn das *PGM durch ist, in der letzten zeile des bildschirms unten diese msg ausgeben (SNDPGMMSG ?). funktioniert aber nur, wenn ich F12 betätige, dann erscheint am unteren bildschirmrand die nachricht, geht das auch anders? quasi, statt einer durchbruchsnachricht, eine "bildschirmnachricht", direkt am DSP.

danke nochmal für eure hilfe!!!

kuempi von stein
16-04-09, 09:34
Doch, bei mir macht SNDPGMMSG genau das was du sagst.
Nämlich nach Programmende steht da unten etwas in der Zeile.


SNDPGMMSG MSG(TEST)

k.

Q_SYS
16-04-09, 09:35
bei mir erst nach F12

SNDPGMMSG (blablabla) TOPGMQ(*PRV)