Visualizar cantidad total de bloqueos (ABAP)

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • jaguayom
    Junior Member
    • abr
    • 6

    #1

    Visualizar cantidad total de bloqueos (ABAP)

    estimados buenos días,

    soy nuevo en esto, necesito contar y mostrar en un mensaje la cantidad total de los bloqueos que son visibles por la SM12, pero a nivel ABAP.


    Saludos cordiales.
  • sconoredhot
    Senior Member
    • feb
    • 341

    #2
    hola

    Podés llamar a la funcion ENQUEUE_READ
    filtrando sólo por mandante, o bien, si necesitas,
    podes filtrar por usuario como la transacción
    la tabla ENQ te devuelve los bloqueos,
    podes contar la cantidad de registros
    (describe table ENQ lines lv_lines)

    Espero que te sirva !
    Sebas

    Desarrollador ABAP.

    Comentario

    • jaguayom
      Junior Member
      • abr
      • 6

      #3
      Originalmente publicado por sconoredhot
      Podés llamar a la funcion ENQUEUE_READ
      filtrando sólo por mandante, o bien, si necesitas,
      podes filtrar por usuario como la transacción
      la tabla ENQ te devuelve los bloqueos,
      podes contar la cantidad de registros
      (describe table ENQ lines lv_lines)

      Espero que te sirva !


      Estimado gracias por la respuesta pero de verdad soy muy nuevo en esto, si puede enviar un extracto del código estaría muy agradecido.

      Comentario

      • sconoredhot
        Senior Member
        • feb
        • 341

        #4
        hola

        Bueno, no se exactamente de que manera lo necesitas, pero seria algo así:

        DATA: lt_table TYPE TABLE OF seqg3,
        lv_lines TYPE i.

        CALL FUNCTION 'ENQUEUE_READ'
        EXPORTING
        gclient = sy-mandt
        TABLES
        enq = lt_table
        EXCEPTIONS
        communication_failure = 1
        system_failure = 2
        OTHERS = 3.

        IF sy-subrc <> 0.
        WRITE: 'Error al leer bloqueos'.
        ELSE.
        DESCRIBE TABLE lt_table LINES lv_lines.
        WRITE: 'Cantidad de bloqueos:', lv_lines.
        ENDIF.
        Sebas

        Desarrollador ABAP.

        Comentario

        • jaguayom
          Junior Member
          • abr
          • 6

          #5
          Originalmente publicado por sconoredhot
          Bueno, no se exactamente de que manera lo necesitas, pero seria algo así:

          DATA: lt_table TYPE TABLE OF seqg3,
          lv_lines TYPE i.

          CALL FUNCTION 'ENQUEUE_READ'
          EXPORTING
          gclient = sy-mandt
          TABLES
          enq = lt_table
          EXCEPTIONS
          communication_failure = 1
          system_failure = 2
          OTHERS = 3.

          IF sy-subrc <> 0.
          WRITE: 'Error al leer bloqueos'.
          ELSE.
          DESCRIBE TABLE lt_table LINES lv_lines.
          WRITE: 'Cantidad de bloqueos:', lv_lines.
          ENDIF.
          amigo de ante manos muchas gracias verdad que eres bueno en esto se agradece.

          el código funciono ok a la perfección, pero la única duda es que cuenta solo los bloqueos que realizo con mi usuario y no todos los que hay.

          si me puedes ayudar con eso estaré agradecido.

          Saludos cordiales.

          Comentario

          • Spainnavar
            Member
            • sep
            • 53

            #6
            Hay un impor parameter por el que puedes meter el usuario y asi solo te da los bloqueos para el usuario que le metas. seria asi:

            DATA: lt_table TYPE TABLE OF seqg3,
            lv_lines TYPE i.

            CALL FUNCTION 'ENQUEUE_READ'
            EXPORTING
            gclient = sy-mandt
            guname = sy-uname
            TABLES
            enq = lt_table
            EXCEPTIONS
            communication_failure = 1
            system_failure = 2
            OTHERS = 3.

            Comentario

            • jaguayom
              Junior Member
              • abr
              • 6

              #7
              Originalmente publicado por Spainnavar
              Hay un impor parameter por el que puedes meter el usuario y asi solo te da los bloqueos para el usuario que le metas. seria asi:

              DATA: lt_table TYPE TABLE OF seqg3,
              lv_lines TYPE i.

              CALL FUNCTION 'ENQUEUE_READ'
              EXPORTING
              gclient = sy-mandt
              guname = sy-uname
              TABLES
              enq = lt_table
              EXCEPTIONS
              communication_failure = 1
              system_failure = 2
              OTHERS = 3.

              estimado gracias por la respuesta, pero quiero contar todos los bloqueos que se están generando independiente del usuario. el TOTAL

              de ante manos muchas gracias por su buena voluntad.

              Comentario

              • JOrozco
                Junior Member
                • nov
                • 10

                #8
                Limpia el parámetro GUNAME

                La función por default le asigna el valor del usuario logueado, si quieres ver todos mandalo vacío:

                CALL FUNCTION 'ENQUEUE_READ'
                EXPORTING
                gclient = sy-mandt
                guname = ' '
                TABLES
                enq = lt_table
                EXCEPTIONS
                communication_failure = 1
                system_failure = 2
                OTHERS = 3.

                Comentario

                Trabajando...