PDA

Ver la Versión Completa : SM35, error en programa BDC.


Dlanor20777
05/05/14, 20:12:33
Hola amigos he creado un programa desde una grabación, se me presenta un problema ya que el programa no continua, se queda en una pantalla, si hago el proceso manual todo correo perfecto, pero al realizarlo automático se queda en la ultima pantalla y no guarda, este es el código:

LOOP AT TI_AUFK.


perform open_group.

perform bdc_dynpro using 'SAPLCOIH' '0101'.
perform bdc_field using 'BDC_CURSOR'
'CAUFVD-AUFNR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'CAUFVD-AUFNR'
TI_AUFK-AUFNR.
perform bdc_dynpro using 'SAPLCOIH' '3000'.
perform bdc_field using 'BDC_OKCODE'
'=VERF'.
perform bdc_field using 'BDC_CURSOR'
'RESBD-MATNR(02)'.

**Selecciono todos los registros de la tabla del maestro de reserva**

select AUFNR RSNUM RSPOS
into corresponding fields of RESB
from RESB
where AUFNR eq TI_AUFK-AUFNR.

perform bdc_dynpro using 'SAPLATP4' '0500'.
perform bdc_field using 'BDC_CURSOR'
'RV03V-POSNR'.
perform bdc_field using 'BDC_OKCODE'
'=WEIT'.


endselect.
******************************************************
perform bdc_dynpro using 'SAPLCOIH' '3000'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_field using 'BDC_CURSOR'
'RESBD-MATNR(02)'.

perform bdc_transaction using 'IW3K'.


perform close_group.


ENDLOOP.

Al crear la grabación no active el check de Continuar luego de un Commit, sabrán como puedo agregarlo a este programa, no utilice el call.

Saludos.

jdelgado86
05/05/14, 21:43:50
Ya la ejecutaste en modo paso a paso a ver q te dice?? Y por q no sacas el OPEN y el CLOSE del loop?

Dlanor20777
05/05/14, 23:07:40
Ya la ejecutaste en modo paso a paso a ver q te dice?? Y por q no sacas el OPEN y el CLOSE del loop?

Hola amigo gracias por la respuesta, si ya lo hice paso a paso, y solo faltaria guardar, que beneficios me traeria sacarlos del loop?

Quisiera agregar la función de Continuar luego de un Commit, pero no he podido hacerlo.

Saludos y gracias por el apoyo.

Dlanor20777
06/05/14, 13:30:57
Les comento que me he encontrado con 2 situaciones, el programa funciona correctamente si verifica la disponibilidad de todos los materiales en las ordenes o si por lo contrario no verifica ninguno por que ya todos tienen salidas creadas.

El problema es cuando existen ambos casos, materiales a los cuales verificar y otros a los cuales no se le realiza la verificación por que ya se les dio salida, en ese momento se queda en la pantalla inicial de la transacción IW3K y no ejecuta este código luego de finalizado el select:

perform bdc_dynpro using 'SAPLCOIH' '3000'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_field using 'BDC_CURSOR'
'RESBD-MATNR(02)'.

Es decir, no guarda cuando ocurre ese caso, eso es lo único que me falta, que guarde aunque allá verificado algunos y otros no.

Alguna idea de lo que pueda estar pasando?