[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Dec 2001
    Beiträge
    10

    CL-Befehle in REXX/400

    Hallo liebe Kollegen von der AS/400-Zunft,

    nachdem ich mich nun (als AS/400-Neuling) durch die
    Grundlagen gekaempft habe, habe ich mich nun der Programmierung zugewandt und als Einstieg den REXX/400-Interpreter gewaehlt.
    Dabei bin ich bereits nach ca. 5 Zeilen auf das erste Problem gestossen. Mein kleines Einstiegsprogramm sieht ungefaehr so aus:

    /* REXX-Test */
    say 'My first REXX program...'
    address command
    'SNDMSG MSG(Hello operator...) TOUSR(*SYSOPR)'
    say 'Press any key to continue...'
    pull .
    exit
    ---------------------------------------------------------
    Das Problem liegt bei dem CL-Befehl SNDMSG.
    Ich bekomme immer einen RC von 'CPF0001' zurueck!
    Die Nachrichten-Beschreibung sagt dazu lapidar 'Fehler in Befehl &1 gefunden'.
    Der Befehl ist syntaktisch okay, ich habe ihn auch in dieser Form von der Kommandozeile ausgefuehrt.
    Die Syntax im Programm entspricht auch der Beschreibung in der REXX-Referenz zur Ausfuehrung von Befehlen des jeweiligen Environments.

    Was mache ich falsch?

    Gruss

    Reiner Ziegler

    PS.: Kennt jemand noch andere Literatur ueber REXX/400 (ich habe nur die "Programmers Guide" und "Reference" gefunden)? Mich wuerde zum Beispiel interessieren, ob es moeglich ist, aus REXX heraus API-Funktionen auszufuehren (Socket-API).

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Schau dir die Syntax von CL-Befehlen genauer an. Texte müssen in einfache Hochkomma gesetzt werden:

    "SNDMSG MSG('Hello operator...') TOUSR(*SYSOPR)"

    Alternativ auch:

    Msg = 'Hello operator...'
    'SNDMSG MSG(&Msg) TOUSR(*SYSOPR)'

    Alle Programme, die direkt aufgerufen werden können, können auch von REXX verwendet werden.
    Bei den Übergabe-Parametern ist das Problem allerdings die Art der Variablen (Strukturen, gepackte Felder, usw.). Diese muss man meist per Hex-Funktionen zusammen setzen.

    Was die Socket-Funktionen angeht, so sind das C-Funktionen und keine Programme, daher von REXX nicht einsetzbar.

    Allerdings wird von REXX sehr komfortabel SQL unterstützt.
    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
    Dec 2001
    Beiträge
    10
    Hallo,

    vielen Dank fuer die Loesung!
    Die Variante mit den (einfachen) Hochkommas hatte ich auch schon probiert. Was ich allerdings NICHt probiert hatte, war den gesamten Environment-Befehl in DOPPELTE Hochkommas einzuschliessen!

    Danke und Gruss

    Reiner Ziegler

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. benutzerdefinierte Befehle
    By cimbala in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 10-12-06, 16:46
  4. Suche Liste Ersatzoperatoren im CL
    By kuempi von stein in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 19-07-06, 14:34
  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
  •