BAPI_ACC_BILLING_POST -> ¿uso?

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • rrr.Vanquish
    Junior Member
    • sep
    • 18

    #1

    BAPI_ACC_BILLING_POST -> ¿uso?

    Hola a todos!

    Mi aventura con las bapi's sigue con un nuevo episodio (el primero fue BAPI_ACC_GL_POSTING_POST).

    Tengo que crear documentos contables de facturas, los datos de las cuales las obtengo de ficheros .txt y los guardo en tablas internas.

    He estado investigando un poco y he llegado a la conclusión de que la bapi a utilizar es BAPI_ACC_BILLING_POST, pero no tengo ni idea de cómo utilizarla. He estado buscando por Internet y por el foro pero ni por asomo hay tantas cosas como en la anterior BAPI.

    Alguien tiene algún código de ejemplo o me puede marcar las directrices básicas de utilización de dicha BAPI?

    Muchas gracias por adelantado a todos!!
  • rrr.Vanquish
    Junior Member
    • sep
    • 18

    #2
    He encontrado este ejemplo de código de llamada a la bapi en cuestión,
    pero no consigo hacer que me reconozca el cliente.
    He probado con alguna entrada de la KNA1 y de BSID o BSAK, pero no los encuentra:

    Error en el documento: BKPFF $ ...

    El deudor 100193 SH06 no existe.

    Donde SH06 es la sociedad donde estoy haciendo las pruebas y el deudor 100193 existe en la tabla BSID.







    ************************************************** ****************
    ** Código de prueba para el uso de BAPI_ACC_BILLING_POST
    ************************************************** ****************

    DATA: documentheader LIKE bapiache01 ,
    accountreceivable LIKE bapiacar01 OCCURS 0 WITH HEADER LINE,
    * wa_accountreceivable LIKE LINE OF bapiacar01,
    accountgl LIKE bapiacgl01 OCCURS 0 WITH HEADER LINE,
    * wa_accountgl LIKE LINE OF bapiacgl01,
    currencyamount LIKE bapiaccr01 OCCURS 0 WITH HEADER LINE,
    * wa_currencyamount LIKE LINE OF bapiaccr01,
    accounttax LIKE bapiactx01 OCCURS 0 WITH HEADER LINE,
    return LIKE bapiret2 OCCURS 0 WITH HEADER LINE.

    * header
    documentheader-obj_type = 'BKPFF'.
    documentheader-obj_key = '$'.
    *documentheader-obj_key(10) = number.
    *documentheader-obj_key+10(4) = '1000'.
    *documentheader-obj_key+14(4) = '2003'.
    documentheader-obj_sys = 'HOTCLNT201'.
    *documentheader-obj_sys(1) = 'Z'.
    *documentheader-obj_sys+1(3) = sy-sysid.
    *documentheader-obj_sys+4(3) = sy-mandt.
    documentheader-username = sy-uname.
    documentheader-header_txt = 'BAPI Billing Example'.
    documentheader-obj_key_r = ''.
    documentheader-comp_code = 'SH06'.
    documentheader-ac_doc_no = sy-datlo."number.
    documentheader-fisc_year = '2006'.
    documentheader-doc_date = '20060110'.
    documentheader-pstng_date = '20060110'.
    documentheader-trans_date = '20060110'.
    documentheader-fis_period = '10'.
    documentheader-doc_type = 'RV'.
    documentheader-ref_doc_no = 'xx-xx-xx'.
    documentheader-compo_acc = ''.
    documentheader-reason_rev = ''.

    ************************************************** ******************
    * cuentas a cobrar
    *wa_
    accountreceivable-itemno_acc = '1'.
    accountreceivable-customer = '100193'. "Customer number
    accountreceivable-item_text = 'TEXTO'. "Item Text
    * wa_ACCOUNTRECEIVABLE-GL_ACCOUNT = '7690000001'.
    APPEND accountreceivable." TO accountreceivable.

    *wa_
    accountgl-itemno_acc = '2'.
    accountgl-gl_account = '9001100100'. "¿?¿?¿?¿?¿?¿?
    accountgl-tax_code = 'R2'. "'K2'.
    APPEND accountgl." TO accountgl.


    ************************************************** ******************
    * Items
    *wa_
    currencyamount-itemno_acc = '1'.
    currencyamount-currency = 'EUR'.
    currencyamount-amt_doccur = '1200'.
    APPEND currencyamount." TO currencyamount.

    *wa_
    currencyamount-itemno_acc = '2'.
    currencyamount-currency = 'EUR'.
    currencyamount-amt_doccur = '-1200'.
    currencyamount-amt_base = currencyamount-amt_doccur.
    APPEND currencyamount." TO currencyamount.

    ************************************************** ******************
    * Llamada a la bapi de facturas

    CALL FUNCTION 'BAPI_ACC_BILLING_POST'
    EXPORTING
    documentheader = documentheader
    TABLES
    accountreceivable = accountreceivable
    accountgl = accountgl
    accounttax = accounttax
    currencyamount = currencyamount
    return = return.

    LOOP AT return.
    WRITE : /, return-message.
    ENDLOOP.

    *CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    * EXPORTING
    * wait = 'X'
    * TABLES
    * return = return.

    Comentario

    • rrr.Vanquish
      Junior Member
      • sep
      • 18

      #3
      Me sigo autocontestando:

      Se comprueba el deudor sobre la vista VF_DEBI (vista de KNA1 y KNB1). Para que el sistema entienda bien el id del deudor, éste debe ser de 10 dígitos. Es decir, se debe completar con 0's por la izquierda.

      Comentario

      • drake316
        Junior Member
        • mar
        • 10

        #4
        Saludos.

        Podrias decirme si esta bapi funciona para postear el impuesto tambien?

        Comentario

        Trabajando...