Diferencia entre revisiones de «Categoría:DEV AUXILIARES»

De Pragma Wiki
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
Línea 47: Línea 47:


=Consultas relacionadas con los auxiliares=
=Consultas relacionadas con los auxiliares=
Existen muchos auxiliares, además de las explicaciones de esta sección a veces el mejor ejemplo es consultar casos de aplicación real. Para eso están las siguientes consultas.
Existen muchos auxiliares en el sistema.
 
Además de las explicaciones de esta sección a veces el mejor ejemplo es consultar casos de aplicación real.  
 
Para eso están las siguientes consultas.
*[[DEV AUXILIARES/CONSULTA AUXILIARES|Auxiliares, consulta (pAUX_CONSULTA)]] permite ver los auxiliares definidos para un tipo en particular.
*[[DEV AUXILIARES/CONSULTA AUXILIARES|Auxiliares, consulta (pAUX_CONSULTA)]] permite ver los auxiliares definidos para un tipo en particular.
*[[DEV AUXILIARES/CONSULTA AUXILIARES DETALLE|Auxiliares, consulta detalle (pAUXD_CONSULTA)]] permite ver los comandos de un auxiliar en particular, tiene una relación desde la consulta anterior para simplificar el acceso.
*[[DEV AUXILIARES/CONSULTA AUXILIARES DETALLE|Auxiliares, consulta detalle (pAUXD_CONSULTA)]] permite ver los comandos de un auxiliar en particular, tiene una relación desde la consulta anterior para simplificar el acceso.

Revisión del 17:02 3 abr 2025

Introducción

Diagrama de auxiliares.

Los auxiliares permiten agregar funcionalidad a las clases (tablas) y a los campos.

En este artículo se describe cómo definir auxiliares, la definición de cada auxiliar en particular se define más adelante.

Auxiliares que aplican a las clases

Los siguientes auxiliares aplican exclusivamente a las clases (o tablas):

Auxiliares que aplican a campos o a argumentos de consultas

Los siguientes auxiliares aplican a los campos o argumentos de consultas:

Auxiliares obsoletos

El siguiente auxiliar, que aplica sobre clases no debería ser usado. Las definiciones en uso son casi de prueba y sin efectos en el sistema:

En su lugar deberían usarse triggers.

Los siguientes auxiliares, que debían aplicar sobre campos y argumentos de consultas, jamás se usaron ni se usarán y no se documentan:

  • EVALUACIONS: Evaluaciones de clases, suscripción.
  • ONEXIT: Evento ONEXIT de un campo.

Tablas requeridas para definir los tipos de auxiliares

Antes de definir auxiliares deben definirse los tipos, las tablas son:

Tablas requeridas para definir auxiliares

Finalmente pueden definirse los auxiliares usando:

Consultas relacionadas con los auxiliares

Existen muchos auxiliares en el sistema.

Además de las explicaciones de esta sección a veces el mejor ejemplo es consultar casos de aplicación real.

Para eso están las siguientes consultas.

Runtime

Todos los cambios hechos a los auxiliares se reflejan de inmediato en una vista denominada pAUX_RUNTIME_VISTA.

Por un tema de performance esa vista se vuelca en una tabla denominada Auxiliares de objetos, tabla de runtime (pAUX_RUNTIME_TABLA).

El refresco de esta tabla se hace dentro de la aplicación sin que el desarrollador deba participar. Ante la situación de que esa tabla no se haya refrescado (por ejemplo, si se ingresaron auxiliares 'por afuera') la rutina que debe ejecutarse es:

DELETE FROM pAUX_RUNTIME_TABLA
GO
INSERT INTO pAUX_RUNTIME_TABLA
(
FOBJETO
, FCLASE
, FCAMPO
, FTIPO
, FCODIGO
, FLINEA
, FANCESTRO
, FDESCRIPCION
, FCOMANDO
)
SELECT
pAUX_RUNTIME_VISTA.FOBJETO
, pAUX_RUNTIME_VISTA.FCLASE
, pAUX_RUNTIME_VISTA.FCAMPO
, pAUX_RUNTIME_VISTA.FTIPO
, pAUX_RUNTIME_VISTA.FCODIGO
, pAUX_RUNTIME_VISTA.FLINEA
, pAUX_RUNTIME_VISTA.FANCESTRO
, pAUX_RUNTIME_VISTA.FDESCRIPCION
, pAUX_RUNTIME_VISTA.FCOMANDO
FROM pAUX_RUNTIME_VISTA
GO
GRANT SELECT, INSERT, UPDATE, DELETE ON pAUX_RUNTIME_TABLA TO public
GO