View Full Version : Suche API: Bildschirm eines Benutzers
stadt-soltau
03-03-03, 10:47
Hallo, ich suche eine Möglichkeit, um für einen angemeldeten Benutzer einen Sitzungsnamen zu finden, an den dann eine Durchbruchsnachricht gesendet werden kann.
Bekannt ist nur der Benutzername, keine Jobnummer o.ä.
Vermutlich läuft die Suche auf ein API, rufbar aus einem CL-Programm hinaus.
Danke erstmal fürs Zuhören.
spontan fällt da mir nur ein, in einem cl-proggi
wrkusrjob BENUTZERNAME *active *print
den spool mit cpysplf in eine datei kopieren
die datei dann mit einem kleinen proggie auswerten
tschau ronald
<BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>
... auf ein API ...
[/quote]
QUSLJOB
http://publib.boulder.ibm.com/pubs/html/as400/v4r5/ic2924/index.htm?info/apis/qusljob .htm (http://publib.boulder.ibm.com/pubs/html/as400/v4r5/ic2924/index.htm?info/apis/qusljob.htm)
gibt in etwa dieselben infos wie WRKUSRJOB
<BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>
... rufbar aus einem CL-Programm hinaus
[/quote]
leider nicht, das API füllt einen user space
Gruß
Rolf
[Dieser Beitrag wurde von rmittag am 03. März 2003 editiert.]
Wenn es Dir nur darum geht eine Durchbruch-Nachricht an einen Benutzer zu schicken, kannst Du das API QEZSNDMG benutzen.
Rufst Du das API direkt von der Befehlszeile ohne Parameter auf, erhälst Du eine Eingabe-Maske.
Birgitta
hier ein kleines anregungsbeispiel
cl-proggie
[code]
pgm (&user &msg)
/* Variablen deklarieren */
dcl &user *char 10
dcl &msg *char 100
/* Work-File löschen */
dltf qtemp/userjob
monmsg cpf0000
/* Work-File erstellen */
crtpf qtemp/userjob rcdlen(132)
monmsg cpf0000
/* Benutzer-Jobs ermittel */
wrkusrjob &user *active *print
/* SpoolFile kopieren */
cpysplf qpdspsbj qtemp/userjob splnbr(*last)
/* SpoolFile löschen */
dltsplf qpdspsbj splnbr(*last)
/* Msg senden */
call sendmsg (&user &msg)
endpgm
</font><HR><pre>
</BLOCKQUOTE>
und hier das rpg-proggie sendmsg
[code]
h dftactgrp(*no) bnddir('QC2LE')
fuserjob if f 132 disk
d system pr 10i 0 extproc('system')
d * value options(*string)
d user s 10a Benutzer
d msg s 100a Nachricht
d cmdstring s 255a
iuserjob rm 01
i 1 132 zeile
c *entry plist
c parm user
c parm msg
c
c read userjob
c dow not %eof(userjob)
c if %scan('INTER':zeile) > *zeros
c eval cmdstring = 'sndbrkmsg ''' +
c %trimr(msg) + ''' ' +
c %subst(zeile:4:10)
c callp system(cmdstring)
c
c endif
c read userjob
c enddo
c
c eval *inlr = *on
</font><HR><pre>
</BLOCKQUOTE>
tschau ronald
[Dieser Beitrag wurde von malzusrex am 03. März 2003 editiert.]