Hola! me Dieron esta espc. tecnica. alguien me dice como se programa esto?

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • 2terry1
    Junior Member
    • abr
    • 8

    #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...
  • ibecerra

    #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.

    Comentario

    • 2terry1
      Junior Member
      • abr
      • 8

      #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

      Comentario

      • ibecerra

        #4
        pero sabes ABAP , o te esta aventurando!!

        Comentario

        • sconoredhot
          Senior Member
          • feb
          • 341

          #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.

          Comentario

          • 2terry1
            Junior Member
            • abr
            • 8

            #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!

            Comentario

            • 2terry1
              Junior Member
              • abr
              • 8

              #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.

              Comentario

              Trabajando...