2015-10-27 8 views
6

Hier ist eine für Sie.BESCHREIBEN FELD mit einem nicht zugewiesenen Feldsymbol

Warum endet das folgende Stück Code nicht mit einem kurzen Dump GETWA_NOT_ASSIGNED und gibt stattdessen den Typ C mit der Länge 2 zurück?

FIELD-SYMBOLS: <fs_any> TYPE any. 

DESCRIBE FIELD <fs_any> 
    TYPE DATA(l_type) 
    LENGTH DATA(l_length) IN BYTE MODE 
    DECIMALS DATA(l_decimals). 

Ich konnte nichts in der ABAP-Dokumentation über dieses Verhalten finden.

EDIT:

Es sieht aus wie die Kurzdumps nie ist zu erwarten. Ich versuchte es auch mit

FIELD-SYMBOLS: <fs_any> TYPE i. 

und

FIELD-SYMBOLS: <fs_any> TYPE but000. 

so vwegert ‚s Antwort sieht plausibel, weil eine Variable wie der DATA: var. Standardwert ohne jede Art erklären es c mit Länge 1.

Antwort

5

Persönliche Meinung, nicht unterstützt von der Dokumentation entweder: Da DATA foo. implizit eine Variable von TYPE C LENGTH 1 erstellen, ist dies, was DESCRIBE FIELD in diesem Fall zurückgibt. Sie sind wahrscheinlich auf einem Unicode-System - auf meinem System gibt es die Länge 1 zurück. Ich würde sagen, Sie haben etwas undokumentiertes Verhalten ausgelöst, vielleicht sogar einen Fehler. Ich würde dringend empfehlen NICHT auf diese - ich nehme an, es könnte jederzeit geändert werden.

+3

Ich kann bestätigen, dass auf unserem Unicode-System Länge 2 zurückgibt. Und es gibt auch den gleichen Wert nach UNASSIGN zurück. –