Anmelden

View Full Version : Systemdatenstruktur(ESDS) in total free



Seiten : [1] 2

Dominic K.
03-04-17, 18:08
Moin Moin,

kurze und vermutlich für euch Profis einfache frage. Wie kann ich unsere Systemdatenstruktur




D$ASDs ESDS



im Total Free Format schreiben?
Zuerst dachte ich das wäre ganz einfach, folgendes geschrieben




dcl-ds $ASDs psds;



das ging aber nicht, dann wurden die unterfelder der Datenstruktur nicht mehr gefunden.
Ich vermute etwas ganz simples aber komme nicht darauf und Google wirft mir ganz falsche Ergebnisse wenn ich nach "Programmdatenstruktur Free Format IBM" suche.

Grüße und einen schönen Feierabend.

malzusrex
03-04-17, 18:28
schau mal hier:
http://www.rpgpgm.com/2014/02/defining-variables-in-rpg-all-free.html

https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_73/rzasd/freedatastructure.htm

Gruß
Ronald

Dominic K.
04-04-17, 09:07
Ah ok danke :) an extname lag es. Wusste nicht das ich dies nun im total free brauche.
Auch deine Links sind klasse!

Grüße

Fuerchau
04-04-17, 10:15
Extname wird nicht benötigt sondern nur der Typ "psds":

dcl-ds PgmDs psds qualified ;
PgmName *proc ;
Status *status ;
end-ds ;

Alle anderen Felder lassen sich auch wieder per subf definieren.
Aber einfacher ist es tatsächlich, wenn man bereits eine externe Struktur der PSDS zur Verfügung hat.

Dominic K.
04-04-17, 10:48
Du hast natürlich recht, brauchen tue ich extname nur bei externen DS(was bei mir der Fall ist) ansonsten kann ich es einfach im Progrmam mit psds definieren.

Was mich nur wunderte ich das ich in der alten Schreibweise kein extname brauche sondern nur in der total free Schreibweise.

Fuerchau
04-04-17, 10:56
Das "E" von "E DS" ist durch "Extname" ersetzt, das "S" von "SDS" eben durch "PSDS".
Neue Schreibweisen müssen da nicht besser sein (siehe neue deutsche Rechtschreibung).

BenderD
04-04-17, 11:38
... das Schlüsselwort extname gab es vorher auch schon und wundern darf man sich bei RPG eh' nicht. Wenn ich alleine daran denke, wie lange man da gebraucht hat den /free /end-free Unfug nicht mehr abzuverlangen und wie ich von manchen regelrecht beschimpft worden bin, wenn ich mich darüber lustig gemacht habe - naja bei den RPG Programmierern handelt es sich wohl um eine der kleineren Glaubensgemeinschaftem: Da glauben Einige, das sei die Krönung der Programmiersprachen...

Bin mal neugierig, wie lange es dauert, bis die ersten merken, dass das ganze DCL-xx Gedöns der blanke Unfug und überflüssig, weil redundant, ist.

D*B

Fuerchau
04-04-17, 12:20
Nun, irgendwann kommen wir (hoffentlich) wieder dazu, Code und Daten beliebig zu mischen (wie früher in RPT). Es gibt schließlich keinen Grund, eine zwingende Reihenfolge zwischen den Elementen einzuhalten. RPT konnte das ja zuminestens auch.
Als nächstes kann man dann Methoden und Funktionen gleich an die Variable oder Struktur hängen...

Dominic K.
04-04-17, 12:27
Das free /end-free musste ich zum Glück schon nichtmehr mitmachen, auch wenn mir das noch vereinzelt bei Kollegen über den Weg läuft. Hatte damals zu Beginn meiner Ausbildung auch nicht verstanden warum es so etwas noch gibt, oder warum man noch Deklarationen in Festformat schreiben musste wo doch die Programmierung in free erfolgen konnte, aber das scheint ganz normal zu sein wenn man von jüngeren Sprachen kommt.

Ich pers. denke aber das doch die Änderungen der letzten Jahre genau darauf abzielt RPG moderner zu machen, daher bin ich auch optimistisch das zum Beispiel das dcl auch später wegfällt.
Besser nach und nach die Sprache ändern als garnicht....

Zu dem bin ich der Meinung das sicher keine Idioten RPG entwicklen und die werden 100% auch einen Plan haben warum es noch dcl (noch) gibt und selbst wenn es bei dcl bleibt muss man halt damit leben oder sich eine andere Aufgabe/Firma suchen wo man dann mit Java/C++/C# ect. entwickeln kann.

Pikachu
04-04-17, 13:14
Externally-described data structure

Specify either the EXT keyword or the EXTNAME keyword as the first keyword.

DCL-DS myfile EXT END-DS;
DCL-DS extds1 EXTNAME('MYFILE') END-DS;

If you specify the EXT keyword, you can also specify the EXTNAME keyword as a later keyword.

DCL-DS extds2 EXT INZ(*EXTDFT) EXTNAME('MYFILE') END-DS;