[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Oct 2004
    Beiträge
    48

    Question V5R3 & QCMDEXC

    Kann mir jemand verraten, welche Änderung im Aufruf der QCMDEXC seit V5R3 gemacht wurden?
    Alle alten Programme mit diesem Aufruf geben "Fehler im Befehl QCMDEXC".

    Danke für die Antworten,

    Michael.

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Schau mal ins Joblog ! Da müssen noch weitere Meldungen stehen, was an dem jeweiligen Befehl falsch ist.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Jun 2001
    Beiträge
    1.975

    Interesse

    Hi,
    wenn das mit V5R3 zu tun hat, würd mich das sehr interessieren
    Gruß
    Robi

  4. #4
    Registriert seit
    Oct 2004
    Beiträge
    48

    ...

    wenn ich den casus knaxus finde, werde ich die lösung bekannt geben.

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Der aufgetretene Fehler müsste im Joblog direkt vor der Meldung "Fehler im Befehl" stehen. Dieser würde mich nun mal interessieren.

    Ich bezweifle, dass IBM irgendwas am QCMDEXC geändert hat.

    Häufigste Ursache ist eine eigene System-Lib vor QSYS in der geänderte CMD's stehen. Diese sind natürlich dem neuen Release wieder zu entnehmen und dann anzupassen (Default-Werte).
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  6. #6
    Registriert seit
    Oct 2004
    Beiträge
    48

    Es...

    ... liegt nicht am V5R3, ich bin eher zu blöde, in ILE dem QCMDEXC die richtigen Parameter zu übergeben. Die anderen Beiträgen zum Thema helfen mir nicht wirklich weiter.
    Wie muss die Befehlslänge aussehen??
    Will testweise nur ein CHGCURLIB machen, aber ...
    Ursache . . . . : Im zweiten Parameter, der an QCMDEXC oder QCMDCHK gesendet
    wurde, wurde eine ungültige Länge angegeben.

    CHGCURLIB CURLIB(sms)
    Befehlslänge ist 21 und das Feld mit 15,5 definiert. Oder muss die Befehlslänge mit der Länge des Befehls incl. Leerzeichen übereinstimmen?

  7. #7
    Registriert seit
    Dec 2003
    Beiträge
    106
    äh, wenn ich dich richtig verstehe meinst du den Aufruf vom qcmdexc, oder ?

    z.Bsp so....

    d qcmdexc pr extpgm('QCMDEXC')
    d parm1 10000a
    d parm2 15p 5

    ..
    ..
    d cmdtxt s 10000a inz
    d cmdlen s 15p 5 inz(%size(cmdtxt))


    callp(e) qcmdexc (cmdtxt:cmdlen);

    geht auch mit dem api: system

  8. #8
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Ich würde den Prototyp wie folgt definieren.

    Die maximale Länge, die der Command (Parameter 1) haben kann beträgt 32702 Byte. Und dann gibt es noch einen dritten, optionalen Parameter.

    Da alles Input-Parameter sind, können sie mit dem Schlüssel-Wort CONST definiert werden. Damit können abweichende Feldlängen, Konstanten und Literale als Parameter übergeben werden. Beim Aufruf werden temporäre Felder mit den erwarteten Feld-Definitionen erstellt und die Adresse dieser Felder an das aufgerufene Programm übergeben.

    PHP-Code:
    D QCMDEXC         PR                  ExtPgm('QCMDEXC')   
    D   P$Cmd                    32702A   const  options(*VARSIZE
    D   P$CmdLen                    15P 5 const                          
                                                                         
    D   P$IGC                        3A   const  options(*NoPass)        

    D Cmd             S            256    varying
     
    *******************************************
     /
    Free
          Cmd 
    'CHGCURLIB CURLIB(SMS)';
          
    QCmdExc(Cmd: %Len(Cmd));   
          *
    InLR = *On;
     /
    End-Free 
    Das API system hat den Vorteil, dass die Feldlänge nicht angegeben werden muss.
    Dafür kann man im Fehlerfall allenfalls an die Message-Id, jedoch nicht an die variablen Message-Texte oder den aufbereiteten Message-Text heran kommen.

    Bei der Verwendung von QCMDEXC erhält man den Message-Text in der Programm-Status-Datenstruktur auf Stelle 90-170 und die Message-Id auf Stelle 40-46.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  9. #9
    Registriert seit
    Oct 2004
    Beiträge
    48

    Danke B

    ..., jetzt klappt es. Dass gibt der Sache einen ganz neuen und interessanten Blickwinkel.

Similar Threads

  1. SRC B42740A6 an 270er V5R3
    By moskito in forum IBM i Hauptforum
    Antworten: 14
    Letzter Beitrag: 22-01-07, 13:45
  2. Einrichtung SFTP auf iSeries V5R3
    By Stephan/400 in forum NEWSboard Server Job
    Antworten: 7
    Letzter Beitrag: 15-12-06, 13:39
  3. 270 #2248 von V5R1 auf V5R3
    By arnoldma1 in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 13-11-06, 21:14
  4. V5R3 ohne Software Maintenance
    By Miggi in forum NEWSboard Server Software
    Antworten: 2
    Letzter Beitrag: 07-07-06, 09:46
  5. QCMDEXC & OVRPRTV
    By muadeep in forum NEWSboard Programmierung
    Antworten: 9
    Letzter Beitrag: 24-06-06, 23:59

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •