SD--关于定价过程中的存储顺序的参考结构和参考字段的使用代码跟踪
在sap的定價配置中,我們常常會使用到參考結構和參考字段(條件表和存儲順序),這些字段是如何使用的呢,我帶著這個好奇閱讀了sap的源碼(函數SD_COND_ACCESS),并將我的理解記錄下來供大家參考。
Step 1 調用t682z_select子過程從T682Z讀取存儲順序存儲到t682z_tab
PERFORM t682z_select TABLES t682z_tab
USING t682i_i
CHANGING subrc.
并根據參考結構和參考字段拼接存放到內表的字段kommfield中
CONCATENATE t682z_buf-qustr '-' t682z_buf-qufna
INTO t682z_buf-kommfield.
Step 2 在子例程sel_kondtab中根據存儲順序里的參考結構和字段名提取參考結構的對應字段值
ASSIGN TABLE FIELD (proto_fld_tab-kommfield) TO <f>.
proto_fld_tab-wert = <f>.
注:proto_fld_tab-kommfield的值,如:KOMP-PRODH1
Step 3 在子例程sel_kondtab中拼接查詢條件(放在coding_tab內表中)
* buffered with wrong value -> replace value
coding_template-value = proto_fld_tab-wert.
REPLACE ALL OCCURRENCES OF '''' IN proto_fld_tab-wert
WITH '''''' IN CHARACTER MODE.
CONCATENATE '''' proto_fld_tab-wert '''' INTO h_value.
CONCATENATE <t682z>-zifna '=' h_value
INTO coding_template-line
SEPARATED BY ' '.
MODIFY coding_template INDEX sy-tabix TRANSPORTING value line.
IF first = yes.
first = no.
coding_tab = coding_template-line.
ELSE.
CONCATENATE 'AND' coding_template-line INTO coding_tab
SEPARATED BY ' '.
ENDIF.
ENDIF.
APPEND coding_tab.
Step 4 在子例程sel_kondtab中根據拼接(放在coding_tab內表中)出查詢條件取讀取條件記錄。
SELECT * FROM (t681-kotab) APPENDING TABLE <cond_tab>
UP TO 1 ROWS
WHERE kappl = se_kappl
AND kschl = se_kschl
AND (coding_tab).
注:t681-kotab為條件表名稱如:A802 ;coding_tab內容參見下圖
有了這些,我們對參考字段和參考結構的使用的理解就應該很容易了。
總結
以上是生活随笔為你收集整理的SD--关于定价过程中的存储顺序的参考结构和参考字段的使用代码跟踪的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SD--订单最小量限制的增强
- 下一篇: PC上虚拟机中安装NW 7.02 ABA