MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Asientos Contables con BAPIS o Bach input (foro/showthread.php?t=26505)

bisonye 04/12/08 13:23:18

Kelvin no puedo explicarte lo que es cada parámetro que vas a enviar a la bapi ya que necesitaríamos horas sentados los dos comentando los campo.

Eso se lo tienes que consultar a tu funcional.

Haz un esfuerzo revisa los campos en el documento y en la tabla y en las estructuras de la bapi.

Aqui estamos para ayudarnos pero no para hacer el trabajo de los demás.

Saludos

Garces 04/12/08 14:13:45

Acá hay un ejemplo
 
1 Adjunto(s)
Mira este código....
Es el ejemplo más simple que pude preparar para las bapis BAPI_ACC_DOCUMENT_POST y BAPI_ACC_DOCUMENT_REV_POST...
Espero te sirva
Saludos

kelvin.acosta 04/12/08 18:18:41

Asientos Contables
 
Excelente!!!! :D

Muchas gracias, es lo que necesitaba para tener idea de como estructurar mi BAPIS y hacer los asientos contables.

Muchas gracias amigos,
:)

Kelvin Acosta

kelvin.acosta 11/12/08 20:53:46

Asiento Modulo de Inversion
 
Hola Amigos,

lo que me envio Graces, esta super bien. pero ahora tengo que hacer unos asientos para el modulo de inversion. osea que ellos registran una operacion llamese, compra o venta de una (accion,bonos,cupon) esto deber ser contabilizado, quiero saber, es el mismo BAPIS para hacer la contabilizacion de estos temas. porque en este caso no se como se manejaria el tema de si es un cliente o proveedor.

saludos,

bisonye 12/12/08 06:07:05


Hola me imagino que en el ejemplo has utilizado la tabla accountgl. Tienes que utilizar las tablas accountreceivable accountpayable.

Saludos

kelvin.acosta 12/12/08 12:49:35

Asientos con BAPI
 
Hola Bisonye,

No estoy muy claro a que se rerfiere la tabla accountreceivable , me podrias decir por favor.

Saludos,

marianoa 12/12/08 13:03:12


hola, como estas en esa tabla se indica la posicion del cliente asocioado, el cliente asociado, y datos del mismo.
saludos

Garces 12/12/08 18:28:00



Te explico....
La tabla AccountGL se usa para posiciones que afectan cuentas de mayor (es de tipo LIKE BAPIACGL09)
La tabla AccountPayable se usa para posiciones que afectan cuentas de proveedor (es de tipo LIKE BAPIACAP09)
La tabla AccountRecceivable se usa para posiciones que afectan cuentas de cliente (es de tipo LIKE BAPIACAR09)
La tabla AccountTax se usa para posiciones correspondientes a impuestos (es de tipo LIKE BAPIACTX09)
La tabla CurrencyAmount se usa para ingresar los importes de cada posición (es de tipo LIKE BAPIACCR09)

Todas estas son parámetros opcionales de la BAPI_ACC_DOCUMENT_POST, es decir, puedes ponerlas o no...

La bapi tiene otros parámetros que te recomiendo que revises en la transacción SE37, así como las estructuras que te indico líneas arriba con la SE11...

Espero haberte ayudado...
Saludos...

kelvin.acosta 12/12/08 20:02:20

Asientos contables
 
Hola,

he puesto en marcha el programa, pero me da el siguiente error. me podrias ayudar a saber cual es el error. aqui abajo colocolo el codigo del programa que estoy utilizando, el cual fue el que me enviaste Garces. donde he colocado xxxxx tengo datos reales. pero me da un error :

E RW 609
Error en el documento: IDOC 1 0
E RW 014
Interfaz: Múltiple pos. de documento




*&---------------------------------------------------------------------*
*& Report ZFI_ASIENTO_OPINVE
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

report zfi_asiento_opinve.

constants: gc_awtyp like bkpf-awtyp value 'IDOC'. "Tipo de Documento que genera el asiento (Te recomiendo el valor IDOC)


constants: gc_awkey like bkpf-awkey value '1'. "Código del documento que genera el asiento a crear
constants: gc_awkey_r like bkpf-awkey value ''. "Codigo del documento que generó el asiento a reversar (para la BAPI_ACC_DOCUMENT_REV_POST)
constants: gc_awsys like bkpf-awsys value '0'. "Sistema que genera el asiento (Te recomiendo que lo dejes vacío si lo vas a generar desde SAP)
constants: gc_bukrs like bkpf-bukrs value 'xxxx'. "Sociedad
constants: gc_busact like bkpf-glvor value 'RFBU'. "Operación empresarial (Te recomiendo el valor RFBU)

start-of-selection.

perform ejecutar_bapi.

* PERFORM reversar_bapi.

************************************************************************
form ejecutar_bapi.

data: w_header like bapiache09.
data: w_accoun like bapiacgl09.
data: w_payabl like bapiacap09.
data: w_custom like bapiacar09.
data: w_taxes like bapiactx09.
data: w_curren like bapiaccr09.
data: w_return like bapiret2.

data: t_accoun like bapiacgl09 occurs 0.
data: t_payabl like bapiacap09 occurs 0.
data: t_custom like bapiacar09 occurs 0.
data: t_taxes like bapiactx09 occurs 0.
data: t_curren like bapiaccr09 occurs 0.
data: t_return like bapiret2 occurs 0.

* Cabecera del documento contable
w_header-obj_type = gc_awtyp.
w_header-obj_key = gc_awkey.
w_header-obj_sys = gc_awsys.
w_header-bus_act = gc_busact.
w_header-ac_doc_no = 'xxxxxxxxxx'.
w_header-username = sy-uname. "Usuario
w_header-comp_code = gc_bukrs.
w_header-doc_date = sy-datum. "Fecha del Documento
w_header-pstng_date = sy-datum. "Fecha de contabilización
w_header-trans_date = sy-datum. "Fecha de Conversión
w_header-fisc_year = sy-datum+0(4). "Ejercicio
w_header-fis_period = sy-datum+4(2). "Período Contable
w_header-doc_type = 'SA'. "Tipo de Documento Contable (Te recomiendo 'SA')

* Posición G/L
clear w_accoun.
w_accoun-itemno_acc = 1. "Primera posición en el documento contable
w_accoun-gl_account = 'xxxxxxxxxx'. "Cuenta de Mayor - Ingresos/Inversiones
append w_accoun to t_accoun.

* Posicion Deudor
clear w_custom.
w_custom-itemno_acc = 1.
w_custom-customer = 'xxxxxxxxxx'.
append w_custom to t_custom.

* Valores
clear w_curren.
w_curren-itemno_acc = 1. "Asocio con la primera posición del doc. contable
w_curren-currency = 'DOP'. "Moneda
w_curren-amt_doccur = 1000. "Monto
append w_curren to t_curren.

* Valores 2
clear w_curren.
w_curren-itemno_acc = 2. "Asocio con la primera posición del doc. contable
w_curren-currency = 'DOP'. "Moneda
w_curren-amt_doccur = -1000. "Monto (opuesto para que cuadre es debe/haber)
append w_curren to t_curren.


* Llamada a la BAPI
call function 'BAPI_ACC_DOCUMENT_POST'
exporting
documentheader = w_header
tables
accountgl = t_accoun
accountreceivable = t_custom
currencyamount = t_curren
return = t_return.

call function 'BAPI_TRANSACTION_COMMIT'.

loop at t_return into w_return.

write:/ w_return-type,
w_return-id,
w_return-number,
w_return-message.

endloop.

endform. "ejecutar_bapi

************************************************************************
form reversar_bapi.

data: w_reversal like bapiacrev.
data: w_return like bapiret2.
data: t_return like bapiret2 occurs 1.

w_reversal-obj_type = gc_awtyp.
w_reversal-obj_key = gc_awkey_r.
w_reversal-obj_sys = gc_awsys.
w_reversal-obj_key_r = gc_awkey.
w_reversal-pstng_date = sy-datum.
w_reversal-comp_code = gc_bukrs.

call function 'BAPI_ACC_DOCUMENT_REV_POST'
exporting
reversal = w_reversal
bus_act = gc_busact
tables
return = t_return.

call function 'BAPI_TRANSACTION_COMMIT'.

loop at t_return into w_return.

write:/ w_return-type,
w_return-id,
w_return-number,
w_return-message.

endloop.

endform. "reversar_bapi

Garces 14/12/08 19:58:56

Hola Kelvin...

Tu error está en que estás ingresando dos posiciones del documento contable con el mismo numero de item....
Se supone que la primera posicion de tu documento contable corresponde a la posición de cuenta de mayor, entonces es correcto que pongas...

w_accoun-itemno_acc = 1.

Sin embargo, la segunda posición de tu documento corresponde a una posición deudor, por lo tanto, deberías utilizar para ello la sentencia...

w_custom-itemno_acc = 2. (actualmente le estás asignando el valor 1)

Por esta razón el sistema te dice que tienes posiciones múltiples, estás ingresando en dos posiciones distintas el mismo valor 1...

Luego likeas en la tabla t_curren con cada posición y debería reesolverse tu problema...

Espero te haa ayudado...
Saludos...


Husos Horarios son GMT. La hora en este momento es 03:40:27.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web