2015-10-27 43 views
6

這裏有一個給你。用未分配的字段符號描述字段

爲什麼下面這段代碼沒有以短轉儲GETWA_NOT_ASSIGNED結束,而是返回類型C,長度爲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). 

我在ABAP文檔中找不到關於此行爲的任何內容。

編輯:

它看起來像短轉儲從來都不是可以預期的。我試了一下還與

FIELD-SYMBOLS: <fs_any> TYPE i. 

FIELD-SYMBOLS: <fs_any> TYPE but000. 

所以vwegert的回答看起來是合理的,因爲在聲明一個變量沒有任何類型的像DATA: var.默認它c長度爲1

回答

5

個人觀點,不支持文檔:由於DATA foo.將隱式創建一個變量TYPE C LENGTH 1,這就是DESCRIBE FIELD在這種情況下返回的結果。你可能在一個Unicode系統 - 在我的系統上,它返回長度1.我想說你已經觸發了一些無證的行爲,甚至可能是一個錯誤。我強烈建議不要依靠這個 - 我想它可能會在任何時候改變。

+3

我可以確認,在我們的Unicode系統上,它返回長度爲2.並且它也在UNASSIGN之後返回相同的值。 –