PDA

Ver la Versión Completa : Maldita BAPI !!!


goyleo
01/06/09, 15:15:06
Hola gente! :D

Tengo un problema con la BAPI_PO_CHANGE.

Esta BAPI la ejecuto para modificar posiciones de pedido.

La llamo en un loop modificando de una posición a la vez.

La primera posicion se modifica correctamente, pero luego bloquea el pedido para las siguientes posiciones.

Luego llamo a la misma BAPI en el segundo ciclo del LOOP para realizar la segunda modificacion (Posicion 2 del pedido), me dice que no puedo modificar la posicion porq ya estoy tratando el pedido.

Que hice para intentar de solucionar el problema?

- Realice un COMMIT WORK AND WAIT y nada, tambien llame a esta BAPI.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.

pero no funciono.

- Llame a la funcion de desbloqueo de pedido antes de llamar a la BAPI (lo desbloque por posicion/pedido y por pedido solamente)

CALL FUNCTION 'DEQUEUE_EMEKPOE'
EXPORTING
ebeln = wa_ekpo-ebeln
ebelp = wa_ekpo-ebelp.

y tampoco funciona, me sigue bloqueando las posiciones como antes.

- Ahora algo muy EXTRAÑO hice funcionar bien el reporte esperando medio segundo despues de ejecutar la BAPI !!!!!

Inmediatamente despues de ejecutar la BAPI, coloco esto...

DATA w_time TYPE p DECIMALS 2 value '0.50'.

WAIT UP TO w_time SECONDS. "Espera medio segundo.

Increiblemente el programa funciona y no bloquea las posiciones, pareciera que la BAPI necesita un tiempo entre posicion y posición...

Ahora esta solucion no me parece viable y creo que dependera mucho de la performance del sistema y por lo tanto no va a funcionar siempre, porque ahora necesita medio segundo pero mañana puede q necesite uno o dos.

Se entendio cual es el problema ??????????????????
Alguien sabe como solucionarlo ??????????????????

Muchisimas gracias! ;)

ballan
01/06/09, 15:50:47
Porque no modificas todas las posiciones de una sola vez?¿

Mike
01/06/09, 15:53:51
Modifica todas las posiciones de una vez, no hagas un ciclo para ir de posicion en posicion, pasale todas las posiciones de una vez a la bapi para que te las modifique todas, ademas vas a tener mejor performance de esa manera.

Saludos,