MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 21/07/08, 15:41:37
xirir xirir is offline
Junior Member
 
Fecha de Ingreso: feb 2007
Mensajes: 25
Unhappy Completar BDCDATA para SELECT-OPTIONS

Hola,

Estoy invocando una transacción a la cual le paso con el BDCDATA valores para que se completen los campos de la pantalla inicial.

Logre poder ingresar en un SELECT-OPTIONS un periodo con los campos LOW y HIGH del dynpro correspondiente, pero yo necesito pasarle muchos valores individuales y no un rango.

Alguien sabe como hacer esto? Muchas gracias a todos!
Saludos,
Responder Con Cita
  #2  
Viejo 21/07/08, 18:50:49
Avatar de Floren
Floren Floren is offline
Senior Member
 
Fecha de Ingreso: abr 2006
Localización: Málaga/Barcelona/Madrid
Mensajes: 209
Hola,

¿Te es posible añadir un rango en el código del programa en lugar de hacer el batch input al select-options? Sería bastante más limpio y seguro.

Un saludo
__________________
Florentín Navarrete Moya
SAP HCM Consultant
Mail:
Blog:
Responder Con Cita
  #3  
Viejo 22/07/08, 14:11:08
Avatar de Jonathan Barrio Rodriguez
Jonathan Barrio Rodriguez Jonathan Barrio Rodriguez is offline
Senior Member
 
Fecha de Ingreso: oct 2007
Localización: MADRID
Mensajes: 199
NO ME ACUERDO MUY BIEN COMO VA PERO AL DEFINIR el select options:

select-options: Sociedad for t001.

Lo que creas es una tabla de rangos llamada Sociedad, y tiene una extructura
de 4 campos q2ue no me acuerdo muy bien como eran tal que así...

LOW (correspondería a los datos del primer recuadro)
HIGH (para los datos del segungo campo)
SING ( puede ser EQ -igual a- IN -dentro de-)
y el último campo no me acuerdo.

Pues bien... si tienes muchos valores de sociedades, se me ocurre que cuando creas el bdc_data, las sociedades las tengas en una tabla_interna...

Loop at TI_sociedades where dato1 = "dato que le toca en esta vuelta".

BDC_data-fnam = 'sociedad-low'.
bdc_data-value = ti_sociedades-sociedad.
bdc_data-fnam = 'sociedad-sing'.
bdc_data-value = 'EQ'
append bdc_data.

ENDLOOP.

....???????

Aunque igual no es tan facil.

Por favor... si alguien ve errores que me saque de mi ignoracia.

Saludos
Responder Con Cita
  #4  
Viejo 23/07/08, 08:56:35
Avatar de sirpolako
sirpolako sirpolako is offline
Junior Member
 
Fecha de Ingreso: ene 2008
Mensajes: 7
Un select-option funciona igual que un rango. Es una tabla interna con los siguientes campos:

SIGN es un char de 1 caracter. Suele llevar la I o le E ( incluir o excluir los valores seleccionados. Normalmente I ).
OPTION char de dos caracteras. Lleva el comparador ( EQ, BT ( between ), etc.. )
LOW
HIGH.

Cuando quiero seleccionar varios valores suelo hacer:
so_filtro-sign = 'I'.
so_filtro-option = 'EQ'.
so_filtro-low = 'Valor 1'.
APPEND so_filtro.
so_filtro-sign = 'I'.
so_filtro-option = 'EQ'.
so_filtro-low = 'Valor 2'.
APPEND so_filtro.
....

El problema es que necesitas un append, y eso no sé cómo indicárselo desde el BDC_data
Responder Con Cita
  #5  
Viejo 23/07/08, 11:35:45
i_arnaiz i_arnaiz is offline
Junior Member
 
Fecha de Ingreso: sep 2006
Mensajes: 13
Mi consejo es que os prepareis una grabación metiendo en el select options un elemento a un elemento mediante el botón de añadir linea...

haciendolo sobre la transacción VF04 sería algo así:

**********************************************************
* Primero se pulsa el botón de añadir elementos al select-option
bi_data 'X' 'SDBILLDL' '1000'.
bi_data ' ' 'BDC_OKCODE' '=%009'.

data ld_index like sy-index.
* Se cuenta el numero de pedidos que vamos a añadir
loop at gt_data where marca = 'X'.
ld_index = ld_index + 1.
endloop.

bi_data 'X' 'SAPLALDB' '3000'.
bi_data ' ' 'BDC_CURSOR' 'RSCSEL-SLOW_I(01)'.
loop at gt_data where marca = 'X'.
check not gt_data-pedido_sap is initial.
ld_index = ld_index - 1.
bi_data ' ' 'RSCSEL-SLOW_I(01)' gt_data-pedido_sap.
if not ld_index is initial.
* Si no es el último codigo se inserta el codigo de añadir nueva linea.
bi_data ' ' 'BDC_OKCODE' '=LINS'.
bi_data 'X' 'SAPLALDB' '3000'.
bi_data ' ' 'BDC_CURSOR' 'RSCSEL-SLOW_I(01)'.
endif.
endloop.
* Si es el último elemento del rango se añade el código de aceptar
bi_data ' ' 'BDC_OKCODE' '=ACPT'.
**********************************************************

Espero que podais entenderlo.

Un saludo.

Nacho
Responder Con Cita
  #6  
Viejo 23/07/08, 11:47:49
Avatar de Jonathan Barrio Rodriguez
Jonathan Barrio Rodriguez Jonathan Barrio Rodriguez is offline
Senior Member
 
Fecha de Ingreso: oct 2007
Localización: MADRID
Mensajes: 199
Sí, creo que es la solución.

sólo se me ocurre el inconveniente que a veces, en vez de ser
unos cuantos concretos... si fuera una selección de rango...
pero imagino que en el fichero que pasen o en los datos que
nos de el usuario... nos lo espcificaria... y con una condición simple
lo controlariamos:

If Rango.

grabación de campos de pantalla
Else.

grabación que comenta i_arnaiz.

endif.
Responder Con Cita
  #7  
Viejo 23/07/08, 14:20:18
i_arnaiz i_arnaiz is offline
Junior Member
 
Fecha de Ingreso: sep 2006
Mensajes: 13
Desde la entrada extendida de select-options tienes tambien una pestaña que te permite la entrada de rangos... no lo olvides, pero aun así tambien puedes convertir el rango en entradas individuales... por ejemplo.

si tienes el rango de centros desde C001 a C006 primero buscas en la tabla t001w los centros que entran en el rango y te los metes en una tabla interna, es decir (C001,C002,C003,C004,C005,C006) y luego cada uno de estos rangos los metes como entrada individual en el select-option.



Un saludo.

Nacho.
Responder Con Cita
  #8  
Viejo 23/07/08, 16:36:34
xirir xirir is offline
Junior Member
 
Fecha de Ingreso: feb 2007
Mensajes: 25
Gracias a todos!
La solucion que utilice fue la que dio i_arnaiz ya que encontre un post muy parecido en la sdn también!

Por si les interesa! Aqui va:


Saludos y gracias a todos nuevamente!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 07:40:45.


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