Autor Tema: BAPI_PO_CHANGE - Cambiar condición de pago de un pedido. ME22N  (Leído 6271 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado ale12

  • Usuario Completo
  • ***
  • Mensajes: 92
    • Ver Perfil
BAPI_PO_CHANGE - Cambiar condición de pago de un pedido. ME22N
« en: 21 de Marzo de 2011, 12:25:51 pm »
Comparto un Perform donde tengo como cambiar la condición de pago en un pedido.
Para ello utilizaré la Bapi BAPI_PO_CHANGE.

Código: [Seleccionar]
FORM modificar_condicion_pago .
* Tabla y estructuras para la bapi de cambio
  DATA: l_st_poheaderx          LIKE  bapimepoheaderx,
        l_st_poheader           LIKE  bapimepoheader,
        l_st_resultado  LIKE bapiret2 OCCURS 0 WITH HEADER LINE.
  DATA: l_ebeln_new(1) TYPE c.     " Indicador nuevo doc.compras
  DATA: gc_2 LIKE bapita-wait VALUE '2'.


  SORT g_it_ped_compras BY ebeln.
  LOOP AT g_it_ped_compras.

*   La cabecera de pedido de compras sólo se realizará una vez por
*   nº de documento.
    AT NEW ebeln.
*     Se informa la variable de nuevo documento de compras.
      l_ebeln_new = 'X'.
    ENDAT.

*   Si se activó la variable de nuevo documento de compras.
    IF NOT l_ebeln_new IS INITIAL.
*     Se inicializa la variable de nuevo documento de compras.
      CLEAR l_ebeln_new.

      IF g_it_ped_compras-bukrs BETWEEN '0001' AND '1000'.
        SELECT SINGLE * FROM lfa1
                       WHERE lifnr = g_it_ped_compras-lifnr
                         AND vbund BETWEEN '000001' AND '001000'.
        IF sy-subrc = 0.

          l_st_poheader-pmnttrms  = 'ZXXX'. "Condición de pago nueva
*         Marcar la referencia
          l_st_poheaderx-pmnttrms = 'X'.

*         Modificar el campo ZTERM de la tabla ekko
          CALL FUNCTION 'BAPI_PO_CHANGE'
            EXPORTING
              purchaseorder = g_it_ped_compras-ebeln
              poheader      = l_st_poheader
              poheaderx     = l_st_poheaderx
            TABLES
              return        = l_st_resultado.

*         Si no existe error se genera un commint
          CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
            EXPORTING
              wait = gc_2.

        ENDIF.
      ENDIF.
    ENDIF.

  ENDLOOP.