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

需求:根据采购申请创建采购订单的时候,将PR header text 带到PO header text上
spro 下找的增强点:

Copy <wbr>PR <wbr>header <wbr>text <wbr>to <wbr>PO <wbr>header <wbr>when <wbr>ME21N
其实就是 ME_PROCESS_PO_CUST

Method

 

Copy <wbr>PR <wbr>header <wbr>text <wbr>to <wbr>PO <wbr>header <wbr>when <wbr>ME21N
利用里面的一个method set_text
Copy <wbr>PR <wbr>header <wbr>text <wbr>to <wbr>PO <wbr>header <wbr>when <wbr>ME21N
参考代码
Copy <wbr>PR <wbr>header <wbr>text <wbr>to <wbr>PO <wbr>header <wbr>when <wbr>ME21N

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               |
*********************************************************************
  
DATAls_header TYPE mepoheader.
  
DATAwa_item   TYPE mepoitem.
  
DATAlv_name   TYPE thead-tdname.
  
DATAlv_bsart  TYPE eban-bsart.
  
DATAlv_spras  TYPE thead-tdspras.
  
DATAlt_text   TYPE mmpur_t_textlines.
  
DATAlt_line   TYPE TABLE OF tline.
  
DATAls_line   LIKE LINE OF lt_line.
  
DATAls_text   LIKE LINE OF lt_text.
  
DATAlt_item_object   TYPE purchase_order_items.
  
DATAls_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 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 )


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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值