-
ILE: IMPORT / EXPORT
Hallo zusammen,
ich habe zwei ILE-Pogramme, die mittels EXPORT-/IMPORT-Schlüsselwort kommunizieren.
Programm A schreibt etwas in die Variable und B ließt es aus.
Beide Programme sind korrekt gebunden und die Übertragung klappt wunderbar.
Nachdem die Verarbeitung abgeschlossen ist, bleibt der Variableninhalt weiterhin erhalten. Das ist ein Feature dieser Konstruktion.
Meine Frage lautet: Wie kann der Variableninhalt dennoch gelöscht werden, ohne gleich einen neuen Job starten zu müssen? Geht es über Befehle wie RCLACTGRP oder dergleichen?!
Gruß, jc
-
RCLACTGRP ist wohl eher die harte Methode.
Normalerweise sollte es reichen, wenn das Hauptprogramm mit *INLR = *ON verlassen wird.
Andererseits müsste das Hauptprogramm doch eher wissen, wann der Inhalt gelöscht werden sollte.
Hinweis:
Eine Kommunikation über Import/Export sollte besser nicht durchgeführt werden, da der Status ggf. nicht eindeutig ist.
Ein Serviceprogramm kann innerhalb der Aktivierungsgruppe von verschiedenen Stellen aufgerufen werden und den exportierten Inhalt verändern.
-
export macht die Variable global für die ACTGRP sichtbar (soweit sie in einem Modul importiert wird), die Variable wird mit der Erzeugung der Activationgroup erzeugt und lebt bis zum Ende der Activationgroup und behält über die gesamte Lebensdauer ihren jeweiligen Inhalt bis zur nächsten Änderung.
RCLACTGRP impliziert das löschen des Inhalts aller global deklarierter Variablen, auch der exportierten, hat allerdings auch Nebenwirkungen und kann heimatlose Pointer zur Folge haben.
(BTW: LR ist hier nicht Zielführend).
Besser als Export/Import ist es; Prozeduraufrufe mit Parameter zu verwenden oder statt HUGO zu exportieren, Zugriffsprozeduren getHugo und setHugo zu exportieren, das ist besser kontrollierbar.
D*B
 Zitat von jc_denton
Hallo zusammen,
ich habe zwei ILE-Pogramme, die mittels EXPORT-/IMPORT-Schlüsselwort kommunizieren.
Programm A schreibt etwas in die Variable und B ließt es aus.
Beide Programme sind korrekt gebunden und die Übertragung klappt wunderbar.
Nachdem die Verarbeitung abgeschlossen ist, bleibt der Variableninhalt weiterhin erhalten. Das ist ein Feature dieser Konstruktion.
Meine Frage lautet: Wie kann der Variableninhalt dennoch gelöscht werden, ohne gleich einen neuen Job starten zu müssen? Geht es über Befehle wie RCLACTGRP oder dergleichen?!
Gruß, jc
-
@Fuerchau:
Wie BenderD schon sagte, INLR führt nicht zur Initialisierung. Auszug aus der Doku:
"The initialization for the storage occurs when the program entry procedure (of the program containing the module) is first called. RPG IV will not do any further initialization on this storage, even if the procedure ended with LR on, or ended abnormally on the previous call."
@BenderD:
Ich habe in diesem Fall leider keinen Einfluss auf die Art der Deklaration. Ich kann nur mit dem Gegebenen arbeiten.
@All:
Gibt es evtl. andere Möglichkeiten die Variablen zu löschen?
Danke für die Antworten!
Gruß, jc
-
... so wie immer, HUGO = 0, bzw.HUGO = ' ', or whatever might be desired, in einem beliebigen Modul, das HUGO importiert
D*B
 Zitat von jc_denton
@Fuerchau:
Wie BenderD schon sagte, INLR führt nicht zur Initialisierung. Auszug aus der Doku:
"The initialization for the storage occurs when the program entry procedure (of the program containing the module) is first called. RPG IV will not do any further initialization on this storage, even if the procedure ended with LR on, or ended abnormally on the previous call."
@BenderD:
Ich habe in diesem Fall leider keinen Einfluss auf die Art der Deklaration. Ich kann nur mit dem Gegebenen arbeiten.
@All:
Gibt es evtl. andere Möglichkeiten die Variablen zu löschen?
Danke für die Antworten!
Gruß, jc
Similar Threads
-
By Stoeberl in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 10-01-07, 10:58
-
By Nergal in forum NEWSboard Drucker
Antworten: 3
Letzter Beitrag: 05-01-07, 17:11
-
By horni in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 07-12-06, 18:51
-
By Squall in forum IBM i Hauptforum
Antworten: 31
Letzter Beitrag: 28-09-06, 17:53
-
By gerhardbreit in forum IBM i Hauptforum
Antworten: 0
Letzter Beitrag: 12-06-06, 08:23
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