Edición de llamadas a objetos

El objetivo de esta extensión es agilizar el cambio a llamadas a objetos que se llaman desde muchos sitios en una kbase.
Por ejemplo, en una aplicación de logística, el prompt de selección de un artículo puede llamarse desde centenares de objetos. Si se necesita añadir un cierto parámetro, por ejemplo la familia de artículos a proponer en el prompt, exige ir a todos los llamadores para añadir dicho parámetro.

Esta extensión permite, de forma automática, añadir o quitar un parámetro en todas las llamadas a un objeto, o reemplazar la llamada a un objeto por otro. En caso de añadir un parámetro, el valor a pasar en todas las llamadas puede ser una variable o una constante especificada por el usuario.

Los parámetros sólo se pueden agregar o quitar uno a uno. En caso de necesitar añadir más de uno, hay que repetir el proceso por cada parámetro. En caso de querer quitar un parámetro, hay que ejectar este proceso antes de quitarlo de la regla parm del objeto llamado. Si se quiere añadir uno, hay que ejecutar el proceso despues de haberlo añadido a la regla parm.

La extensión permite visualizar los cambios que se harán sin guardar los cambios, para revisar que no habrá problemas.

Atención

La extensión se encuentra en el menú Lsi.Extensions > Tool Windows > Edit object calls. El formato de la ventana es el siguiente:

Imagen llamadas

Object Aquí se indica el nombre del objeto del que editar las llamadas.
Operation Aquí se indica la operación a ejecutar en los llamadores al objeto:
  • Add new parameter (Literal): Añadir un parametro en todos los llamadores, pasando un valor literal (p.ej. "true", "0")
  • Add new parameter (Variable): Añadir un parametro en todos los llamadores, pasando una variable como valor. Si el objeto llamador no contiene una variable con dicho nombre, esta se creará automáticamente.
  • Remove parameter: Quita un parametro de las llamadas al objeto.
  • Replace called object by other: Reemplaza las llamadas del objeto por el indicado en el campo New object.
Parameter to add / remove Aquí se selecciona el parámetro que hay que añadir o quitar de las llamadas, si así se indico. También muestra información sobre el tipo del parámetro seleccionado.
New parameter value (variable name / literal) En caso de haber indicado que se quiere añadir un parametro, aquí se indica el valor del parametro a pasar. Si era un valor literal, indica el valor constante a pasar. Si era una variable, indica el nombre de la variable a pasar
New object Si se indico que se quieren reemplazar las llamadas a un objeto por otro, aquí se indica cual es el nuevo objeto que se quiere llamar en lugar del antiguo.
Callers with name that starts with Si se indica un texto en este campo, solo se modificarán los objetos cuyo nombre empieze por este texto. Si se deja en blanco, se modificarán todos los objetos llamadores.
View objects: Permite filtrar en la lista "Objects with calls" los objetos según si ha habido problemas o no con la edición de las llamadas. Puede filtrarse para ver los objetos sin problemas, con avisos o con errores.
Validate objects when testing Se aplica al revisar los cambios en las llamadas. Indica si Genexus tiene que hacer una validación del objeto para ver si tras el cambio en las llamadas, los objetos llamadores quedarán bien. Si se activa esta opción, la validación del objeto tardará mucho más. Esta opción no se aplica al hacer realmente los cambios, ya que en ese caso Genexus siempre valida el objeto.
Test changes Hace una revisión de los cambios que se harán en los llamadores, sin hacer realmente ningún cambio. Los cambios que se harían se muestran en la lista "Objects with calls".
Do changes Hace los cambios en las llamadas. Los cambios hechos se muestran en la lista "Objects with calls".
Objects with calls Esta lista se llena cuando se pulsa el botón "Test changes" o "Do changes". Muestra una lista de los objetos que tienen llamadas al objeto, e indica si hay algún problema con los cambios en las llamadas del objeto. Al selecciónar algún objeto, en el campo "Cambios en el objeto" se muestran los cambios que se han hecho o harán en las llamadas del objeto.
Object changes Muestra información sobre los cambios hechos en el código del objeto seleccionado. En caso que haya habido errores o avisos, aquí se muestra el detalle de estos.

Limitaciones