Application Development Blog Posts
Learn and share on deeper, cross technology development topics such as integration and connectivity, automation, cloud extensibility, developing at scale, and security.
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member
0 Kudos

Task essence:

My task was to set Block ID and Text automatically while end-user created purchase requisition in ME51N.

Why do it? Because, it should be approved in another SAP module (PSM-FM) and only after this it can be converted to PO.

                             

My solution:

First of all, look at SE11, structure MEREQ_ITEM_S_CUST_ALLOWED. There are no such fields (block id and text) there.

Create append structure.

Then, implement BADI ME_PROCESS_REQ_CUST, create 1 attribute and write code of 2 methods:


G_TRTYP Instance Attribute Private Type TRTYP

  METHOD if_ex_me_process_req_cust~open.
     me
->g_trtyp = im_trtyp .
 
ENDMETHOD.

  METHOD if_ex_me_process_req_cust~process_item.
   
CHECK  me->g_trtyp  = 'H' . " creatingmode
   
CHECK im_count = .

   
DATA  reqdata   TYPE mereq_item .
   
CLEAR: reqdata .
    reqdata
= im_item->get_data( ) .

    reqdata-blckd  
= '1' .
    reqdata-blckt  
= 'need to approve' .
    im_item
->set_data( reqdata ) .

   
DATA: ls_datax TYPE mereq_itemx.
   
MOVE: 'X' TO ls_datax-blckd,
         
'X' TO ls_datax-blckt.

   
im_item->set_datax( ls_datax ) .
ENDMETHOD.

That's all. Have a nice day :smile:

1 Comment
0 Kudos
Thank you very much for this information. I successfully used this to change delivery address in the purchase requisition (Field adrn2) and it works fine!

 
Labels in this area