Maldita BAPI !!!

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • goyleo
    Senior Member
    • sep
    • 102

    #1

    Maldita BAPI !!!

    Hola gente!

    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
    Senior Member
    • oct
    • 671

    #2
    Porque no modificas todas las posiciones de una sola vez?¿

    Comentario

    • Mike
      Senior Member
      • mar
      • 144

      #3
      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,

      Comentario

      Trabajando...