PDA

Ver la Versión Completa : Problema sincronización creación de documentos


neocloudmx2000
13/05/10, 15:06:16
Hola a todos:

Me encuentro realizando una función que será llamada remotamente, la cual hace el proceso de:

1. Crear la entrega de un pedido de vtas
2. Confirmar la entrega (VL02N->Picking)
3. Crear la orden de transporte para la entrega
4. Crear el documento de materiales (salida de mercancías)
5. Crear una factura

Todo esto lo estoy haciendo con BAPI's y funciones, a exepción de la salida de mercancías (paso 4, ese lo hago con un CALL TRANSACTION a la VL02N->Contabilizar SM).

Me he topado con que, individualmente o cuando me encuentro en modo debug estos pasos funcionan a la perfección, pero cuando ejecuto este proceso para que corra completo se detiene al parecer en la creación de la factura, ya que parece que no está creando la salida de mercancías y manda el mensaje: Salida de mercancías todavía no contabilizada para la nota de entrega.

Entre cada paso que utiliza BAPI tengo el debido 'BAPI TRANSACTION COMMIT' , posterior al paso 4 tengo un COMMIT WORK y en ambos casos un tiempo de espera (WAIT UP TO n SECONDS) para tratar de sincronizarlos, pero aún así existe un punto donde el proceso de creación de un documento sucesor le gana al antecesor.

Alguien sabe de algo para forzar a que, entre cada paso, se pueda obligar a SAP a actualizar la BD para que se cree el documento o algo similar.

Saludos y gracias colegas.

ibai23
13/05/10, 16:37:44
Aupa compañero sapero

me parece que tienes el tipico problema de la ejecución sincronica o asincronioca de batch inputs.

Metete a la ayuda del call transaction con el tipico F1 y mirate la opción 'UPDATE'. Pon el valor que NO tiene por defecto, me parece que tendrías que poner 'S' y yo creo que con eso te vale.

Tambien acuerdate de poner la funcion BAPI_TRANSACTION_COMMIT después de cada bapi que haya sido ejecutada con exito

Comentanos si te funciona

Un saludo

neocloudmx2000
13/05/10, 16:52:19
Muchas gracias colega. Pero en mi código ya tenía todo esto: BAPI TRANSACTION COMMIT para las BAPI's y algo así para el CALL TRANSACTION:

CALL TRANSACTION 'VL02' USING it_bdcdata MODE modo UPDATE 'S'
MESSAGES INTO it_messtab.

Aun así hay algo que no me deja ir de un paso a otro por problemas de sincronización.

ballan
14/05/10, 09:20:01
Buenos dias

Lo primero decirte que mezclar llamadas a bapis y batch inputs no suele funcionar muy bien, en tu caso para crear un movimiento de mercancias puedes utilizar la funcion BAPI_GOODSMVT_CREATE, seguro que existen muchos ejemplos de como llamar a esta funcion y puede ser que te resolviera el problema

Si cambiando el batchinput por la bapi sigue sin funcionar lo que haria es asegurarme de que es un problema de sincronismo y no de datos o parametrizacion

Prueba a poner siempre commit work and wait en lugar de commit work y pon unos intervalos bastante grandes entre cada llamada a funcion para confirmar que efectivamente el problema es que se estan pisando las llamadas a las funciones

Si confirmas que efectivamente el problema es que cuando se llama a una funciona la otra todavia no ha terminado postea y encontraremos alguna solucion

neocloudmx2000
14/05/10, 15:52:31
Problema resuelto camaradas. Efectivamente, mis procesos se estaban pisando (sincronismo), el que me causaba problemas era el segundo paso, en el cuál utilizaba la BAPI_OUTB_DELIVERY_CHANGE. Cuando el paso termina correctamente tenía originalmente BAPI_TRANSACTION_COMMIT para cerrarlo, el cuál sustituí por:

call function 'BAPI_TRANSACTION_COMMIT'
exporting
wait = 'X'.

Esta contiene el mencionado commit work and wait. Ya con esto corre bien lo demás y ya no fué necesario poner un tiempo de espera (wait up to n seconds).

Gracias

troyaitl
12/07/10, 23:27:08
Hola.

Estoy programando una RFC para hacer el proceso de pedido, entrega, picking, y factura, en la modificación de la entrega uso esta BAPI BAPI_OUTB_DELIVERY_CHANGE pero no se como usarla para que solo se iguale la entrega en cantidad de picking y se guarde. puedes ayudarme.

de antemando agradezco su atención y apoyo.

Saludos!!