PDA

View Full Version : Dekleration Cobol <-> RPG



Xanas
11-01-07, 13:57
Hallo,

hab eine Funktion in RPGLE mit einem Parameter
D test B
D test PI
D pVar 5I 0


so die Funktion will ich im Cobol aufrufen,

So hab ich irgendwo in den weiten des Internts gefunden muss man
01 zahl PIC s9(4) comp-4
definieren.

So was mache ich nur wenn die RPG Funktion eine Zahl > 9999 setzt, dann geht mir die erste Ziffer im Cobol flöten :eek:.

Gibts da noch ein trick?

Grüße
Xanas

Fuerchau
11-01-07, 14:03
COBOL ist da etwas restriktiv, zumal solche Felder noch einen Overhead produzieren.
Intern wird ein Pic s9(4) comp-3 Feld generiert um eben die überzählige Ziffer auch tatsächlich abzuschneiden.

Allerdings gibt es eine Compiler-Directive die seit V2 definiert ist aber kaum erwähnt wird:

process notrunc
Identification Division
:

Also mittels "Process"-Anweisung als 1. Zeile in der Quelle führt dazu, dass S9(4) und S9(9) comp-4 den vollen Umfang wahrnehmen kann.

Allerdings sollte man von solchen Schnittstellen eher absehen.

Xanas
11-01-07, 14:25
Vielen Dank schon mal, aber hätte da noch ne frage, warum sollt man davon abesehen.

Hab das eben auch mal Ausprobiert, Compilieren geht, doch im Debugger seh ich trozdem nur vier Ziffern, liegt das jetzt am Debugger oder hats dann doch nicht funktioniert?

Fuerchau
11-01-07, 14:49
Man sollte doch mal nachschauen und nicht immer alles aus dem Bauch heraus:

Process nostdtrunc

Xanas
12-01-07, 07:32
Ja vielen Dank so klappts super.

Gruß
Xanas