MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Hola! me Dieron esta espc. tecnica. alguien me dice como se programa esto? (foro/showthread.php?t=15009)

2terry1 16/07/08 16:46:47

Hola! me Dieron esta espc. tecnica. alguien me dice como se programa esto?
 
Verificar si es una entrega de salida de mercancía. Para ello se debe ir a la tabla XVBFA, con XVBFA-VBELN=XLIKP-VBELN y buscar si el campo (XVBFA- VBTYP_N=J)


se debe Verificar el Estatus de salida de mercancía de la entrega, al momento de realizar la contabilización de la salida de mercancía, con el numero de entrega (XLIKP-VBELN) ir a la tabla interna XVBUP y buscar por posición si la (XVBUP-VBELN=XLIKP-VBELN), si es igual buscar el valor del campo (XVBUP-WBSTA=C), si es igual buscar el valor del Campo (XVBUP-POSNR)

muchas gracias por su ayuda!!!!!!
saludos cordiales a todos...

ibecerra 16/07/08 17:12:57

1. Debes saber ha que userexit se debe aplicar la logica..me imagino que ese dato si lo debes tener.
2. Al parecer en el save_document_prepare....

XVBFA-VBELN=XLIKP-VBELN y buscar si el campo (XVBFA- VBTYP_N=J)
READ TABLE XVBFA WITH KEY VBELN=XLIKP-VBELN
VBTYP_N= 'J'.
IF SY-SUBRC EQ 0.
LOOP AT XLIKP.
READ TABLE XVBUP WITH KEY VBELN = XLIKP-VBELN.
IF XVBUP-WBSTA = 'C'.
.......
ENDIF.
ENDLOOP.
ENDIF.

2terry1 16/07/08 17:48:41

sip es este user USEREXIT_SAVE_DOCUMENT y el programa es MV50AFZ1

y la verdad este es todo el requerimiento...
Paso 1- Verificar si es una entrega de salida de mercancía. Para ello se debe ir a la tabla XVBFA, con XVBFA-VBELN=XLIKP-VBELN y buscar si el campo (XVBFA- VBTYP_N=J) si se cumple ir al paso 2

Paso 2- se debe Verificar el Estatus de salida de mercancía de la entrega, al momento de realizar la contabilización de la salida de mercancía, con el numero de entrega (XLIKP-VBELN) ir a la tabla interna XVBUP y buscar por posición si la (XVBUP-VBELN=XLIKP-VBELN), si es igual buscar el valor del campo (XVBUP-WBSTA=C), si es igual buscar el valor del Campo (XVBUP-POSNR)
Paso 3- verificar si el material de la entrega posee en su documento anterior el material facturado, para ello se debe ir a la tabla XVBFA con (XVBFA-VBELN=XVBUP-VBELN), (XVBFA-POSNN=XVBUP-POSNR) y (XVBFA- VBTYP_V=C) y buscar el valor del campo (XVBFA-VBELV) Y (XVBFA-POSV), con estos valores ir a la tabla XVBUK y con (XVBUP-VBELN=XVBFA-VBELV) y (XVBUP-POSNR=XVBFA-PORNV) y buscar el valor del campo XVBUP-FKSAA, si (XVBUP-FKSAA≠C) se debe arrojar un mensaje de error, “La entrega posee posiciones sin Facturar” y no permitir grabar el documento.

pero como es mi primer programa la verdad no se como hacerlo!!!
si alguien me puede brindar un poco de orientacion o ayuda!!!!!
saludos a todos! y gracias de antemano

ibecerra 16/07/08 18:18:10

pero sabes ABAP , o te esta aventurando!!

sconoredhot 16/07/08 18:34:35

Yo te diría que pidas tmb el diseño funcional asi entiendes un poco mas de que se trata el tema. Para programar eso debes hacer distintos select a esas tablas con la condicion que te dan en Where. Por lo que entendi en la ultima parte si el campo que tienes q traer XVBUP-FKSAA en distinto de C debes generar un msj de error que eso ya te cortaria el proceso. Luego pones un else y permites grabar el documento. Y si trabajas en una empresa de sistemas mi sugerencia es que vayas consultando a tus compañeros.
Mucha suerte!!!

2terry1 16/07/08 18:43:53

si se un poco! pero no tengo mucha experiencia....

eso fue lo que hice lo programe con unos selects pero al parecer esta mal...
por eso pido ayuda a nivel de programacion para ver en que estoy fallando! ya que solo conozco a un abap! el me ha orientado pero creo que dentro de poco me va a borrar de sus contactos del msn!

bueno cualquier ayuda es util! cualquier consejo!
muchas gracias a los 2 por haber respondido mi post!

2terry1 17/07/08 20:07:58

BUENO MUCHACHOS ESTA FUE LA FORMA ES LA QUE PUDE RESOLVER EL PROBLEMA ANTES PLANTEADO....
muchas gracias a las personas que me ofrecieron sus consejos... fueron de mucha ayuda.
aca les dejo el codigo! quizas les sirva de ejemplo a las personas que comienzan en este mundo como yo...

data: zvbup like table of vbup with header line.
zvbup[] = xvbup[].

Loop at XVBFA where VBELN = XLIKP-VBELN and
VBTYP_N = 'J'.
READ TABLE XVBUP WITH KEY VBELN = XVBFA-VBELN
POSNR = XVBFA-POSNN
WBSTA = 'C'.
if sy-subrc eq 0 and XVBFA-VBTYP_V = 'C'.
read table ZVBUP with key VBELN = XVBFA-VBELV
POSNR = XVBFA-POSNV.
if sy-subrc eq 0 and ZVBUP-FKSAA NE 'C'.
MESSAGE 'La entrega posee posiciones sin facturar.' TYPE 'E'.
endif.
endif.
endloop.


Husos Horarios son GMT. La hora en este momento es 06:49:46.

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