SE24
IF_PURCHASE_ORDER_MM
IM_HEADER是個介面,由系統負責實體化,
其中GET_CONDITIONS是獲取抬頭條件TAB頁資料,可是直接通過IM_HEADER呼叫方法,回傳的是空值,
查看方法GET_CONDITIONS,根據行號獲取指定的條件定價值,全部的條目在變數po_tkomv_hash_table或tkomv中,可以嘗試指標指向這兩個變數,
觀察行上獲取條件凈價的方法,標準方法通過宏命令mmpur_dynamic_cast強轉my_parent,直接通過l_header呼叫get_tkomv獲取,查看l_header方法GET_TKOMV是繼承自介面IF_PURCHASING_DOCUMENT,可以用如下代碼獲取抬頭條件凈價
DATA: lo_po_doc TYPE REF TO if_purchasing_document .
DATA: lt_tkomv TYPE mmpur_tkomv .
lo_po_doc ?= ir_header.
lo_po_doc->get_tkomv( IMPORTING ex_tkomv = lt_tkomv ) .
SAP標準代碼
抬頭獲取條件凈價
METHOD if_purchase_order_mm~get_conditions .
DATA: ls_cond_entry TYPE komv,
l_kposn TYPE komv-kposn.
CLEAR ex_conditions.
READ TABLE po_tkomv_hash_table WITH KEY kposn = l_kposn BINARY SEARCH
TRANSPORTING NO FIELDS.
IF sy-subrc IS INITIAL.
LOOP AT po_tkomv_hash_table INTO ls_cond_entry FROM sy-tabix.
IF ls_cond_entry-kposn NE l_kposn.
EXIT.
ENDIF.
APPEND ls_cond_entry TO ex_conditions.
ENDLOOP.
ELSE.
PERFORM mepo_badi_get_conditions IN PROGRAM saplmepo
USING l_kposn
CHANGING ex_conditions.
ENDIF.
ENDMETHOD. "IF_PURCHASE_ORDER_MM~GET_CONDITIONS
行獲取條件凈價
METHOD if_purchase_order_item_mm~get_conditions .
DATA: l_header TYPE REF TO cl_po_header_handle_mm,
lt_conditions TYPE mmpur_tkomv,
ls_cond_entry LIKE LINE OF lt_conditions,
l_kposn TYPE komv-kposn.
CLEAR ex_conditions.
mmpur_dynamic_cast l_header my_parent.
CHECK NOT l_header IS INITIAL.
CALL METHOD l_header->get_tkomv
IMPORTING
ex_tkomv = lt_conditions.
l_kposn = po_item_number.
READ TABLE lt_conditions WITH KEY kposn = l_kposn BINARY SEARCH
TRANSPORTING NO FIELDS.
IF sy-subrc IS INITIAL.
LOOP AT lt_conditions INTO ls_cond_entry FROM sy-tabix.
IF ls_cond_entry-kposn NE l_kposn.
EXIT.
ENDIF.
APPEND ls_cond_entry TO ex_conditions.
ENDLOOP.
ELSE.
PERFORM mepo_badi_get_conditions IN PROGRAM saplmepo
USING l_kposn
CHANGING ex_conditions.
ENDIF.
ENDMETHOD.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/551955.html
標籤:其他
上一篇:MM 獲取抬頭條件凈價
下一篇:返回列表
