Hello Bernhard,
thank you for your time and reply!
I didnt explain what i wanted in a good way - sorry :)
I opened a Ticket and they helped me with that:
:SET &ACTIVE_COUNT# = GET_UC_SETTING (QUEUE,"CLIENT_QUEUE",ACTIVE_COUNT)
:PRINT &ACTIVE_COUNT#
Now i made my "SCRI.CHECK_QUEUE_ACTIVITY" with that solution :)
If someone found this and need a SCRI to check if one ore more QUEUES are empty to go on in a JOBP or whatever - here is my CHECK SCRI for thatMy VARA VARA.PARAMETER
Key VALUE1 VALUE2SHOP1_QUEUE_ABBRUCH_ZEIT 10:35 HH:MM
SHOP1_QUEUE_LISTE CLIENT_QUEUE#SHOP1_BSP_QUEUE
SHOP1_QUEUE_SUM_ERL_OBJ_ANZAHL 0
SHOP1_QUEUE_PRUEINTERVALL 60
:RSET &VARANAME# = 'VARA.PARAMETER'
:RSET &VERFAHREN# = 'SHOP1'
:RSET &QUEUE_ABBRUCH_ZEIT# = GET_VAR(&VARANAME#,"&VERFAHREN#_QUEUE_ABBRUCH_ZEIT")
:RSET &ZEITFORMAT# = GET_VAR(&VARANAME#,"&VERFAHREN#_QUEUE_ABBRUCH_ZEIT",2)
:RSET &JETZT_HHMM# = SYS_TIME_PHYSICAL('&ZEITFORMAT#')
:RSET &QUEUE_ERL_OBJKT_SUM# = GET_VAR(&VARANAME#,"&VERFAHREN#_QUEUE_SUM_ERL_OBJ_ANZAHL")
:RSET &QUEUE_PRUEF_INTERVA# = GET_VAR(&VARANAME#,"&VERFAHREN#_QUEUE_PRUEINTERVALL")
! Queue Liste ermitteln und in Array packen
:SET &QUEUELISTE# = GET_VAR(&VARANAME#,"&VERFAHREN#_QUEUE_LISTE",2)
:DEFINE &ARR_QLISTE#,STRING,30
:FILL &ARR_QLISTE#[] = STR_SPLIT(&QUEUELISTE#,"#")
:RSET &ARR_USED# = LENGTH(&ARR_QLISTE#[],SIZE)
:PRINT ****
! Initialparameter für WHILE-Schleife setzen
:SET &PRUEFUNG_AKTIV# = "JA"
:SET &CNT# = 1
! So lange die Prüfung &PRUEFUNG_AKTIV# ("JA") aktiv ist durchlaufen wir immer wieder alle &QUEUELISTE# Objekte
:WHILE &PRUEFUNG_AKTIV# = "JA"
: PRINT " ____________________________________"
: PRINT "| &ARR_QLISTE#[&CNT#] Infos:"
: PRINT "|____________________________________"
: SET &ACTIVE_COUNT# = GET_UC_SETTING (QUEUE,"&ARR_QLISTE#[&CNT#]",ACTIVE_COUNT)
: SET &ACTIVE_COUNT# = FORMAT(&ACTIVE_COUNT#)
: PRINT "| Aktive Objekte: &ACTIVE_COUNT#"
: SET &CONSIDER_ERT# = GET_UC_SETTING (QUEUE,"&ARR_QLISTE#[&CNT#]",CONSIDER_ERT)
: SET &CONSIDER_ERT# = FORMAT(&CONSIDER_ERT#)
: PRINT "| CONSIDER_ERT: &CONSIDER_ERT#"
: SET &MAX_SLOTS# = GET_UC_SETTING (QUEUE,"&ARR_QLISTE#[&CNT#]",MAX_SLOTS)
: IF ISNUMERIC(&MAX_SLOTS#) = "Y"
: SET &MAX_SLOTS# = FORMAT(&MAX_SLOTS#)
: ENDIF
: PRINT "| MAX_SLOTS: &MAX_SLOTS#"
: SET &PRIORITY# = GET_UC_SETTING (QUEUE,"&ARR_QLISTE#[&CNT#]",PRIORITY)
: SET &PRIORITY# = FORMAT(&PRIORITY#)
: PRINT "| Priorität: &PRIORITY#"
: SET &STATE# = GET_UC_SETTING (QUEUE,"&ARR_QLISTE#[&CNT#]",STATE)
: SET &STATE# = FORMAT(&STATE#)
: PRINT "| Status: &STATE#"
: PRINT
! Alle aktiven Objekte aller Queues addieren:
: SET &SUMME_AKTIVER_OBJ# = &SUMME_AKTIVER_OBJ# + &ACTIVE_COUNT#
: SET &SUMME_AKTIVER_OBJ# = FORMAT(&SUMME_AKTIVER_OBJ#)
: IF &CNT# = &ARR_USED#
! &CNT# jetzt wieder auf 1 setzen damit von vorne alle Queues durchgeprüft werden
: SET &CNT# = 1
: IF &SUMME_AKTIVER_OBJ# > &QUEUE_ERL_OBJKT_SUM#
: PRINT "!! In Summe gibt es &ACTIVE_COUNT# aktive Objekte. Erlaubt sind &QUEUE_ERL_OBJKT_SUM# !!"
: SET &JETZT_HHMM# = SYS_TIME_PHYSICAL('&ZEITFORMAT#')
: IF &JETZT_HHMM# >= &QUEUE_ABBRUCH_ZEIT#
: SET &PRUEFUNG_AKTIV# = "NEIN"
: PRINT "Wir warten nur bis &QUEUE_ABBRUCH_ZEIT# Uhr und die Zeit ist vorbei. Patchverarbeitung wird,"
: PRINT "trotz &SUMME_AKTIVER_OBJ# aktiver Objekte, fortgesetzt!!"
: ELSE
: PRINT " ---------> &QUEUE_PRUEF_INTERVA# Sekunden bis zur nächsten Prüfung warten [max. bis: &QUEUE_ABBRUCH_ZEIT#Uhr]"
: WAIT &QUEUE_PRUEF_INTERVA#
: ENDIF
: ELSE
: PRINT "!! Erlaubt sind &QUEUE_ERL_OBJKT_SUM# aktive Objekte. Derzeit aktiv sind: &SUMME_AKTIVER_OBJ# !!"
: PRINT "Beende Script und fahre mit Patchmanagement fort"
: SET &PRUEFUNG_AKTIV# = "NEIN"
: ENDIF
: SET &SUMME_AKTIVER_OBJ# = 0
: ELSE
: SET &CNT# = &CNT# + 1
: ENDIF
:ENDWHILE
Original Message:
Sent: 12-16-2019 03:22 AM
From: Bernhard Flegel
Subject: How to count Object in Queues
Hello Thomas,
I think the easiest way would be an SQL-Query like this:
select eh_queue,
eh_status,
msgtx_text,
count(*) as "Number"
from eh, msgtx
where
eh_status = msgtx_msg_idnr
and msgtx_msgl_short = 'E'
--and msgtx_msgl_short = 'D' <- for german messagetext
group by eh_queue,eh_status,msgtx_text;
Best regards
Bernhard
------------------------------
Landeshauptstadt München
Original Message:
Sent: 12-13-2019 02:53 AM
From: Thomas Hartmann
Subject: How to count Object in Queues
Hi,
i search a way to count object - active, waiting, ..... - in a Queue Object.
Hope someone has an idea :)
Right now i have to wait until a queue is empty.
Thanks
Thomas