¿Qué son las User Defined Functions (UDFs)?

En el mundo de la programación, la reusabilidad es un concepto altamente utilizado. Se trata de una técnica que permite agilizar, encapsular y facilitar el mantenimiento de desarrollos. Informatica Powercenter brinda la posibilidad de aplicar estas técnicas mediante el uso de algo llamado User Defined Functions (UDFs).

¿Qué son las User Defined Functions (UDFs)?

En términos simples, se trata de código que, ya sea por su complejidad o por ser repetitivo, puede ser encapsulado y reusado en varios procesos. Por ejemplo, si se cuenta con una transformación Expression que calcule la edad a partir de una fecha proporcionada, y este paso se repite en más de un proceso, podemos generar una UDF con esta regla.

 ¿Cuándo usamos las UDFs?

No existe una regla general que aplique para el uso de UDFs, lo que se requiere es de una buena anticipación e identificación de las principales reglas de negocio, poniendo especial atención a aquellas que se repiten con mayor frecuencia o bien, las más complejas.

¿Qué tipos de UDFs existen? ¿Cuáles son sus propiedades?

Públicas Su alance es global, lo que significa que está expuesta y puede ser invocada desde cualquier transformación que cuente Expression Editor del proceso, por ejemplo, desde una transformación Expression, Aggregator, Router, etc.
Privadas Sólo puede ser llamada desde otra UDF, no puede ser invocada desde ningún Expression Editor

 

Cualquiera de las dos versiones de las UDFs, requiere de configurar las siguientes propiedades:

  1. Nombre de la UDF: Se recomienda cumplir con algún estándar de nombrado
  2. Tipo de UDF
  3. Tipo de dato a retornar
  4. Descripción: Agregar una descripción detallada sobre el uso de la UDF
  5. Argumentos recibidos: Son los insumos con los que trabajarán la UDF
  6. Expresión aplicada: Reglas a aplicar a los puertos insumo

 

Beneficios sobre el uso de UDFs

Reutilización de código Permite encapsular código y reusarlo, lo que se traduce como menor tiempo de desarrollo
Trazabilidad Es posible rastrear fácilmente e identificar el lugar en el que se aplican las reglas de negocio reusables
Mantenimiento Facilita el mantenimiento de reglas de negocio ya que se encuentran encapsuladas. Si estas reglas se repiten y/o son complejas, no es necesario buscar en cada uno de los procesos en los que esta regla es aplicada, ¡pues viven en un sólo sitio!

Ejemplo de uso

A continuación se presenta una serie de pasos a seguir para la creación de una UDF dentro del Designer.

  • En la ventana del explorador de objetos, no dirigimos a la carpeta User-Defined Functions y hacemos clic derecho/New:

Nueva User Defined Functions (UDFs)

Nueva User Defined Functions (UDFs)
  • Como siguiente paso, aparecerá la ventana que nos permite editar las propiedades de la UDF, en la que se debe:
  1. Asignar un nombre
  2. Definir el tipo de UDF
  3. Agregar una descripción que facilite el entendimiento y posible mantenimiento de la UDF
  4. Agregar los argumentos/puertos con los que trabajará la UDF
  5. Establecer la Expression que se desea

 

Propiedades de UDF

Propiedades de UDF
  • Se muestra la ventana del Expression Editor que permite establecer la lógica a aplicar a los argumentos. Una vez definida la expresión a aplicar, la propiedad Return Type de la UDF será rellenada de manera automática en función de la respuesta de la UDF (en nuestro ejemplo, un integer).

Edición de transformaciones

Edición de transformaciones
  • La UDF es visible en el explorador de objetos. Por consiguiente, será posible invocarla desde cualquier mapping.

UDF Creada

UDF Creada
  • Desde un mapping, podremos invocar la función que estará disponible desde cualquier transformación que permita el Expression Editor.

Invocación de UDF

Invocación de UDF

Para terminar, podríamos mencionar que las UDFs forman parte de la aplicación de best practices dentro de la metodología de desarrollo de ETLs (Velocity).