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

Título: BAPI_SALESORDER_CHANGE
Publicado 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
Título: Re: BAPI_SALESORDER_CHANGE
Publicado por: jorge en 03 de Febrero de 2011, 07:26:55 pm
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.