利用里面的一个method set_text
参考代码
FUNCTION zmm_copy_pr_text_to_po .
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(IM_HEADER) TYPE REF TO IF_PURCHASE_ORDER_MM
*"----------------------------------------------------------------------
*********************************************************************
* AUTHOR : liumeng
* FS:
*--------------------------------------------------------------------
* DESCRIPTION :
* 1)Check PO ZPT2
* 2)Check PR ZNB2
* 3)Get PR text MARKING OF TOOL and BUYER NOTE
* 4)Copy PR text to PO
* CHANGE HISTORY
*--------------------------------------------------------------------
* DATE | NAME | DESCRIPTION |
*--------------------------------------------------------------------
* | LiuMeng | Create |
*********************************************************************
DATA: ls_header TYPE mepoheader.
DATA: wa_item TYPE mepoitem.
DATA: lv_name TYPE thead-tdname.
DATA: lv_bsart TYPE eban-bsart.
DATA: lv_spras TYPE thead-tdspras.
DATA: lt_text TYPE mmpur_t_textlines.
DATA: lt_line TYPE TABLE OF tline.
DATA: ls_line LIKE LINE OF lt_line.
DATA: ls_text LIKE LINE OF lt_text.
DATA: lt_item_object TYPE purchase_order_items.
DATA: ls_item_object LIKE LINE OF lt_item_object.
"get header infor
CALL METHOD im_header->get_data
RECEIVING
re_data = ls_header.
"check p0 bsart = zpt2
CHECK ls_header-bsart = 'ZPT2'.
"get item_ refer object
CALL METHOD im_header->get_items
RECEIVING
re_items = lt_item_object.
CHECK lt_item_object[] IS NOT INITIAL.
"get the last one of user select(can't sort,user maybe select not in order)
LOOP AT lt_item_object INTO ls_item_object .
CALL METHOD ls_item_object-item->get_data
RECEIVING
re_data = wa_item.
ENDLOOP.
"get item
CALL METHOD ls_item_object-item->get_data
RECEIVING
re_data = wa_item.
CHECK wa_item-banfn IS NOT INITIAL.
"get refer PR
lv_name = wa_item-banfn .
"check PR type
SELECT SINGLE bsart spras INTO ( lv_bsart,lv_spras )
FROM eban WHERE banfn = wa_item-banfn.
IF sy-subrc = 0 AND lv_bsart = 'ZNB2'.
ELSE.
RETURN.
ENDIF.
"read text
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = 'B03' "MARKING OF TOOL
language = lv_spras
* language = sy-langu
name = lv_name
object = 'EBANH'
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.
"get text
* READ TABLE lt_line INTO ls_line INDEX 1 .
CLEAR ls_text.
LOOP AT lt_line INTO ls_line.
ls_text-tdobject = 'EKKO'.
ls_text-tdid = 'F19'.
ls_text-tdformat = ls_line-tdformat.
ls_text-tdline = ls_line-tdline .
APPEND ls_text TO lt_text.
ENDLOOP.
"MARKING OF TOOL
CALL METHOD im_header->if_longtexts_mm~set_text
EXPORTING
im_tdid = 'F19'
im_textlines = lt_text.
CLEAR ls_text.
CLEAR lt_text[].
"read text
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = 'B04' " BUYER NOTE
language = lv_spras
* language = sy-langu
name = lv_name
object = 'EBANH'
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.
"get text
* READ TABLE lt_line INTO ls_line INDEX 1 .
CLEAR ls_text.
LOOP AT lt_line INTO ls_line.
ls_text-tdobject = 'EKKO'.
ls_text-tdid = 'F01'.
ls_text-tdformat = ls_line-tdformat.
ls_text-tdline = ls_line-tdline.
APPEND ls_text TO lt_text.
ENDLOOP.
"BUYER NOTE
CALL METHOD im_header->if_longtexts_mm~set_text
EXPORTING
im_tdid = 'F01'
im_textlines = lt_text.
ENDFUNCTION.
至于里面read text 的时候,为啥不用系统默认语言,参考:
http://blog.sina.com.cn/s/blog_c0978c9b0102wmjl.html
另外本人开通了一个微信订阅号,欢迎关注:SAP学习记录 (SAPlearning )