[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Solange Du das Programm aus einem anderen CL/RPG oder was auch immer Programm aufrufst, macht das Umladen in eine Variable Sinn. In diesem Fall ist ein zusätzlicher Command nicht erforderlich.

    Das Erstellen eines Commands ist dann sinnvoll, wenn das Programm von einer Befehlszeile oder einem Menü heraus mit Parameter aufgerufen oder submittet werden soll. Der Command sorgt dafür, dass die Parameter korrekt übergeben werden.

    Werden CL-Programme direkt aufgerufen, werden numerische Parameter mit einer Definition von 15P 5 angenommen und alphanumerische Felder mit 32A. Ist Dein Parameter kürzer, wird der folgende Speicherbereich übernommen.

    Birgitta
    Birgitta Hauser

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

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Zu diesem Thema hatten wir schon verschiedene Beiträge.

    Beim CALL-Kommando werden Alpha-Zeichen in der angegebenen Länge, mindestens jedoch 32 Zeichen übergeben.

    Erwartest du längere Argumente musst du entsprechend viele Leerzeichen anhängen.
    Das Programm bekommt, wie Dieter schon sagt, nur eine Adresse auf den Wert.
    Ist deine Variable länger definiert, greifst du eben auf irgendwas dahinter zu.

    Bei CMD's wird automatisch die erwartete Länge reserviert (Ausnahme: variabel lange Felder mit Längeninformation), bei direktem Call mit Variable, reservierst du ja den Speicher bereits selber, was auch manchmal zu den selben Effekten führen kann.
    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
    hs is offline [professional_User]
    Registriert seit
    Jun 2001
    Beiträge
    364
    Das Problem tritt jedoch nur beim letzten Parameter auf.
    Bei den ersten 4 funktionierts einwandfrei.

    Da ich keine große Lust habe, alle Programme mit Call auf dieses CL zu ändern:

    Könnte ich einen 6. Parameter optional in das CL MEINPG einfügen?

    Dann müsste ich die aufrufenden Programme nicht ändern?

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Nein, das geht leider nicht.
    CLP kennt keine optionalen Parameter.
    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

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. Java, JDBC, iSeries und Tschechische/Russische/Chinesische Zeichen
    By Christian.Hesse in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 04-08-06, 10:04
  4. Übergabeparameter im CL Script
    By bo1 in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 23-06-06, 15:00
  5. Objektnamen dynamisch dem SAVOBJ im CL zuordnen
    By becama in forum IBM i Hauptforum
    Antworten: 12
    Letzter Beitrag: 11-08-05, 15:05

Berechtigungen

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