Problema con creacion de documento contable

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • xinitta
    Junior Member
    • feb
    • 2

    #1

    Problema con creacion de documento contable

    Hola a todos...

    necesito de su ayuda nunca he trabajado con BAPI y tengo que modificar un programa que no realice yo, que como dice crea documentos contables.. el problema si no me equivoco es con la BAPI 'BAPI_ACC_DOCUMENT_POST' que manda un error (adjunto imagen)... por favor si me pudiesen ayudar se los agradeceria mucho, ya que tengo muy poco tiempo para poder dar con el error.

    adjunto el programa (ZFI_DOCU_CONTABLE), el txt (prueba) y la imagen con el error..

    de ante muchas gracias...

    Saludos...
    Archivos Adjuntos
  • bisonye
    Senior Member
    • ago
    • 635

    #2
    Pues tienes dos errores diferentes. El error de la moneda es que estás intentando relacionar la línea de moneda con una línea del documento que no existe. Parece que tu documento tiene dos líneas, pon número 1 y 2 a las líneas de moneda para que funcione.

    El otro es por el número de deudor. Está bastante claro, no existe. Revisa el maestro de deudores para buscar el número correcto.

    Saludos
    http://sapymas.blogspot.com/

    Comentario

    • xinitta
      Junior Member
      • feb
      • 2

      #3
      ya lo solucione ahora si contabiliza ...
      tan solo era que faltaba algunas cositas en el codigo...

      FORM preparar_contabilizacion.
      DATA : cont TYPE i,
      zlin TYPE i,
      w_kostl(10) TYPE n.

      LOOP AT ti_posicion WHERE budat <> ' '.

      CHECK ti_posicion-newko NE '0'.
      * CHECK ti_posicion-wrbtr_4 = '0'.
      cont = 1.

      * Llena la estructura s_documentheader cabecera de documento
      PERFORM set_document_header.

      * Si es una cuenta deudor
      IF ti_posicion-newbs > 0 AND ti_posicion-newbs < 20.
      CLEAR ti_accountreceivable.
      ti_accountreceivable-itemno_acc = cont.
      ti_accountreceivable-customer = ti_posicion-newko.
      * ti_accountreceivable-item_text = 'Factura'.
      APPEND ti_accountreceivable.
      ENDIF.
      * Si es una cuenta Acreedor
      IF ti_posicion-newbs > 20 AND ti_posicion-newbs < 40.
      ENDIF.
      * Si es una cuenta de mayor
      IF ti_posicion-newbs3 >= 40 AND ti_posicion-newbs3 <= 50.
      CLEAR ti_accountgl.
      ADD 1 TO cont.
      ti_accountgl-itemno_acc = cont.
      ti_accountgl-gl_account = ti_posicion-newko3.
      ti_accountgl-tax_code = ti_posicion-mwskz1.

      IF NOT ti_posicion-kostl IS INITIAL.
      IF ti_posicion-kostl CO '0123456789 '.
      w_kostl = ti_posicion-kostl.
      ti_accountgl-costcenter = w_kostl.
      ELSE.
      ti_accountgl-costcenter = ti_posicion-kostl.
      ENDIF.
      ENDIF.
      APPEND ti_accountgl.

      ENDIF.
      IF ti_posicion-newbs4 >= 40 AND ti_posicion-newbs4 <= 50.
      CLEAR ti_accountgl.
      ADD 1 TO cont.
      ti_accountgl-itemno_acc = cont.
      ti_accountgl-gl_account = ti_posicion-newko4.
      ti_accountgl-tax_code = ti_posicion-mwskz2.
      APPEND ti_accountgl.
      ENDIF.

      * Ingresa cuenta indicador de impuesto
      CLEAR ti_accounttax.
      ADD 1 TO cont.
      ti_accounttax-itemno_acc = cont.
      ti_accounttax-gl_account = ti_posicion-newko2.
      ti_accounttax-tax_code = ti_posicion-mwskz1.
      APPEND ti_accounttax.

      * Ingresar la posicion en su moneda respectiva
      CLEAR ti_currencyamount.
      ti_currencyamount-itemno_acc = '1'.
      ti_currencyamount-currency = ti_posicion-waers.
      IF ti_posicion-blart = 'DC' OR ti_posicion-blart = 'DY'. "Nota Credito
      * Ingresar positivo o negativo el importe dependiendo de si pertenece al H o S
      ti_currencyamount-amt_doccur = ti_posicion-wrbtr_d * -1.
      ti_currencyamount-amt_base = ti_posicion-wrbtr_d * -1.
      APPEND ti_currencyamount.

      IF ti_posicion-wrbtr_3 IS NOT INITIAL.
      ti_currencyamount-itemno_acc = '2'.
      ti_currencyamount-currency = ti_posicion-waers.
      ti_currencyamount-amt_doccur = ti_posicion-wrbtr_3.
      ti_currencyamount-amt_base = ti_posicion-wrbtr_3.
      APPEND ti_currencyamount.
      ENDIF.
      IF ti_posicion-wrbtr_h IS NOT INITIAL.
      ti_currencyamount-itemno_acc = '3'.
      ti_currencyamount-currency = ti_posicion-waers.
      ti_currencyamount-amt_doccur = ti_posicion-wrbtr_h.
      ti_currencyamount-amt_base = ti_posicion-wrbtr_3.
      APPEND ti_currencyamount.
      ENDIF.
      IF ti_posicion-wrbtr_4 IS NOT INITIAL.
      ti_currencyamount-itemno_acc = '4'.
      ti_currencyamount-currency = ti_posicion-waers.
      ti_currencyamount-amt_doccur = ti_posicion-wrbtr_4.
      ti_currencyamount-amt_base = ti_posicion-wrbtr_3.
      APPEND ti_currencyamount.
      ENDIF.
      ELSE.
      ti_currencyamount-amt_doccur = ti_posicion-wrbtr_d.
      ti_currencyamount-amt_base = ti_posicion-wrbtr_d.
      APPEND ti_currencyamount.
      IF ti_posicion-wrbtr_3 IS NOT INITIAL.
      ti_currencyamount-itemno_acc = '2'.
      ti_currencyamount-currency = ti_posicion-waers.
      ti_currencyamount-amt_doccur = ti_posicion-wrbtr_3 * -1.
      ti_currencyamount-amt_base = ti_posicion-wrbtr_3 * -1.
      APPEND ti_currencyamount.
      ENDIF.
      IF ti_posicion-wrbtr_h IS NOT INITIAL.
      ti_currencyamount-itemno_acc = '3'.
      ti_currencyamount-currency = ti_posicion-waers.
      ti_currencyamount-amt_doccur = ti_posicion-wrbtr_h * -1.
      ti_currencyamount-amt_base = ti_posicion-wrbtr_3 * -1.
      APPEND ti_currencyamount.
      else.
      ti_currencyamount-itemno_acc = '3'.
      ti_currencyamount-currency = ti_posicion-waers.
      ti_currencyamount-amt_doccur = ti_posicion-wrbtr_h * -1.
      ti_currencyamount-amt_base = ti_posicion-wrbtr_3 * -1.
      APPEND ti_currencyamount.

      ENDIF.
      IF ti_posicion-wrbtr_4 IS NOT INITIAL.
      ti_currencyamount-itemno_acc = '4'.
      ti_currencyamount-currency = ti_posicion-waers.
      ti_currencyamount-amt_doccur = ti_posicion-wrbtr_4 * -1.
      ti_currencyamount-amt_base = ti_posicion-wrbtr_3 * -1.
      APPEND ti_currencyamount.
      else.
      ti_currencyamount-itemno_acc = '4'.
      ti_currencyamount-currency = ti_posicion-waers.
      ti_currencyamount-amt_doccur = ti_posicion-wrbtr_4 * -1.
      ti_currencyamount-amt_base = ti_posicion-wrbtr_3 * -1.
      APPEND ti_currencyamount.

      ENDIF.
      ENDIF.

      PERFORM call_bapi.
      CLEAR: s_documentheader, ti_accountreceivable, ti_accountgl, ti_accounttax, ti_currencyamount.
      REFRESH: ti_accountreceivable, ti_accountgl, ti_accounttax, ti_currencyamount.
      ENDLOOP.
      ENDFORM. "preparar_contabilizacion


      gracias...

      Comentario

      Trabajando...