Modificando Vista de Actualización SM30
La SM30 es una transacción de SAP la cual nos permite realizar mantenimiento (CRUD: Create, Update, Delete) de los datos de alguna tabla o vista que hayamos creado.
En esta oportunidad vamos a ver en imágenes 3 casos:
1° caso: Cómo hacer que algún campo de nuestra tabla no sea visible en la vista de actualización.
2° caso: Cómo hacer que algún campo sea visible pero no editable y luego de seleccionar el MatchCode(ayuda de búsqueda) complete el texto correspondiente al valor seleccionado.
Este 2do caso sobre todo se da cuando tenemos algún campo que contiene un ayuda de búsqueda y que al seleccionar algún código de la ayuda de búsqueda automáticamente se muestre el texto correspondiente al código seleccionado.
3° caso: Basándose en el caso 2, cómo hacer que sin necesidad de seleccionar el MatchCode (ayuda de búsqueda) automáticamente luego de ingresar el(los) código(s) se muestre(n) su(s) texto(s) correspondiente(s).
Este 3er caso por ejemplo puede ser bastante útil cuando realizamos una copia masiva desde un fichero (.txt, .xls, .doc, etc...) y automáticamente luego de pegar los códigos ya se vean los textos de cada uno de ellos.
Veamos,
Creamos una tabla Z.
En mi caso le puse nombre: 'ZMM_CLASEMOV' que hace referencia a clases de movimiento
Ayuda de Búsqueda
Por ejemplo para el campo BWART su ayuda de búsqueda es H_T156.
H_T156 es una vista de ayuda de búsqueda generada para la Tabla T156
En la tabla T156 se encuentra registrado las clases de movimiento.
GENERAMOS LA VISTA DE ACTUALIZACIÓN
Luego ingresamos a la Transacción (Tx) SM30 ingresamos el nombre de nuestra tabla: ZMM_CLASEMOV y le damos clic en actualizar.
Observaremos que se encuentran los campos tal cual lo hemos definido en nuestra tabla
MODIFICANDO LA VISTA DE ACTUALIZACIÓN
CASO 1: No Mostrar CAMPO 'BTEXT' que lleva por título: 'Texto de Clase de Movimiento'
Por medio de la Tx: SE11 volvemos a nuestra tabla ZMM_CLASEMOV, nos ubicamos en la pestaña Utilidades y luego de Hacemos clic en 'Generador actualización tabla' .
Luego clic en: 'Imagen Resumen'
Luego en la pestaña: 'Lista elem.' seleccionamos dichos campos para eliminarlos.
Son dos (Uno es el texto del título y el otro es donde se ingresa el valor).
Borrando dichos elementos de la dynpro como vemos en imagen:
Activamos los cambios
Volvemos a la vista de actualización, clic en editar y luego clic en el botón 'Experto'
COMPROBANDO CASO 1:
Al ingresar por la Tx: SM30 y consultar nuestra tabla: ZMM_CLASEMOV observaremos que ya no aparece el campo BTEXT que llevaba por título: 'Texto de Clase de Movimiento'CASO 2: Mostrar CAMPO 'BTEXT' pero que no sea editable.
Para ello tomando en cuenta los pasos anteriores ingresamos nuevamente en la dynpro y para el atributo que identifica a BTEXT (ZMM_CLASEMOV-BTEXT) desactivamos el casillero de la columna Entrada; como vemos en imagen:
Grabamos y activamos los cambios.
TENER EN CUENTA:
Verificar que la Ayuda de búsqueda para este caso H_T156 tenga los parámetros de búsqueda correspondiente que serían BWART y BTEXT
Esto lo pueden confirmar realizando los sgtes. pasos:
Por lo general la ayuda de búsqueda vendrá con los valores propuestos de ser afirmativo le damos clic en Tomar; caso contrario completamos los datos y clic en Tomar.
Grabamos y activamos la Tabla.
COMPROBANDO CASO 2:
Al seleccionar la ayuda de búsqueda por ejemplo seleccioné la clase de movimiento: 101 automáticamente se muestra el texto para esa clase de movimiento.
Lo recomendable aquí es que el campo BTEXT (Texto de clase-mov.) no sea editable o en todo caso invisible, para que el usuario no incida en algún error al permitirle editar dicho campo.
CASO 3: Mostrar CAMPO 'BTEXT' pero que no sea editable y además que no necesite de seleccionar el Matchcode para mostrar automáticamente su texto correspondiente.
Creamos un nuevo Evento
Dependiendo de la funcionalidad deseada, tenemos varios eventos por seleccionar; para nuestro caso seleccionaremos el evento 5 (Al crear una entrada nueva)
En nombre de la rutina, en mi caso le he puesto:
Z_CREATE_NEW_ENTRY
Nos preguntará dentro de que Include se va ha crear la nueva rutina
En mi caso elegí la que salió por defecto: LZMM_CLASEMOVF01
Dentro de la rutina escribimos el siguiente código:
cómo deseamos obtener el texto de la clase de movimiento que ha sido ingresado entonces seleccionamos la tabla T156T y obtenemos el valor del texto en el campo BTEXT
Grabamos y activamos
Por la SE80 nos aseguramos ingresando el grupo de funciones y activamos.
COMPROBANDO CASO 3
Copiamos desde alguna 'fuente' los códigos de clases de movimiento
Luego 'Enter' y automáticamente veremos los textos correspondiente a cada clase de movimiento
Finalmente,
Al haber mostrado estos 3 casos queda criterio del consultor:
Caso 1: No mostrar dicho campo en la vista de actualización.
Caso 2: Mostrar el campo visible pero no editable.
Caso 3: Mostrar el campo visible pero no editable y que automáticamente al ingresar el código muestre sus texto correspondiente sin necesidad de seleccionar el matchcode.
Si eliges el primer caso de no mostrar dicho campo en la vista de actualización, luego de haber ingresado registros al consultar la tabla ya sea por la Tx: SE16 o SE16N la data de la tabla quedará de la siguiente manera:
sólo se verá los datos de los códigos de la clase de movimiento mas no de sus textos teniendo que volver a dar clic a la ayuda de búsqueda para recordar el texto que identifica a dicho código.
Si elegimos el caso 2, los registros de la tabla ZMM_CLASEMOV quedarán con la información completa tanto del código de la clase de movimiento como el texto que identifica a dicho código.
Si elegimos el caso 3, no habrá necesidad de ingresar uno por uno el código de la Clase de Mov. y seleccionar la Matchcode(Ayuda de Búsqueda) para que recién muestre su texto; ya que automáticamente luego de ingresar los códigos se visualizará el texto correspondiente.
¿Qué opción eliges?
Si al dar mantenimiento por la SM30 deseas que el valor de algún campo se incremente o automáticamente genere su correlativo, puedes ver el siguiente post
Si al dar mantenimiento por la SM30 deseas que el valor de algún campo se incremente o automáticamente genere su correlativo, puedes ver el siguiente post
Nos vemos en el siguiente Blog ;)
MAGALEX
Interesante aporte estimado. Saludos
ResponderEliminarInteresante aporte estimado. Saludos
ResponderEliminarGracias Richard!
EliminarEsto funiona perfecto cuando el registro es nuevo, pero si lo edito ya no funciona :(
ResponderEliminarMuy bueno lo que hiciste , me sirvio de mucho!!!!!
ResponderEliminarGracias Gracias !!!!!
Muchas gracias por tu aporte, me sirvio mucho para poder terminar mi ajuste.
ResponderEliminarES POSIBLE PODER MOSTRAR EN LA VISTA DE ACTUALIZACIÓN ALGUNAS COLUMNAS ADICIONALES QUE NO ESTAN EN LA TABLA A MODO DE SOLO VISUALIACION ES DECIR SI TENGO UNA TABLA CON COIDGO_USR, CODIGO_PERSO, AGREGAR COLUMNAS COMO NOMBRE DEL PERSONAL QUE SE ALIMENTEN AUTOMATICAMENTE DEL CÓDIGO DEL PERSONAL DANDO ENTER ALGO ASI COMO LOS EJEMPLOS QUE DISTES PERO AGREGANDO LA COLUMNA DE VISUALIZACIÓN SIN Q ESTA ESTE EN LA TABLA, COMO PODRIA HACER ESO, OTRA COSA SE PUEDE VER POR LA TABLA DE ACTUALIZACIÓN UNA PRIMERA COLUMNA CON UN CORRELATIVO Q SE VA A IR GENERANDO A MEDIDA Q CREAS EL REGISTRO CREO Q ES PARTE DE LO Q HE PREGUNTADO. MIL GRACIAS ME URGE SOLVENTAR LO AQUI EXPLICADO. GRACIAS
ResponderEliminarHola.
ResponderEliminarQue buena está la información. Muchas gracias por compartir!
Saludos.
Daniella.