Problema con ENHANCEMENT

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Venecia
    Junior Member
    • sep
    • 29

    #1

    Problema con ENHANCEMENT

    Hola a todos,

    He creado un Enhcancement en la subrutina MV60AF0B_BELEG_SICHERN porque necesito realizar un proceso despues que se graba una factura, el problema es que luego de que agrego mi código y activo, al ejectuar la transacción de donde supuestamente se llama este enhancement, no se ejecuta lo que yo he creado, SIN EMBARGO, si yo pongo un Break Point dentro de mi codigo, sí entra y al ejecutar paso a paso con un debug, hace todo lo que quiero.
    Por favor alguien dígame qué estoy haciendo mal, puesto que si pongo un Break Poin, entra y ejecuta mi código a la perfección, pero si le quito el break point no hace nada .

    Gracias.....
  • kibo
    Senior Member
    • may
    • 177

    #2
    Cuando haces el debug anda bien? es decir, ejecuta tu codigo y termina como vos queres la transaccion?
    http://diariotitular.com/contacto/

    Comentario

    • beltsoft
      Member
      • sep
      • 99

      #3
      Lo que dice kibo es importante, ya que debes asegurate de que la implementacion del Enhancement la hayas hecho para el programa de control al que quieres que modifique, es decir, que la razon por la cual no te ejecute el código es que tu implementación esta ligada a otro programa de control.

      Saludos.
      SSE BeltSoft México
      Your Business, our motivation ...

      Comentario

      • Venecia
        Junior Member
        • sep
        • 29

        #4
        Cuando hago el debug, sale todo bien, de hecho, si hago que se genere un pop up, tambien lo hace bien.
        Si no incluyo ni mensajes de pop up ni lo ejecuto en debug, no hace nada. Creo que el error puede ser con el codigo que estoy usando, es decir, tengo varios Select que incluyen Inner Join, no sé si esto tenga que ver.
        Pero de lo que sí estoy segura es de que mi enhancement esta relacionada al programa de control que ejecuto.

        Mil gracias por sus respuestas.

        Comentario

        • tunante
          Member
          • sep
          • 82

          #5
          hola, buenos dias.

          Te respondí la semana pasada en el tema que tienes abierto: Function donde se contabiliza la factura por la vf01

          yo creo que lo que quieres hacer es lo mismo que hice yo, que es jugar con la factura cuando ya esta grabada en sap. asique lance una trace para saber en cuando hace el insert a las tablas y entonces despues de que haga el insert crear un ENHANCEMENT en la cual creo un funcion que se llama IN UPDATE TASK ya que lo que va dentro de la funcion lo tendra que hacer en el proceso de actualización. que es cuando hacen los insert.

          saludos

          Comentario

          • Venecia
            Junior Member
            • sep
            • 29

            #6
            Hola,
            Te comento que sí, lo que quiero es precisamente tomar los datos de la factura pero cuando me asegure de que ésta ha sido grabada, en realidad encontré un include (MV60AF0B_BELEG_SICHERN) en donde creé mi enhancement, aquí ya puedo hacer lo que quiero puesto que ya los datos de la factura fueron almacenados en las tablas. Mi problema ahora es que las sentencias Select que utilizo para leer los datos de las tablas se ejecutan solamente cuando hago que al inicio se dispare un pop up o bien cuando hago un debug desde el inicio, pero si quito el pop up o no lo hago en modo debug, los Select no traen información, como si no se ejecutaran.

            Gracias por responder y tus sugerencias.

            Comentario

            • sap.junior.fi
              Junior Member
              • may
              • 13

              #7
              trace

              ¿Por qué no pruebas a hacer un trace?
              sap.junior.fi@gmail.com

              Comentario

              • Venecia
                Junior Member
                • sep
                • 29

                #8
                Lo que esta pasando, es que aunque los datos ya estan en la base de datos (porque lo he comprobado), si no pongo un breake o no despliego un popup, como que la base de datos no se refresca y no encuentra el registro que busco, como refresco la base de datos?

                Comentario

                • DCErick
                  Moderator
                  • mar
                  • 1090

                  #9
                  Originalmente publicado por Venecia
                  Lo que esta pasando, es que aunque los datos ya estan en la base de datos (porque lo he comprobado), si no pongo un breake o no despliego un popup, como que la base de datos no se refresca y no encuentra el registro que busco, como refresco la base de datos?
                  Bueno yo tenía un problema similar y lo solucioné con el siguiente código.

                  Código:
                  *  Validamos que el documento no esté bloqueado.
                                PERFORM bloqueo
                                            USING
                                                e_factura
                                               'VBRK'.
                  Código:
                  FORM bloqueo USING p_folio TYPE vbeln_va
                                     p_gname TYPE seqg3-gname.
                  
                    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
                      EXPORTING
                        input  = p_folio
                      IMPORTING
                        output = p_folio.
                  
                  *** Verificamos que el documento no esté bloqueada.
                    l_number = 1.
                    WHILE l_number > 0.
                  
                      l_garg = ''.
                      CONCATENATE sy-mandt p_folio INTO l_garg.
                  
                      CALL FUNCTION 'ENQUEUE_READ'
                        EXPORTING
                          gclient               = sy-mandt
                          gname                 = p_gname
                          garg                  = l_garg
                        IMPORTING
                          number                = l_number
                        TABLES
                          enq                   = ti_seqg3
                        EXCEPTIONS
                          communication_failure = 1
                          system_failure        = 2
                          OTHERS                = 3.
                  
                    ENDWHILE.
                  
                  ENDFORM.                    " bloqueo
                  No sé si eso te funcione dentro de un ENHANCEMENT, yo lo apliqué despues de hacer un call transaction a la VF01 ya que aveces el sistema anda algo lento y como tu dices tarda en refrescar la info en las tablas, pero mientras las refresca el folio de factura está bloqueado y en cuanto termina el refresh de las tablas lo desbloquea.
                  Tendrias que probar si el folio permanece bloqueado cuando está procesando las líneas de tu ENHANCEMENT, si te refresca las tablas y el folio sigue bloqueado mientras está procesando la funcionalidad del ENHANCEMENT tendriamos que buscar otra opción xD.
                  -------------------
                  ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

                  Comentario

                  • Venecia
                    Junior Member
                    • sep
                    • 29

                    #10
                    Gracias DCErick, voy a probar y luego te cuento.

                    Comentario

                    Trabajando...