-
Dynamischer Call per Prototype
Hallo zusammen,
im Nicht-Fully-Free RPG konnte ich Programme ja aufrufen, indem ich den Programmnamen beim Call als Variable mitgegeben habe.
Ich würde so etwas gerne im fully free machen. Da brauche ich aber einen Prototyp. Kann ich den auch irgendwie variabel gestalten?
Die unterschiedlichen Programme, die ich aufrufen möchte, haben selbstverständlich alle die gleiche Parameterliste.
Ein Aufruf per QCMDEXC hilft mir wahrscheinlich nicht, da ich dann ja keine Rückgaben aus der Parameterliste empfangen könnte.
Bisher habe ich das Problem immer umschifft, indem ich ein Nicht-Fully-Free Programm als Adapter in meiner Call-Kette drin hatte. Das finde ich aber nicht sehr elegant.
Gruß, Dieter
-
Das geht da genauso:
EXTPGM{(name)}
The EXTPGM keyword indicates that the prototype represents a dynamic call to a program.
The parameter specifies the external name of the program whose prototype is being defined. The name
can be a character constant or a character variable.
Somit kannst du zur Laufzeit beliebige Programme aufrufen, die dieselben Parameter haben.
Parameter werden allerdings immer per reference übergeben. Wenn du einen Parameter als const definierst, hindert das das aufrufende Programm nicht, es zu ändern (wenn es ohne DCL-PI definiert ist).
Allerdings entscheidet die Variablendeklaration des Rufers und des Gerufenen, wie der Inhalt zu interpretieren ist.
D.h. wenn der Rufer char(10), der Gerufene char(20) hat, kann er 20 Zeichen verarbeiten, auch wenn er Schrott enthält.
Umgedreht, der Rufer char(20), der Gerufene char(10), kommt der nur an 10 Stellen dran.
Aber das war sschon immer so, und sollte eben durch DCL-PR/DCL-PI weitgehend vermieden werden können.
Du kannst zusätzlich auch options(*omit:*nopass) zulassen, um die Parameter variabel zu gestalten.
Ein sauberer Programmierstil ist das allerdings nicht.
Wenn du die Variable änderst, ändert sich auch der interne Programmpointer beim nächsten Call. Allerdings verhindert dies nicht, dass das Programm im Speicher verbleibt.
Beim nächsten Aufruf des vorherigen Programmes kann es dann zu Unschönheiten kommen, da ggf. der Initial-Aufruf (automatische Open von Dateien, Variablen initialisierungen) nicht erfolgt, was zu weiteren Problemen führen kann.
Im Gegensatz zu RPGIV gibts den Free-Befehl nicht mehr, der ein Programm tatsächlich entlädt und beim nächsten Aufruf wieder neu aufruft und somit der Init durchlaufen wird.
Im DCL-PR für Prozeduren kann man übrigens Prozedur-Pointer Variablen statt Namen verwenden und somit auch dies dynamisieren.
-
Vielen Dank, Baldur!
Genau die Erklärung mit dem EXTPGM habe ich gesucht!. Ich war mir irgendwie sicher, dass es gehen würde, habe die Syntax aber nicht mehr gefunden. Ich war dann verunsichert, als ChatGpt mir sagte, dass das nicht gehen würde.
Aber da dachte ich: Bevor ich der KI glaube, frage ich lieber mal im Forum nach!
Herzlichen Dank!
-
ChatGPT weiß eben doch nicht alles. Ich habe mal nachfragen lassen, aber ich bin da vollkommen unbekannt;-). Das muss jetzt kein Nachteil sein.
-
 Zitat von Fuerchau
ChatGPT weiß eben doch nicht alles. Ich habe mal nachfragen lassen, aber ich bin da vollkommen unbekannt;-). Das muss jetzt kein Nachteil sein.
... mir macht das Angst, dass KI die Menschen überholt. Aber nicht weil das Blech schlauer wird.
D*B
-
Nicht nur das Überholen, sondern das sich ständig auf KI verlassende Verhalten.
Das Einzige was mich an KI freut, ist das autonome Fahren.
Dann hören auch die ständigen Streiks auf, da man die Fahrer sowieso nicht mehr braucht.
Ein Kabarettist erzählt letztens:
Als in Deutschland die Todesstrafe abgeschafft werden sollte, streikten die Henker.
Similar Threads
-
By malzusrex in forum NEWSboard Programmierung
Antworten: 17
Letzter Beitrag: 15-11-13, 11:21
-
By Xanas in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 12-08-09, 08:42
-
By France in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 28-03-03, 09:25
-
By Kirsten Steer in forum Archiv NEWSblibs
Antworten: 0
Letzter Beitrag: 17-01-03, 11:57
-
By areichelt in forum NEWSboard SAP
Antworten: 2
Letzter Beitrag: 24-02-02, 16:44
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