-
Call ILERPG mit Parameterübergabe aus OPM-Programm heraus
Liebe Community,
ich möchte aus einem OPM RPG-Programm heraus ein neues ILERPG-Programm aufrufen und Parameter übergeben. Komischerweise werden die Werte im aufzurufenden Programm nicht empfangen. Wenn ich im Debugger schaue, dann haben die Parameter-Werte nur ein "?". Wenn ich das Programm aber von der Befehlszeile aufrufe, dann funktioniert es.
Das aufzurufende Programm ist komplett in *FREE geschrieben.
Hier einige Statements des Programmes:
Code:
Ctl-Opt
Actgrp(*new)
BndDir('*LIBL/MYBNDD')
DftActGrp(*no)
Main(Main);
.
.
.
Dcl-PR Main Extpgm;
Parameter1 zoned(1);
Parameter2 zoned(5);
Parameter3 zoned(3);
End-PR;
Dcl-Proc Main;
// Programm-Interface
Dcl-PI Main;
Parameter1 zoned(1);
Parameter2 zoned(5);
Parameter3 zoned(3);
End-PI;
.
.
.
End-Proc;
Und das OPM-Programm, welches das andere PGM aufruft, sieht so aus:
Code:
.
.
.
d myNewPgm pr extpgm('MYNEWPGM')
d parameter1 1 0
d parameter2 5 0
d parameter3 3 0
.
.
.
parameter1 = 1;
parameter2 = 1304;
parameter3 = 0;
myNewPgm(parameter1:parameter2:parameter3);
.
.
.
Beim Aufruf des neuen Programms über die Befehlszeile, muss ich auch unbedingt diese Schreibweise einhalten, damit es funktioniert:
Code:
call mynewpgm parm('1' '01304' '000')
Ich bin Neuling auf dem ILE-Gebiet. Das ist mein erstes ILE-Programm an das ich Parameter übergeben möchte. Habe zwar schon Prozeduren mit Parameterübergabe geschrieben - das funktioniert auch wunderbar.
Was mache ich falsch?
Schöne Grüße
Artur Janzen
-
Hallo und schönen nachmittag
Versuche mal anstatt ZONED die Felder PACKED zu definieren.
-
Ob zoned oder gepackt macht dafür erstmal keinen Unterscheid, aber wichtig zu wissen:
Der Command CALL interpretiert Zahlenargumente grundsätzlich als 15p 5 also packed(15:5).
Zoned sind Zeichenfelder, die auf Ziffern beschränkt sind, daher der CMD Call mit Hochkomma.
Für Programmaufrufe kann man i.Ü. auch eigene CMD's schreiben.
Dabei werden dann die Übergabewerte korrekt an das Programm übergeben, da die Definition die Konvertierung vorschreibt.
-
Meiner Meinung nach ist der Fehler klar ersichtlich.
Im aufrufenden Pgm sind die Parameter alle gepackt, im aufgerufenen aber explizit gezont - daher kommt dann Müll an.
-
Ja, ihr hattet Recht. Das war's. Ich habe im neuen Programm die Felder als "packed" definiert und jetzt klappt es.
Wusste gar nicht, dass die Felder im alten Programm als packed definiert werden, wenn ich nichts angebe. Habe jetzt aber ein P angegeben, damit man das auf den ersten Blick ersieht.
Danke für eure Hilfe.
Gruß
Artur Janzen
-
Eine Frage habe ich aber noch. Wie soll ich das neue Programm jetzt über die Befehlszeile starten? Ich würde es gerne auch so testen können und einfach mit ein paar Parametern füttern. Aber wie ich die Parameter auch eingebe, ob mit Hochkomma oder ohne, ich bekomme immer eine Fehlermeldung.
-
Gepackte parameter müssen beim Aufruf über Befehlszeile in hex angegeben werden. x'12345F' (entspricht der Übergabe eines gepackten numerischen Wertes mit 5 Ziffern (Definition Packed(3))
Ansonsten hilft nur der Aufruf aus einem anderen Programm.
-
Hm, das ist mir dann aber doch zu umständlich. Wahrscheinlich werde ich dann lieber die Parameterfelder wieder auf ZONED umstellen und dann aber auch im Aufruf-Programm ZONED-Felder daraus machen.
Danke trotzdem für den Hinweis mit den hex-Werten.
Gruß
Artur Janzen
-
Packed(3) sind aber nur 3 Ziffern. Man gibt die Zffern und nicht die Bytes an;-).
Similar Threads
-
By Fuerchau in forum NEWSboard Programmierung
Antworten: 12
Letzter Beitrag: 17-03-20, 12:56
-
By harkne in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 20-03-19, 11:35
-
By TheDevil in forum NEWSboard Programmierung
Antworten: 22
Letzter Beitrag: 16-02-16, 08:11
-
By TheDevil in forum NEWSboard Programmierung
Antworten: 12
Letzter Beitrag: 12-02-15, 11:40
-
By malzusrex in forum NEWSboard Programmierung
Antworten: 17
Letzter Beitrag: 15-11-13, 11:21
Tags for this Thread
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