Hi Folks!
I'm kind of new in the area of developing enhancements such as a User Exit. What i'm trying to do is to control that some document clases cannot contain certain account assignment category, especifically the 'T'. The user exit i'm using is EXIT_SAPLMEREQ_008, this is called before a process called post.
The code is the following:
<i>DATA: lt_req_items TYPE mmpur_requisition_items,
ls_req_items LIKE LINE OF lt_req_items.
DATA: TABLA TYPE MMPUR_REQUISITION_ITEMS.
DATA: ZMEREQ_ITEM like MEREQ_ITEM.
DATA: IDMEN(5).
DATA: LINEA TYPE UEBAN.
DATA TABLA2 LIKE MEREQ_ITEM-BNFPO OCCURS 0.
Call method IM_REQ_HEADER->GET_ITEMS
receiving RE_ITEMS = TABLA.
CALL METHOD IM_REQ_HEADER->LOOKUP
RECEIVING IM_BNFPO = TABLA2.
IMPORT ZMEREQ_ITEM FROM MEMORY ID 'ZM'.
LOOP AT TABLA INTO ls_req_items.
ls_req_items->ITEM-IM_DATA = ZMEREQ_ITEM.
ENDLOOP.
<b>* MODIFICACION REALIZADA POR GLI 27-07-2006 ******
Valida que los documentos indicados por el req
MM-SOLP-001 no tengan tipo de imputacion T.</b>
LOOP AT IM_EBAN_CHANGES INTO LINEA.
if ( LINEA-BSART = 'G021' or ( LINEA-BSART between 'G201' and 'G219' )
OR LINEA-BSART = 'G660' ) and LINEA-KNTTP = 'T'.
MESSAGE ID 'ZM' TYPE 'E' NUMBER '002'.
endif.
IDMEN = LINEA-BNFPO .
IMPORT ZMEREQ_ITEM FROM MEMORY ID IDMEN.
LINEA-ZZAVANR1 = ZMEREQ_ITEM-ZZAVANR1 .
LINEA-ZZNETWR1 = ZMEREQ_ITEM-ZZNETWR1 .
LINEA-ZZAVANR2 = ZMEREQ_ITEM-ZZAVANR2 .
LINEA-ZZNETWR2 = ZMEREQ_ITEM-ZZNETWR2 .
LINEA-ZZAVANR3 = ZMEREQ_ITEM-ZZAVANR3 .
LINEA-ZZNETWR3 = ZMEREQ_ITEM-ZZNETWR3 .
MODIFY IM_EBAN_CHANGES-ZZNETWR3 FROM LINEA-ZZNETWR3.
ENDLOOP.</i>
The problems are:
1. Strangely when I debug this code, the debugger checks the comments. It goes through it, don't really get this behavior.
2. When it gets in:
LOOP AT IM_EBAN_CHANGES INTO LINEA.
It executes like the 3 lines then stops, and it exits and don't execute the message, nor the following code when the if statement is false:
IDMEN = LINEA-BNFPO .
IMPORT ZMEREQ_ITEM FROM MEMORY ID IDMEN.
LINEA-ZZAVANR1 = ZMEREQ_ITEM-ZZAVANR1 .
LINEA-ZZNETWR1 = ZMEREQ_ITEM-ZZNETWR1 .
LINEA-ZZAVANR2 = ZMEREQ_ITEM-ZZAVANR2 .
LINEA-ZZNETWR2 = ZMEREQ_ITEM-ZZNETWR2 .
LINEA-ZZAVANR3 = ZMEREQ_ITEM-ZZAVANR3 .
LINEA-ZZNETWR3 = ZMEREQ_ITEM-ZZNETWR3 .
My questions are:
1. Are there any lines limit for an user-exit, because this behavior is pretty strange for me.
2. Why does this user-exit executes comments? (Just in case, the comments are fine)
I will appreciate your help.
Thanks.
Best Regards,
Gilberto Li