[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Jan 2001
    Beiträge
    43

    Question Objektnamen dynamisch dem SAVOBJ im CL zuordnen

    Hallo *all,

    im CL ermittle ich die Namen mehrerer Files, die ich in eine SAVF sichern möchte. Ich schreibe also die unterschiedlichsten Namen in eine DTAARA und übertrage dann deren Inhalt in einen Parameter &objlst. Diesen nehme ich dann beim SAVOBJ. Bsp. SAVOBJ OBJ(&OBJLST) .......
    Beim Debug aufs CL sieht das wunderbar aus: SAVOBJ OBJ(FILE1 HUGO EMMA)..... genauso als wenn man es via commandozeile eingegeben hätte.Tatsache ist aber, daß das CL stoppt: CPD0079 Wert 'FILE1 ' für OBJ kein Name oder generischer Name.
    Ursache . . . . : Wert 'FILE1 ' enthält Zeichen, die in einem Namen oder in einem generischen Namen nicht gültig sind. Ein Name muß mit einem Buchstaben beginnen, gefolgt von alphanumerischen Zeichen; ist der Name eine Zeichenfolge, muß diese in Anführungszeichen stehen. Ein gültiger
    generischer Name ist ein Name oder ein Teilname, der mit einem Stern endet. Der Stern muß vor dem Fragezeichen am Ende stehen, falls der generische Name in Anführungszeichen steht.

    Mit diesem Text kann ich nichts Anfangen, da ich weder ein Hochkomma im CL erzeuge noch mit generischen Namen arbeite und dann noch den Stern * vergessen hätte.
    Was heißt: Ist der Name eine Zeichenfolge ?
    Wie kann ich im CL Objektnamen dynamisch (erst zur Laufzeit) dem SAVOBJ zuordnen?

    Vielen Dank für eure Hinweise

  2. #2
    Registriert seit
    Aug 2004
    Beiträge
    923

    savobj

    Zitat Zitat von becama
    Hallo *all,

    im CL ermittle ich die Namen mehrerer Files, die ich in eine SAVF sichern möchte. Ich schreibe also die unterschiedlichsten Namen in eine DTAARA und übertrage dann deren Inhalt in einen Parameter &objlst. Diesen nehme ich dann beim SAVOBJ. Bsp. SAVOBJ OBJ(&OBJLST) .......
    Beim Debug aufs CL sieht das wunderbar aus: SAVOBJ OBJ(FILE1 HUGO EMMA)..... genauso als wenn man es via commandozeile eingegeben hätte.Tatsache ist aber, daß das CL stoppt: CPD0079 Wert 'FILE1 ' für OBJ kein Name oder generischer Name.
    Ursache . . . . : Wert 'FILE1 ' enthält Zeichen, die in einem Namen oder in einem generischen Namen nicht gültig sind. Ein Name muß mit einem Buchstaben beginnen, gefolgt von alphanumerischen Zeichen; ist der Name eine Zeichenfolge, muß diese in Anführungszeichen stehen. Ein gültiger
    generischer Name ist ein Name oder ein Teilname, der mit einem Stern endet. Der Stern muß vor dem Fragezeichen am Ende stehen, falls der generische Name in Anführungszeichen steht.

    Mit diesem Text kann ich nichts Anfangen, da ich weder ein Hochkomma im CL erzeuge noch mit generischen Namen arbeite und dann noch den Stern * vergessen hätte.
    Was heißt: Ist der Name eine Zeichenfolge ?
    Wie kann ich im CL Objektnamen dynamisch (erst zur Laufzeit) dem SAVOBJ zuordnen?

    Vielen Dank für eure Hinweise
    hello,

    auch wenns schwerfällt.....
    füge doch mal die originale fehlermeldung hier ein....
    ich bin mir ziemlich sicher - wenn die as/400 meint da ist ein ungültiges zeichen in der kette, dann ist da auch ein ungültiges zeichen.....

    k.

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    2.875

    QCMDEXC

    Hallo,

    Du must den kompletten CL-Command als String aufbereiten und dann mit QCMDEXC ausführen.

    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

  4. #4
    Registriert seit
    Jan 2001
    Beiträge
    43

    Question

    Zitat Zitat von B.Hauser
    Hallo,

    Du must den kompletten CL-Command als String aufbereiten und dann mit QCMDEXC ausführen.

    Birgitta

    Hallo Brigitte,

    QCMDEXEC kann ich doch nur über RPG aufbereiten oder klappt das auch in CL ?
    Hast du vielleicht ein Beispiel ?

    Wäre Super !
    DANKE

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.875
    Zitat Zitat von becama
    QCMDEXEC kann ich doch nur über RPG aufbereiten oder klappt das auch in CL ?
    Warum sollte das nicht aus CL klappen?
    QCMDEXC ist nichts anderes als ein Programm das CL-Befehle ausführt.

    Hier ein Beispiel:
    PHP-Code:
                 PGM
                 DCL        
    VAR(&CLCMDTYPE(*CHARLEN(256)                
                 
    DCL        VAR(&CLCMDLENTYPE(*DECLEN(15 5VALUE(256)  
                                                                            
                 
    DCL        VAR(&LIBLTYPE(*CHARLEN(50)              +   
                            
    VALUE('QTEMP HAUSER HSEXAMPLES HSTEST')                
                                                                            
                 
    CHGVAR     VAR(&CLCMD)                                 +   
                            
    VALUE('CHGLIBL LIBL(' *CAT &LIBL *TCAT ')')     
                                                                            
                 
    CALL       PGM(QCMDEXCPARM(&CLCMD &CLCMDLEN)             

     
    ENDE:       ENDPGM 
    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

  6. #6
    Registriert seit
    Jan 2001
    Beiträge
    43

    Thumbs up

    Hallo Brigitte,

    vielen Dank für das Beispiel.
    Eigentlich wollte ich die Namen der Files nicht hart codieren,
    aber wahrscheinlich komme ich nicht drum 'rum.

    Übrigens: Großes Lob an *all in diesem Forum. Einfach Klasse

    Viele Grüße und weiter so

  7. #7
    Registriert seit
    Aug 2001
    Beiträge
    2.875
    Zitat Zitat von becama
    Eigentlich wollte ich die Namen der Files nicht hart codieren,
    aber wahrscheinlich komme ich nicht drum 'rum.
    Warum solltest Du das?
    Du liest Deine Dataarea ein, mit den verschiedensten Dateien, bildest den String (bzw. verknüpfst die einzelnen Informationen über *CAT, *TCAT oder *BCAT, je nachem wie Du es brauchst).

    Im überigen heiße ich nicht Brigitte.

    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

  8. #8
    Registriert seit
    Jan 2001
    Beiträge
    43

    Thumbs up

    Hallo Brigitta,

    sorry für meinen faux pas mit deinem Namen.

    Du hast natürlich recht. Ich muß nichts hart codieren, denn ich kann die Variable, die die Dateinamen enthält in dem aufzubereitenden String verwenden.

    Ich hab es soeben erfolgreich getestet.

    Vielen Dank nochmal für den entscheidenden Tip mit QCMDEXC.

  9. #9
    Registriert seit
    Jan 2001
    Beiträge
    43
    Hallo Birgitta,

    schon wieder den falschen Namen erwischt.
    Aber ich bin ja lernfähig und hab nun endlich geschnallt,
    daß du weder Brigitte noch Brigitta sonden Birgitta heißt.

    Das war wirklich keine Absicht.

    Grüße

  10. #10
    Registriert seit
    Apr 2002
    Beiträge
    792
    Zitat Zitat von becama
    Hallo Brigitta,
    Schon wieder...nur dies mal nen bissel anders

  11. #11
    Registriert seit
    Aug 2001
    Beiträge
    2.875
    Zitat Zitat von JonnyRico
    Schon wieder...nur dies mal nen bissel anders
    Es ist schon ein Kreuz mit diesem Vornamen!
    In 90% aller Fälle wird er falsch geschrieben.

    In der ersten Version meines Führerscheins standen sage und schreibe 3 unterschiedliche Vornamen. (Immerhin einmal richtig!)

    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

  12. #12
    Registriert seit
    Aug 2004
    Beiträge
    923

    vornamen

    Zitat Zitat von B.Hauser
    Es ist schon ein Kreuz mit diesem Vornamen!
    In 90% aller Fälle wird er falsch geschrieben.

    In der ersten Version meines Führerscheins standen sage und schreibe 3 unterschiedliche Vornamen. (Immerhin einmal richtig!)

    Birgitta
    also ich finde den namen schön.
    habe mal im netz gesucht und das hier gefunden:
    Birgitta
    Herkunft:
    schwedische Form von Brigitte bzw. Brigitta
    Zusatz: Zur Verbreitung der beiden Namen hat die Verehrung der heiligen Birgitta von Schweden beigetragen. Sie gründete den Erlöserorden (Birgittenorden) und war eine bedeutende Mystikerin.

    sei froh, dass du keine umlaute im namen hast (wie ich) ... das ist nicht nur ausserhalb von deutschland ein problem. selbst meine krankenkassenkarte läuft noch falsch, aber ich werde mich hüten das nach jahrzehnten noch zu ändern...

    k.

Similar Threads

  1. Dynamisches SQL in einem CL erstellen
    By Sony in forum IBM i Hauptforum
    Antworten: 27
    Letzter Beitrag: 20-07-09, 21:48
  2. Programmbibliothek in einem Cobol oder CL Programm ermitteln
    By schatte in forum NEWSboard Programmierung
    Antworten: 19
    Letzter Beitrag: 10-01-07, 11:32
  3. DLYJOB im CL
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 14
    Letzter Beitrag: 18-07-06, 21:04
  4. Listenfelder eines Befehls im CL füllen
    By Phuntomias in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 27-06-06, 09:21
  5. Übergabeparameter im CL Script
    By bo1 in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 23-06-06, 15:00

Berechtigungen

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