-
Prozedur variabel aufrufen
Hallo
Ich habe folgendes Problem:
VisualRPG 6.0 im Free-Format (es könnte auch native RPG-IV sein)
In einer gemeinsam benutzten Komponente gibt es verschiedene Prozeduren.
Eine dieser Prozeduren füllt eine Variable mit dem Namen einer Prozedur in derselben Komponente.
Diese Prozedur soll jetzt aufgerufen werden.
Wie muss ich das machen ? Irgendwie stehe ich auf dem Schlauch.
Danke schon mal
Rolf
-
Hallo Rolf,
das geht mit Prototyp, Procedure Pointer, MI und APIs, auf meiner Freeware Seite gibt es dazu ein Serviceprogramm (PROCP4NAME) plus Beispiel.
mfg
Dieter Bender
Zitat von rolf
Hallo
Ich habe folgendes Problem:
VisualRPG 6.0 im Free-Format (es könnte auch native RPG-IV sein)
In einer gemeinsam benutzten Komponente gibt es verschiedene Prozeduren.
Eine dieser Prozeduren füllt eine Variable mit dem Namen einer Prozedur in derselben Komponente.
Diese Prozedur soll jetzt aufgerufen werden.
Wie muss ich das machen ? Irgendwie stehe ich auf dem Schlauch.
Danke schon mal
Rolf
-
Zitat von BenderD
Hallo Rolf,
das geht mit Prototyp, Procedure Pointer, MI und APIs, auf meiner Freeware Seite gibt es dazu ein Serviceprogramm (PROCP4NAME) plus Beispiel.
mfg
Dieter Bender
Hallo
Ich habe mir das Serviceprogramm (PROCP4NAME) von Dieter Bender angeschaut.
Ist toll wen ich meine Prozeduren dynamisch laden könnte.
Meine Frage: giebt es auch eine Möglichkeit die parameter einer Procedur
zu ermitteln.
PHP-Code:
D ReflectProc PR z EXTPROC(CallPointer)
Den im Beispiel von Dieter Bender ist der Rückgabewert ja schon bekannt.
Wünschenswert wäre ein Lösung mit der man verschiedene Proceduren mit
unterschiedlichen Pareametern aufrufen kann
PHP-Code:
/free ReflectProc(Parm1:parm2); // oder rueckgabe = ReflectProc(Parm1:parm2:parm3); /end-free
Geht das irgendwie oder nicht.
Wenn nein dann erspare ich mir mit dem dynamischen ermitteln von
Procedurpointern ja nur das einbinden des Serviceprogramms und das
das einbinden der underschiedlichen Prototypen bleibt.
mfg Stefan
-
Du musst halt deine variablen Prozeduren mit einer einheitlichen Schnittstelle Aufrufen.
Z.B. übergibst du immer die Referenz auf eine Struktur:
d MyStruct ds
d NumParm 5I 0
d Adrparm * dim(256)
Mittels AdrParm kannst du dann bis zu 256 Parameter übergeben.
z.B.:
NumParm = 2;
AdrParm(0) = %addr(FieldA);
AdrParm(1)= %addr(FieldB);
callp MyDynamicProc(MyStruct);
In der Prozedur:
D MyParm1 ds based(AdrParm(1))
D MyParm2 ds based(AdrParm(2))
:
Reflection gibts nur in Java.
-
@Stefan: da gibt es auch noch QZRUCLSP und die restlichen Infos könnte man sich per API aus den Serviceprogrammen holen - aber 1. ist das nicht praktikabel (irgendwo muss man ja die Rückgabe hintun und irgendwo müssen die Parameter ja her kommen und 2. sehe ich da keinen praktikablen Vorteil.
Beim dynamischen binden geht es mir um elegantere (und sicherere!!!) Aktivierung und um die Flexibilität Programm at startup time aus einer externen Konfiguration zusammen zu stellen.
@Baldur: Beim Einsatz von Reflection in Java muss man zwei Fälle unterscheiden: a) dynamischer Aufruf vorhandener Klassen: dabei werden meist Interfaces mit verwendet und die Technik ist in RPG so ähnlich nachbildbar (wenn auch etwas mehr hölzern). b) dynamisches zusammen bauen von Objekten (wie in Hibernate oder Struts verwendet) das geht dann in RPG in der Tat nicht zu bewrkstelligen. Die Haupteinschränkungen sind allerdings fehlendes qualified naming (da bewegt sich ein wenig) und insbesondere fehlende Mehrfachaktivierung, was weit schlimmer ist und zu massiveren Workarounds zwingt.
mfg
Dieter Bender
Similar Threads
-
By Vicky-B in forum NEWSboard Java
Antworten: 17
Letzter Beitrag: 06-05-08, 11:05
-
By pfpk0997 in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 15-11-06, 09:40
-
By loeweadolf in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 06-11-06, 15:05
-
By sarge in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 06-12-04, 08:40
-
By BUG in forum IBM i Hauptforum
Antworten: 9
Letzter Beitrag: 18-10-04, 13:55
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