User Exit Me51n

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

    #1

    User Exit Me51n

    Hola a todos,

    No estoy muy puesta en las USER EXIT y megustaría a ver si alguién me puede echar una mano:

    La USER EXIT la he encontrado, o eso creo, la necesito para lo siguiente: Según el GRUPO DE ARTICULOS saltrá automaticamente el GRUPO DE COMPRAS, me gustaría saber como encontrar la USER EXIT y como activarla y poder ponerle los break points para ponerle el código en el lugar conrrespondiente.

    Un saludo y gracias de antemano,
  • DavidXD_XD
    Moderator
    • ago
    • 1255

    #2
    Hola Paola, falto lo mas importante ... a q transaccion quieres aplicar el user exit?
    David Carballido Córdova

    Comentario

    • Paola79
      Member
      • oct
      • 62

      #3
      Perdona david la ME51N

      Comentario

      • DavidXD_XD
        Moderator
        • ago
        • 1255

        #4
        jejeje, toy voladazo, mas bien disculpame tu por no fijarme bien, lo que quieres huele a una BADI, no he tenido experiencia con ellos dentro de esa transaccion pero puedes que pruebes con el metodo PROCESS_ITEM de la clase ME_PROCESS_PO, para poder encontrar las BADI's no es tan complicado ... vas a la transaccion que quieres y ahi le das en Status->Info del Sistema y recuperas el nombre del programa y ahi le das doble click, cuando te encuentres en el programa activa la "visualizar lista de objetos" que es un boton que se encuentra en el menu y dentro de ese tree dale en el boton que dice Lista de Objetos Superior, ahi aparecera una carpeta con descripcion "Ampliaciones" y dentro de ella "Badis Clasicos" ahi hay una BADI que controla los items que se maqnejan para las solicitudes de pedido
        David Carballido Córdova

        Comentario

        • Paola79
          Member
          • oct
          • 62

          #5
          Muchas gracias David, mañana o probare en el trabajo y te cuento...

          Comentario

          • luis999
            Member
            • jun
            • 82

            #6
            Hola Paola Primero debes estar segura del USER-EXIT a modificar, puedes usar este programa para dar con el nombre del user-exit: http://danielpanaro.wordpress.com/20...na-transaccin/

            Una vez que tienes identificado la user-exit vas a la tx. se37, le pones el nombre, ahi tendra un include, le das doble click y tendras un programa Z donde tendras que insertar la lógica que deseas que maneje tu tx. en la posición que creas conveniente.

            Comentario

            • Paola79
              Member
              • oct
              • 62

              #7
              Buenas tardes,

              Ya tengo la BADI la cual me hace el chequeo es la ME_CCP_ACTIVE_CHECK, pero no se como implementarla en la ME51N y luego como meter el código, alguien me puede ayudar,

              Muchas gracias,

              Saludos

              PD es la primera vez que implemento una cosa de estas

              Comentario

              • DavidXD_XD
                Moderator
                • ago
                • 1255

                #8
                Hola Pao, pasame tu correo para alcanzarte un PDT que t puede servir, tbm hay un link que resume como implementarlo, aunq el PDT tiene imagenes q ayudaran aun mas

                http://www.sapdev.co.uk/enhance/enhance_badi.htm
                David Carballido Córdova

                Comentario

                • torrescano
                  Member
                  • may
                  • 57

                  #9
                  David, me puedes pasar el PDT q mencionas, mi correo es vladimir.torrescano@gmail.com

                  muchas gracias, saludos.
                  Saludos amigos SAPeros

                  Comentario

                  • Paola79
                    Member
                    • oct
                    • 62

                    #10
                    Buenos días David,

                    mi correo es pfslamadrid79@gmail.com, al final esa BADI no me vale, necesito algo que recorra mi tabla Z y que me compare el grupo de articulos con el grupo de compras y si no pertece ese grupo de compras a ese grupo de articulos que de un error.

                    Muchas gracias

                    Comentario

                    • Paola79
                      Member
                      • oct
                      • 62

                      #11
                      Muchas gracias david, ya lo recibi pero la badi no hace lo que quiero yo...

                      Necesito solo meter un mensaje que diga que el grupo de compras no corresponde al grupo de articulos introducido, he mirado todo de arriba a bajo y no me vale nada y hay una user exit pero no me para en la ME51N...

                      Alguien me puede ayudar.

                      Saludos,

                      Comentario

                      • ballan
                        Senior Member
                        • oct
                        • 671

                        #12
                        Tienes que implementar la BADI ME_PROCESS_REQ_CUST

                        1.- Vas a la transaccion SE19 marcas el flag de badi clasico y metes el nombre ME_PROCESS_REQ_CUST

                        2.- Le das al boton implementar y le asignas un nombre a tu implementacion (por ejemplo ZME_PROCESS_REQ_CUST)

                        3.- Una vez que la hayas implementado dispones de los metodos PROCESS_HEADER y PROCESS_ITEM que se disparan cada vez que se produce un cambio en un campo de cabecera o posicion, tambien dispones del metodo check salta antes de la creacion y tambien cuando el usuario pulsa el boton de verificar

                        Comentario

                        • Paola79
                          Member
                          • oct
                          • 62

                          #13
                          Muchas gracias,

                          Tengo que hacer la comprobación en una tabla z creada por mi y si no se corresponde darle el error, donde pudo encontrar los datos cargados por pantalla en esta BADI.

                          Saludos,

                          Comentario

                          • ballan
                            Senior Member
                            • oct
                            • 671

                            #14
                            Por ejemplo

                            El metodo process_header te da un parametro llamado IM_HEADER, tu podrias hacer lo siguiente

                            data: ls_header type MEREQ_HEADER.

                            ls_header = im_header->get_data( ).

                            *ahora en ls_header tendrias los datos de cabecera

                            En el metodo process_item seria lo mismo solo que te da el parametro IM_ITEM en lugar del IM_HEADER

                            data: ls_item type mereq_item.

                            ls_item = im_item->get_data( ).

                            *ahora en ls_item tendrias los datos de la posicion



                            En el metodo check tienes el objeto cabecera (IM_HEADER), tambien dispones del parametro CH_FAILED que lo puedes utilizar para que el pedido sea invalido

                            Por ejemplo

                            data: lt_items type MMPUR_REQUISITION_ITEMS.

                            data: ls_item like line of lt_items.

                            data: ls_pr_item type mereq_item.

                            *Con esto obtengo una tabla con todos los objetos posicion
                            lt_items = im_header->get_items( ).

                            loop at lt_items into ls_item.

                            *Ahora en ls_pr_item tendria los datos de posicion (algo parecido a los *campos de la eban)
                            ls_pr_item = ls_item->get_data( ).

                            if ls_pr_item-menge <= 0.

                            *Con esto introduciria el mensaje de error correspondiente en el colector
                            mmpur_message sy-msgty sy-msgid sy-msgno sy-msgv1 sy-msgv2
                            sy-msgv3 sy-msgv4.

                            ch_failed = mmpur_yes.
                            endloop.

                            Comentario

                            • Paola79
                              Member
                              • oct
                              • 62

                              #15
                              BALLA muchisimas gracias ya lo tengo funcioando, una pregunta podría utlizar la misma badi para hacer una validación en la ME21N.

                              Un saludoa

                              Comentario

                              Trabajando...