Foro de programación ABAP
SAP / ABAP => Programación ABAP => Mensaje iniciado por: metalgod en 13 de Enero de 2014, 04:11:21 pm
-
Hola gente,
tengo un inconveniente
Tengo una llamada a la transaccion MRKO pasandole ciertos parámetros desde un reporte ABAP.
Uno de esos parámetros puede estar vacio.
Aca el problema, cuando ese valor se encuentra vacio, se pasa erroneo a la transaccion diciendome que no hay datos, no asi cuando ese valor se encuentra con algo.
Si ejecuto la MRKO a parte con los mismos datos que mi reporte, dejando ese parametro vacio tambien anda lo mas bien.
Por lo que veo, el valor vacio no se pasa correctamente, pongo la llamada para mostrar como se realiza
* Realizar el llamado a la MRKO.
SUBMIT rmvkon00
WITH so_bukrs-low = vl_sociedad
WITH so_lifnr-low = vl_proveedor
WITH so_werks-low = vl_centro
WITH so_bldat IN rango
WITH pa_xabr = space "liquidar
WITH pa_xanz = c_x "visualizar
AND RETURN.
Espero que puedan ayudarme. Muchas gracias.
-
Hola,
¿Cual de todos los valores es el que te puede llegar vacío?
Por ejemplo:
- La sociedad es un campo obligatorio y siempre debe de ir informado.
- O... la fecha del documento... ¿como alimentas el rango?
De todas formas para todos los Select Options yo utilizaría "Rangos" y la instrucción "IN", si no lo que le puede pasar es que por ejemplo quieres Proveedores a blanco y eso puede ser un error y no encontrar nada (no se si me explico).
Saludos,
-
es la respuesta por ahí mas acertada de la que me respondieron en otros foros.
el valor que puede estar vacío es el del Centro
Lo solucione armando un rango aunque sea por un solo valor para el centro, pero si este no viene vacío, cuando venga vacío, a la MRKO se le pasa un rango vacío, y asi funciona correctamente.
Cual puede ser la razón de que no toma un valor individual vacío?
Gracias.
-
El problema es que si le pasas un valor a blanco al campo LOW del campo CENTRO (y lo igualas) en lugar de indicar IN, lo que le estas indicando es que quieres los registros que lleven el campo CENTRO a blanco.
Si le armas un rango tipo...
r_centro(3) = 'IBT'.
r_centro-low = valor a blanco.
... entonces te traerá todos los centros a blanco y rellenos, que generalmente es lo que se pretende.
Un saludo,
-
Gracias por tu respuesta