Saltar al contenido

Función de Tiempo de Ejecución Mvsql: CALLER()

Resumen

Las columnas de la fila actual pueden estar disponibles para los objetos de datos abajo en la cadena. Esta función puede entonces acceder a estos valores en varias ubicaciones.

Caller() se puede utilizar en expresiones de reglas CRUD dentro de eventos, controladores de éxito o controladores de errores. Cuando se utiliza la función Caller() en un controlador de éxito o error, la acción buscará un campo determinado en la regla de acción desde la que se está ejecutando. Cuando la función Caller() se utiliza en una regla de acción, analiza los valores de campo del registro en el objeto comercial en el que se ejecuta el evento. Consulte el Ejemplo de uso con Success Handler para obtener más aclaraciones.

Como novedad en Vinyl 3.3, las funciones de tiempo de ejecución pueden devolver más de una cadena si se especifica un parámetro de tipo.

Nota

Esta función mvSQL solo funcionará en reglas CRUD y no con otros objetos de datos creados en Vinyl.

Sintaxis

CALLER(<name> [, datatype>])

Parámetros

Nombre

Una cadena que representa el nombre del criterio solicitado.

Tipo de Datos

El tipo de datos, cadena es predeterminado, opcional. Tipos de datos admitidos:

  • Cadena (predeterminado)
  • Numérico
  • UUID

Devoluciones

Las funciones en tiempo de ejecución siempre devuelven una cadena SQL. No devuelven NULL. En cambio, devuelven un valor "vacío". El parámetro de tipo determina qué valor vacío se devuelve:

  • Devuelve una cadena vacía ''
  • Devuelve un valor numérico vacío. '0' en 3.2, 0 en 3.3
  • Devuelve un UUID vacío '00000000-0000-0000-0000-000000000000' en 3.2, uuid('00000000-0000-0000-0000-000000000000') en 3.3

Observaciones

El CALLER() La función siempre devuelve una cadena SQL.

Ejemplos

Ejemplo de Orientación a Otra Mesa

  • Una fila de la tabla Cliente tiene un evento en mayúsculas que apunta a otra tabla.

Esta regla podría crearse:

SELECT UPPER(CALLER('CustomerName')) as UppercasedName FROM CustomerArchive

Que se evaluaría en tiempo de ejecución para:

SELECT UPPER('John Doe') as UppercasedName FROM CustomerArchive

Ejemplo de Uso con Success Handler

  • El objeto de negocio '123' tiene un evento denominado 'evento'
  • 'evento' tiene un tipo de Regla Acción con la Regla 'abc'
  • 'abc' tiene un evento de controlador de éxito, donde la acción de tipo regla tiene la regla 'def'
  • 'def' tiene una expresión que llama ('uuid')
  • La persona que llama ('uuid') apunta a la PK de la tabla de destino para 'def' con 'bind' como tipo de destino
  • 'uuid' de Caller('uuid') existe por nombre sólo en 'abc', no en Business Object '123'
  • En el escenario apropiado, el Controlador de éxito activa y actualiza exitosamente el registro apropiado en la Tabla de destino de 'def' de acuerdo con la Regla