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! ;)
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! ;)