Problema con las user exits

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • jlpdky2
    Junior Member
    • feb
    • 11

    #1

    Problema con las user exits

    Hola a todos!
    Necesito saber como funcionan las user exits, no encuentro ningo manual claro ni nada parecido.
    Se que son trozos de codigo libre, pero como se que user exit es donde tengo que meter mi codigo? Se que hay un programa que a partir de la transacción te dice que user exits son, pero cuando se ejecutan? Que user exits pertenecen a un programa? Como funcionan? Tengo tantas dudas... cualquier ayuda me seria muy util.
    Muchas gracias a todos.
  • ballan
    Senior Member
    • oct
    • 671

    #2
    Las user-exit son puntos estrategicos en la logica de un programa donde podemos añadir codigo propio, por ejemplo para la grabacion de un pedido de ventas, hay una user-exit antes de grabar el documento, otra justo despues de haber grabado el documento, en el momento de calcular los precios, etc..

    La manera mas rapida de saber que user-exit es la adecuada es poner un break-point y ejecutar la transaccion, cuando se pare observa los datos que tienes y si te sirven para realizar lo que tu quieres

    Si tienes alguna otra duda exponla aqui y te respoderemos

    Comentario

    • jlpdky2
      Junior Member
      • feb
      • 11

      #3
      Muchas gracias!!!

      Otra dudilla: como se relacionan las user exits con la transaccion?
      porque pongo breakpoint y la ejecucion no pasa por ahi...

      Comentario

      • c_quintero
        Junior Member
        • ago
        • 12

        #4
        mira , aqui te dejo un programa que te ayuda a encontrar las user exits que existen para una transaccion

        lo corres y te manda una lista de cuales hay (si es que hay) , simplemente de das click a una y te manda directo a la tx SMOD donde checas las ampliaciones , le das en verificar y te manda una lista de las funciones exits que hay en esa ampliacion , lo unico que debes hacer darle click a alguna para que te lleve a donde esta el include donde pondrias tu validacion y ponerle un break ,activar el include y la funcion exit y de esa forma puedes ver a cual user exit entra cuando haces alguna accion como por ejemplo SAVE

        REPORT zbusca_user_exit NO STANDARD PAGE HEADING.

        TABLES : tstc, tadir, modsapt, modact, trdir, tfdir, enlfdir.
        TABLES : tstct.
        DATA : jtab LIKE tadir OCCURS 0 WITH HEADER LINE.
        DATA : field1(30).
        DATA : v_devclass LIKE tadir-devclass.
        PARAMETERS : p_tcode LIKE tstc-tcode OBLIGATORY.

        SELECT SINGLE * FROM tstc WHERE tcode EQ p_tcode.
        IF sy-subrc EQ 0.
        SELECT SINGLE * FROM tadir WHERE pgmid = 'R3TR'
        AND object = 'PROG'
        AND obj_name = tstc-pgmna.
        MOVE : tadir-devclass TO v_devclass.
        IF sy-subrc NE 0.
        SELECT SINGLE * FROM trdir WHERE name = tstc-pgmna.
        IF trdir-subc EQ 'F'.
        SELECT SINGLE * FROM tfdir WHERE pname = tstc-pgmna.
        SELECT SINGLE * FROM enlfdir WHERE funcname =
        tfdir-funcname.
        SELECT SINGLE * FROM tadir WHERE pgmid = 'R3TR'
        AND object = 'FUGR'
        AND obj_name EQ enlfdir-area.

        MOVE : tadir-devclass TO v_devclass.
        ENDIF.
        ENDIF.
        SELECT * FROM tadir INTO TABLE jtab
        WHERE pgmid = 'R3TR'
        AND object = 'SMOD'
        AND devclass = v_devclass.
        SELECT SINGLE * FROM tstct WHERE sprsl EQ sy-langu AND
        tcode EQ p_tcode.
        FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
        WRITE:/(19) 'Transaction Code - ',
        20(20) p_tcode,
        45(50) tstct-ttext.
        SKIP.
        IF NOT jtab[] IS INITIAL.
        WRITE:/(95) sy-uline.
        FORMAT COLOR COL_HEADING INTENSIFIED ON.
        WRITE:/1 sy-vline,
        2 'Exit Name',
        21 sy-vline ,
        22 'Description',
        95 sy-vline.
        WRITE:/(95) sy-uline.
        LOOP AT jtab.
        SELECT SINGLE * FROM modsapt
        WHERE sprsl = sy-langu AND
        name = jtab-obj_name.
        FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
        WRITE:/1 sy-vline,
        2 jtab-obj_name HOTSPOT ON,
        21 sy-vline ,
        22 modsapt-modtext,
        95 sy-vline.
        ENDLOOP.
        WRITE:/(95) sy-uline.
        DESCRIBE TABLE jtab.
        SKIP.
        FORMAT COLOR COL_TOTAL INTENSIFIED ON.
        WRITE:/ 'No of Exits:' , sy-tfill.
        ELSE.
        FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
        WRITE:/(95) 'No User Exit exists'.
        ENDIF.
        ELSE.
        FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
        WRITE:/(95) 'Transaction Code Does Not Exist'.
        ENDIF.

        AT LINE-SELECTION.
        GET CURSOR FIELD field1.
        CHECK field1(4) EQ 'JTAB'.
        SET PARAMETER ID 'MON' FIELD sy-lisel+1(10).
        CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
        espero te haya ayudado con eso

        saludos

        Comentario

        • yanes
          Junior Member
          • oct
          • 5

          #5
          Como ver una user exit

          Hola adicional al programa que enviaron, muy bueno por cierto, quisiera saber como puedo ver una user exit, ver el programa, no soy ABAP asi que disculpen la ignorancia...
          AYANES

          Comentario

          • robert_milan
            Senior Member
            • jun
            • 315

            #6
            necesitas entrar a la cmod, o smod, para poder ver la ampliacion del objeto
            Un Huevon No Inútil


            Solo di lo que piensas, a la mejor tienes la mejor respuesta....

            Si alguien ya lo hizo, copialo y cambiale las variables total es un codigo nuevo.....

            Si SAP lo hace se puede hacer, no me pidas hacer algo que SAP no ha hecho.....

            Consultor FI jr/ABAP Sr.

            Comentario

            • yanes
              Junior Member
              • oct
              • 5

              #7
              Gracias

              Gracias por la pronta respuesta......
              AYANES

              Comentario

              Trabajando...