Anmelden

View Full Version : %DEC Fehler



Liebhoff
08-11-06, 07:11
Bin ich blind ?

Ich habe definiert:

0035.00 d##08p s 8p 0
0036.00 d##08t s 8
** (das a für Alpha bei der Definition von ##08T hilft auch nicht)

Der Inhalt von ##08t ist immer ein Datum in der Form 20061108 somit immer eine Zahl.

Ich will ausführen:

0096.00 c eval ##08p = %dec(##08t:8:0)

Und der Compiler sagt:

*RNF0327 30 138 009600 The first parameter for %DEC or %DECH is not valid.

Release V5R3 - englisches OS/400

Wo liegt der Fehler jemand eine Ahnung.
Aus verzewifelung habe ich schon mit dem guten alten MOVE Workaround gearbeitet, aber das will ich eigentlich nicht.

Thomas

Fuerchau
08-11-06, 07:33
Nun, das kann an der verwendeten CCSID des Job's oder der SRCPF liegen.
Sonderzeichen (wie #) in Namen sollte man tunlichst vermeiden. Man weiß nie welche Auswirkungen das manchmal hat.
Ich vermute einfach, dass der Compiler hier Schwierigkeiten mit der Namensauflösung hat.

Liebhoff
08-11-06, 07:44
Das war es leider auch nicht, habe geradeden Namen geändert, so dass die Zeile heißt:

eval ch08p = %dec(ch08t:8:0)

selbes Problem.

Thomas

Liebhoff
08-11-06, 12:38
Ich habe gerade das ganze nochmal auf einer anderen Maschine versucht. Selbe Definition und alles arbeitet bestens.

Gab es an der Stelle mal ein PTF oder so, dass sich auf den RPG Compiler bezog ?

Thomas

Liebhoff
08-11-06, 14:28
Das Problem ist gelöst.

In einem anderen Beitrag in diesem Forum zum Thema %DEC kam mal der Hinweis, das %DEC erst ab V5R2 richtig mit Character Feldern arbeitet. Das ist Goldrichtig !!!

Die Maschine auf der ich arbeite hat OS V5R3M0 . Irgend wer hat den CRTBNDRPG Befehl mal geändert, so dass dieser als Parameter Target release . . . . . . . . . TGTRLS V5R1M0 verwendet. Warum weiß heute keiner mehr.

Wenn man nun mit TGTRLS = *Current compiliert, ist alles im grünen Bereich.

Da soll nun einer drauf kommen ! Vielleicht hilft diese Erkenntnis aber auch mal bei anderen Problemen.

Thomas