PDA

Ver la Versión Completa : Llamada a transacción con parámetro usando acceso directo


manute
02/04/09, 15:14:02
Hola a tod@s,

Necesito saber si es posible que aparte de la llamada a una transacción en un acceso directo, sea posible pasar un parámetro pero saltándose la pantalla de selección (el parámetro está previamente definido)

Gracias por cualquier ayuda. :confused:

jborquez
02/04/09, 15:16:50
Short Cut / Acceso directo skip first screen
Para que el programa no se detenga en el parámetro de entrada, cuando es llamado por un Shortcut en un correo electrónico, es necesario preceder la transacción de un asterisco. Yo lo probe y funciona perfectamente

I think you precede the command with a * - at least I seem to remember that
that is what is done in RSWUWFML2. It's the same as "AND SKIP FIRST SCREEN",
which may or may not work depending on the transaction you call.

http://mailman.mit.edu/pipermail/sap...ch/021675.html

*--------------------------------------
REFRESH IT_SHORTCUT_PARAM.
MOVE 'SOLNUM' TO IT_SHORTCUT_PARAM-FIELD_NAME.
MOVE W_SOLIC_NUM_C TO IT_SHORTCUT_PARAM-FIELD_VALUE.
APPEND IT_SHORTCUT_PARAM.

CALL FUNCTION 'ZFX_BC_ACCESO_DIRECTO_JB01'
EXPORTING
USUARIO = ZSBCPE011-USU_COD_GERENTE
TRANSACCION = '*ZXBCD052'
IMPORTING
CONTENIDO = ACCESO_DIRECTO
TABLES
SHORTCUT_PARAM = IT_SHORTCUT_PARAM.

*---------------------------------------


FUNCTION ZFX_BC_ACCESO_DIRECTO_JB01.
*"----------------------------------------------------------------------
*"*"Interfase local
*" IMPORTING
*" VALUE(USUARIO) TYPE SYUNAME
*" VALUE(TRANSACCION) TYPE TCODE
*" EXPORTING
*" REFERENCE(CONTENIDO) TYPE STRING
*" TABLES
*" SHORTCUT_PARAM STRUCTURE ZSBCPE022 OPTIONAL
*"----------------------------------------------------------------------

*** Declaration for shortcut content
DATA : TRANSACCION_PARAM TYPE TEXT255,
V_PERNR(12) TYPE C.
DATA : V_TCODE TYPE TCODE.

* Verificar que el código de transacción está disponible.
CLEAR V_TCODE.
SELECT SINGLE TCODE FROM TSTC
INTO V_TCODE
WHERE TCODE EQ TRANSACCION.
* Eliminar validación
* IF V_TCODE IS INITIAL.
* MESSAGE 'Ingrese una transacción válida.' TYPE 'E' DISPLAY LIKE 'A'.
* EXIT.
* ENDIF.

* Poblar los parámetros de transacción para pasárselos al acceso directo.
IF NOT SHORTCUT_PARAM[] IS INITIAL.
CLEAR TRANSACCION_PARAM.
LOOP AT SHORTCUT_PARAM.
CONCATENATE TRANSACCION_PARAM SHORTCUT_PARAM-FIELD_NAME '='
SHORTCUT_PARAM-FIELD_VALUE ';'
INTO TRANSACCION_PARAM.
ENDLOOP.
ENDIF.

*** Creación del acceso directo para la transacción.
CALL FUNCTION 'SWN_CREATE_SHORTCUT'
EXPORTING
I_TRANSACTION = TRANSACCION " parametrizado
I_PARAMETER = TRANSACCION_PARAM " var. local, parametrizado desde SHORTCUT_PARAM
I_SYSID = SY-SYSID
I_CLIENT = SY-MANDT
I_USER = USUARIO " parametrizado
I_LANGUAGE = SY-LANGU
I_WINDOWSIZE = 'Maximized'
I_CUSTOM = 'Reuse=1'
IMPORTING
SHORTCUT_STRING = CONTENIDO
EXCEPTIONS
INCONSISTENT_TRANSACCION_PARAMS = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ENDFUNCTION.

jsanchezlara
03/01/13, 19:40:08
Estoy usando esta función para crear el acceso directo a una transacción y me funciona correctamente, pero quisiera que al entrar a la transaccion despues de haber ingresado el campo de la primera pantalla se posicione en una pestaña especifica de un tabstript.
Gracias de antemano.