Foro de programación ABAP

SAP / ABAP => Programación ABAP => Mensaje iniciado por: juanda014 en 23 de Enero de 2012, 09:44:09 pm

Título: PROBLEMA CON CALL TRANSACTION IW29
Publicado por: juanda014 en 23 de Enero de 2012, 09:44:09 pm
BUEN DIA ESTIMAODS.

ESTOY TRATANDO DE LLAMAR UNA TRANSACCION (IW29) Y REQUIERO QUE DOS CAMPOS DE LA TRANSACCION NO POSEAN DATO ALGUNO, SIN EMBARGO EXISTEN DOS CAMPOS DE CORRESPONDEN AFECHAS QUE PREDETERMINADAMENTE ESTAN LLENOS.

ESTOY INTENTANDO POR MEDIO DEL SIGUIENTE CODIGO LIMPIAR ESTOS CAMPOS, SIN EMBARGO SOLO LOGRO CONSEGUIR QUE UNO DE LOS CAMPOS QUEDE EN BLANCO MAS NO AMBOS.

A CONTINUACION MUESTRO EL CODIGO QUE IMPLEMENTO PARA REALIZAR LO ANTERIOR, LA PORCIÓN DE CODIGO EN NEGRITA ES EL QUE BORRA EL PRIMER CAMPO MIENTRAS QUE LA PORCION DE CODIGO EN CURSIVA NO LO HACE, AGRADEZCO SUS APORTES.



****************************************************
FORM  user_command USING r_ucomm     LIKE  sy-ucomm
                         rs_selfield TYPE  slis_selfield.
  DATA:   wa_alv  LIKE t_gnl.
  TABLES BDCDATA.
  DATA:  TABLA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

  CASE r_ucomm.

    WHEN '&IC1'.

*      IF RS_SELFIELD-FIELDNAME eq 'PRUEFLOS'.
*        READ TABLE t_gnl INDEX RS_SELFIELD-TABINDEX.
*        SET PARAMETER ID 'QLS' FIELD t_gnl-prueflos.
*        CALL TRANSACTION 'QE19'.
*      ELSEIF RS_SELFIELD-FIELDNAME eq 'QMNUM'.
*        READ TABLE t_gnl INDEX RS_SELFIELD-TABINDEX.
*        SET PARAMETER ID 'IQM' FIELD t_gnl-qmnum.
*        CALL TRANSACTION 'IW53' AND SKIP FIRST SCREEN.
*      ENDIF.
*    ENDCASE.
*************************************
      IF RS_SELFIELD-FIELDNAME eq 'PRUEFLOS'.
        READ TABLE t_gnl INDEX RS_SELFIELD-TABINDEX.
        SET PARAMETER ID 'CHA' FIELD t_gnl-prueflos.
        CALL TRANSACTION 'QA33'.
      ELSEIF RS_SELFIELD-FIELDNAME eq 'QMNUM'.
        READ TABLE t_gnl INDEX RS_SELFIELD-TABINDEX.

        IF t_gnl-qmart eq 'M4'.

          TABLA-PROGRAM = 'RIQMEL20'.
          TABLA-DYNPRO = 1000.
          TABLA-DYNBEGIN = 'X'.
          TABLA-FNAM = 'DATUV'.
          TABLA-FVAL = ' '.
          APPEND TABLA.
          CLEAR TABLA.


          TABLA-PROGRAM = 'RIQMEL20'.
          TABLA-DYNPRO = 1000.
          TABLA-DYNBEGIN = 'X'.
          TABLA-FNAM = 'DATUB'.
          TABLA-FVAL = ' '.
          APPEND TABLA.
          CLEAR TABLA.


          SET PARAMETER ID 'IQM' FIELD t_gnl-qmnum.
          SET PARAMETER ID 'DATUV' FIELD ' '.
*         SET PARAMETER ID 'DATUB' FIELD '31.12.9999'.

        CALL TRANSACTION 'IW29' USING TABLA.
        MESSAGE s398(00) DISPLAY LIKE 'S' WITH 'Actualización exitosa'.


      ELSEIF t_gnl-qmart eq 'PQ'.
        SET PARAMETER ID 'IQM' FIELD t_gnl-qmnum.
        CALL TRANSACTION 'QM03' AND SKIP FIRST SCREEN.
      ENDIF.
      ENDIF.
ENDCASE.

************************************
CLEAR: r_ucomm.
ENDFORM.                 
Título: Re:PROBLEMA CON CALL TRANSACTION IW29
Publicado por: Carlos en 24 de Enero de 2012, 10:03:12 am
Hola...

Cambia la línea que remarco en rojo por la que te pongo en color verde.


          TABLA-FNAM = 'DATUB'.
          TABLA-FVAL = ' '.
          APPEND TABLA.
          CLEAR TABLA.

          SET PARAMETER ID 'IQM' FIELD t_gnl-qmnum.
          SET PARAMETER ID 'DATUV' FIELD ' '.
*         SET PARAMETER ID 'DATUB' FIELD '31.12.9999'.
          SET PARAMETER ID 'DATUB' FIELD ' '.

        CALL TRANSACTION 'IW29' USING TABLA.
        MESSAGE s398(00) DISPLAY LIKE 'S' WITH 'Actualización exitosa'.


      ELSEIF t_gnl-qmart eq 'PQ'.
        SET PARAMETER ID 'IQM' FIELD t_gnl-qmnum.
        CALL TRANSACTION 'QM03' AND SKIP FIRST SCREEN.
      ENDIF.
      ENDIF.



Saludos!