-
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
-
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.
-
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
-
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)
-
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.
-
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
-
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
-
Stimmt auffallend.
Die obige Lösung mit dem DCLF hilft halt nur bei der Übergabe als einzelne Felder.
Similar Threads
-
By Sony in forum IBM i Hauptforum
Antworten: 27
Letzter Beitrag: 20-07-09, 21:48
-
By schatte in forum NEWSboard Programmierung
Antworten: 19
Letzter Beitrag: 10-01-07, 11:32
-
By kuempi von stein in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 19-07-06, 14:34
-
By bo1 in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 23-06-06, 15:00
-
By becama in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 23-06-06, 14:46
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks