PDA

Ver la Versión Completa : Hola! me Dieron esta espc. tecnica. alguien me dice como se programa esto?


2terry1
16/07/08, 16:46:47
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.