Ver la Versión Completa : Como pasar un select options a una función
yerotos
14/12/07, 06:56:14
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
Leete esto a ver si te sirve de algo.
http://blog.sap4.com/2007/05/24/como-pasarle-un-rango-a-una-funcion/
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
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.
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
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
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
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.
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:
yerotos
18/12/07, 09:49:29
Por fin!! Ya he conseguido hacer lo que quería. Al final era mas sencillo que lo q yo pretendía :o :o , me complique la vida demasio. He hecho un select pasandole el select-options con el in y he metido el resultado en una tabla interna.
Muchas gracias por vuestra ayuda, si no es por vds. no salgo a la orilla.
Siento haber dado tanto el coñazo. :o
Un saludo
Enksillado
28/05/10, 16:20:13
Buenas, estoy con un tema dando vueltas, y no puedo encontrarlo...
Alguien sabe como podría pasar un select-option a una rutina?.
Acutalmente tengo lo paso como parametro tipo CHANGING a una rutina que lo recibe del una estructura del tipo SELOPT.
Pero me da error diciento que los parametros son incompatibles.
Lo envio como:
PERFORM xxxx CHANGING SO_MATNR
y lo recibo
FORM xxxx CHANGING P_RANGO type SELOPT.
tambien he intentado hacerlo mediante Tables, me genera el mismo error ademas tenia entendido que es una sentencia obsoleta.
Muchas Gracias!.
Mauricio Hidalgo
28/05/10, 19:39:25
Y SO_MATNR como lo tienes definido?
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web