首先,PO item text是可以通过配置实现的,
但是有时候业务顾问偷懒,或者因为某些什么原因,不能创建或者传输 Customizing request。
这个时候也就只能通过代码来实现了……
创建采购订单的时候,将参考的采购申请对应的item 文本带过来
增强点跟 header的一样
ME_PROCESS_PO_CUST
只是对应的method变成了item
参考代码
FUNCTION zmm_copy_pr_item_text_to_po.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(IM_ITEM) TYPE REF TO IF_PURCHASE_ORDER_ITEM_MM
*"----------------------------------------------------------------------
DATA:
lo_header TYPE REF TO if_purchase_order_mm,
ls_header TYPE mepoheader,
ls_item TYPE mepoitem,
ls_eban TYPE eban,
lv_name TYPE thead-tdname,
lv_spras TYPE thead-tdspras,
lt_line TYPE TABLE OF tline,
ls_line LIKE LINE OF lt_line,
lt_text TYPE mmpur_t_textlines,
ls_text LIKE LINE OF lt_text.
*--- Header get
CALL METHOD im_item->get_header
RECEIVING
re_header = lo_header.
CLEAR:ls_header.
CALL METHOD lo_header->get_data
RECEIVING
re_data = ls_header.
"check po type
CHECK ls_header-bsart = 'ZPT2'.
*--- Item data
CLEAR:ls_item.
CALL METHOD im_item->get_data
RECEIVING
re_data = ls_item.
"get refer PR data
SELECT SINGLE * FROM eban INTO ls_eban
WHERE banfn = ls_item-banfn
AND bnfpo = ls_item-bnfpo.
CHECK sy-subrc = 0.
"check pr type
CHECK ls_eban-bsart = 'ZNB2'.
CLEAR lv_name.
CONCATENATE ls_item-banfn ls_item-bnfpo INTO lv_name.
lv_spras = ls_eban-spras.
"read text
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = 'B02' "Item Note
language = lv_spras
name = lv_name
object = 'EBAN'
TABLES
lines = lt_line
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
CLEAR lt_text[].
LOOP AT lt_line INTO ls_line.
ls_text-tdobject = 'EKPO'.
ls_text-tdid = 'F11'. "Item Note
ls_text-tdformat = ls_line-tdformat.
ls_text-tdline = ls_line-tdline .
APPEND ls_text TO lt_text.
ENDLOOP.
IF lt_text[] IS NOT INITIAL.
CALL METHOD im_item->if_longtexts_mm~set_text
EXPORTING
im_tdid = 'F11'
im_textlines = lt_text.
ENDIF.
ENDFUNCTION.
至于read text为啥不用系统登录语言,请参考
http://blog.sina.com.cn/s/blog_c0978c9b0102wmjl.html
另外本人开通了一个微信订阅号
欢迎关注:SAP学习记录 (SAPlearning )