PDA

Ver la Versión Completa : Bapi Bapi_acc_document_post


bbiagini
06/09/06, 13:30:36
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
26/09/06, 12:43:27
A mi también me interesa mucho.

Te lo subo.

Saludos!

conrad10ar
26/09/06, 13:42:28
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. :)

conrad10ar
26/09/06, 13:44:00
Aclaración al anterior POST la llamada de la BAPI es sin 'Z_' y la estructura zbapiacap09 también es sin la Z delante.

dmgman
10/10/06, 16:19:36
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???

conrad10ar
10/10/06, 17:30:12
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. :)

dmgman
10/10/06, 18:07:37
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.

conrad10ar
10/10/06, 19:51:30
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. ;)

dmgman
11/10/06, 08:54:44
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.

rrr.Vanquish
11/10/06, 11:01:52
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.

dmgman
11/10/06, 11:48:17
Al respecto del problema que comentaba antes he encontrado esto por la web:

https://websmp101.sap-ag.de/~form/handler?_APP=01100107900000000342&_EVENT=REDIR&_NNUM=0000884246&nlang=E

La cuestion que no entiendo muy bien esto....

conrad10ar
11/10/06, 12:48:37
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

dmgman
11/10/06, 13:14:48
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.

conrad10ar
11/10/06, 14:05:29
Probá poniendo PSTNG_DATE y doc_date con la fecha actual, para probar si así te funciona.

saludos

dmgman
11/10/06, 14:31:43
Sigue igual...

conrad10ar
11/10/06, 14:56:17
Hola nuevamente, probá completando todos los campos que te pasé, porque según la nota de SAP cuando no lo contabiliza es porque están pasando mal los datos.

:)

dmgman
14/10/06, 10:25:23
He leido, que los documentos financieros 'BKPFF' se les da un tratamiento especial, y que por eso es por lo que no se estan grabando.

Alguien me podria indicar, los pasos a seguir en este tratamiento.
Y ya puestos, que les diferecia a estos documentos a los otros, para le subsodicho tratamiento personal.

Gracias.

VICHAMA
15/10/06, 03:59:06
Hola:
Te recomiendo leer este post :

http://www.sapfans.com/forums/viewtopic.php?t=137643

He visto un codigo como ejemplo.

Espero te ayude.
Salu2

dmgman
16/10/06, 13:46:37
Buenas a todos, ya solucione el problema, y la verdad que no era tan complicado como lo veia.
El principal problema es que no me habian dado los permisos para grabar registros. Una vez tuvo permiso, cree un documento manualmente, poniendo solamente los datos que iban a venirme en el interfaz, y a partir de ahi me puse a comparar campos.
Resulta que que si los valores pasados a traves del currencyaccount tienen el importe en blanco, no graba nada. Para que eso no suceda, hay q completar ese campo, asi como el Indicador de Debe y Haber, que hace que los valores sean negativos o positivos.

Bueno, hasta otra y gracias por la colaboracion :D .

rrr.Vanquish
17/10/06, 08:15:38
Hola a todos,

También lo he solucionado gracias al link que VICHAMA ha puesto. Muchísimas gracias, te lo agradezco mucho, así como a todos los que han participado.

Un saludo y reitero mi gratitud.

fabricadoenmexico
14/03/08, 13:02:46
Hola que tal, te comendo que yo estoy haciendo la BAPI, pero antes le paso la BAPI para checar si ese documento se puede contabilizar (BAPI_ACC_DOCUMENT_CHECK), que para el hecho la BAPI_ACC_DOCUMENT_POST es lo mismo ya que en la variable return te regresa los mismos errores si es que no puede contabilizar, solo que a mí me pasa lo mismo, esta BAPI me regresa que contabilizo correctamente el documento XXXXXXX y le hago el commit work y no guarda nada.... también estoy atorado con esto...

conrad10ar
31/07/08, 16:10:12
hiciste un bapi_commit ?

saludos!

PercyFloresSotelo
12/11/08, 20:26:07
hola si puedes pasame tu codigo

marianoa
19/11/08, 22:20:03
hola como estan? sabrian decirme porque cuando creo un documento con esta BAPI cuando lo quiero ir a ver en el libro de IVA, en el codigo el documento se trabaja como un documento MM ??
saludos

dgpaola
15/02/13, 14:03:25
Hola dmgman! Veo que paso mucho tiempo de tu post pero estoy teniendo el mismo problema. Podrias indicarme en donde estas completando el indicador de Debe/Haber ?
Yo no tengo importe en cero por lo cual imagino que ese no es el problema.
Desde ya muchas gracias!

Buenas a todos, ya solucione el problema, y la verdad que no era tan complicado como lo veia.
El principal problema es que no me habian dado los permisos para grabar registros. Una vez tuvo permiso, cree un documento manualmente, poniendo solamente los datos que iban a venirme en el interfaz, y a partir de ahi me puse a comparar campos.
Resulta que que si los valores pasados a traves del currencyaccount tienen el importe en blanco, no graba nada. Para que eso no suceda, hay q completar ese campo, asi como el Indicador de Debe y Haber, que hace que los valores sean negativos o positivos.

Bueno, hasta otra y gracias por la colaboracion :D .