Bapi Bapi_acc_document_post

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • bbiagini
    Junior Member
    • may
    • 3

    #1

    Bapi Bapi_acc_document_post

    Hola Amigos

    alguien tiene algun ejemplo de como utilizar esta bapi (BAPI_ACC_DOCUMENT_POST) soy nuevo en abap y me pidieron esto con urgencia alguin me puede ayudar
  • rrr.Vanquish
    Junior Member
    • sep
    • 18

    #2
    A mi también me interesa mucho.

    Te lo subo.

    Saludos!

    Comentario

    • conrad10ar
      Banned
      • mar
      • 296

      #3
      Hola, espero les sea de ayuda.

      1) deben declarar las tablas que le van a pasar a la BAPI.

      DATA BEGIN OF t_cabecera OCCURS 0.
      INCLUDE STRUCTURE BAPIACHE09.
      DATA END OF t_cabecera.

      DATA: wa_cabecera LIKE BAPIACHE09.

      DATA BEGIN OF t_poscliente OCCURS 0.
      INCLUDE STRUCTURE BAPIACAR09.
      DATA END OF t_poscliente.

      DATA BEGIN OF t_posprove OCCURS 0.
      INCLUDE STRUCTURE ZBAPIACAP09.
      DATA END OF t_posprove.

      DATA BEGIN OF t_impuesto OCCURS 0.
      INCLUDE STRUCTURE BAPIACTX09.
      DATA END OF t_impuesto.

      DATA BEGIN OF t_importes OCCURS 0.
      INCLUDE STRUCTURE BAPIACCR09.
      DATA END OF t_importes.

      DATA BEGIN OF t_retenciones OCCURS 0.
      INCLUDE STRUCTURE BAPIACEXTC.
      DATA END OF t_retenciones.

      DATA BEGIN OF t_log OCCURS 0.
      INCLUDE STRUCTURE BAPIRET2.
      DATA END OF t_log.


      2) Una vez declaradas, deben poner los datos que necesiten en cada uno de sus campos. (para ver más detalles de los campos, entren a la se37 y miren el IMPORT de la función)

      3) Una vez que cargaron los datos, estos pueden ser levantando un archivo, harcodeandolos, etc, llaman a la BAPI.

      CALL FUNCTION 'Z_BAPI_ACC_DOCUMENT_POST'
      EXPORTING
      DOCUMENTHEADER = wa_cabecera
      * Prueba copia de bapi_acc_posting_document_post
      * IMPORTING
      * obj_key = l_obj_key
      TABLES
      * ACCOUNTGL =
      ACCOUNTRECEIVABLE = t_poscliente
      ACCOUNTPAYABLE = t_posprove
      ACCOUNTTAX = t_impuesto
      CURRENCYAMOUNT = t_importes
      * CRITERIA =
      * VALUEFIELD =
      EXTENSION1 = t_retenciones
      RETURN = t_log
      * PAYMENTCARD =
      * CONTRACTITEM =
      * EXTENSION2 =
      * REALESTATE =

      Llaman por último esta función y listo.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

      Espero les halla servido, ante cualquier estoy a su disposición.

      Comentario

      • conrad10ar
        Banned
        • mar
        • 296

        #4
        Aclaración al anterior POST la llamada de la BAPI es sin 'Z_' y la estructura zbapiacap09 también es sin la Z delante.

        Comentario

        • dmgman
          Senior Member
          • feb
          • 149

          #5
          Hola, espero que me puedas echar un cable acerca de esta funcion. Mi problema es que no me graba el asiento, ¿¿en que parte de la funcion efectua las grabaciones???
          Carpe Diem !!

          Comentario

          • conrad10ar
            Banned
            • mar
            • 296

            #6
            Hola, si no te está dando ningún error, lo que te falta es agregar un commit work o ejecutar la "BAPI_TRANSACTION_COMMIT" después de la BAPI.

            Espero que te sirva.

            Comentario

            • dmgman
              Senior Member
              • feb
              • 149

              #7
              Hola conrad,
              Te cuento estoy desarrollando un interfase, para la cual hasta que tenga datos fijos, estoy usando valores de prueba que me han pasado. Llamo a la funcion "BAPI_ACC_DOCUMENT_POST", y en la tabla de respuesta, me viene que se ha ejecutado correctamente.
              Y luego hago la funcion "BAPI_TRANSACTION_COMMIT".

              A partir de ahi, voy a ver el nuevo asiento por la transaccion FB03 y me dice que no existe.

              ¿Sabeis que campos son obligatorio pasarle a la funcion?
              O que otra cosa puede pasarme.

              Gracias.
              Carpe Diem !!

              Comentario

              • conrad10ar
                Banned
                • mar
                • 296

                #8
                Te paso los que puse y me anduvo:

                document_header:

                BUS_ACT
                USERNAME
                HEADER_TXT
                COMP_CODE
                DOC_DATE
                PSTNG_DATE
                DOC_TYPE
                REF_DOC_NO
                REF_DOC_NO_LONG

                account_receivable:

                ITEMNO_ACC
                CUSTOMER
                REF_KEY_1
                REF_KEY_2
                COMP_CODE
                PMNTTRMS
                PAYMT_REF
                ALLOC_NMBR
                ITEM_TEXT
                BUSINESSPLACE
                PYMT_CUR_ISO
                PYMT_AMT

                account_payable:

                ITEMNO_ACC
                VENDOR_NO
                REF_KEY_1
                REF_KEY_2
                COMP_CODE
                PMNTTRMS
                ALLOC_NMBR
                ITEM_TEXT
                BUSINESSPLACE
                PYMT_AMT
                PYMT_CUR_ISO
                PAYMT_REF

                currency:

                ITEMNO_ACC
                CURRENCY
                AMT_DOCCUR
                AMT_BASE


                Espero te halla sido de ayuda.

                Comentario

                • dmgman
                  Senior Member
                  • feb
                  • 149

                  #9
                  Estoy revisando los campos que me comentas, de todas formas, pensandolo un poco digo yo que si me faltara algun campo me devolveria un error la funcion.
                  O eso supongo que seria lo logico.

                  Si se os ocurre alguna otra posibilidad de solucionarlo, soy todo oidos.
                  Editado por última vez por dmgman; 11/10/2006, 10:26:22.
                  Carpe Diem !!

                  Comentario

                  • rrr.Vanquish
                    Junior Member
                    • sep
                    • 18

                    #10
                    Hola,

                    Estoy en la misma tesitura: la bapi teóricamente me funciona ya que me devuelve un mensaje de éxito.
                    Realizo la llamada a la BAPI_TRANSACTION_COMMIT y ésta devuelve 0, por lo que entiendo que no ha habido problemas en el commit.

                    Pero al ir a la FB03 para visualizar el documento éste no existe.

                    He mirado mil cosas y me estoy volviendo loco y no sé qué puede ser.
                    Entiendo que si me faltara algo me devolvería algún código de error, pero nada de nada.

                    Socorro!!!

                    PD: un saludo.

                    Editado: también lo estoy haciendo con valores de prueba, y los datos me vendrán de una interfase (archivo), al igual que el compañero.
                    Editado por última vez por rrr.Vanquish; 11/10/2006, 11:05:31.

                    Comentario

                    • dmgman
                      Senior Member
                      • feb
                      • 149

                      #11
                      Al respecto del problema que comentaba antes he encontrado esto por la web:



                      La cuestion que no entiendo muy bien esto....
                      Carpe Diem !!

                      Comentario

                      • conrad10ar
                        Banned
                        • mar
                        • 296

                        #12
                        Por ahí es muy obvio, pero probaron viendo los datos que devuelve la tabla, que indican en el return? por ahí se les está pasando algún error.

                        saludos

                        Comentario

                        • dmgman
                          Senior Member
                          • feb
                          • 149

                          #13
                          Esto es la visualizacion de lo que me devuelve el return:

                          TYPE: S
                          ID: RW
                          NUMBER: 605
                          MESSAGE: El documento se ha contabilizado correctamente: BKPFF 04900013601 2006 LOGSYS1002

                          Estos son los datos que envio (Ten en cuenta q la clase de cuenta es una "S"):

                          DocumentHeader:
                          BUS_ACT=RFBU
                          USERNAME=[USUARIO]
                          HEADER_TXT=''
                          COMP_CODE=1
                          DOC_DATE=20060905
                          PSTNG_DATE=20060701
                          FISC_YEAR=2006
                          FIS_PERIOD=07
                          DOC_TYPE=ZA

                          Accountgl:
                          ITEMNO_ACC=0000000001
                          GL_ACCOUNT=0004080000
                          ITEM_TEXT=Documento
                          DOC_TYPE=ZA
                          COMP_CODE=1
                          FISC_YEAR=2006
                          PSTNG_DATE=20060701
                          PROFIT_CTR=A001

                          Currencyamount:
                          ITEMNO_ACC=0000000001
                          CURRENCY=EUR

                          Return:
                          Segun lo que te he puesto arriba.

                          Accountreceivable en blanco.
                          Accountpayable en blanco.
                          Accounttax en blanco.
                          Criteria en blanco.
                          Valuefield en blanco.
                          Extension1 en blanco.
                          Paymentcard en blanco.
                          Contractitem en Blanco.
                          Editado por última vez por dmgman; 11/10/2006, 13:35:51.
                          Carpe Diem !!

                          Comentario

                          • conrad10ar
                            Banned
                            • mar
                            • 296

                            #14
                            Probá poniendo PSTNG_DATE y doc_date con la fecha actual, para probar si así te funciona.

                            saludos

                            Comentario

                            • dmgman
                              Senior Member
                              • feb
                              • 149

                              #15
                              Sigue igual...
                              Carpe Diem !!

                              Comentario

                              Trabajando...