MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   set parameter (foro/showthread.php?t=12665)

javibest 16/04/08 11:06:45

set parameter
 
Hola.

Quiero invocar una transaccion con parametros de entrada :

WHEN '&IC1'.
READ TABLE it_alv_02 INDEX p_selfield-tabindex.
IF sy-subrc = 0.
SET PARAMETER ID 'BUK' FIELD it_alv_02-sociedad.
SET PARAMETER ID 'FAN' FIELD it_alv_02-efecto.
CALL TRANSACTION 'TM33' .
ENDIF.
ENDCASE.

el tema es que ejecuta la transaccion, pero en lugar de ejecutarse con los valores que le paso, aparecen los ultimos que se han metido en la transaccion.

Sease, ni puto caso que me hace....

zonanet 16/04/08 15:20:29

Hola javibest

A ver si te sirve esto:

WHEN '&IC1'.
READ TABLE it_alv_02 INDEX p_selfield-tabindex.
IF sy-subrc = 0.
SET PARAMETER ID 'BUK' FIELD it_alv_02-sociedad.
SET PARAMETER ID 'FAN' FIELD it_alv_02-efecto.
CALL TRANSACTION 'TM33' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.


Con la cláusula AND SKIP FIRST SCREEN además de llamar a la sentencia indicada se puede saltar la primera pantalla de la transacción. Esta acción debe ir combinada con el uso de parámetros SPA/GPA de los campos de la primera pantalla de la transacción (sentencia SET PARAMETERS) para que el momento de la ejecución de la transacción, ésta tome los parémtros de la memoria (sentencia GET PARAMETERS) y así, de esta forma, poder saltar la primera pantalla.


Saludos!

abapconsultoria 16/04/08 15:32:34

No le veo problema a la sentencia ... quizas sea el modo de ejecución.

Cuando haces el set lo que haces es subir esos valores a "la memoria SAP". La cual es comun para todas la sesiones internas/externas. Cualquier nodo que habras del mismo usuario deberia ver estos cambio.... La opcion que podes chequear es en el debug del sistema como te va setenado las variables .... para ver la memoria sap debes ir en modo debug a :

PASAR A -> AMBITOS DEL SISTEMA -> MEMORIA SAP.

Saludos.

Javier.

aconnell 17/04/08 18:58:29

set y get parameter ID
 
Hola Chicos, buenas tardes.
Tengo un pequeño problemita que sé que ustedes me van a ayudar a solucionar.
Estoy trabajando con la Badi ME_PROCESS_PO_CUST para la transacciones me21n, me22n y me23n . Para hacer una validación era necesario guardar un valor en la memoria luego que diera un error para utiliarlo mas adelante y volver a validar con ese valor.
Para ello utilizé SET PARAMETER ID 'MEN' FIELD MENSAJE en un método de la Babi y GET PARAMETER ID 'MEN' FIELD MENSAJE en otro método para continuar con la validación.
Resulta que todo lo hace según lo esperado, se comporta perfecto, validando todo, el problema es que cuando salgo de la transacción como el valor de 'MENSAJE' está en memoria, se queda en un loop ya que nunca se limpió 'MENSAJE'.
Alguno de ustedes me puede indicar como puedo limpiar el valor de la memoria que trae 'MENSAJE'? ya probé FREE MEMORY, FREE MEMORY ID 'MENSAJE', FREE OBJECT 'MENSAJE', FREE 'MENSAJE' y nada funcionó...
QUE PUEDO HACER?:confused:

ballan 18/04/08 08:25:57

Si lo has subido a memory con export to memory id .. deberia funcionarte el free memory id .., prueba a poner la siguiente llamada despues del free

call method cl_gui_cfw=>flush


Husos Horarios son GMT. La hora en este momento es 02:48:19.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web