MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   User-command en ALV (foro/showthread.php?t=26528)

Jarpi 02/12/08 10:22:34

User-command en ALV
 
Buen día para todos,

Los molesto en esta oportunidad pues se me está presentando una duda que no logro destrabar.

Estoy usando el comando i_callback_user_command para un reporte con ALV y lo que quisiera hacer es que 2 columnas tengan una rutina interna. En este caso, tengo la columna BELNR y otra con un ícono. La columna del doc. lleva al usuario a la trx FB03 y le muestra el asiento, y la otra columna muestra cuando el documento tiene Lista de Anexos.

El problema está en que no puedo hacer que cada columna tenga su propia rutina, alguien podrá darme una mano con esto?? Alguien me dijo que cada columna debería tener distinto sy-ucomm, pero cuando lo chequeo, no es así.

Cualquier ayuda es bienvenida.

Muchas gracias de antemano,
Saludos.

DavidXD_XD 02/12/08 14:05:26

Hola ... intentalo de esta forma, por ejemplo yo tengo una columna Numero de documento (BELNR) y esta relacionado con una factura (ORIGIN_DOC)


Jarpi 02/12/08 21:41:30

Hola DavidXD_XD,

Era exactamente lo que necesitaba! Realmente te agradezco mucho, estaba seguro contar con una respuesta tuya, no te cansas de ayudar! Ojalá algún día pueda ayudar como vos.

Muchas gracias nuevamente,
Saludos.

Caraver 17/12/08 16:48:43

Dump al hacer doble click
 
Buenas tardes, he echo la parte para que vaya a la tx vf03 y al dar doble click me da el siguiente dump:
************************************************************
Err.tmpo.ejec. PERFORM_NOT_FOUND
Excep. CX_SY_DYN_CALL_ILLEGAL_FORM
Fecha y hora 17.12.2008 18:42:39

Texto breve
Call (PERFORM) to a non-existent routine.

¿Qué ha sucedido?
There exist various options:
Error in the ABAP Application Program

The current ABAP program "SAPLSLVC_FULLSCREEN" had to be terminated because it
has
come across a statement that unfortunately cannot be executed.
or
Error in the SAP kernel.

The current ABAP "SAPLSLVC_FULLSCREEN" program had to be terminated because the
ABAP processor detected an internal system error.


¿Qué puede hacer?
Note down which actions and inputs caused the error.


To process the problem further, contact you SAP system
administrator.

Using Transaction ST22 for ABAP Dump Analysis, you can look
at and manage termination messages, and you can also
keep them for a long time.


Anál.errores
An exception occurred that is explained in detail below.
The exception, which is assigned to class 'CX_SY_DYN_CALL_ILLEGAL_FORM', was
not caught in
procedure "USER_COMMAND" "(FORM)", nor was it propagated by a RAISING clause.
Since the caller of the procedure could not have anticipated that the
exception would occur, the current program is terminated.
The reason for the exception is:
The program "SAPLSLVC_FULLSCREEN" is meant to execute an external PERFORM,
namely the routine "USER_COMAND " of the program "ZLIST_FACT ", but
this routine does not exist.

This may be due to any of the following reasons:

1. One of the programs "SAPLSLVC_FULLSCREEN" or "ZLIST_FACT " is currently
being developed.
The name "USER_COMAND " of the called routine may be incorrect, or
the routine "USER_COMAND " is not yet implemented in the program "ZLIST_FACT ".
-

2. If the program SAPMSSY1 is involved in the runtime error, one of
the function modules called via RFC is not flagged as remote-capable.
(see Transaction SE37 Goto -> Administration -> RFC flag)

3. There is an inconsistency in the system. The versions of the
programs "SAPLSLVC_FULLSCREEN" and "ZLIST_FACT " do not match.


Notas para corregir errores
- Check that transports to the system are complete.
- Conclude any developments already begun ("SAPLSLVC_FULLSCREEN" and/or
"ZLIST_FACT ").
- Check routine names

If the error occures in a non-modified SAP program, you may be able to
find an interim solution in an SAP Note.
If you have access to SAP Notes, carry out a search with the following
keywords:

"PERFORM_NOT_FOUND" "CX_SY_DYN_CALL_ILLEGAL_FORM"
"SAPLSLVC_FULLSCREEN" or "LSLVC_FULLSCREENF01"
"USER_COMMAND"

If you cannot solve the problem yourself and want to send an error
notification to SAP, include the following information:

1. The description of the current problem (short dump)

To save the description, choose "System->List->Save->Local File
(Unconverted)".

2. Corresponding system log

Display the system log by calling transaction SM21.
Restrict the time interval to 10 minutes before and five minutes
after the short dump. Then choose "System->List->Save->Local File
(Unconverted)".

3. If the problem occurs in a problem of your own or a modified SAP
program: The source code of the program
In the editor, choose "Utilities->More
Utilities->Upload/Download->Download".

4. Details about the conditions under which the error occurred or which
actions and input led to the error.

The exception must either be prevented, caught within proedure
"USER_COMMAND" "(FORM)", or its possible occurrence must be declared in the
RAISING clause of the procedure.
To prevent the exception, note the following:


******************************************************************

Si sabéis por qué puede ser agradezco que me lo digan, llevo todo el día y no tengo npi de por que es, un saludo y gracias

DavidXD_XD 17/12/08 18:24:04

Hola ... en ese caso creo que lo estas trabajando con REUSE_ALV_GRID_DISPLAY, para ese caso debes pasar como parametros de entrada tanto el programa como el FORM USER_COMMAND de esta manera


Debes comunicar a la funcion los parametros I_CALLBACK_PROGRAM y I_CALLBACK_USER_COMMAND

Caraver 18/12/08 09:41:45

Esos dos parametros los tengo puesto, mira te paso el codigo a ver si ves algo raro:
Creo que esta todo bien pero me salta el dump, llevo poco tiempo haciendo listado y seguro que se me escapa algo, muchas gracas

francesc 18/12/08 11:21:26

Te falta una 'M' en USER_COMMAND ,en el nombre que le pasas a la función.

Caraver 18/12/08 11:25:29

Muchisimas gracias, llevo 2 días dandome cabezasos, y estoy seguro que no lo hubiera visto, muchas gracias de nuevo

Abaunus 20/02/09 13:27:44



Hola David, veo que la tenés clara, te hago dos consultas:
Yo creo los ALV con esa función 'REUSE_ALV_GRID_DISPLAY', pero el único Callback que hago es I_CALLBACK_PROGRAM, ya que los otros los cargo con it_events... ¿cuál es la diferencia?
La otra cosnulta es: ¿cuál es la otra función para los ALV?
Desde ya, gracias,
Saludos

DavidXD_XD 20/02/09 14:12:18

Hola, bueno hasta donde se el REUSE_ALV_GRID_DISPLAY es un tipo de framework y tbm hace uso de un contenedor y realiza la insercion de datos con objetos, cuando he debuggeado el I_CALLBACK_PROGRAM nos sirve para poder direccionar las subrutinas que se crean para los eventos dentro del framework, x ejm, dentro del codigo existe algo asi


Por eso es necesario transmitir el nombre del programa dentro de la funcion, asi como tambien el evento user command dentro del parametro i_callback_user_command y tbm pasa los mismo con el parametro I_CALLBACK_PF_STATUS_SET, I_CALLBACK_TOP_OF_PAGE para los eventos de menu de barra y cabecera ... los demas eventos que no se especifican como por ejemplo el pie de pagina se trabaja con la tabla de eventos, espero te sirva la info :D

PD: Si toy ekivocado xfas corregirme :p


Husos Horarios son GMT. La hora en este momento es 14:30:24.

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