PDA

View Full Version : Bibliothek im CLP ermitteln



HDuernfeld
13-11-08, 17:18
Guten Abend allerseits,
ich muss in einem CL-Programm ermitteln, ob eine mir bekannte Bibliothek im Benutzerteil der Bibliotheksliste enthalten ist oder nicht.
Ich könnte über RTVJOBA USRLIBL(&MVVAR) den kompletten Benutzerteil der Bibliotheksliste ermitteln und mir die max. 25 Bibliotheken auslesen.
So richtig elegant ist das nicht, deshalb suche ich nach einer anderen Lösung.
Wer weiß Rat?
Danke im Voraus, Hans.

Fuerchau
13-11-08, 17:23
Mach einfach einen RTVOBJD mit *LIBL eines dir bekannten Objekts dieser Lib.
Bekommst du einen Fehler (MONMSG) ist die Lib in der USRLIBL.

Max. 25 ?
Bis zu 250 sind aktuell möglich!

HDuernfeld
13-11-08, 17:37
Hallo Baldur,
es handelt sich um zwei Bibliotheken mit identischen Objekten (Nachrichtendateien), jeweils in einer anderen Sprache.
Das Risiko, dass mir dann irgendeiner ein von mir zusätzlich hinzugefügtes Objekt einmal löscht, wollte ich eigentlich nicht eingehen.
Trotzdem vielen Dank für den Denkanstoß.
LG, Hans

JP
13-11-08, 18:46
Hallo,

ich habe da das API QUSRJOBI aufgetrieben. Mit dem Format JOBI0700 können Informationen zur Bibliotheksliste eines aktiven Jobs abgerufen werden.

siehe

http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=/apis/qusrjobi.htm

retrieving current lib [Archive] - Code400 -The Support Alternative (http://www.code400.com/forum/archive/index.php?t-1226.html)

HDuernfeld
13-11-08, 20:03
Vielen Dank Jörg,
die Informationen zur Bibliotheksliste bekomme ich im CL-Programm gut rein.
Dann habe ich aber eine unbestimmte Menge an Bibliotheken und muss diese erst aus der Liste extrahieren, ehe ich ermitteln kann, ob die bekannte Bibliothek nun in der Liste ist oder nicht.
Leider hilft mir also das API nicht wesentlich weiter.
LG, Hans

B.Hauser
14-11-08, 06:21
noch eine Quick und Dirty-Methode:

1. versuche die Bibliothek, nach der Du suchst mit ADDLIBLE in die Bibliotheksliste hinzuzufügen und anschliessend über MONMSG CPF2103 (Bibliothek &1 in Bibliotheksliste bereits vorhanden.) abfangen.
2. Konnte die Bibliothek problemlos in die Bibliotheksliste eingefügt werden, einfach mit RMVLIBLE wieder entfernen.


ADDLIBLE LIB(&MyLib) POSITION(*LAST)
MONMSG MSGID(CPF2103) EXEC(DO)
/* Bibliothek in Bibliotheksliste vorhanden */
GOTO CMDLBL(WEITER)
ENDDO

RMVLIBLE LIB(&MYLIB)
MONMSG MSGID(CPF0000)

WEITER:


Birgitta

Khholm
14-11-08, 06:34
es könnte auch gehen:

ein RTVMSG mit einer bekannten Meldung. Da es sich um Nachrichtendateien in jeweils einer anderen Sprache handelt. einfach den Meldungstext prüfen

Karl-Heinz

Fuerchau
14-11-08, 07:22
Wenn du schon per RTVJOBA die USRLIBL (25/250 Einträge) abfragst, kannst du diese ja auch per QCLSCAN durchsuchen, schließlich ist jeder Eintrag 11 Zeichen lang, also mindestens mit 1 Leerzeichen getrennt.

HDuernfeld
14-11-08, 09:32
Hallo Baldur,
vielen Dank für den Hinweis auf QCLSCAN.
Damit funktioniert es jetzt tadellos.
Sehr gut ist, dass ich von der Anzahl der vorhandenen Bibliotheken im Benutzerteil der Bibliotheksliste völlig unabhängig bin.
LG, Hans