2015-10-27 14 views
6

Oto jeden dla Ciebie.DESCRIBE FIELD z nieprzypisanym symbolem pola

Dlaczego następujący fragment kodu nie kończy się krótkim zrzutu GETWA_NOT_ASSIGNED i zamiast tego zwraca typ C o długości 2?

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). 

Nie znalazłem niczego w dokumentacji ABAP na temat tego zachowania.

EDIT:

To wygląda jak wysypisko krótka nigdy nie należy się spodziewać. Próbowałem również z

FIELD-SYMBOLS: <fs_any> TYPE i. 

i

FIELD-SYMBOLS: <fs_any> TYPE but000. 

tak vwegert „s odpowiedź wydaje się być wiarygodne, ponieważ deklarując zmienną bez typu jak ten DATA: var. domyślnych go do c o długości 1.

Odpowiedz

5

Osobista opinia, nie poparta żadną dokumentacją: ponieważ DATA foo. utworzy zmienną TYPE C LENGTH 1 niejawnie, to właśnie w tym przypadku powraca DESCRIBE FIELD. Prawdopodobnie używasz systemu Unicode - w moim systemie zwraca on długość 1. Powiedziałbym, że wywołałeś pewne nieudokumentowane zachowanie, może nawet błąd. Zdecydowanie sugerowałbym, aby NOT polegać na tym - przypuszczam, że może być zmieniony w dowolnym momencie.

+3

Mogę potwierdzić, że w naszym systemie Unicode zwraca on długość 2. Zwraca również tę samą wartość po UNASSIGN. –

Powiązane problemy