PDA

View Full Version : SBMJOB und Parameterübergabe



Seiten : [1] 2 3

svit
31-10-12, 08:10
Hallo *all,

über ILERPG wird eine CL mit empfangsparameter Externe DS aufgerufen. Das CL macht SBMJOB ..call (..) parm(externeDS) die Lerstellen der Ext.DS werden mit HEX 00000000000000 gefült
:eek:
WARUM?:mad:

Vielen dank.

Fuerchau
31-10-12, 08:15
Das Problem ist doch der Call:

call mypgm parm(&Myvar)

in diesem Fall werden die Blanks am Ende aus dem CALL entfernt und somit zu wenig Daten übergeben.

Tatsächlich macht das System ja daraus:

CALL MYPGM PARM(Inhalt)

Um Leerzeichen zu erhalten müsstest du im Programm die PARM's mit Hochkomma (incl. der Verdopplung bei eingebetteten HK's) übergeben.

svit
31-10-12, 08:35
was heißt in '

Bsp.:
eine Variable der ext.Ds ist 200 Stellen Alp. ich fülle nur
Eval Var1 = 'test'
im anderen Programm möchte ich auch test empfangen und nicht 'test'
oder sehe ich falsch

BenderD
31-10-12, 09:03
... dann schaue man sich mal die Bedienerhilfe von Karl (call) an, Zur Kontrolle der Parameter Typen gibt es extra commands (CRTCMD ist dein Freund)


D*B

svit
31-10-12, 09:27
was ist wenn ich im RPG auf HEX'00' prüfen und durch ' ' ersetze?

svit
31-10-12, 09:35
erste versuch .
ich setze am Ende der Variable ein Zeichen zum Bsp. '|' dann werden die *blanks nicht durch Hex ersetzt.
jetzt muss ich nur im end Programm das '|' Zeichen wieder entfernen.

Hat jemand besseren Vorschlag?

Bitte.

BenderD
31-10-12, 10:02
... Antworten lesen!!!
immer noch der command

svit
31-10-12, 10:19
und
ich habe keine lösung in der Bedienerhilfe gefunden.
was soll ich mit CRTCMD (ich will keinneues Command erstellen)

BenderD
31-10-12, 11:26
und
ich habe keine lösung in der Bedienerhilfe gefunden.
was soll ich mit CRTCMD (ich will keinneues Command erstellen)

call eintippen F4 und dann auf PARM F1 liefert die Ursache des Problems.

Einen command für den Aufruf des Programmes zu erstellen ist die einzig saubere Lösung, die Dinger sind extra dafür gemacht worden und was meinst Du, warum der Parameter beim SBMJOB CMD heißt!!!

Wenn Du aber Huddel haben willst, dann frag doch einfach nicht...

Bisschen weniger Huddel ist, wenn man RQSDTA statt CMD verwendet.

D*B

Robi
31-10-12, 12:05
wenn die Var > 30 (oder 32 ??) Zeichen definiert ist, müssen auch diese 30 Zeichen übergeben werden

wenn var < 30 stellig, call pgm parm('abc')
Wenn var > 30 stellig, call pgm Parm('abc ... .....')

Hex 00 ist nicht immer der 'aufgefüllte' Inhalt
Das ist alles mögliche, was im Speicher steht !!

Lösung:

dclf &var *char 200
chgvar &var 'abc'
call pgm parm(&var)

Robi