MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Bapi Bapi_acc_document_post (foro/showthread.php?t=1638)

bbiagini 06/09/06 13:30:36

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 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.


Husos Horarios son GMT. La hora en este momento es 17:54:38.

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