Abap routing in infopackage data selection 的使用限制

leniz發表於2009-03-17

經過:AP在做資料拉取的時候(從ODS到Cube),Data Selection的條件比較複雜,它通過對兩個欄位下條件,Post Date和Clearing Date。提出的要求是,Post Date是要上個月底之前的所有日期,而Clearing Date要在本月第一天之後或者為空。
    江濤通過ABAP的方式去定條件,程式碼如下:(我選擇Post Date處理的部分程式碼)
 

Data:l_postdate like sy-datum.

CONCATENATE SYS-DATUM+0(6) ‘01’ TO l_postdate.

l_postdate = l_postdate – 1.
l_t_range-sign = 'I'.
l_t_range-option = 'LE'.
l_t_range-low =l_postdate.

Modify l_t_range index l_idx.
 

 檢查語法,無誤。
但是在執行過程中,出現如下錯誤:
 

"For sel. field '0PSTNG_DATE', no selection with SIGN = 'I'; OPTION 'LE' allowed"
起初判斷是否程式碼有誤,或是Range的賦值要賦在高位(l_t_range-high),經過測試發現錯誤依舊。所以判斷可能使此處不支援”LE”,”GE”,”LT”,”GT”等非確定的值定義,所以嘗試換了Option,變成”EQ”順利通過,又換成”BT”也可以正常匯入,所以斷定是否真如之前猜想,此處不支援“非確定值”的符號應用。
 

     通過SDN得到如下資訊:
------------------------------------------------------------------------------------------------------------------------
Instead use an OLAP variable to achieve the results you want.
But first check what are the selectionoptionssupported by your data source in the tableROOSFIELDin your source system.
-------------------------------------------------------------------------------------------------------------------------

 

在ROOSFIELD表中,查詢InforSource以及InforObject,出現如下記錄
OLTPSOURCE OBJVERS FIELD SELECTION SELOPTS
8ZAP_O03U A PSTNG_DATE X 7
而SELOPTS的值對應說明如下

value  Describle
0       Undefined Selection Options
1       Selection EQ Permitted
2       Selection BT Permitted
3       Selection EQ, BT Permitted
7       Selection EQ, BT, CP Permitted
目前值為“7“,所以對應的說明文字為“Selection EQ, BT, CP Permitted”。
通過測試,發現此欄位的值即使修改了,還是按照“7”的規則,所以目前暫不知曉系統這樣限制的原因。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/554557/viewspace-571176/,如需轉載,請註明出處,否則將追究法律責任。

相關文章