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 28/03/19, 18:42:16
Avatar de J e f f
J e f f J e f f is offline
Member
 
Fecha de Ingreso: nov 2007
Localización: Junín, Bs As, Argentina
Mensajes: 91
Exclamation EXEC SQL con condicion IN

Buenas gente!
Una consulta netamente técnica de la que no puedo encontrarle la vuelta.
Tengo que hacer una consulta sobre una tabla externa a SAP. A partir de N materiales y N centros, tengo que recuperar el stock de los mismos. Lo quiero hacer en un solo acceso/lectura (por un tema de performance).

COMO hago?

Estuve probando usar el IN, pero me da un error con el parámetro.


Alguna idea??
Dejo el código debajo:


Donde los parametros contienen:

p_matnr = ('528', '960', '1014', '1045', '1046')
p_werks = ('N002', 'N003', 'N004', 'N005', 'N006', 'N007')

Ideas? Me estoy rompiendo la cabeza!
Gracias!!!
Responder Con Cita
  #2  
Viejo 29/03/19, 03:23:58
vanesamacri vanesamacri is offline
Senior Member
 
Fecha de Ingreso: jun 2011
Mensajes: 146
Hola.

¿El contenido de los parámetros utilizados para filtrar en los IN están definidos como cadena literal? ¿O son rangos convencionales definidos en ABAP (ejemplo: tabla interna de SELECT-OPTION)?

Un saludo.
Iván
Responder Con Cita
  #3  
Viejo 29/03/19, 10:32:03
Avatar de J e f f
J e f f J e f f is offline
Member
 
Fecha de Ingreso: nov 2007
Localización: Junín, Bs As, Argentina
Mensajes: 91
Exclamation


Buenas Vanesa! Los parámetros están definidos como literal, pasa que al ser "dinámicos" no se si eso estoy usando bien la condición IN.

Yo hago

WHERE material IN _matnr
AND centro IN _werks

donde en p_matnr concateno una cadena literal -> ('528', '960', '1014', '1045', '1046') y p_werks igual. No se si me falta algún espacio después del paréntesis, o que. No he trabajado mucho con SQL nativo en ABAP, por eso las dudas de como pasarle parámetros, y como recuperar la info de la query!

Básicamente estoy queriendo recuperar muchos datos, para muchos parámetros de entrada.

Alguna otra idea de como hacer esto?? Cualquier cosa ayudaría, siempre que sea UNA sola consulta, por la performance.

GRACIAS!
Responder Con Cita
  #4  
Viejo 01/04/19, 19:44:53
Avatar de J e f f
J e f f J e f f is offline
Member
 
Fecha de Ingreso: nov 2007
Localización: Junín, Bs As, Argentina
Mensajes: 91
Buenas,

Finalmente pude resolver la consulta. Estaba haciendo mal la misma, ya que estaba pasando todos mis datos en un solo parametro, y lo correcto es hacerlo en parametros separados. No se si le servira a alguien esto, pero lo que hice, fue crear varios parametros, y asignarle valor si los necesito, en caso que haga la consulta con los parametros vacios, solo me devolvera aquelos que si estan completos.

El codigo final me quedo asi para el caso que YO estaba necesitando:


De esta manera, puedo pasarle hasta 15 materiales y 15 centros, y la consulta funciona correctamente. Mi error inicial tenia que ver con el tipo de parametro que le estaba pasando a la consulta.

Gracias y Saludos!
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 16:43:42.


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