0
点赞
收藏
分享

微信扫一扫

Copy PR item text to PO when ME21N_SAP刘梦_新浪博客

Go_Viola 2022-08-16 阅读 49


首先,PO item text是可以通过配置实现的,

但是有时候业务顾问偷懒,或者因为某些什么原因,不能创建或者传输 Customizing request。

这个时候也就只能通过代码来实现了……


创建采购订单的时候,将参考的采购申请对应的item 文本带过来

增强点跟 header的一样



​​

Copy <wbr>PR <wbr>item <wbr>text <wbr>to <wbr>PO <wbr>when <wbr>ME21N

​​​
ME_PROCESS_PO_CUST



只是对应的method变成了item
​​​

Copy <wbr>PR <wbr>item <wbr>text <wbr>to <wbr>PO <wbr>when <wbr>ME21N

​​​

​​​

Copy <wbr>PR <wbr>item <wbr>text <wbr>to <wbr>PO <wbr>when <wbr>ME21N

​​​

参考代码

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 )

​​

PO <wbr><wbr>text <wbr><wbr>copy <wbr><wbr>rules <wbr><wbr>:copy <wbr><wbr>PR <wbr><wbr>item <wbr><wbr>text <wbr><wbr>to <wbr><wbr>PO

​​

举报

相关推荐

0 条评论