Ayuda SAP

Modificar Entrega - BAPI_OUTB_DELIVERY_CHANGE

Saludos camaradas,

Alguno de ustedes ha usado esta bapi BAPI_OUTB_DELIVERY_CHANGE para modificar las cantidades de un material dentro de una entrega?

Encontré un ejemplo en la net pero no me está funcionando, me dice que tengo problemas con las cantidades pero al final lo que quiero es modificar las cantidades.

Si alguien la ha usado y me pasa un ejemplo será agradecido por los siglos de los siglos.

Entra a la Vl02N y has el cambio del mondo despues de colocar /H en buscador, y cuando entres en modo debuging busca break-point por modulos de funciones y coloca esa bapi, ejecuta y cuando llegue alla, mira como se esta llenando a nivel estandar, y con eso resuelves.

Hola @Haden_Yasser_

Este tipo de bapis necesitas marcar algunos flags para que modifique ciertas cosas, veo que quieres modificar la cantidad de la entrega entonces debes llenar estas dos tablas que modifican la cantidad:

en la primera pones la cantidad que deseas modificar con su entrega y posicion.

en la segunda tienes que marcar el flag del campo CHG_DELQTY con una ‘X’ y ademas de poner la entrega y su posicion

Saludos,

Hola @javi_garcia27, sí ya hago eso, he trabajado con ese tipo de bapis antes, gracias por comentar.

@smota Lo intentaré mañana, asumiendo que la standard llame esa bapi por detrás, lo cual muchas veces no hace.
Editado: No funcionó @smota

1 me gusta

Ahora sí, no me estaba actualizando la entrega porque no le estaba pasando el Commit.

Este es el code de ejemplo que estoy usando por si las moscas:

 "Esta es una prueba
  SELECT * FROM lips INTO TABLE t_entregas
    WHERE vbeln = no_entrega.
**Datos de cabecera*****************************************************
  header_data-deliv_numb = no_entrega.
  header_control-deliv_numb = no_entrega.
  techn_control-upd_ind = 'U'."Actualizar
  
  "Ahora suponemos que en t_entregas solo iran las posiciones a modificar
  LOOP AT t_entregas.
    item_data-deliv_numb = t_entregas-vbeln."Entrega 
    item_data-deliv_item = t_entregas-posnr."Posicion
    item_data-material   = t_entregas-matnr."Material
    item_data-dlv_qty    = t_entregas-lfimg."Cantidad modificada de la entrega
    item_data-dlv_qty_imunit = t_entregas-lfimg."De nuevo cantidad
    item_data-fact_unit_nom   = t_entregas-umvkz."No sé que es pero está en la LIPS
    item_data-fact_unit_denom = t_entregas-umvkn."Ni idea
    item_data-sales_unit      = t_entregas-vrkme."Unidad medida de venta

    IF t_entregas-kzpod IS NOT INITIAL."Este campo lo tomé al azar para pasar A si se actualiza la pos
                                       "O pasarle B si se borra la misma.
      item_control-deliv_numb = t_entregas-vbeln.
      item_control-deliv_item = t_entregas-posnr.

      IF t_entregas-kzpod = 'A'."Actualizar
        item_control-chg_delqty = 'X'.
      ELSEIF t_entregas-kzpod = 'B'."Borrar
        item_control-del_item = 'X'.
      ENDIF.
      APPEND item_control.

    ENDIF.


    APPEND item_data.
  ENDLOOP.


  "Modificar entrega
  CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
    EXPORTING
      header_data    = header_data
      header_control = header_control
      delivery       = no_entrega
      techn_control  = techn_control
    TABLES
      item_data      = item_data
      item_control   = item_control
      return         = t_return.


  IF t_return[] IS INITIAL.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait = 'X'.
  ENDIF.
2 Me gusta

Lo viste en el estandar o se te ocurrio ponerle el commit?

@smota standard no me apareció la bapi, le puse el commit porque en el desarrollo que estoy haciendo uso más bapis, y a todas le paso el commit, revisando me di cuenta que me faltaba eso, porque no me estaba devolviendo siquiera error al final ¯_(ツ)_/¯

.

Esa es la BAPI que usa el standard, hare una busqueda a ver que tal, buenisimo que resolviste con eso. Marca tu solucion como valida, y sigamos con el dia.

jajaj ese maldito Commit siempre ocasionando problemas, que bueno que lo solucionaste!.

Saludos,

1 me gusta

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.