Skip to content
Iván Rodrigo edited this page Jul 29, 2019 · 25 revisions

Introducción / Introduction

Desde siempre el mantenimiento de tablas se ha realizado mediante la transacción SM30. Aunque es útil no es una transacción cómoda para el usuario, y más de un vez algún usuario ha comentado: "y esto no se puede con los listados que hacéis" / Table maintenance has always been done through transaction SM30. Although it is useful it is not a comfortable transaction for the user, and more than once some user has commented: "and this cannot be done with the listings you make".

Y un día que empece a crear "algo" que permitiera mantener cualquier tipo de tabla pero añadiendo más funcionalidad de la que ofrece la SM30, pero usando ALV. / And there was a day that I started to create "something" that would allow to maintain any type of table but adding more functionality than the SM30 offers, but using ALV.

La solución consta de dos programa que son: / The solution consists of two programs that are:

  • Report ZAL30_MAIN_CONF -> Permite crear la "vista" de una tabla/vista existente que permita actualizar datos. Es como crear la vista de actualización de la SM30. En la página dedica al programa se puede consultar más en detalle su funcionamiento / Create the "view" of an existing table / view that allows updating data. It's like creating the update view of the SM30. / In the page dedicated to the program you can consult more in detail its operation

  • Report ZAL30_MAIN_VIEW-> Con la vista creada en el programa anterior muestra un ALV con los datos a mantener. / With the view created in the previous program it shows an ALV with the data to keep.

Funcionalidad

En este apartado se irá poniendo la funcionalidad que se vaya incluyendo. / In this section the functionality that is included will be added.

Funcionalidad inicial / Initial functionality:

  • Permite transportar la configuración de la "vista" a otros sistema mediante orden de transporte. / It allows the "view" configuration to be transported to other systems by transport order.
  • Detecta la tabla de texto de la tabla principal para mantener sus datos / Detects the text table from the main table to keep your data
  • Permite transportar los datos de "vista" siempre y cuando el sistema lo permita. / It allows to transport the data of "sight" as long as the system allows it.
  • Permite verificar si se tiene acceso a la tabla tal como lo hace la tabla / Allows you to verify if you have access to the table as the table does
  • Permite activar un log de modificaciones de las acciones que se realizan en la tabla / Allows you to activate a log of modifications of the actions performed in the table
  • Permite realizar un control de autorización a nivel de usuario sin necesidad de usar la autorización de SAP. / It allows you to perform an authorization control at the user level without using SAP authorization
  • Permite que la tabla se autoajuste cuando se añaden/modifiquen/quiten campos nuevos. De esta manera se evitar realizar el ajuste en el programa de configuración
  • Allows the table to adjust itself when new fields are added / modified / removed. This avoids making the adjustment in the configuration program.
  • Bloquea la tabla para evitar que dos usuario la modifiquen a la vez / Lock the table to prevent two users from modifying it at the same time
  • Permite exit a medida indicando informando de la clase que se llamará. La clase introducida debe de tener la exit ZIF_AL30_EXIT_CLASS informada. / Allows custom exit indicating the class to be called. The class entered must have the exit ZIF_AL30_EXIT_CLASS informed.
  • Los atributos que se pueden modificar a nivel de campo son / The attributes that can be modified at the field level are:
    • Permite poner textos individuales a los campo o usuarios o que se tomen del diccionario / Allows you to put individual texts to the fields or users or to be taken from the dictionary
    • El campo mandante se muestra como campo "técnico" para que no se muestre. / The sending field is shown as a "technical" field so that it is not displayed.
    • Permite indicar que un campo es obligatorio / It allows to indicate that a field is mandatory
    • Permite indicar que un campo no se muestre pero estar visible en el pool del ALV / It allows to indicate that a field is not displayed but to be visible in the ALV pool
    • Los campos booleanos se detectan como de tipo de chekcbox, aunque es posible cambiarlo.
    • Boolean fields are detected as chekcbox type, although it is possible to change it.

Exit del programa

El programa ZAL30_MAIN_VIEW tiene una serie de exit configuradas que permiten alterar el comportamiento del proceso en determinados sitios. Las exit están definidas en la interface ZIF_AL30_EXIT_CLASS y son las siguientes: / The ZAL30_MAIN_VIEW program has a series of configured outputs that allow altering the behavior of the process in certain sites. The outputs are defined in the ZIF_AL30_EXIT_CLASS interface and are as follows:

  • EXIT_BEFORE_READ_DATA -> Entra una vez leídos los datos de la tabla. Los datos pueden ser modificados / Enter once the data in the table is read. The data can be modified.
  • EXIT_AFTER_SAVE_DATA -> Entra después de grabar e informa los registros modificados, borrados y si la grabación ha ido bien. Los datos no pueden ser modificados. / Enter after recording and report the modified, deleted records and if the recording went well. The data cannot be modified.
  • EXIT_BEFORE_SAVE_DATA -> Entra antes del proceso de grabación e informa de los datos modificados y borrados. Los datos pueden ser modificados. / Enter before the recording process and report the modified and deleted data. The data can be modified.
  • EXIT_CHECK_AUTH_DATA_READ -> Entra mientras se leen los datos leídos y sirve para verificar si se tiene autorización para ello. El método tiene una excepción para indicar que no se tiene autorización. / It enters while reading the data read and serves to verify if you have authorization to do so. The method has an exception to indicate that there is no authorization.
  • EXIT_IN_PROCESS_DATA_READ -> Entra después de la exit EXIT_CHECK_AUTH_DATA_READ y permite modificar los datos. / Enter after the EXIT_CHECK_AUTH_DATA_RECORD exit and modify the data.
  • EXIT_VERIFY_CHANGE_ROW_DATA -> Entra después de todas las validaciones cuando se añade o modifica un registro nuevo en el ALV. Permite modificar los datos de entrada y devolver una estructura de error(BAPIRET2) con posibles mensajes que se mostrarán. / Enter after all validations when a new record is added or modified in the ALV. It allows you to modify the input data and return an error structure (BAPIRET2) with possible messages to be displayed.
  • EXIT_VERIFY_FIELD_DATA -> Funciona como la exit EXIT_VERIFY_CHANGE_ROW_DATA pero a nivel de campo. / It works like the EXIT_VERIFY_CHANGE_ROW_DATA exit but at the field level.
  • EXIT_PROCESS_CATALOG_OF_FIELD -> Entra mientras se esta procesando el catalogo de campos. El catalogo puede ser modificado. / Enter while the field catalog is being processed. The catalog can be modified.
Clone this wiki locally