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
Categorías:BAPIs
BAPI, BAPI MIR7, BAPI PARK DOCUMENT, BAPI_INCOMINGINVOICE_PARK, MIR7, MIRO, PARK DOCUMENT
Comentarios (0)
Trackbacks (0)
Deja un comentario
Trackback