Automatic setting lock when creating the purchase requisition. BADI ME_PROCESS_REQ_CUST.
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.
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
me->g_trtyp = im_trtyp .
CHECK me->g_trtyp = ‘H’ . ” creatingmode
CHECK im_count = 1 .
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 ) .
That’s all. Have a nice day 🙂
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!