|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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... |
#2
|
|||
|
|||
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. |
#3
|
|||
|
|||
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 |
#4
|
|||
|
|||
pero sabes ABAP , o te esta aventurando!!
|
#5
|
|||
|
|||
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!!!
__________________
Sebas Desarrollador ABAP. |
#6
|
|||
|
|||
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! |
#7
|
|||
|
|||
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. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|