-
Hallo,
Ich kann mit der SRC PF leben , nur wusste ich nicht ob die immer genommen wird .
Nun habe ich aber doch noch eine Frage: nach dem QSH werden immer 2 JOBLOG's erzeugt. kann man die verhindern . Es sieht auch nicht nach einer Hinweismeldung aus .
Vielen Dank nochmal
Volker.
-
Um in RPG ein IFS-Inhaltsverzeichnis zu lesen, würde ich die APIs opendir, readdir usw. verwenden.
Scott Klement beschreibt das sehr gut.
https://www.scottklement.com/rpg/ifs_ebook/opendir.html
-
Dazu musst du mal zur Laufzeit die JOBD des QSH-Jobs herausfinden.
Anscheinend hat da jemand an den Defaults gedreht und LOG(4 00 *SECLVL) statt LOG(4 00 *NOLIST) eingestellt.
Es kann auch sein, dass die aktuelle Jobumgehung dazu verwendet wird.
-
Inzwischen gibt es zu den API's ebenso SQL-Funktionen und für das Lesen/Schreiben SQL-Variablen.
Im *SNGSTG bis 16MB, im *TERASPACE (o.ä.) bis 2 TB.
-
Hallo,
so habe jetzt alles so wie ich es will.
Das mit den API bzw SQL werde ich mir am wochenende anschauen.
Vielen Dank nochmals
Volker.
-
Sorry, dass ich spät zur Party angekommen.
Leider sind die Article (INN Newsletter & Systemi Magazine) Links nicht mehr verfügbar. Ist aber hier zu lesen: http://www.support.ecofitonline.com/...-Tree-Contents
CLLE pgm:
Code:
/********************************************************************/
/* SYSTEM - Systems */
/* AUTHOR - Deon A von Blerk (EcofIT Ltd) */
/* DATE - 25/01/09 */
/* Description - List the IFS files for a directory tree */
/* */
/* MODIFICATION HISTORY */
/* ==================== */
/* Date Nr By/Reason */
/* ---- --- --------- */
/********************************************************************/
PGM PARM(&AttchPath &DocName &PgmError)
DCL VAR(&AttchPath) TYPE(*CHAR) LEN(64)
DCL VAR(&DocName) TYPE(*CHAR) LEN(32)
DCL VAR(&QSHSTMT) TYPE(*CHAR) LEN(200)
DCL VAR(&Exists) TYPE(*CHAR) LEN(2)
DCL VAR(&PgmError) TYPE(*CHAR) LEN(2)
MONMSG MSGID(CPF0000 QSH0000) EXEC(GOTO CMDLBL(FAIL))
/********************************************************************/
/* Create the workfiles */
/********************************************************************/
DLTF FILE(QTEMP/QSHLIST)
MONMSG MSGID(CPF0000)
CRTPF FILE(QTEMP/QSHLIST) RCDLEN(200)
DLTF FILE(QTEMP/QSHFIND)
MONMSG MSGID(CPF0000)
CRTPF FILE(QTEMP/QSHFIND) RCDLEN(200)
/********************************************************************/
/* Fill the data */
/********************************************************************/
OVRDBF FILE(STDOUT) TOFILE(QTEMP/QSHLIST) OVRSCOPE(*JOB)
CHGVAR VAR(&QSHSTMT) VALUE('ls -lRT' *BCAT &AttchPath)
QSH CMD(&QSHSTMT)
DLTOVR FILE(STDOUT) LVL(*JOB)
OVRDBF FILE(STDOUT) TOFILE(QTEMP/QSHFIND) OVRSCOPE(*JOB)
CHGVAR VAR(&QSHSTMT) VALUE('find' *BCAT &AttchPath *TCAT '*')
QSH CMD(&QSHSTMT)
DLTOVR FILE(STDOUT) LVL(*JOB)
/********************************************************************/
/* Now check if the document exists */
/********************************************************************/
CALLPRC PRC(IFS50R) PARM(&DocName) RTNVAL(&PgmError)
GOTO CMDLBL(PERFECT)
/********************************************************************/
/* Fail */
/********************************************************************/
FAIL:
DLTF FILE(QTEMP/QSHLIST)
MONMSG MSGID(CPF0000)
DLTF FILE(QTEMP/QSHFIND)
MONMSG MSGID(CPF0000)
CHGVAR VAR(&PgmError) VALUE('01')
/********************************************************************/
/* EOJ */
/********************************************************************/
PERFECT:
ENDPGM
SQLRPGLE pgm:
Code:
Declare QSHDocs_csr cursor for
with ListOut as
(select
locate(':', QSHList, 51) -1 as Offset,
QSHList
from QSHList
where substr(QSHList, 13, 1) = '1'
)
select distinct QSHFind,
substr(QSHList, 47+Offset-5, 12) as DateTime,
substr(QSHList, 55+Offset) as Document,
substr(QSHList, 15, Offset+1) as Owner
from QSHFind, ListOut
where QSHFind like '%' concat trim(:DocName) concat '%'
and substr(QSHList, 55+Offset)
like '%' concat trim(:DocName) concat '%';
-
Hallo,
da habe ich ja noch eine Antwort bekommen , Vielen Dank dafür.
Schön ist , wenn ich das jetzt richtig verstehe , dass ich beim QSH den Pfad mit angeben kann . Dann brauche ich den CD nicht mehr.
Und ganz besonders tollfand ich dass man im SQL den CONCAT auch so benutzen kann , habe den immer mit nur 2 Feldern (Concat (feldA,FeldB)) benutzt und dann ging imer eine regelrechte concat schlacht los.
Gruss Volker.
-
Lesen bildet....steht alles im Handbuch;-).
-
 Zitat von Fuerchau
Lesen bildet....steht alles im Handbuch;-).
Baldur! Bitte keine Fremndwörter!
Was bitte ist ein Handbuch...
;-)
Gruß
Ronald
-
-
Dieses Auslesen von-bis hat man ganz früher gemacht, zu S/34-Zeiten, da gab es sonst nichts.
Problem: wenn sich in einem Release mal was verschoben hat, musste man korrigieren.
Vielleicht tust Du Dir mit "QRYIFSLIB" leichter. Kann man von der IBM downloaden, link auf der Seite.
https://www-01.ibm.com/support/docvi...d=nas8N1019580
-
Inzwischen gibt es selbst dafür sogar SQL-Funktionen (frag mal Birgitta).
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks