bie-dro
17-02-21, 11:31
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:
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:
.
.
.
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:
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
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:
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:
.
.
.
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:
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