PDA

View Full Version : Parameterübergabe für CPYFRMSTMF



Michael Rude
28-10-11, 11:54
Hallo zusammen,

in einem CL-Programm, dass per SBMJOB aufgerufen wird, wird ein CPYFRMSTMF durchgeführt. Der Pfad wird dabei als Parameter vom aufrufenden Programm übergeben.

Dabei ergibt sich folgendes Problem:

-CALL PGM(X300UM/AXEVO) PARM('/Programme/Eurexc/server/eurexc/evo/r0582477.d01')

- CPYFRMSTMF FROMSTMF(X'61D7999687998194948561C5A49985A78361A28 599A585996185A49985A7836185A5966199F0F5F8F2F4F7F74 B84F0F140F2F4F7F74B84F0F17D5D4040960000000004C3C1D 3D
3860000000003D7C7D4') TOMBR('/QSYS.LIB/BEREDI.LIB/DFEMP.FILE/EVO.MBR')

CPD018A Diagnose 30 28.10.11 11:13:06,650193 QCAFLD QSYS 12E8 AXEVO X300UM 0027
Nachricht . . . : Pfadname enthält eingebettete Nullen.
Ursache . . . . : Der für FROMSTMF angegebene Pfadname
& Ê ? Å Ê / _ _ Á á Í Ê Á Ì [ Ë Á Ê Î Á Ê Á Í Ê Á Ì [ Á Î ? Ê
À À ? æ { * < < Ã
& å ( enthält eingebettete Nullen (X'00'). Nullen sind in Pfadnamen nicht
zulässig. Fehlerbeseitigung: Die eingebetteten Nullen aus dem Pfadnamen
entfernen. Das Information Center enthält weitere Informationen über
*PNAME-Werte.


Beim Aufruf als interaktiver Job funktioniert der Befehl. Beim manuellen Aufruf läuft der Befehl auf den gleichen Fehler, wenn ich hinter den Pfadnamen im PARM 30 Blanks hänge funktioniert er wiederum.

Ich habe schon im aufrufenden CL die Feldlänge des PARMS auf 80 gesetzt und die Folgestellen mit Blanks aufgefüllt. Aber das scheint ihn beim SBMJOB nicht zu interessieren.
Hat jemand eine Idee?

Gruß
Michael Rude

Fuerchau
28-10-11, 12:10
Immer wieder das selbe Problem:

Der CALL übergibt Zeichenketten in der angegebenen Länge, jedoch mindestens 32 Zeichen!
Entweder du füllst mit entsprechenden Leerzeichen auf oder du schreibst dir dafür ein eigenes CMD. Ein CMD passt die Übergaben dann an die Definitionen an.

Pikachu
28-10-11, 12:44
CL Programming - Using the CALL Command (http://publib.boulder.ibm.com/infocenter/iadthelp/v6r0/topic/com.ibm.etools.iseries.pgmgd.doc/evfclmst80.htm)

MR-BN
31-10-11, 07:52
Es ist das Problem mit der Übergabe von Parametern von ONLINE nach Batch. wir lösen das Problem so: An Parametern ab einer bestimmten Länge wird als letztes Zeichen ein Stern übertragen, welches vom empfangenen Programm als erstes wieder entfernt wird. dann stimmt alles wieder.

Fuerchau
31-10-11, 07:57
Guter Trick, ich übergebe immer ein Zeichen mehr als das Programm erwartet, dann braucht auch nichts entfernt zu werden.