Inicio > BAPIs > BAPI_INCOMINGINVOICE_PARK – BAPI para la MIR7

BAPI_INCOMINGINVOICE_PARK – BAPI para la MIR7

Caso: se requiere encontrar una BAPI para crear un documento factura y grabarlo en la MIR7.

Solución: El siguiente programa es un ejemplo de como utilizar la BAPI_INCOMINGINVOICE_PARK; se debe tener en cuenta que difiere la forma de utilizarla, según si el pedido es de materiales o de servicios (está relacionado con el uso de los campos sheet_no y sheet_item):

REPORT  zprueba_bapi_mir7.
 
DATA: x_in_header LIKE bapi_incinv_create_header,
      i_in_item   LIKE bapi_incinv_create_item OCCURS 0 WITH HEADER LINE,
      lc_belnr    LIKE bapi_incinv_fld-inv_doc_no,
      lc_gjahr    LIKE bapi_incinv_fld-fisc_year,
      lw_ekko     TYPE ekko,
      d_msg(110),
      lw_ekpo     TYPE ekpo,
      i_return    LIKE bapiret2 OCCURS 0 WITH HEADER LINE.
 
SELECT SINGLE * FROM ekko INTO lw_ekko
  WHERE ebeln = '0060000120'.
 
CHECK sy-subrc EQ 0.
x_in_header-invoice_ind   = 'X'.
x_in_header-doc_type      = 'K1'.             " Tipo de documento
x_in_header-pstng_date    = '20141028'.       " Fecha contabilización
x_in_header-doc_date      = '20141025'.       " Fecha documento
x_in_header-ref_doc_no    = '60000120'.       " Referencia
x_in_header-comp_code     = '1000'.           " Sociedad
x_in_header-currency      = lw_ekko-waers.    " Moneda
x_in_header-gross_amount  = '787500'.         " Monto
x_in_header-calc_tax_ind  = 'X'.              " Calcular impuestos
x_in_header-bus_area      = 'VAP'.            " División
x_in_header-pmnttrms      = lw_ekko-zterm.    " Cond. de pago
x_in_header-diff_inv      = lw_ekko-lifnr.    " Proveedor
 
i_in_item-invoice_doc_item = '000001'.        " #Ítem
i_in_item-po_number        = '0060000120'.    " Nro. Pedido SAP
i_in_item-po_item          = '00010'.         " Pos. Pedido SAP
i_in_item-sheet_no         = '1000000606'.    " Recepción
i_in_item-sheet_item       = '0000000010'.    " Posición
i_in_item-TAX_CODE         = 'C1'.            " Ind. Impuestos
APPEND i_in_item. CLEAR i_in_item.
 
CALL FUNCTION 'BAPI_INCOMINGINVOICE_PARK'
  EXPORTING
    headerdata       = x_in_header
  IMPORTING
    invoicedocnumber = lc_belnr
    fiscalyear       = lc_gjahr
  TABLES
    itemdata         = i_in_item
    return           = i_return.
 
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
  EXPORTING
    wait = 'X'.
LOOP AT i_return.
  PERFORM f_message_prepare USING sy-langu
                                  i_return-id
                                  i_return-number
                                  i_return-message_v1
                                  i_return-message_v2
                                  i_return-message_v3
                                  i_return-message_v4
                         CHANGING d_msg.
  WRITE: / d_msg.
ENDLOOP.
IF NOT lc_belnr IS INITIAL.
  WRITE: / 'Doc :', lc_belnr.
  WRITE: / 'Año :', lc_gjahr.
ENDIF.
 
*&---------------------------------------------------------------------*
*&      Form  F_MESSAGE_PREPARE
*&--------------------------------------------------------------------
FORM f_message_prepare USING    p_langu
                                p_msgid
                                p_msgno
                                p_msgv1
                                p_msgv2
                                p_msgv3
                                p_msgv4
                       CHANGING p_msg.
 
  DATA: lc_char(3).
 
  WRITE p_msgno TO lc_char.
  CLEAR p_msg.
 
  CALL FUNCTION 'MESSAGE_PREPARE'
    EXPORTING
      language               = p_langu
      msg_id                 = p_msgid
      msg_no                 = lc_char
      msg_var1               = p_msgv1(50)
      msg_var2               = p_msgv2(50)
      msg_var3               = p_msgv3(50)
      msg_var4               = p_msgv4(50)
    IMPORTING
      msg_text               = p_msg
    EXCEPTIONS
      function_not_completed = 1
      message_not_found      = 2
      OTHERS                 = 3.
 
ENDFORM.                    " F_MESSAGE_PREPARE
  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: