PDA

Ver la Versión Completa : Abrir ME23n al hacer doble click en ALV


raulgar
01/02/08, 11:21:34
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
01/02/08, 12:21:55
Prueba con esto:

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

vlg1971
01/02/08, 12:25:14
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

raulgar
01/02/08, 12:34:11
No lo se.

Siento no poder ayudarte.

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

Un saludo.

Sergious
03/04/08, 15:34:52
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?

goyleo
03/04/08, 15:47:59
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...

Sergious
03/04/08, 16:24:56
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?

DavidXD_XD
03/04/08, 16:43:53
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. ....

Sergious
03/04/08, 16:56:27
como libero la memoria? del parametro 'FAN' (operacion financiera)

DavidXD_XD
03/04/08, 17:32:09
Free Memory Id 'fan'

Sergious
04/04/08, 12:39:27
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.

Sergious
04/04/08, 12:43:33
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.

amparibi
22/01/14, 12:08:13
Tienes que poner el Clear.