Abrir ME23n al hacer doble click en ALV

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • raulgar
    Junior Member
    • dic
    • 28

    #1

    Abrir ME23n al hacer doble click en ALV

    Hola,

    Como puedo abrir la transacción con un número de pedido determinado al hacer doble click en una fila del ALV?

    Ya consigo capturar el evento y tengo el número de pedido solo me faltaría llamar a la transacción pasándole el número de pedido.

    Muchas gracias.
  • vlg1971
    Senior Member
    • feb
    • 195

    #2
    Prueba con esto:

    SET PARAMETER ID 'BES' FIELD rs-value. " nº pedido
    CALL TRANSACTION 'ME23N'.

    Comentario

    • vlg1971
      Senior Member
      • feb
      • 195

      #3
      Hola soy yo otra vez, por casualidad no sabras como sacar el Historico de cambio precios articulos proveedor desde sap, creo que igual puede ser desde el registro info de compras pero no estoy seguro, si lo sabes me harias un favor
      Gracas

      Comentario

      • raulgar
        Junior Member
        • dic
        • 28

        #4
        No lo se.

        Siento no poder ayudarte.

        Muchas gracias por tu información que esa si que me ha servido y mucho.

        Un saludo.

        Comentario

        • Sergious
          Junior Member
          • nov
          • 22

          #5
          Refrescar Parameter ID

          Buenas, estoy haciendo, despues de un doble click en un ALV OO, un call transaction asi:

          FORM double_click USING p_row
          p_column
          p_row_no.

          DATA: ls_resultados TYPE LINE OF tt_resultados.
          READ TABLE gt_resultados INTO ls_resultados INDEX p_row.

          SET PARAMETER ID 'BUK' FIELD ls_resultados-bukrs.
          SET PARAMETER ID 'FAN' FIELD ls_resultados-rfha.
          CALL TRANSACTION 'TM_53' AND SKIP FIRST SCREEN.
          CLEAR: ls_resultados,
          p_row,
          p_column,
          p_row_no.
          SET PARAMETER ID 'BUK' FIELD ls_resultados-bukrs.
          SET PARAMETER ID 'FAN' FIELD ls_resultados-rfha.

          ENDFORM. " double_click

          Me llama a la funcion con el numero de operacion como quiero, el problema es que cuando clickeo en otra linea me sigue llamando a la Trx TM_53 con la misma operación que clickee en el primer momento por mas que salga del programa y entre de nuevo..., solo funciona bien cuando salis y te logueas nuevamente.
          ¿alguien me sabra decir como actualizar esto?

          Comentario

          • goyleo
            Senior Member
            • sep
            • 102

            #6
            mira lo hice yo fue declarar el campo en el catalogo como hotspot = 'X'.
            para que puedas aplicarle el clic del boton

            Ejenmplo:

            READ TABLE gt_fieldcat INTO ge_fcat
            WITH KEY fieldname = 'VBELN'.
            IF sy-subrc = 0.
            ge_fcat-seltext_l = 'Pedido'.
            ge_fcat-seltext_m = 'Pedido'.
            ge_fcat-seltext_s = 'Pedido'.
            ge_fcat-hotspot = 'X'.
            MODIFY gt_fieldcat FROM ge_fcat INDEX sy-tabix.
            ENDIF.


            Luego en el REUSE_ALV_GRID_DISPLAY declaras el user command
            i_callback_user_command = 'USER_COMMAND'

            Luego se realiza el FORM

            FORM user_command USING r_ucomm LIKE sy-ucomm
            rs_selfield TYPE slis_selfield.

            CASE r_ucomm.
            WHEN '&IC1'.

            CASE rs_selfield-fieldname.

            WHEN 'VBELN'.
            READ TABLE gt_lista INDEX rs_selfield-tabindex.
            SET PARAMETER ID 'AUN' FIELD gt_lista-vbeln.
            CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.

            ENDCASE.
            ENDCASE.

            ENDFORM. " user_command



            Espero haber sido de utilidad...

            Comentario

            • Sergious
              Junior Member
              • nov
              • 22

              #7
              El problema es que no me refrezca el parametro

              cuando me llama a la transaccion (la primera vez) y vuelvo luego me vuelve a llamar a la transaccion con el mismo numero de documento...

              alguien tiene idea como solucionar esto?

              Comentario

              • DavidXD_XD
                Moderator
                • ago
                • 1255

                #8
                Eso creo que es porque la primera vez que llamas a la OC la guarda en memoria interna ... se tendria que liberar la memoria o tbm chancar la nueva variable a la memoria, lo unico que tendrias que hacer es averiguar el ID de memoria al que lo guarda. ....
                David Carballido Córdova

                Comentario

                • Sergious
                  Junior Member
                  • nov
                  • 22

                  #9
                  Memoria

                  como libero la memoria? del parametro 'FAN' (operacion financiera)

                  Comentario

                  • DavidXD_XD
                    Moderator
                    • ago
                    • 1255

                    #10
                    Free Memory Id 'fan'
                    David Carballido Córdova

                    Comentario

                    • Sergious
                      Junior Member
                      • nov
                      • 22

                      #11
                      Call transaction and skip first screen

                      mirá al final lo arregle con una grabación simple que me lleve a la primer pantalla de visualizacion de Operaciones, ahora probaré el free memory...

                      pero por lo pronto lo siguiente funciona igual que el call transaction `TM_53` and skip first screen:

                      * SET PARAMETER ID: 'FAN' FIELD lv_operacion,
                      * 'BUK' FIELD ls_resultados-bukrs.
                      * CALL TRANSACTION 'TM_53' AND SKIP FIRST SCREEN.

                      lt_bdc-program = 'SAPLFTR_IRATE'.
                      lt_bdc-dynpro = '1000'.
                      lt_bdc-dynbegin = 'X'.
                      APPEND lt_bdc. CLEAR lt_bdc.
                      lt_bdc-fnam = 'BDC_CURSOR'.
                      lt_bdc-fval = 'VTGFHA-BUKRS'.
                      APPEND lt_bdc. CLEAR lt_bdc.
                      lt_bdc-fnam = 'VTGFHA-BUKRS'.
                      lt_bdc-fval = ls_resultados-bukrs.
                      APPEND lt_bdc. CLEAR lt_bdc.
                      lt_bdc-fnam = 'VTGFHA-RFHA'.
                      lt_bdc-fval = ls_resultados-rfha.
                      APPEND lt_bdc. CLEAR lt_bdc.
                      lt_bdc-fnam = 'BDC_OKCODE'.
                      lt_bdc-fval = '/00'.
                      APPEND lt_bdc. CLEAR lt_bdc.
                      lt_bdc-program = 'SAPLFTR_IRATE'.
                      lt_bdc-dynpro = '1100'.
                      lt_bdc-dynbegin = 'X'.
                      APPEND lt_bdc. CLEAR lt_bdc.
                      lt_bdc-fnam = 'BDC_OKCODE'.
                      lt_bdc-fval = '/00'.
                      APPEND lt_bdc. CLEAR lt_bdc.

                      CALL TRANSACTION 'TM_53' USING lt_bdc MODE 'E'.

                      Saludos,
                      Gracias.

                      Comentario

                      • Sergious
                        Junior Member
                        • nov
                        • 22

                        #12
                        Free Memory

                        No funcionó el free memory, no refresca el parameter:

                        FREE MEMORY ID 'FAN'.
                        FREE MEMORY ID 'BUK'.
                        SET PARAMETER ID: 'FAN' FIELD ls_resultados-rfha,
                        'BUK' FIELD ls_resultados-bukrs.
                        CALL TRANSACTION 'TM_53' AND SKIP FIRST SCREEN.

                        Saludos,
                        Gracias igual.

                        Comentario

                        • amparibi
                          Junior Member
                          • sep
                          • 8

                          #13
                          Tienes que poner el Clear.

                          Comentario

                          Trabajando...