Como Saltar la Validación en una Vista de Actualización por Parámetros ?

Es bastante común que nos pidan crear una Vista de Actualización para una tabla Z, desde la cual el usuario pueda tratar los datos correspondientes.

Existen dos tipos de Vistas de Actualización:

vista01

  • Sin Restricción: Este tipo de Vistas es el más común, consiste en mostrar todo el contenido de la tabla Z con las funciones estándar para insertar, modificar y eliminar líneas de la tabla.
  • Con restricción/parámetros: Esta opción es bastante frecuente cuando se trata de tablas con gran cantidad de datos y el usuario no le es útil que se muestren todos, sino más bien poder realizar un filtro previo por algunos de sus campos.

vista02vista03

Supongamos un ejemplo en el que se quiera hacer una selección previa por los campos Centro (WERKS), Almacén (LGORT) y Material (MATNR).

Para ello seleccionamos dichos campos de la lista propuesta por el sistema luego de pulsar la opción de Vista con Parámetros y ya lo tendremos, ahora el usuario podrá filtrar los registros que quiera ver de la tabla.

Problemática

Al momento de indicar los parámetros con los que accederemos a los datos de la tabla, se está creando un índice sobre la misma, por lo tanto, si intentamos crear/modificar un registro de la tabla cuya clave sea diferente a los 3 campos indicados, el sistema por defecto lo impedirá, y emitirá un mensaje de error.

Por ejemplo, queremos agregar un nuevo material en el Centro C001 Almacén 1256 y queremos saber cuál es el último de la lista:

Ingresamos con los siguientes parámetros; Centro: C001 Almacén: 1256 Material: vacío.

Vemos que el último material ingresado es MAT14 y queremos crear el material MAT15.

Procedemos a crear una nueva entrada desde la opción correspondiente de la Vista, agregamos los datos Centro: C001, Almacén: 1256 y Material MAT15, pero al intentar guardar los cambios, el sistema avisa que la clave (los 3 campos) que intentamos crear no coincide con lo indicado en la selección (no indicamos el valor MAT15 para el campo Material).

Prácticamente esto nos deja con la única opción de tener que entrar a la Vista indicando los 3 valores exactos, para que nos muestre la tabla vacía y allí si poder ingresar una nueva entrada.

Poco práctico no ?

Por esto muchas veces verás que te pedirán una Vista solo para visualizar, y otra para Modificar datos.

Pero en caso de que solo exista una sola Vista, te tengo el siguiente truco:

vista04

Las tablas internas que hay que modificar para saltarse las validaciones de BD en vista de actualización por parámetros, son las mencionadas arriba.

  • X_NAMTAB
  • <VIM_CK_SELLIST>

En la tabla interna X_NAMTAB nos enfocamos en limpiar la variable KEYFLAG para aquellos campos clave que queremos controlar, (variable VIEWFIELD). Al eliminar el valor en el campo KEYFLAG “engañamos” al sistema indicándole que no estamos utilizando parámetros de entrada para consultar la tabla, y por ende, podremos crear/editar entradas sin importar la clave primaria de dicha entrada.

Lo mismo ocurre con la tabla interna <VIM_CK_SELLIST>, ya que al limpiarla, quedamos “en libertad” de poder hacer las modificaciones que queramos dentro de la vista de actualización de la tabla creada.

¿Te ha sido de utilidad este artículo? Házmelo saber con tus comentarios, y suscríbete a mi Comunidad para recibir mi curso gratuito “AprendeABAP en 10 lecciones”, además de contenidos exclusivos  sobre el mundo ABAP.

richard-avatar-SM-126x159

Richard Rey

“Programando tu Exito”

Opt In Image
Te has preguntado que se necesita para ser un Consultor de Éxito?
Te gustaría aprender los 7 Pasos para triunfar en tu carrera como Consultor ABAP?

Deja tus datos aquí abajo y formarás parte de mi comunidad exclusiva, además de recibir mi curso de regalo "Los 7 Pasos para ser un Consultor de Éxito".

Mas información AQUÍ.

 

PD: Odio el SPAM. No compartire tus datos con nadie.

Si te gusta, compártelo! ...Share on FacebookTweet about this on TwitterShare on LinkedInShare on Google+Email this to someonePrint this page

Comentarios