Badi O User Exit Migo

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Paola79
    Member
    • oct
    • 62

    #1

    Badi O User Exit Migo

    Hola a todos,

    Alguién me podría decir alguna BADI o USER EXIT para la transacción MIGO, para poder grabar a parte de la tabla correspondiente en una tabla Z el número de documento generado y el documento al que hace referencia.

    Gracias de antemano y un saludo,
  • tunante
    Member
    • sep
    • 82

    #2
    Hola Buenos días,

    Con el codigo que te pongo a continuacion tendras un programa que poniedole la transacción te dice las user que utiliza, seguro que te ayuda el ternelo siempre a mano:

    *&---------------------------------------------------------------------*
    *& Report ZUSER_EXIT
    *&
    *&---------------------------------------------------------------------*
    *&
    *&
    *&---------------------------------------------------------------------*

    REPORT zuser_exit.

    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.

    Comentario

    • crounly
      Senior Member
      • nov
      • 227

      #3
      Para la MIGO tienes la siguiente BADI: MB_MIGO_BADI

      Para lo que quieres hacer puedes utilizar el método POST DOCUMENT
      Tienes como parámetros de entrada la cabecera y pos. del documento de material generado
      http://codigoderetorno.blogspot.com.es/

      Comentario

      • Paola79
        Member
        • oct
        • 62

        #4
        Muchísimas gracias me pondre ahora mismo a echarle un vistazo gracias

        Comentario

        • Paola79
          Member
          • oct
          • 62

          #5
          Buenos días ahora tengo otro problemilla, necesito recuperar el número de documento que introducimos en la cabecera para hacer el movimiento correspondiente en la MIGO, y guardarlo en una tabla Z, como puedo llamar al método donde se encuentra dicho numero desde el de POST_DOCUMENT Y no lo consigo.

          En espera de vuestras respuestas muchas gracias de antemano y un saludo,

          Comentario

          • crounly
            Senior Member
            • nov
            • 227

            #6
            Si te refieres al doc. de compra en la MSEG tienes los campos EBELN y EBELP
            http://codigoderetorno.blogspot.com.es/

            Comentario

            • Paola79
              Member
              • oct
              • 62

              #7
              A lo que me refiero es al documento que introducimos en pantalla esta guardado en la la MSEG¿? es el que metemos en cabecera para luego dar posición OK a las posiciones que nos trae y luego nos genera el nuevo documento de entrada de mercancia.

              Comentario

              • crounly
                Senior Member
                • nov
                • 227

                #8
                Sip, se guarda en las posiciones, en la tabla MSEG que la tienes como parametro de entrada en POST_DOCUMENT tienes los campo

                EBELN Número de pedido
                EBELP Número de posición del documento de compras

                LFBNR Número de documento de un doc.de referencia
                LFPOS Posición de un documento de referencia

                SMBLN Número de documento material
                SMBLP Posición en documento de material

                Y muchos mas, mira en la SE11 -> MSEG
                http://codigoderetorno.blogspot.com.es/

                Comentario

                • Paola79
                  Member
                  • oct
                  • 62

                  #9
                  Muchas gracias, ya esta.

                  UN saludo

                  Comentario

                  • Paola79
                    Member
                    • oct
                    • 62

                    #10
                    Tengo un problema no me lo guarda en la tabla z que tengo destinado a ella. Voy a debuguear y directamente se me va de ahi a hacer todo lo de la mseg. que puede ser¿? muchas gracias

                    Comentario

                    • Paola79
                      Member
                      • oct
                      • 62

                      #11
                      Hola a ver si alguien me peude ayudar nos me inserta los datos en mi tabla Z tengo que hacer una funcion o algo y que se llame y ahí haga lo coreespondiente????

                      Comentario

                      • crounly
                        Senior Member
                        • nov
                        • 227

                        #12
                        Da mas información, o pega el código que estas usando, mi bola de cristal tiene interferencias ultimamente
                        http://codigoderetorno.blogspot.com.es/

                        Comentario

                        • Melandry
                          Senior Member
                          • ene
                          • 110

                          #13
                          Hola Paola.
                          Efectivamente para el manejo de la BADI tienes que crear un Gr.Func. con los módulos de func. correspondientes según las necesidades de tu desarrollo.
                          En este caso la actualización de tu ZTABLA debes hacerla a través de dicha función.

                          P.ejemplo:

                          METHOD IF_EX_MB_MIGO_BADI~POST_DOCUMENT.

                          "...si tienes que chequear algo previo a la grabación

                          "Llamada a la función para actualizar la ztabla.
                          CALL FUNCTION 'ZMIGO_BADI_UPD_ZTABLA' IN UPDATE TASK
                          EXPORTING
                          I_MBLNR = IS_MKPF-MBLNR
                          I_MJAHR = IS_MKPF-MJAHR
                          IS_MIGO_BADI_HEADER_FIELDS = G_EXDATA_ZTABLA_WA.

                          ENDMETHOD.

                          Espero te sirva.

                          Comentario

                          • Ariel-StaFe
                            Senior Member
                            • nov
                            • 321

                            #14
                            BADI en MIGO

                            Estimados.
                            Perdon que moleste con un tema viejo.
                            Pero tengo que hacer exactamente lo mismo, alimentar una tabla Z al momento de "Contabilizar" por la MIGO.
                            Es la primera vez que veo tel tema BADI.

                            Como es el tema ?
                            Tengo que crear una BADI para hacer lo que menciona Melandry ?.. o
                            O modificar alguna existente, o algun método existente ?
                            Que trx debo usar para tal efecto ? SE18 y SE19 ?
                            Desde ya muchas gracias.
                            Ariel-StaFe
                            Analista Programador Abap Senior
                            Santa Fe Capital
                            Pcia de Santa Fe
                            Argentina

                            Comentario

                            • Ariel-StaFe
                              Senior Member
                              • nov
                              • 321

                              #15
                              para mas datos.
                              en CL_EX_MB_MIGO_BADI
                              Methos IF_EX_MB_MIGO_BADI~POST_DOCUMENT

                              antes o desp del codigo
                              CALL BADI l_badi->POST_DOCUMENT
                              EXPORTING
                              IT_MSEG = IT_MSEG
                              IS_MKPF = IS_MKPF.

                              deberia poner la llamada a la funcion que cree el registro en la tabla Z
                              pasandole los parametros correspondientes.
                              Pero. como pongo codigo ahi ?

                              Desde ya muchas gracias.
                              Ariel-StaFe
                              Analista Programador Abap Senior
                              Santa Fe Capital
                              Pcia de Santa Fe
                              Argentina

                              Comentario

                              Trabajando...