2014-12-28 50 views
3

我必須根據where條件在我的內部表上執行一個循環,但根據我的程序的模式,where條件的字段必須在運行時修改。ABAP動態WHERE子句IN LOOP AT語句

我知道在一個SELECT語句中它是可能的,但是當我在循環中這樣做時我有一個錯誤。

這是我的代碼:

CASE gv_cdvue. 
    WHEN 'L'. 
    lv_condi = 'dcmdr GE gv_daybf OR dcmdr LE gv_daybf '. 
    WHEN 'C'. 
    lv_condi = 'dcldr GE gv_daybf OR dcldr LE gv_daybf '. 
    WHEN 'E'. 
    WHEN OTHERS. 


ENDCASE. 


    LOOP AT gt_plcad INTO ls_plcad WHERE (lv_condi). 
    .... 
    ENDLOOP. 

我的錯誤是:

Statement concluding with "...(LV_CONDI)" ended unexpectedly. 
+0

IIRC動態LOOP ... WHERE語句是ABAP的一個相當新的增加,並且只能在NetWeaver 7.31+中使用。你在什麼版本上? – Philipp

+0

根據[this](http://help.sap.com/abapdocu_702/en/abaploop_at_itab_cond.htm)它應該是可能的。你到底有什麼樣的錯誤?它是編譯錯誤還是運行時錯誤。你能發佈它的細節嗎? – Jagger

+0

我在我的錯誤@Jagger中寫道,菲利普我怎麼知道我的髮型? – shmoolki

回答

3

你得到,因爲你的SAP不兼容的錯誤。在循環中的條件動態添加7.0 EhP2版本。你應該高於7.0 Ehp2然後只有你可以寫動態的條件。

我希望這個答案對你有幫助。