Copy PR header te…

来源:互联网 发布:淘宝合作快递费用标准 编辑:程序博客网 时间:2024/04/30 01:10
需求:根据采购申请创建采购订单的时候,将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 .
  
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 .
  
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.



至于里面readtext 的时候,为啥不用系统默认语言,参考:

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



原创粉丝点击