-
*ENTRY PLIST versus dcl-pi
Hallo,
wir sind dabei, unsere letzten Probleme, die uns vom "total free format" abhalten, zu beseitigen. Das heißt, wir möchten unsere normalen (also Nicht-Serviceprogramme) von free format aus ausrufen können.
In einem workshop haben wir letztens etwas ausprobiert. Und zwar haben wir die *ENTRY PLIST eines Programms durch eine dcl-pi Anweisung ausgetauscht. Weiß jemand, ob das technisch für irgendetwas gebraucht wird? Ich kann für das Programm, auch wenn es eine *ENTRY PLIST hat, ja trotzdem einen Prototyp deklarieren und es in einem anderen Programm im Free Format aufrufen.
Letztlich also die Frage: Unterscheiden sich dcl-pi und *ENTRY PLIST in ihrer Funktionsweise?
Dieter
-
Dies ist nur eine unterschiedliche Schreibweise für das Selbe.
-
Wenn Du Prototyp und Procedure Interface anlegst und diese korrekt erfolgt eine Parameter-Prüfung bereits zur Compile-Zeit, Du kannst Input Only Parameter definieren und optionale Parameter prüfen.
Durch eine Erweiterung in den letzten TRs bist Du nicht mehr gezwungen für jedes Programm mit Procedure Interface einen Prototypen anzulegen, d.h. beim Umwandeln des Programms genügt jetzt das Procedure Interface. Das macht Sinn, wenn ein Programm z.B. nur aus CL-Programmen aufgerufen wird.
Wenn Du allerdings ein Programm im RPG-Free-Format aufrufen willst, bauchst Du einen Prototypen, der dem Procedure-Interface zumindest was die Anzahl und Definition der einzelnen Parameter-Felder angeht.
Um sicher zugehen dass Prototyp und Procedure Interface übereinstimmen, sollte man den Prototypen auch in dem Programm, in dem das Procedure Interface definiert ist einbinden. Sofern ein Prototyp eingebunden ist wird dieser beim Compilieren mit den Procedure Interface abgeglichen. Stimmen beide nicht überein, kann das Programm nicht umgewandelt werden.
Eine Mischung aus *ENTRY PLIST, Prototypen, CALL-Statements würde ich nicht empfehlen.
Birgitta
-
Vielen Dank für eure Antworten. Wir möchten die Copy Strecken für unsere Prototypen nicht manuell schreiben, sondern wir möchten sie maschinell erzeugen. Wir haben dazu ein eigenes Compile Programm erstellt. Das Programm prüft, ob die Kompilierung geklappt hat und erzeugt nach erfolgreicher Kompilierung eine Copy Strecke für das Programm, indem es den Sourcecode untersucht. Das klappt auch soweit. Wir hätten nur gerne genau die Sicherheit, die Birgitta beschrieben hat: Nämlich den Prototyp in dem Programm, das gerade geändert und kompiliert wurde, einzubinden. Da beißt sich allerdings die Katze in den Schwanz: Wenn ich die Parameterliste in dem Programm erweitere, wird er das Programm nicht generieren, weil es nicht zum Prototyp passt. Da er das Programm nicht generiert, wird er aber auch die Copy Strecke nicht anpassen. Deshalb werden wir wohl erstmal darauf verzichten, den Prototyp in das Programm selbst einzutragen.
Danke für alle Antworten.
Dieter
-
Hallo Dieter
Kannste getrost verwenden, siehe hier:
ctl-opt option(*NoDebugIO:*NoExpDDS:*SrcStmt)
dftactgrp(*No)
datfmt(*ISO)timfmt(*ISO);
dcl-s DocType char(20)inz('Invoice');
dcl-s Currency char(3)inz('EUR');
dcl-s Language char(3)inz('ger');
************************************************** *******************
dcl-pi *n;
$DocType like(DocType);
$Currency like(Currency);
$Language char(3);
end-pi;
*inlr =*on;
kf
-
Vielen Dank. Dann steht dem totalen free format ja nichts mehr im Wege!
Dieter.
Similar Threads
-
By Andreas Huyer in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 18-01-02, 07:15
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