-
1996 habe ich das mal gelöst:
CMD-Quelle
Code:
CMD PROMPT('QTEMP von anderem Job')
PARM KWD(JOB) TYPE(PJOB) DFT(*) SNGVAL((*)) +
PROMPT('Jobname')
PJOB: QUAL TYPE(*NAME) LEN(10) MIN(1) EXPR(*YES)
QUAL TYPE(*NAME) LEN(10) EXPR(*YES) +
PROMPT('Benutzer')
QUAL TYPE(*CHAR) LEN(6) RANGE(000000 999999) +
MIN(1) FULL(*YES) EXPR(*YES) PROMPT('Nummer')
MI-Quelle
Code:
DCL SPCPTR PJOB PARM; /* ÜBERGABE JOB */
DCL DD JOBPARM CHAR(26) BAS(PJOB);
DCL DD JOB CHAR(10) DEF(JOBPARM) POS(1);
DCL DD USER CHAR(10) DEF(JOBPARM) POS(11);
DCL DD JOBNR CHAR(6) DEF(JOBPARM) POS(21);
DCL OL *ENTRY (PJOB) EXT PARM MIN(1);
DCL DD AKTLIB BIN(2); /* ZÄHLER */
DCL DD MAXLIB BIN(2); /* LETZTE LIB + 1 */
DCL DD CURLIB BIN(2); /* INDEX CURLIB */
DCL PTR PQWCBT BASPCO POS(17); /* PROCESS-LISTE */
DCL PTR AQTEMP BASPCO POS(65); /* EIGENE QTEMP */
DCL DD FLAGS CHAR(1) BASPCO POS(1276);
DCL DD NOSYS BIN(2) BASPCO POS(1277);
DCL DD NOLIBS BIN(2) BASPCO POS(1281);
DCL PTR LIBL (77) BASPCO POS(1297);
DCL PTR CQTEMP; /* QTEMP ALS CURLIB */
DCL SPCPTR PROCHDR; /* HDR FREMDER PROCESS */
DCL PTR PQTEMP BAS(PROCHDR) POS(65);
DCL SPCPTR JOBTAB;
DCL DD JLSTLEN BIN(4) BAS(JOBTAB) POS(145);
DCL DD NOJOB BIN(2) BAS(JOBTAB) POS(149);
DCL DD JOBADR BIN(4); /* AKTUELLE ADR. JOB */
DCL SPCPTR JOBENTRY;
DCL DD JOBNAM CHAR(26) BAS(JOBENTRY) POS(1);
DCL PTR JOBPTR BAS(JOBENTRY) POS(33);
NTRY * (*ENTRY) EXT;
CPYBWP CQTEMP,AQTEMP; /* EIGENE QTEMP SETZEN */
CMPBLAP(B) JOBPARM,"*"," "/EQ(INSQTEMP);
SETSPPFP JOBTAB,PQWCBT; /* ADR. JOB-LISTE */
CPYBWP JOBENTRY,JOBTAB;
CPYNV JOBADR,768; /* ADR. 1. JOB */
SEA_JOB:
SETSPPO JOBENTRY,JOBADR; /* ADR. JOB-EINTRAG */
CMPBLA(B) JOBNAM,JOBPARM/EQ(SEA_JOB_100);
ADDN(S) JOBADR,512; /* VORHERIGER EINTRAG */
CMPNV(B) JOBADR,JLSTLEN/LO(SEA_JOB);
B ENDE;
SEA_JOB_100:
SETSPPFP PROCHDR,JOBPTR; /* ADR. JOB SETZEN */
SETSPPO PROCHDR,0;
CPYBWP CQTEMP,PQTEMP; /* FREMDE QTEMP */
B INSQTEMP; /* QTEMP EINTRAGEN */
INSQTEMP: /* QTEMP ALS CURLIB EINTRAGEN */
CPYNV CURLIB,NOSYS; /* ANZAHL SYS-LIBS */
TSTBTS(B) FLAGS,1/ZER(INSQTEMP_010);
ADDN(S) CURLIB,1; /* VORGESCHALTETE 1.PRD-LIB */
INSQTEMP_010:
TSTBTS(B) FLAGS,2/ZER(INSQTEMP_020);
ADDN(S) CURLIB,1; /* VORGESCHALTETE 2.PRD-LIB */
INSQTEMP_020:
ADDN(S) CURLIB,1; /* INDEX DER CURLIB */
TSTBTS(B) FLAGS,0/NZER(INSQTEMP_100); /* CURLIB VORHANDEN */
ADDN AKTLIB,NOLIBS,1; /* LIBL +1 VERSCHIEBEN */
CPYNV MAXLIB,NOLIBS; /* QUELLE */
INSQTEMP_030:
CPYBWP LIBL(AKTLIB),LIBL(MAXLIB);
SUBN(S) AKTLIB,1;
SUBN(S) MAXLIB,1;
CMPNV(B) MAXLIB,CURLIB/NLO(INSQTEMP_030);
ADDN(S) NOLIBS,1; /* ANZAHL LIBS ERHÖHEN */
INSQTEMP_100:
CPYBWP LIBL(CURLIB),CQTEMP; /* QTEMP EINTRAGEN */
SETBTS FLAGS,0; /* CURLIB-FLAG SETZEN */
B ENDE;
ENDE:
RTX *;
PEND;
Was du dann benötigst ist nur der Aufruf für das Erstellen:
http://publib.boulder.ibm.com/iserie...s/qprcrtpg.htm
Ich kann allerdings keine Gewähr dafür übernahemen, ob das so noch funktioniert !
-
Irgendwie kann ich mit dieser IBM Beschreibung nicht so viel anfangen.
Kann mir das jemand kurz erklären?
Gruß
Matthias Schatte
-
Obiges MI-Programm darf man ab V5 NICHT MEHR VERWENDEN, da sich die Job-Tabellen z.T. gravierend geändert haben.
-
Ja ja... diese doofen APIs....
Es gibt auch ein fertiges Freewaretool um MI-Programme zu erstellen.
Evtl. kommst Du ja damit besser klar....
Create MI Program
Der CRTMIPGM Befehl basiert auf der QPRCRTPG API und dient zum Erstellen von MI Programmen.
http://www.tools400.de/Downloads/Fre...s/crtmipgm.zip
Ist aber ewig her, dass ich das mal benutzt hatte, deshalb wie immer keine Grantie und keine weiteren Erklärungen dazu...
Siehe auch Kommentar gerade von Fuerchau bezgl. V5
kuempi
-
bei mir geht es nicht
Weitere Nachrichteninformationen
Nachrichten-ID . . . . : CPD2102 Bewertung . . . . . . : 30
Nachrichtenart . . . . : Diagnose
Sendedatum . . . . . . : 19.07.07 Sendezeit . . . . . . : 12:57:12
Nachricht . . . : Option für QTEMP eines anderen Jobs nicht zulässig.
Ursache . . . . : Für ein Objekt in der Anzeige "Bibliothek anzeigen" wurde
für Bibliothek QTEMP eine Option für einen Job ausgewählt, der nicht der
aktuelle Job ist. Für QTEMP sind Optionen nur für den aktuell ausgeführten
Job zulässig.
Ende
Eingabetaste --> Weiter
F3=Verlassen F6=Drucken F9=Nachrichtendetails anzeigen
F10=Nachrichten im Jobprotokoll anzeigen F12=Abbrechen F24=Weitere Tasten
-
So weit kommt man bei Objekten in einer fremden QTEMP mit dieser Methode leider nicht. Man kann damit nur sehen, welche Objekte in der fremden QTEMP enthalten sind, aber keine weiteren Informationen dazu anzeigen.
Similar Threads
-
By burton007 in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 02-11-05, 11:29
-
By jgv in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 14-10-05, 07:54
-
By johw3 in forum NEWSboard Windows
Antworten: 3
Letzter Beitrag: 16-05-05, 18:52
-
By Smart in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 08-11-04, 10:03
-
By rebe in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 13-02-02, 13:13
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