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 13/10/08, 22:16:07
marilinmendoza marilinmendoza is offline
Junior Member
 
Fecha de Ingreso: may 2008
Mensajes: 17
Alv: Campo Vacío en Control de Precios

Hola a todos,
Este es un requerimiento del módulo CO, y en la empresa acaba de terminar el año fiscal 2008 , por tanto se comenzó con el periodo 1 del año 2009.

La funcional me pidió esto:
Para los materiales que tengan control de precios "V" en la MBEW, entra en la MBEWH con el campo MATNR LFMON (Periodo) y el año LFGJA Toma el campo VERPR, Si el campo está vacío toma el valor anterior registrado en la tabla.

Yo hice esto:
SELECT SINGLE verpr
INTO CORRESPONDING FIELDS OF it_ckis
FROM mbewh
WHERE matnr = it_ckis-matnr
AND vprsv EQ 'V'
AND lfmon EQ e_buper " Periodo
AND lfgja EQ ejerc " Año
AND verpr NE space.

itab_out-cost_std = it_ckis-verpr.

Lo cual me trae todos los campos que tienen valores en la tabla MBEWH y el campo VERPR.

Me faltaría entonces 'Si el campo está vacío toma el valor anterior registrado en la tabla', es decir, si VERPR tiene valores 25 26 27 29, entonces, como no está 28 en su lugar debe salir 27.

Así sale por los momentos:
MATNR LFGJA LFMON VPRSV VERPR
---------------------------------------------
11001 2008 05 V 250,5
11002 2008 05 V 275,5
11004 2009 02 V 285,7

Falta que salga el material que esté vacio en VERPR, en este caso el 11003 :

En caso que el material 11003 esté en el año 2008:

MATNR LFGJA LFMON VPRSV VERPR
---------------------------------------------
11003 2008 05 V 275,5

o

En caso que el material 11003 esté en el año 2009:

MATNR LFGJA LFMON VPRSV VERPR
---------------------------------------------
11003 2009 01 V 275,5


Por favor una manito.
Gracias.
__________________
Marilin Mendoza
Responder Con Cita
  #2  
Viejo 14/10/08, 14:17:05
Bmamba Bmamba is offline
Member
 
Fecha de Ingreso: jun 2008
Mensajes: 91
Yo no sé si me he enterado de algo. Pero lo que yo haría sería quitar lo de verpr NE space, recuperar así todos (los del verpr vacío también). Y recorrer la tabla guardando el verpr anterior, por si me encuentro alguno vacío endosarselo.
Algo asi:
SELECT SINGLE verpr
INTO CORRESPONDING FIELDS OF it_ckis
FROM mbewh
WHERE matnr = it_ckis-matnr
AND vprsv EQ 'V'
AND lfmon EQ e_buper " Periodo
AND lfgja EQ ejerc.

**Supongo que aquí habría un sort a la tabla
loop at it_ckis.

if it_ckis-verpr is initial.
it_ckis-verpr = g_verpr_ant.
else.
g_verpr_ant = it_ckis.
endif.

endloop.

Eso sí, no sé qué pasaría si el primer verpr de la tabla está vacío.
Responder Con Cita
  #3  
Viejo 15/10/08, 13:55:32
marilinmendoza marilinmendoza is offline
Junior Member
 
Fecha de Ingreso: may 2008
Mensajes: 17
Hola BMAMBA,
Estoy haciendo lo que me comentas, le quité lo de verpr NE space, para traérmelos todos, pero estoy trancada aquí:

if it_ckis-verpr is initial.
it_ckis-verpr = g_verpr_ant.
else.
g_verpr_ant = it_ckis.
endif.
Debo traerme el último valor no vacío , pero nada.
Intenté con esto: pos = sy-tabix - 1, igual sigue sin funcionar.

Alguna otra idea, please...
__________________
Marilin Mendoza
Responder Con Cita
  #4  
Viejo 20/10/08, 09:01:07
Bmamba Bmamba is offline
Member
 
Fecha de Ingreso: jun 2008
Mensajes: 91

Hola! hay un error en el código que te pasé y es que :
g_verpr_ant = it_ckis-verpr. (no = a it_ckis) Prueba asi.
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 22:46:14.


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