PDA

Ver la Versión Completa : Delay en ABAP


DCErick
02/06/06, 16:38:07
Hola, aqui estoy de nuevo con una duda.

Existe en ABAP alguna instruccion para hacer que la ejecucion de un programa haga una pausa.

Lo que pasa es que aplico muchos pedidos de traslado en un ciclo.
Pero como que el tiempo de refresh despues de grabar el primero no es muy rapido y cuando entro a generar el que sigue me marca que algun artículo esta tratandose por otro usuario y pues soy yo mismo jeje..

Alguna idea.

sap2006
02/06/06, 17:10:20
Creo que haciendo un COMMIT WORK AND WAIT puedes solucionarlo....

Salu2.

DCErick
02/06/06, 17:29:36
Mira esto es el resultado.
Folio Traslado Fecha Traslado Folio Movimiento
4300002574 01.06.2006 4900200236
4300002575
El documento no contiene posiciones
Los datos batch input para el dynpro SAPMM07M 0421 no existen.

Uso este LOOP. para

LOOP AT t_zekko_.
CLEAR v_ftraslado.
CLEAR v_fmovimiento.
REFRESH t_messtab.
REFRESH t_return.
CLEAR t_messtab.
CLEAR t_return.
v_ftraslado = t_zekko_-torigen.
PERFORM aplicamovimiento.
COMMIT WORK AND WAIT.
IF v_fmovimiento <> ''.
WRITE : / ' ' , v_ftraslado , ' ', t_zekko_-aedat, ' ' , v_fmovimiento.
ELSE.
WRITE : / ' ' , v_ftraslado.
LOOP AT t_messtab.
IF t_messtab-msgid <> '' AND t_messtab-msgid <>' '.

MESSAGE ID t_messtab-msgid
TYPE t_messtab-msgtyp
NUMBER t_messtab-msgnr
WITH t_messtab-msgv1 t_messtab-msgv2 t_messtab-msgv3
t_messtab-msgv4
INTO mensaje.

WRITE / mensaje.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.



Aqui mando llamar la BAPI.

FORM aplicamovimiento.

CALL FUNCTION 'ZBAPI_TRASLADO_MB1B'
EXPORTING
i_centro = p_centro
i_ntraslado = v_ftraslado
i_mode = p_mode
i_clmovimiento = v_clmovbapi
IMPORTING
e_folio = v_fmovimiento
TABLES
return = t_return
messtab = t_messtab.

IF sy-subrc EQ 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF.

ENDFORM. " aplicamovimiento


Lo curioso es que si le doy al "Atras" y ejecutar de nuevo, me guarda el siguiente movimiento, que anteriormente marcó error.
Alguna idea.?

DCErick
02/06/06, 17:35:29
Ya lo solucioné el problema es que el BCDATA no se limpia y me manda llamar el mismo pedido siempre.

REFRESH bdcdata.
CLEAR bdcdata.

Le puse eso al inicio de la BAPI y listo.

:D Gracias...

Solo me queda la duda de como limpiar ese BCDDATA desde el programa Z.
Sin tener que modificar la BAPI??