Foro de programación ABAP
SAP / ABAP => Programación ABAP => Mensaje iniciado por: javi.mart en 26 de Junio de 2009, 12:04:25 pm
-
Buenas!
Tengo que eliminar pedidos de ventas de forma masiva debido que se han duplicado por error.
He econtrado esta bapi BAPI_SALESORDER_CHANGE que según pone en la documentación es para modificar o eliminar pedidos.
He encontrado la forma de eliminar/modificar o añadir lineas pero no la forma de eliminar el pedido entero...
Alguien sabe como se hace??
muchas gracias
-
Para borrar los pedidos necesitas la BAPI 'BAPI_SALESORDER_CHANGE'
E_ORDERM-sd_doc_cat = 'C'. "Tipo de Documento Comercial
E_ORDERMX-UPDATEFLAG = 'D'. " La 'D' nos indica que es de borrado
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
SALESDOCUMENT = V_VBELN "Aqui se inserta el numero del documento a borrar
ORDER_HEADER_IN = E_ORDERM
ORDER_HEADER_INX = E_ORDERMX
behave_when_error = 'P'
TABLES
RETURN = RETURN_MO.
READ TABLE RETURN_CO WITH KEY TYPE = 'E'. "Se ven los mensajes de tipo 'E' (Error)
IF SY-SUBRC EQ 0.
MESSAGE E000(ZSD) WITH RETURN_CO-MESSAGE+0(20)
RETURN_CO-MESSAGE+20(20)
RETURN_CO-MESSAGE+40(20).
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'. "Si no hay mensajes de error se guardan cambios
MESSAGE S000(ZSD) WITH 'Se Borro el Pedido ' V_VBELN.
ENDIF.