#1
|
|||
|
|||
BAPI_PO_CHANGE no aplica por posicion
Hola todos! Tengo una BAPI que deberia modificar solamente una posicion de la tabla ekpo pero no esta funcionando y esta modificando el campo BSGRU de las posiciones que repiten el material. el Codigo es el siguiente:
----------------------- DATA: t_POITEM LIKE BAPIMEPOITEM OCCURS 0 WITH HEADER LINE, t_POITEMx LIKE BAPIMEPOITEMx OCCURS 0 WITH HEADER LINE, l_flag(1), flag_exebapi(1), g_text(50) TYPE c. LOOP AT it_ekpo. READ TABLE it_ekbe WITH KEY ebeln = it_ekpo-ebeln ebelp = it_ekpo-ebelp. flag_exebapi = 'N'. IF SY-SUBRC = 4. WRITE: / ' NINGUN REGISTRO ENCONTRADO ', it_ekpo-ebeln, ' POSICION: ', it_ekpo-ebelp, ' MAT.: ',it_ekpo-matnr. flag_exebapi = 'S'. ELSE. IF it_ekpo-menge > it_ekbe-menge. WRITE: / ' REGISTRO CON DIFERENCIA: ', it_ekpo-ebeln, ' POSICION: ', it_ekpo-ebelp, ' cant_ekpo: ',it_ekpo-MENGE, ' vrs Cant_ekbe: ', it_ekbe-menge. flag_exebapi = 'S'. ELSE. WRITE: / ' REGISTRO ENCONTRADO: ', it_ekpo-ebeln, ' POSICION: ', it_ekpo-ebelp, ' cant ',it_ekpo-MENGE, ' versus ', it_ekbe-menge. flag_exebapi = 'N'. ENDIF. ENDIF. IF flag_exebapi = 'S'. " Ejecuta la bapi para actualizar el registro. *------------------------------------------------- clear t_poitem. * * perform move_to_bapi. t_POITEM-po_item = it_ekpo-ebelp. t_POITEM-order_reason = '100'. APPEND t_poitem. clear t_poitemx. t_POITEMx-po_item = it_ekpo-ebelp. t_POITEMx-po_itemx = 'X'. t_POITEMx-order_reason = '100'. APPEND t_poitemx. CALL FUNCTION 'BAPI_PO_CHANGE' EXPORTING purchaseorder = it_ekpo-ebeln TABLES POITEM = t_POITEM POITEMx = t_POITEMx. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'. *------------------------------------------------ ENDIF. ENDLOOP. Que tendre malo que no modifica por posicion? |
Herramientas | Buscar en Tema |
Desplegado | |
|
|