Proyectos

Functions

Las funciones en Gigantics te permiten crear transformaciones JavaScript personalizadas que pueden aplicarse a tus datos durante el procesamiento. Esta funcionalidad proporciona una forma potente de modificar, anonimizar o generar nuevos valores para campos en tus conjuntos de datos basados en lógica compleja que va más allá de simples reglas de enmascaramiento o reemplazo.

Las funciones son particularmente útiles cuando necesitas:

  • Aplicar lógica de negocio compleja para transformar datos
  • Generar nuevos valores basados en combinaciones de campos existentes
  • Implementar técnicas de anonimización personalizadas
  • Formatear datos de formas específicas no cubiertas por transformaciones integradas

Tipos de Funciones

Existen dos categorías principales de funciones disponibles en Gigantics:

Funciones Internas

Funciones integradas que manejan tareas comunes de transformación de datos:

  • mask: Aplicar patrones de enmascaramiento a diferentes tipos de datos
  • fake: Generar datos falsos realistas usando la librería Faker
  • codeRun: Ejecutar código JavaScript personalizado
  • shuffle: Aleatorizar valores de datos dentro de restricciones
  • Y muchas más funciones de transformación especializadas

Funciones de Usuario

Funciones personalizadas que creas específicamente para tu proyecto:

  • Escribe código JavaScript para transformar valores de campos
  • Prueba tus funciones con datos de muestra en tiempo real
  • Reutiliza funciones en diferentes reglas de transformación
  • Referencia variables usando la sintaxis $(nombre_variable)

Creación y Gestión de Funciones

Interfaz de Usuario

La página de Functions presenta una vista de tabla con las siguientes columnas:

ColumnaDescripción
NameEl identificador para tu función
DescriptionUna breve explicación de lo que hace la función
Created ByEl usuario que creó la función
Updated AtCuando se modificó por última vez la función
ActionsOpciones para editar código o eliminar

Añadir una Nueva Función

  1. Haz clic en el botón "Create" en la esquina superior derecha
  2. Se abrirá un panel derecho con un formulario que contiene:
    • Name: Campo de texto para el identificador de la función (requerido)
    • Description: Área de texto para explicar el propósito de la función (opcional)
  3. Rellena los campos requeridos
  4. Haz clic en "Save" para crear la función y proceder al editor de código

Editar una Función

  1. Haz clic en cualquiera de los siguientes:
    • El enlace del nombre de la función para ir directamente al editor de código
    • El icono de código en la columna de acciones
    • La opción "Rename" en el menú desplegable para modificar metadatos
  2. En el editor de código, puedes:
    • Escribir transformaciones JavaScript
    • Probar tu código con valores de muestra en tiempo real
    • Ver métricas de rendimiento de ejecución
    • Insertar funciones internas disponibles desde la barra lateral

Eliminar una Función

  1. Haz clic en el menú de acciones (tres puntos) junto a cualquier función
  2. Selecciona "Delete" del menú desplegable
  3. Confirma la eliminación en el diálogo modal

Advertencia: Ten cuidado al eliminar funciones. Si una función se está usando en reglas del modelo, eliminarla hará que esas transformaciones fallen y algunos datos sensibles puedan permanecer visibles.

Escribir Código de Función

Interfaz del Editor

El editor de código incluye:

  • Resaltado de sintaxis JavaScript
  • Autocompletado para funciones disponibles
  • Pruebas en tiempo real con tabla de entrada/salida
  • Métricas de rendimiento mostrando tiempo de ejecución
  • Configuración del nombre de campo para contexto

Variables de Contexto

En tu código de función, tienes acceso a varias variables de contexto:

  • $val: El valor original del campo que se está transformando
  • $rec o _: El objeto completo del registro (todos los campos)
  • $old: El registro original antes de cualquier transformación
  • $meta: Metadatos sobre la entidad y campo actual
  • $vars: Variables del proyecto que pueden referenciarse con $(nombre_variable)

Funciones Disponibles

La barra lateral derecha en el editor de código muestra una lista de funciones internas disponibles que puedes usar:

  • Funciones Faker: Generar datos falsos realistas (nombres, direcciones, etc.)
  • Funciones de encriptación: Encriptar/desencriptar valores
  • Funciones de utilidad: Varias funciones auxiliares para manipulación de datos
  • Funciones de hash: Generar valores con hash (SHA, MD5, etc.)

Cuando haces clic en una función de esta lista, su firma se insertará en tu código en la posición actual del cursor.

Probando Tu Código

El editor incluye un entorno de prueba integrado:

  1. Introduce valores de entrada de muestra en los campos "Old Value"
  2. Haz clic en "Run" o presiona Ctrl+Enter/Cmd+Enter para ejecutar tu código
  3. Observa los valores de salida transformados en la columna "New Value"
  4. Controla las métricas de rendimiento para asegurar una ejecución eficiente

Usando Funciones en Transformaciones

En Reglas del Modelo

Las funciones se usan en reglas de transformación del modelo especificando la acción "code" y referenciando tu función:

return $val + 10;

O usando otras funciones disponibles:

return faker.internet.email();

Referenciando Variables

Puedes referenciar variables del proyecto en tu código de función usando la sintaxis:

return $(api_key);  // Referencia una variable llamada "api_key"

Esto es útil para acceder a valores de configuración o datos sensibles sin codificarlos directamente.

Buenas Prácticas

  1. Nombres descriptivos: Usa nombres claros y descriptivos para tus funciones para hacer evidente su propósito
  2. Documentación: Añade descripciones para explicar lo que hace cada función
  3. Pruebas: Siempre prueba tus funciones con varios valores de entrada antes de aplicarlas
  4. Rendimiento: Controla el tiempo de ejecución y optimiza funciones complejas
  5. Reutilización: Diseña funciones para ser reutilizables en diferentes campos y entidades
  6. Seguridad: Al usar variables, asegúrate de que los datos sensibles se almacenen como variables "Secret"
  7. Manejo de errores: Considera casos límite y maneja posibles errores en tu código

Ejemplos de Uso

  • Formateo personalizado de emails basado en campos de nombre
  • Generación de claves compuestas a partir de múltiples valores de campo
  • Implementación de reglas de negocio complejas para transformación de datos
  • Creación de funciones de anonimización especializadas para tu industria
  • Formateo de números de teléfono u otros datos estructurados
  • Generación de identificadores secuenciales o basados en patrones

Las funciones proporcionan la flexibilidad para implementar prácticamente cualquier lógica de transformación de datos requerida para tu caso de uso específico.