-
*entry PList in free
Hallo,
habe in einem PGM die *entry PList durch free ersetzt. Also mit H-Bestimmung Main(...) und Prozedur.
Das funktioniert jetzt auch soweit, aber nur beim ersten Aufruf. Danach sind meine Variablen nicht initialisiert. Ich habe das zumindest für die F3-Taste geprüft. F3 ist noch an. Wieso das? Wurde das PGM nicht richtig beendet? Was ist richtig *inLR oder return?
Gruß Andreas
-
Sehe ich das richtig, dass Du nicht einfach die *ENTRY PLIST durch Procedure Interface und Prototyp ersetzt, sondern dass Du versuchst die neuen Freatures in Release 6.1 zu nutzen.
Wenn es nur darum geht die *Entry PList zu ersetzen hätte ich alles gelassen wie es ist und einfach Prototyp (mit Schlüsselwort EXTPGM) und Procedure Inteface eingebunden.
Wenn Du die neuen Features in 6.1 verwendest, also den Programm-Code in eine Procedure (mit P-Statement zu Beginn und Ende) packst und MAIN in den H-Bestimmungen angibst, klemmst Du den Zyklus ab. Der Zyklus macht im Hintergrund schon das eine oder andere selber und *INLR ist Zyklus!
Weiterhin solltest Du beachten, wenn du schon eine Prozedur für das Programm machst, solltest Du auch die Dateien lokal definieren. Dann werden sie beim Aufruf automatisch geöffnet und beim Verlassen der Prozedur geschlossen (es sei den das Schlüssel-Wort STATIC ist in den F-Bestimmungen angegeben oder die Dateien werden user controlled geöffnet). Wenn die Dateien global definiert sind, erfolgt das Öffnen zwar automatisch beim 1. Aufruf (wie innerhalb eines Moduls für Service-Programme), sie bleiben jedoch offen und werden nicht geschlossen wenn die Main-Prozedur mit Return (anders geht es nicht!) beendet wird.
Birgitta
-
Das Programm ist RPG IV und wird entweder direkt aus dem Menü oder von einem anderen RPG-Programm aufgerufen. Es gibt einen Eingansparameter, der gefüllt ist, wenn das Programm aus dem anderen Programm aufgerufen wird.
Ich habe nun ein bischen geübt und das Hauptprogramm in free umgeschrieben. Da es aber keine Entsprechung für *entry PList in free gibt, habe ich nach einer Lösung gesucht. Sicherlich ist der völlige Verzicht auf das Hauptprogramm und die Deklaration der Dateien in Prozeduren richtig, ich muss das aber nicht zwingend umsetzen. Das kann ich mir auch bei einer Neuentwicklung vornehmen. Fehler ist bei mir sicher, dass die Dateien noch global definiert sind.
Zitat von B.Hauser
Wenn es nur darum geht die *Entry PList zu ersetzen hätte ich alles gelassen wie es ist und einfach Prototyp (mit Schlüsselwort EXTPGM) und Procedure Inteface eingebunden.
Das versteh ich nicht ganz. Erklär das mal bitte genauer.
-
Das versteh ich nicht ganz. Erklär das mal bitte genauer.
Deine bestehende Quelle hat ungefähr wie folgt ausgesehen:
PHP-Code:
H-Bestimmungen
F-Bestimmungen
D-Bestimmungen
C-Bestimmungen
C Entry PList im klassischen Format
C/Free
Sonstiger Source-Code
C/End-Free
ggf. noch ein paar interne Prozeduren
Du musst lediglich die *ENTRY-PList entfernen und dafür in den D-Bestimmungen ein Procedure Interface anlegen. Und da Prototyping immer Procedure Interface und Prototyp benötigt, muss in den D-Bestimmungen noch der Prototyp (mit Schlüssel-Wort EXTPGM damit der Compiler zwischen Prozedur und Programm unterscheiden kann) angelegt werden. Anstatt den Prototypen direkt in der Quelle zu hinterlegen hätte sollte man ihn in einer Copy-Strecke angeben.
Neu sieht das Ganze so aus:
PHP-Code:
H-Bestimmungen (MAIN ist nicht notwendig!!!)
F-Bestimmungen
D-Bestimmungen
* Prototyp sollte in Copy-Strecke hinterlegt sein.
D MyPGM PR ExtPGM('MYPGM')
D Par1 10A
D Par2 7P 0
*Procedure Interface (statt *ENTRY PLIST)
D MyPGM PI
D Par1 10A
D Par2 7P 0
* Sonstige D-Bestimmungen
C*** Entry PLIST entfällt
/Free
Sonstiger Source Code
/End-Free
Birgitta
-
Ja, ich denke, das ist das richtige für mich. Werde ich probieren und das Ergebnis mitteilen.
Danke soweit
* E * D * I * T *
Hat super geklappt. Danke sehr und schönes WE!
Similar Threads
-
By Fucasdreh in forum NEWSboard Server Job
Antworten: 0
Letzter Beitrag: 10-01-07, 13:12
-
By kr1s in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 08-09-06, 11:59
-
By cc in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 08-08-06, 23:11
-
By redsky in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 04-05-05, 12:26
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