Alguien m ayuda con un DUMP?

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Driau
    Senior Member
    • ago
    • 235

    #1

    Alguien m ayuda con un DUMP?

    Hola a todos. He realizado un pequeño programa. Le he modificado un poco los botones del ALV para que cuando le doy a 'PROCESAR' me genere un fichero. Éste es el codigo:

    Código:
    REPORT ZDESNOTIFICAR.
    
    ************************************************************************
    *  TAULES DE BASE DE DADES                                             *
    ************************************************************************
    TABLES: AFRU.
    
    
    ************************************************************************
    *  TYPES                                                               *
    ************************************************************************
    
    
    ************************************************************************
    *  TYPE-POOLS                                                          *
    ************************************************************************
    TYPE-POOLS: SLIS.
    
    
    ************************************************************************
    *  VARIABLES                                                           *
    ************************************************************************
    DATA: V_LINES     TYPE I.
    DATA: G_REPID     LIKE SY-REPID.
    
    *VARIABLES ALV
    DATA: IT_FIELDCAT   TYPE SLIS_T_FIELDCAT_ALV.
    DATA: GS_LAYOUT     TYPE SLIS_LAYOUT_ALV.
    DATA: WA_FIELDCAT   TYPE LINE OF SLIS_T_FIELDCAT_ALV.
    
    
    ************************************************************************
    *  TAULES INTERNES                                                     *
    ************************************************************************
    
    DATA: BEGIN OF IT_AFRU OCCURS 0,
             AUFNR LIKE AFRU-AUFNR,
             RMZHL LIKE AFRU-RMZHL,
             LMNGA LIKE AFRU-LMNGA,
             MEINH LIKE AFRU-GMEIN,
    END OF IT_AFRU.
    
    DATA: BEGIN OF IT_OUT OCCURS 0,
             AUFNR LIKE AFRU-AUFNR,
             RMZHL LIKE AFRU-RMZHL,
             LMNGA LIKE AFRU-LMNGA,
             MEINH LIKE AFRU-MEINH,
    END OF IT_OUT.
    
    
    
    ************************************************************************
    * PANTALLA DE SELECCIÓ                                                 *
    ************************************************************************
    
    *INSERTAR NUMERO DE OF
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
    
    PARAMETERS:
    P_AUFNR LIKE AFRU-AUFNR.      "NÚMERO DE OF
    
    SELECTION-SCREEN END OF BLOCK b1.
    
    
    *************************************************************************
    *  AT SELECTION-SCREEN                                                  *
    *************************************************************************
    
    
    
    *************************************************************************
    * PROGRAMA PRINCIPAL                                                    *
    *************************************************************************
    START-OF-SELECTION.
    
      G_REPID = SY-REPID.
      SELECT AUFNR RMZHL LMNGA MEINH
        FROM AFRU
        INTO CORRESPONDING FIELDS OF TABLE IT_AFRU
        WHERE AUFNR = P_AUFNR.
    
      LOOP AT IT_AFRU.
        IT_AFRU-MEINH = 'UN'.
        APPEND IT_AFRU TO IT_OUT.
      ENDLOOP.
    
    *PREPARAMOS EL ALV-GRID
      DESCRIBE TABLE IT_OUT LINES V_LINES.
      CASE V_LINES.
        WHEN 0.
          MESSAGE TEXT-002 TYPE 'S'.
          EXIT.
        WHEN OTHERS.
          PERFORM CATALEG_ALV.
          PERFORM LAYOUT_ALV USING GS_LAYOUT.
          PERFORM MOSTRAR_ALV.
      ENDCASE.
    
    
    ************************************************************************
    *  FORM: CATALEG_ALV                                                   *
    *                                                                      *
    ************************************************************************
    FORM CATALEG_ALV.
      CLEAR IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      	WA_FIELDCAT-FIELDNAME           = 'RMZHL'.
      	WA_FIELDCAT-SELTEXT_L           = 'Nº de Palet'.
      WA_FIELDCAT-OUTPUTLEN           = 10.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      	WA_FIELDCAT-FIELDNAME           = 'LMNGA'.
      WA_FIELDCAT-SELTEXT_L                = 'Cantidad'.
      WA_FIELDCAT-OUTPUTLEN           = 10.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
      CLEAR WA_FIELDCAT.
      	WA_FIELDCAT-FIELDNAME           = 'MEINH'.
      WA_FIELDCAT-SELTEXT_L                = 'Unidad de medida'.
      WA_FIELDCAT-OUTPUTLEN         = 15.
      WA_FIELDCAT-JUST = 'R'.
      APPEND WA_FIELDCAT TO IT_FIELDCAT.
    ENDFORM.                    "CATALEG_ALV
    
    
    ************************************************************************
    *  FORM: LAYOUT_ALV                                                    *
    *                                                                      *
    ************************************************************************
    
    FORM LAYOUT_ALV USING LS_LAYOUT TYPE SLIS_LAYOUT_ALV.
      LS_LAYOUT-ZEBRA             = 'X'.
      LS_LAYOUT-BOX_FIELDNAME = 'CHECKBOX'.
    ENDFORM.                    "LAYOUT_ALV
    
    
    *************************************************************************
    *  FORM: FUNCIÓ PER A MOSTRAR L'ALV PER PANTALLA                        *
    *                                                                       *
    *************************************************************************
    FORM MOSTRAR_ALV.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        	EXPORTING
        I_CALLBACK_PROGRAM = G_REPID
        		IT_FIELDCAT = IT_FIELDCAT
        		IS_LAYOUT = GS_LAYOUT
        I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
        I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
        	TABLES
        		T_OUTTAB = IT_OUT 				.
      	 IF SY-SUBRC <> 0.
      	 ENDIF.
    ENDFORM.                    "MOSTRAR_ALV
    
    
    
    *************************************************************************
    *  FORM: SET_PF_STATUS                                                  *
    *                                                                       *
    *************************************************************************
    FORM set_pf_status USING rt_extab TYPE slis_t_extab.
      SET PF-STATUS 'STATUS_ALV'.
    ENDFORM.                    " SET_PF_STATUS
    
    
    **************************************************************************
    *  FORM: GENERAR_FICHERO                                                 *
    *                                                                        *
    **************************************************************************
    FORM GENERAR_FICHERO.
      CALL FUNCTION 'WS_DOWNLOAD'
        EXPORTING
          filename                = TEXT-003
          filetype                = 'ASC'
        TABLES
          data_tab                = IT_OUT
        EXCEPTIONS
          file_open_error         = 1
          file_write_error        = 2
          invalid_filesize        = 3
          invalid_type            = 4
          no_batch                = 5
          unknown_error           = 6
          invalid_table_width     = 7
          gui_refuse_filetransfer = 8
          customer_error          = 9
          OTHERS                  = 10.
    ENDFORM.                    "GENERAR_FICHERO
    
    
    
    *************************************************************************
    *  FORM: USER_COMMAND                                                   *
    *                                                                       *
    *************************************************************************
    FORM USER_COMMAND USING RF_UCOMM LIKE SY-UCOMM
                            RS       TYPE SLIS_SELFIELD.
      CASE RF_UCOMM.
        WHEN 'PROCESAR'.
          PERFORM GENERAR_FICHERO.
          RS-REFRESH = 'X'.
      ENDCASE.
    
    ENDFORM.                    "user_command


    El problema es que en cuanto le doy al boton de GENERAR me da un error del siguiente tipo:

    Err.tmpo.ejec. MOVE_TO_LIT_NOTALLOWED_NODATA

    Assignment error: Overwriting a protected field.

    The program tried to assign a new value to the field "<L_BOX>" even though
    it is protected against changes.


    La verdad es que no se que hacer...alguien se ha encontrado con lo mismo alguna vez????

    Gracias!
  • nenuke
    Member
    • sep
    • 87

    #2
    Prueba a quitar la linea RS-REFRESH = 'X'.

    Saludos.

    Comentario

    • su86
      Junior Member
      • mar
      • 1

      #3
      A mi me pasa lo mismo y no se que hacer

      Comentario

      • larmadovr
        Member
        • ene
        • 77

        #4
        Que tal:

        Intenta hacer algo como lo siguiente:

        Crea una estructura con los datos de la tabla it_out
        Y despues has lo siguiente:

        TYPES: BEGIN OF st_output.
        INCLUDE STRUCTURE ztablaquetucreas.
        TYPES: END OF st_output.

        DATA: it_out TYPE STANDARD TABLE OF st_output WITH HEADER LINE.


        NOTA: Es muy probable que tu problema es por los tipos de datos, en caso de que no se solucione tu problema me comentas y lo sigo analizando.

        Saludos.
        I.S.C.T. Luis Armando Valdez Rodríguez
        Consultor ABAP
        correo: larmandovr@hotmail.com
        cel: (045) 5537406023

        "La vida premia la acción"

        Comentario

        • abapconsultoria
          Senior Member
          • ene
          • 101

          #5
          Podrias pegar el dump entero ??

          Saludos.
          ABAPCONSULTORIA@GMAIL.COM

          www.consultoriaabap.blogspot.com

          Lo importante no es saber sino saber quien es el que sabe

          Comentario

          • DavidXD_XD
            Moderator
            • ago
            • 1255

            #6
            El problema del programa es el PF-STATUS, dame un toq y t paso como deberias hacerlo
            David Carballido Córdova

            Comentario

            • DavidXD_XD
              Moderator
              • ago
              • 1255

              #7
              Ya ta corregido, el problema era por la constante CHECKBOX que colocabas en el layout.

              REPORT ZPRUEBA_1 MESSAGE-ID SABAPDOCU.
              **************************************************
              **********************
              * TAULES DE BASE DE DADES *
              **************************************************
              **********************

              TABLES: AFRU.
              **************************************************
              **********************
              * TYPES *
              **************************************************
              **********************

              **************************************************
              **********************
              * TYPE-POOLS *
              **************************************************
              **********************

              TYPE-POOLS: SLIS.

              **************************************************
              **********************
              * VARIABLES *
              **************************************************
              **********************

              DATA: V_LINES TYPE I.
              DATA: G_REPID LIKE SY-REPID.

              *VARIABLES ALV
              DATA: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
              DATA: GS_LAYOUT TYPE SLIS_LAYOUT_ALV.
              DATA: WA_FIELDCAT TYPE LINE OF SLIS_T_FIELDCAT_ALV.

              **************************************************
              **********************
              * TAULES INTERNES *
              **************************************************
              **********************


              DATA: BEGIN OF IT_AFRU OCCURS 0,
              AUFNR LIKE AFRU-AUFNR,
              RMZHL LIKE AFRU-RMZHL,
              LMNGA LIKE AFRU-LMNGA,
              MEINH LIKE AFRU-GMEIN,
              END OF IT_AFRU.

              DATA: BEGIN OF IT_OUT OCCURS 0,
              AUFNR LIKE AFRU-AUFNR,
              RMZHL LIKE AFRU-RMZHL,
              LMNGA LIKE AFRU-LMNGA,
              MEINH LIKE AFRU-MEINH,
              END OF IT_OUT.

              **************************************************
              **********************
              * PANTALLA DE SELECCIÓ *
              **************************************************
              **********************

              *INSERTAR NUMERO DE OF

              SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
              PARAMETERS: P_AUFNR LIKE AFRU-AUFNR. "NÚMERO DE OF
              SELECTION-SCREEN END OF BLOCK b1.

              **************************************************
              ***********************
              * AT SELECTION-SCREEN *
              **************************************************
              ***********************


              **************************************************
              ***********************
              * PROGRAMA PRINCIPAL *
              **************************************************
              ***********************

              START-OF-SELECTION.

              G_REPID = SY-REPID.
              SELECT AUFNR RMZHL LMNGA MEINH
              FROM AFRU
              INTO CORRESPONDING FIELDS OF TABLE IT_AFRU
              WHERE AUFNR = P_AUFNR.

              LOOP AT IT_AFRU.
              IT_AFRU-MEINH = 'UN'.
              APPEND IT_AFRU TO IT_OUT.
              ENDLOOP.

              *PREPARAMOS EL ALV-GRID
              DESCRIBE TABLE IT_OUT LINES V_LINES.
              CASE V_LINES.
              WHEN 0.
              MESSAGE S888 WITH 'No hay nada'.
              EXIT.
              WHEN OTHERS.
              PERFORM CATALEG_ALV.
              PERFORM LAYOUT_ALV USING GS_LAYOUT.
              PERFORM MOSTRAR_ALV.
              ENDCASE.
              **************************************************
              **********************
              * FORM: CATALEG_ALV *
              * *
              **************************************************
              **********************

              FORM CATALEG_ALV.
              CLEAR IT_FIELDCAT.
              CLEAR WA_FIELDCAT.
              WA_FIELDCAT-FIELDNAME = 'RMZHL'.
              WA_FIELDCAT-SELTEXT_L = 'Nº de Palet'.
              WA_FIELDCAT-OUTPUTLEN = 10.
              APPEND WA_FIELDCAT TO IT_FIELDCAT.
              CLEAR WA_FIELDCAT.
              WA_FIELDCAT-FIELDNAME = 'LMNGA'.
              WA_FIELDCAT-SELTEXT_L = 'Cantidad'.
              WA_FIELDCAT-OUTPUTLEN = 10.
              APPEND WA_FIELDCAT TO IT_FIELDCAT.
              CLEAR WA_FIELDCAT.
              WA_FIELDCAT-FIELDNAME = 'MEINH'.
              WA_FIELDCAT-SELTEXT_L = 'Unidad de medida'.
              WA_FIELDCAT-OUTPUTLEN = 15.
              WA_FIELDCAT-JUST = 'R'.
              APPEND WA_FIELDCAT TO IT_FIELDCAT.
              ENDFORM. "CATALEG_ALV

              **************************************************
              **********************
              * FORM: LAYOUT_ALV *
              * *
              **************************************************
              **********************


              FORM LAYOUT_ALV USING LS_LAYOUT TYPE SLIS_LAYOUT_ALV.
              * LS_LAYOUT-ZEBRA = 'X'.
              * LS_LAYOUT-BOX_FIELDNAME = 'CHECKBOX'.

              ENDFORM. "LAYOUT_ALV

              **************************************************
              ***********************
              * FORM: FUNCIÓ PER A MOSTRAR L'ALV PER PANTALLA *
              * *
              **************************************************
              ***********************

              FORM MOSTRAR_ALV.

              DATA : gt_events TYPE slis_t_event,
              ls_events TYPE slis_alv_event.

              CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
              EXPORTING
              i_list_type = 0
              IMPORTING
              et_events = gt_events.

              READ TABLE gt_events INTO ls_events WITH KEY name = 'USER_COMMAND'.
              ls_events-form = 'USER_COMMAND'.
              MODIFY gt_events FROM ls_events INDEX sy-tabix TRANSPORTING form.
              CLEAR ls_events.
              READ TABLE gt_events INTO ls_events WITH KEY name = 'PF_STATUS_SET'.
              ls_events-form = 'SET_PF_STATUS'.
              MODIFY gt_events FROM ls_events INDEX sy-tabix TRANSPORTING form.
              * SET PF-STATUS 'STATUS_ALV'.
              CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
              EXPORTING
              I_CALLBACK_PROGRAM = G_REPID
              I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
              I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
              IT_FIELDCAT = IT_FIELDCAT
              * IS_LAYOUT = GS_LAYOUT
              IT_EVENTS = gt_events[]
              TABLES
              T_OUTTAB = IT_OUT .
              IF SY-SUBRC <> 0.
              ENDIF.

              ENDFORM. "MOSTRAR_ALV

              **************************************************
              ***********************
              * FORM: SET_PF_STATUS *
              * *
              **************************************************
              ***********************

              FORM SET_PF_STATUS USING rt_extab TYPE slis_t_extab.
              SET PF-STATUS 'STATUS_ALV'.
              ENDFORM. " SET_PF_STATUS

              **************************************************
              ************************
              * FORM: GENERAR_FICHERO *
              * *
              **************************************************
              ************************

              FORM GENERAR_FICHERO.

              CALL FUNCTION 'WS_DOWNLOAD'
              EXPORTING
              filename = 'C:\texto.txt'
              filetype = 'ASC'
              TABLES
              data_tab = IT_OUT
              EXCEPTIONS
              file_open_error = 1
              file_write_error = 2
              invalid_filesize = 3
              invalid_type = 4
              no_batch = 5
              unknown_error = 6
              invalid_table_width = 7
              gui_refuse_filetransfer = 8
              customer_error = 9
              OTHERS = 10.

              ENDFORM. "GENERAR_FICHERO
              **************************************************
              ***********************
              * FORM: USER_COMMAND *
              * *
              **************************************************
              ***********************

              FORM USER_COMMAND USING RF_UCOMM LIKE SY-UCOMM
              RS TYPE SLIS_SELFIELD.
              CASE RF_UCOMM.
              WHEN 'PROCESAR'.
              RS-REFRESH = 'X'.
              PERFORM GENERAR_FICHERO.
              WHEN 'BACK'.
              LEAVE TO LIST-PROCESSING.
              ENDCASE.

              ENDFORM. "user_command

              Cualquier inquietud no dudes en consultar ... suerte !!!
              David Carballido Córdova

              Comentario

              • viccas
                Junior Member
                • abr
                • 1

                #8
                Solución Alterna

                Yo tuve el mismo inconveniente, y lo solucione, en caso de que si quieras usar las cajas de selección, declarando CHECKBOX en las variables de mi tabla interna, así ya tendremos la opción de seleccionar determinados registros.

                Comentario

                • yisus1988
                  Junior Member
                  • mar
                  • 3

                  #9
                  Solución

                  Exacto, yo tuve el problema y lo solucioné como comenta viccas.

                  En la estructura de la tabla que se monta en la ALV, me faltaba declarar el parámetro (SEL) de selección, de tipo CHAR1.

                  Comentario

                  Trabajando...