[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2007
    Beiträge
    904

    CL Parameterübergabe als Datenstruktur

    Zwingend ist's ja nicht, trotzdem rein Interesse halber:

    Ich habe ein RPG-Programm und möchte nun dem nachfolgenden CL-Programm einige Parameter übergeben.

    Die Parameter fülle ich im RPG-Programm als Datenstruktur (als File/Record definiert) ab und übergebe die Struktur als ein Parameterfeld.

    Frage:
    Kann ich im CL die Struktur wieder erhalten (DCFL geht) und diese über den Parameter legen. Selbstredend, dass der Parameter die Länge aus dem Record selbst referenzieren sollte.

    Alles klar, mir nicht so...
    kf

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    In CLLE soll man neuerdings auch Strukturen definieren können, die dann ggf. auch als Parameter dienen dürfen.
    Konnte ich bisher jedoch noch nicht ausprobieren.

    Ansonsten bleibt nur das Abzählen und per %SST die Werte dann extrahieren bzw. ändern.

    Gepackte Felder verbieten sich dann allerdings von selbst.
    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
    Jan 2007
    Beiträge
    904
    Baldur,

    Ich hab's fast befürchtet, waren die Augen mal wieder grösser als der Hunger, bzw. die Ansprüche > als das Menü.

    Hab hier V7R1, jedoch nichts entsprechendes gefunden.

    Wäre zu schön gewesen.
    kf

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Es gibt einen erweiterten DCL-Befehl mit dem man ähnlich wie in RPG mittels Overlay Variablen quasi als Struktur anlegen kann.
    Allerdings gibt es keine schöne "E DS", also extern zu ladende Deklaration.

    Declare CL Variable (DCL)
    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

  5. #5
    Registriert seit
    Feb 2009
    Beiträge
    391
    Es gibt da einen Trick, damit kann man sich ständigere Änderungen in der Struktur ersparen. Wenn Du eine Datei definierst, deren Satzstruktur der Parameterstruktur entspricht.
    Dann schreibst Du die Parameter kurz in die Datei, und im CL arbeitest Du mit DCLF und RCVF. Dann sind alle Felder automatisch als Variabel definiert.
    Außerdem kannst Du das Satzformat bereits im RPG-Programm nutzen um die Parameter-DS zu definieren.

    Vielleicht etwas antik die Methode, aber sie funktioniert bestens.

  6. #6
    Registriert seit
    Jan 2007
    Beiträge
    904
    So hab ich's schliesslich auch gelöst - auf die gute alte Tour.

    @Baldur
    Die Methode mit den Pointern wird schon gangbar sein, ein genaueres Studium wollte ich mir jedoch nicht antun. Schliesslich möchte ich ja eine Lösung die ich auch nach zwei Jahren noch verstehe und nicht einen halben Tag zum einlesen brauche ;-))

    Wie schon erwähnt, eigentlich wollte ich einen ganzen String als Parameter übergeben und mit einem DCLF-Overlay diesen segmentieren. Geht halt nicht im CL und das ist nicht gut so. Schade.
    kf

  7. #7
    Registriert seit
    May 2004
    Beiträge
    444
    Hallo, ist lange her dieser Thread. Inzwischen geht es. Ich weiß leider nicht ab welchem Release.

    Beispiel:

    DCL VAR(&P3_PARM) TYPE(*CHAR) LEN(1000)
    DCL VAR(&P3_RES) TYPE(*CHAR) STG(*DEFINED) +
    LEN(1) DEFVAR(&P3_PARM 1)
    DCL VAR(&P3_PGM) TYPE(*CHAR) STG(*DEFINED) +
    LEN(10) DEFVAR(&P3_PARM 2)
    DCL VAR(&P3_AUTO) TYPE(*CHAR) STG(*DEFINED) +
    LEN(1) DEFVAR(&P3_PARM 12)
    DCL VAR(&P3_PROZ) TYPE(*CHAR) STG(*DEFINED) +
    LEN(3) DEFVAR(&P3_PARM 13)

    Also zumindest das mit der Datenstruktur. Nicht mit e ds

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Stimmt auffallend.
    Die obige Lösung mit dem DCLF hilft halt nur bei der Übergabe als einzelne Felder.
    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, 22:48
  2. Programmbibliothek in einem Cobol oder CL Programm ermitteln
    By schatte in forum NEWSboard Programmierung
    Antworten: 19
    Letzter Beitrag: 10-01-07, 12:32
  3. Suche Liste Ersatzoperatoren im CL
    By kuempi von stein in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 19-07-06, 15:34
  4. Übergabeparameter im CL Script
    By bo1 in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 23-06-06, 16:00
  5. Bibliothekssicherungsliste via CL ändern
    By becama in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 23-06-06, 15:46

Berechtigungen

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