lunes, 19 de enero de 2015

Agregar campos a la transacción ME21N ME22N ME23N





Sistemas - status y copiamos el nombre del programa:
T-se38 copiamos el nombre del programa, marcamos atributos y luego click en visulalizar:

T-smod para buscar el exit deseado, utilidades y buscar:



El exit  MM06E005 es el deseado:



T-cmod para crear un proyecto:



En asignación ampliación y colocar el nombre del exit seleccionado y enter.

Para usar campos adicionales necesitamos definir estos campos en las siguientes estructuras basado en el requerimiento:

CI_EKKODB -> Cabecera

CI_EKPODB -> Posición






El guardado de los campos en las estructuras se va a demorar un poco, ya que las tablas ekpo y ekko se están actualizando.

El siguiente paso es habilitar los screen dependiendo de los requerimientos:

SAPMM06E     0101 CUSTSCR1 SAPLXM06    0101 --> Cabecera


EKKO_CI-PROYECTO -> Nombre campo proyecto
EKKO_CI-PAGA -> Nombre campo paga

SAPMM06E       0111 CUSTSCR1 SAPLXM06        0111 --> Posición

EKPO_CI-CODIGO -> Nombre campo codigo
EKPO_CI-NOMBRE -> Nombre campo nombre
EKPO_CI-DNI -> Nombre campo DNI

Para pasar los datos datos tenemos que habiliar los function exit basados en el requerimiento:

 1 <b>EXIT_SAPMM06E_006</b> - Export Data to Customer Subscreen for Purchasing Document Header (PBO)

2<b>EXIT_SAPMM06E_008</b> - Import Data from Customer Subscreen for Header

<b>-> Item Screens :</b>

3<b>EXIT_SAPMM06E_016</b> - Export Data to Customer Subscreen for Item (PBO)

4<b>EXIT_SAPMM06E_018</b> - Import Data from Customer Subscreen for Item

Para guardar los datos en las tablas necesitamos habilitar EXIT_SAPMM06E_008 - "Import Data from Customer Subscreen for Purchasing Document Header" donde tu mueves los datos desde screenfileds a los campos de la estructura ( E_CI_EKKO) y EXIT_SAPMM06E_018 - "Import Data from Customer Subscreen for Purchasing Document Header" donde tu mueves lo datos desde screenfileds a los campos de la estructura ( E_CI_EKPO).

En EXIT_SAPMM06E_008 click en the include ZXM06U37 y poner el código :

E_CI_EKKO-PROYECTO = EKKO_CI-PROYECTO .
E_CI_EKKO-PAGA = EKKO_CI-PAGA .

En EXIT_SAPMM06E_018 click en the include ZXM06U40 y poner el código :

E_CI_EKPO-DNI = EKPO_CI-DNI .
E_CI_EKPO-CODIGO = EKPO_CI-CODIGO .
E_CI_EKPO-NOMBRE = EKPO_CI-NOMBRE .

Similarmente para leer los datos tenemos que habilitar EXIT_SAPMM06E_006 y EXIT_SAPMM06E_016.

En EXIT_SAPMM06E_016 click en the include ZXM06U36 y poner el código :

EKKO_CI-PROYECTO = I_CI_EKKO-PROYECTO .
EKKO_CI-PAGA = I_CI_EKKO-PAGA   .

En EXIT_SAPMM06E_006 click en the include ZXM06U41 y poner el código :

EKPO_CI-NOMBRE = I_CI_EKPO-NOMBRE.
EKPO_CI-DNI = I_CI_EKPO-DNI .
EKPO_CI-CODIGO = I_CI_EKPO-CODIGO .

Guardamos y activamos, nos debe quedar así:


Vamos a t-me22n, podemos que nos aparecen los campos que ingresamos en los screens:

Guardamos, para verificar que se guardaron los datos vamos a las tablas ekko y ekpo:


FIN..













10 comentarios:

  1. Hola, buen post !

    Te quiero hacer una consulta, en mi caso he usado las BADIs ME_PROCESS_PO_CUST y ME_GUI_PO_CUST además de crear la subscreen copiando el GF: MEPOBADIEX.

    Me funciona bien, pero el requerimiento es ocultar la nueva pestaña para algún EKKO-BSART concreto.

    ¿Me podrías orientar sobre cómo hacer el filtro?

    Gracias

    ResponderEliminar
    Respuestas
    1. Perdón la molestia, ya lo he solucionado. He añadido un check en IF_EX_ME_PROCESS_PO_CUST~FIELDSELECTION_HEADER para el campo EKKO-BSART y en caso de que no cumpla el requisito, hago la devolución para cada campo en ch_fieldselection con '-' para que no se muestren, si se marcan todos los campos así, no se muestra la pestaña (HIDE TAB SUBSCREEN ME21N)

      Eliminar
    2. Hola sé que esto fué hace tiempo, pero me puedes dar una idea cómo se puede hacer algo similar en el exit MM06E005?

      Eliminar
  2. Muy buen aporte funciona al 100 %.... gracias !! saludos !!

    ResponderEliminar
  3. Padrisimo documento!!! recibe abrazo

    ResponderEliminar
  4. Hola Roberto,
    Primero de todo, felicidades por el post, es muy bueno!
    Segundo, es posible cambiar el nombre a la pestaña?
    Gracias!!

    ResponderEliminar
    Respuestas
    1. en los símbolos de textos crear el 101 y le pones la descripción que quieras

      Eliminar
  5. Hola Roberto,
    muchas gracias por compartir.
    Sé que este post fue hace mucho tiempo.
    Talvez me pudieras ayudar?
    Me podrías dar una idea de cómo ocultar la pestaña creada en MM06E005 en base a EKKO-BSART?
    Saludos, Rafael

    ResponderEliminar
  6. Como preguntó Roger_FV se puede cambiar el nombre a la pestaña? Aparece como "Datos del cliente" y en mi caso no es así. También me ha aparecido una pestaña "Campos personalizados" que no sé por qué y cómo quitar o poder utilizar si me hiciera falta. Gracias de antemano.

    ResponderEliminar