-
qsh
guten Morgen.
Um eine DirectoryListe in der QTEMP zu erstellen benutze ich im CL QSH das funktioniert (habe ich hier gefunden).
Jedoch wollte ich ein RPG benutzen (habe auch gelesen dass das mit QCMDEXEC genau so gehen sollte).
Bei mir geschieht aber folgendes:
QSH CMD(LS) wird im cl einfach ausgeführt ausgabe ist STDOUT (diese wurde vorher mit QTEMP überschrieben) der gleiche Befehl (auch vorher überschrieben) zeigt im RPG allerdings die Befehlseingabe von QSH. Die einzigste Möglichkeit im RPG diese Befehlseingabe zu unterbinden ist QSH CMD(LS > datei) aber dann bekomme ich die QTEMP nicht hin , mit einer erstellten Datei in einer andern LIB geht es.
Wieso reagiert QSH im RPG anders als im CL ? . Ich denke es muss irgendwie mit STDOUT zusammenhängen.
Muss da irgendwo etwas eingestellt werden
Bin eigentlich mit der CL Lösung auch zufrieden , es würde mich eben nur interresieren.
Viele Grüsse Volker.
-
Die Reaktion ist nicht anders, Ursache ist die aktuelle Aktivierungsgruppe, für den der OVR gilt.
QCMDEXC läuft in Default, während dein ILERPG (vermute ich mal) in QILE läuft.
Erweitere deinen OVR mit OVRSCOPE(*JOB).
-
Hallo,
Vielen Dank für die Antwort , werde ich nächste Woche ausprobieren.
Nun hätte ich allerdings noch 2 Fragen zu diesem Thema:
1. Wenn ich mir die überschriebene STDOUT anschaue dann hat die die gleichen Felder (SRCSEQ,SRCDAT,SRCDTA) wie eine SRC PF ist das richtig ?
2. Nach dem CD funktionieren unsere ImportRoutinen nicht mehr, weil die ja nochmals den kompletten Pfad mitgeben , aber durch den CD bin ich ja schon im Verzeichniss. Nun kann ich ein paarmal CD (..) machen oder der importRoutine nur den DateiNamen geben. Lieber wäre mir allerdings das Verzeichniss wieder auf den Pfad zu setzen der vorher war . Muss ich den dann vorher mit DSPCUrDIR (oder so ähnlich) holen oder gibt es da einen "Reset"
Viele Grüße und einen schönen RestSonntag.
Volker.
-
Einen Reset gibt es nicht. Jede Anwendung ist eigentlich für ihren Pfad selber verantwortlich.
Root ist ein CD '/'.
Der Default hängt i.d.R. vom USRPRF ab. Bestimmte Informationen lassen sich da auch mit RTVJOBA, RTVUSRPRF abfragen.
-
Hallo,
Danke.
Muss allerdings nochmals nachhaken : Ist es richtig, dass die SRC PF genommen wird ?
Ich hatte in einem anderen Thread mal das Problem dass ein Feld (SRCDAT) falsch gefüllt wurde und ich mir nicht erklären konnte was ich mit dem Feld zu schaffen hatte . Vielleicht liegt das Problem an einer Einstellung.
Vielen Dank nochmals.
Volker.
-
Die Überschreibung einer STDOUT/STDERR erfordert i.d.R. vorher einen CRTPF mit einer Satzlänge von x (ich nehme meist 128).
Ohne das vorherige Erstellen wird anscheinend eine SRCPF erstellt, so dass diese mit SEU bearbeitbar ist.
Dabei wird dann halt nur das Textfeld geschrieben, während SRCSEQ und SRCDAT eben 0 bleiben.
Das ist aber kein Problem.
In normalen Quellen (SRC-PF) wird vom SEU-Editor die SRCSEQ und SRCDAT mit dem Datum der Erstellung/Änderung der Zeile in der Form JJMMTT gefüllt.
-
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 '%';
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