MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Como pasar un select options a una función (foro/showthread.php?t=9719)

yerotos 14/12/07 06:56:14

Como pasar un select options a una función
 
Buenas de nuevo.
Tengo en mi código un select options:

select-options:
si_nie for T7EHS00_SERVICE-pernr.

y quisiera pasar el valor que contenga este select options a una función, lo he hecho de la siguiente forma:

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = so_nie
IMPORTING
output = it_lineatabla-nie.

y me da todo el rato error.

Como pongo en el input el select options?

Gracias otra vez.

Salu2

JAC 14/12/07 07:55:26

Leete esto a ver si te sirve de algo.

orlava 14/12/07 08:00:57

El select options es una especie de tabla interna. La función en cuestión no admite tablas internas, solo parámetros. Por ello debes hacer lo siguiente:

Debes hacer un loop at si_nie
Dentro llamas a la funcion pasándole como parametro si_nie-low, que representa cada valor del select-options.
con lo que te devuelva la función rellenas la cabecera de tu tabla interna it_lineatabla y le haces un append.

ibecerra 14/12/07 12:13:16

hola no te preocupes es entras a la se37
muy facil y sencillo a tu funcion en la pestaña de tables
creas un parametro ejemplo

parametro tipificaci tipo_ref
T_MATERIAL LIKE BAPI_RANGESMATNR --> "en este caso he conseguido una estructura estandar de rangos" si no sabes cual es ubicala en se11 opcion "tipo de datos" o creas una.
luego en el codigo de la funcion se lo pasas como un range ejemplo
select * into table xxxxx from mara where matnr in t_material. --> viste q se comporta como un range, porque un range es una tabla interna o estructra de datos
saludos

ibecerra 14/12/07 12:16:28

ahh me olvidaba
en tu programa principal tienes lo siguiente

select-option s_matnr for mara-matnr..

start-of-selection
CALL FUNCTION 'ZRFC_TUFUNCION'
TABLES
T_MATERIAL = S_MATNR

yerotos 14/12/07 12:32:25


Gracias, por tu ayuda. Esto que me indicas, me funciona a medias. Si le meto un rango de valores, por ejemplo del 1 al 20, si_nie_low siempre sera 1.

Como puedo solucionar esto?

robert_milan 14/12/07 12:35:26

tendrias que crear una funcion que sea inteligente y lea los valores de la tabla interna.

y poder crear el rango de 1 a 20 o de 0 a n

o ver si solo es un parametro.

saludos

yerotos 14/12/07 13:07:06

Si pero cual es el campo del select-option que contiene el valor?
Me refiero a si el valor es si_nie o si_nie-algun campo...

Perdonan mi ignorancia

robert_milan 17/12/07 07:56:25

por ejemplo si declaras un s_matnr como select los valores los tienes en s_matnr-low y s_matnr-high.

y en s_matnr-option tienes si es bt = entre, EQ = igual, etc. ahi tendrias que meter tu logica.

yerotos 18/12/07 07:21:02


Entonces, por ejemplo para los intervalos, lo que tendría que hacer es recorrer desde s_matnr-low y hasta el s_matnr-high y coger lo que contenga s_matnr-low, no?
Lo único, tendría q ir aumentandole en una unidad cada pasada no?

Estoy muy verde, lo siento. :oops:


Husos Horarios son GMT. La hora en este momento es 07:15:20.

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