SAP BPS : 一變數多特徵

leniz發表於2011-06-21

        這幾天為Data slice發愁,因為預算系統鎖定功能是一定要的,但是自帶的鎖定功能必須到GUI去操作。在我已將預算搬到Web的情況下,使用者是萬萬不願意多走兩步的,他覺得可以有,應該有Web頁面的鎖定功能。

        在Web Interface,沒有現成的元件可以用於資料鎖定的功能。當然開發時一定的。 我們今天不說開發,而是說在這個過程中碰到的一個功能應用。

         在GUI下的鎖定功能,除了可以用具體的值,還可以用預算變數,看到這個我欣喜若狂(IT的感情底線是如此之低)。

         但是變數又涉及到一個問題。系統可以定義無數個鎖定,每個鎖定的定義是一組資料的組合,比如:2011年 + A版本 + 甲公司 ,或2011年+ C版本+丁公司。 而變數是針對每一個特徵建立的,比如年變數,版本變數,公司變數....。 問題來了,其實這些值是一個組合值,即要年+版本+公司才有意義的,而不是說年有2011,版本A和C,公司甲和丁,這樣2011年+C版本+甲公司也被鎖定了。 顯然行不通。

         不過在重新審視變數設計時,發現可以在一個變數中加入多個特徵,即特徵組合,正是我想要的。

          於是下一個環節是對這種變數賦值的語法測試,弄了一個晚上總是出來了結果。

一般下的變數出口程式碼:以公司變數為例

l_eto_charsel_wa-chanm = 'ZCOMPANY'.
l_eto_charsel_wa-seqno = '0001'.
l_eto_charsel_wa-sign  = 'I'.
l_eto_charsel_wa-opt   = 'EQ'.
l_eto_charsel_wa-low   = '1000'.
INSERT l_eto_charsel_wa INTO TABLE eto_charsel.

組合特徵的變數寫法是:以公司+時間變數為例

l_eto_charsel_wa-chanm = 'ZCOMPANY'.
l_eto_charsel_wa-seqno = '0001'.
l_eto_charsel_wa-sign = 'I'.
l_eto_charsel_wa-opt = 'EQ'.
l_eto_charsel_wa-low = '1000'.
INSERT l_eto_charsel_wa INTO TABLE eto_charsel.

l_eto_charsel_wa-chanm = '0CALYEAR'.
l_eto_charsel_wa-seqno = '0001'.
l_eto_charsel_wa-sign = 'I'.
l_eto_charsel_wa-opt = 'EQ'.
l_eto_charsel_wa-low = '2011'.
INSERT l_eto_charsel_wa INTO TABLE eto_charsel.

哈哈,技巧就在seqno上,對同一組值設定相同的seqno即可。

於是在做完這些測試後,信心滿滿的把這個組合變數賦值給Dataslice中的特徵時,不幸發生了, 這裡不允許使用這種多特徵的變數。

我差點從凳子上摔下來。 挺好的東西,憑什麼不可以呀? 想不通。

 

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

相關文章