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

De Pragma Wiki
Ir a la navegación Ir a la búsqueda
 
(No se muestran 6 ediciones intermedias del mismo usuario)
Línea 62: Línea 62:


===Asociar un auxiliar a una clase===
===Asociar un auxiliar a una clase===
Estando en cualquier clase, por ejemplo [[ASIENTOS CONTABLES/DETALLES]] desde el menú de opciones:
Estando en cualquier clase, por ejemplo [[ASIENTOS CONTABLES/DETALLES]], desde el menú de opciones:
[[Archivo:20250404 1110 ASOCIAR AUXILIAR A CLASE.png|miniaturadeimagen|no|Definir auxiliares en una clase.]]
[[Archivo:20250404 1110 ASOCIAR AUXILIAR A CLASE.png|miniaturadeimagen|no|Definir auxiliares en una clase.]]


===Asociar un auxiliar a un campo de una clase===
===Asociar un auxiliar a un campo de una clase===
Estando en algún campo de cualquier clase, por ejemplo [[ASIENTOS CONTABLES/DETALLES]] desde el menú de opciones (los auxiliares se pueden asociar a cada campo):
Estando en algún campo de cualquier clase, por ejemplo [[ASIENTOS CONTABLES/DETALLES]], desde el menú de opciones del campo:
[[Archivo:20250404 1113 ASOCIAR AUXILIAR A CAMPO.png|miniaturadeimagen|no|Asociar un auxiliar a un campo de una clase.]]
[[Archivo:20250404 1113 ASOCIAR AUXILIAR A CAMPO.png|miniaturadeimagen|no|Asociar un auxiliar a un campo de una clase.]]


===Asociar un auxiliar a un argumento de una consulta===
===Asociar un auxiliar a un argumento de una consulta===
Por ejemplo, en cualquier argumento de la consulta [[VALORES CAJA/CONSULTA PENDIENTES ASIGNACION]] (los auxiliares se pueden definir para cada argumento):
Por ejemplo, en cualquier argumento de la consulta [[VALORES CAJA/CONSULTA PENDIENTES ASIGNACION]], desde el menú de opciones del argumento:
[[Archivo:20250404 1117 ASOCIAR AUXILIAR A ARGUMENTO.png|miniaturadeimagen|no|Asociar un auxiliar a un argumento.]]
[[Archivo:20250404 1117 ASOCIAR AUXILIAR A ARGUMENTO.png|miniaturadeimagen|no|Asociar un auxiliar a un argumento.]]


Línea 77: Línea 77:
[[Archivo:20250404 1124 LISTA DE AUXILIARES DE UN OBJETO.png|miniaturadeimagen|no|Lista de auxiliares de un objeto.]]
[[Archivo:20250404 1124 LISTA DE AUXILIARES DE UN OBJETO.png|miniaturadeimagen|no|Lista de auxiliares de un objeto.]]


Para agregar un auxiliar solo hay que presionar el símbolo "+" en esta pantalla.
Esta pantalla tiene las mismas opciones de navegación y de edición que cualquier otra pantalla.


===Para agregar un auxiliar a un objeto===
===Detalles de un auxiliar en un objeto===
La pantalla para agregar un auxiliar es la misma para todos los objetos y todos los auxiliares:
La pantalla para agregar un auxiliar es la misma para todos los objetos y todos los auxiliares:
[[Archivo:20250404 1127 UN AUXLIAR EN UN OBJETO.png|miniaturadeimagen|no|Datos de un auxiliar en un objeto.]]
*En el campo '''Tipo''' ingresamos el tipo de auxiliar.
*En el campo '''Codigo''' ingresamos el código, solo si el auxiliar lo admite (hay auxiliares que no permiten más de un registro por objeto, por ejemplo, las asignaciones. En estos casos el código se completa automáticamente y no permite su edición).
*En el campo '''Descripcion''' ingresamos la descripción del auxiliar.
*En el campo '''Activo''' indicamos si el auxiliar se encuentra activo, solo si lo está se ejecuta. Sino no se ejecuta.
En el panel tipo memo ponemos todos los comandos, si presionamos F5 podremos ver una lista de etiquetas válidas para el tipo de auxiliar que estamos editando y seleccionar el que necesitemos.


=Runtime=
=Runtime=

Revisión actual - 16:35 4 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.

Cómo asociar auxiliares a los objetos del sistema

Los auxiliares finalmente se definen en los objetos del sistema, los objetos posibles son:

Asociar un auxiliar a una clase

Estando en cualquier clase, por ejemplo ASIENTOS CONTABLES/DETALLES, desde el menú de opciones:

Definir auxiliares en una clase.

Asociar un auxiliar a un campo de una clase

Estando en algún campo de cualquier clase, por ejemplo ASIENTOS CONTABLES/DETALLES, desde el menú de opciones del campo:

Asociar un auxiliar a un campo de una clase.

Asociar un auxiliar a un argumento de una consulta

Por ejemplo, en cualquier argumento de la consulta VALORES CAJA/CONSULTA PENDIENTES ASIGNACION, desde el menú de opciones del argumento:

Asociar un auxiliar a un argumento.

Lista de auxiliares de cada uno de estos objetos

Cuando seleccionamos cualquiera de las opciones recién mencionadas se abrirá una pantalla que muestra los auxiliares asociados a cada objeto, por ejemplo:

Lista de auxiliares de un objeto.

Esta pantalla tiene las mismas opciones de navegación y de edición que cualquier otra pantalla.

Detalles de un auxiliar en un objeto

La pantalla para agregar un auxiliar es la misma para todos los objetos y todos los auxiliares:

Datos de un auxiliar en un objeto.
  • En el campo Tipo ingresamos el tipo de auxiliar.
  • En el campo Codigo ingresamos el código, solo si el auxiliar lo admite (hay auxiliares que no permiten más de un registro por objeto, por ejemplo, las asignaciones. En estos casos el código se completa automáticamente y no permite su edición).
  • En el campo Descripcion ingresamos la descripción del auxiliar.
  • En el campo Activo indicamos si el auxiliar se encuentra activo, solo si lo está se ejecuta. Sino no se ejecuta.

En el panel tipo memo ponemos todos los comandos, si presionamos F5 podremos ver una lista de etiquetas válidas para el tipo de auxiliar que estamos editando y seleccionar el que necesitemos.

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