Anveo Web Portal / Instalación / Lógica de Negocio en Tablas
This is an automatic translation. The original post is available in Inglés.

Lógica de Negocio en Tablas

Debido a la estructura técnica de la publicación de tablas a través de Anveo Pages, es necesario que toda la lógica de negocio se encuentre dentro de las tablas y codeunits – no en formularios/páginas. Desde el punto de vista conceptual, esto es más limpio desde el principio porque una tabla tiene que comprobar su consistencia estructural, porque codeunits están pensadas para trabajar con procesos de negocio y porque los formularios/páginas sólo representan entradas/salidas que involucran al usuario de la aplicación.

Como resultado, al publicar una tabla se debe comprobar si los cálculos o pruebas se encuentran en la contraparte – el formulario/página en Microsoft Dynamics NAV 2015 Client – que se van a desplazar a la tabla.

xRec y CurrFieldNo

xRec se utiliza en numerosas funciones de tabla dentro de Microsoft Dynamics NAV 2015 y representa el registro antes de una modificación. xRec puede utilizarse en un trigger OnValidate para probar si un campo ha cambiado realmente, por ejemplo en el trigger OnValidate para la tabla Customer.

IF "No." <> xRec."No." THEN BEGIN
SalesSetup.GET;
NoSeriesMgt.TestManual(SalesSetup."Customer Nos.");
"No. Series" := '';
END;
IF "Invoice Disc. Code" = '' THEN
"Invoice Disc. Code" := "No.";
Código fuente de OnValidate Activación del campo No. dentro de la tabla Cliente

Sin embargo, xRec sólo está disponible cuando se realiza una entrada a través de un formulario/página. El xRec que falta en el caso de funciones dentro de tablas y codeunits es una restricción planteada por Microsoft Dynamics NAV 2015 que no llama la atención cuando se utiliza Microsoft Dynamics NAV 2015 Client porque los datos se modifican únicamente a través de formularios y páginas allí, y esas páginas ofrecen xRec automáticamente. Sin el xRec, el código mostrado arriba no funcionará correctamente.

Anveo Client Suite proporciona la función GetxRec en la codeunit ACF Management para que Anveo Client Suite también establezca xRec y CurrFieldNo correctamente. En el núcleo de la aplicación Anveo Client Framework hay una plantilla para la función GetxRec y un código de ejemplo para la activación correcta. Proceda como se muestra a continuación para que el xRec y el CurrFieldNo estén disponibles para sus tablas:

  • Cree en su tabla la función GetxRec con los siguientes parámetros:
  • Añada a la función GetxRec el siguiente código:
ACFxRec.GETTABLE(xRec);
ACFManagement.GetxRec(ACFxRec,CurrFieldNo);
IF ACFxRec.NUMBER <> 0 THEN
   ACFxRec.SETTABLE(xRec);
  • Añada el siguiente código al principio de todos los desencadenantes de tabla que utilizan el xRec o el CurrFieldNo:
//+Anveo Client Suite Integration
GetxRec(xRec,CurrFieldNo);
//-Anveo Client Suite Integration

La ejecución del código es compatible con el cliente Classic, Role Tailored Client y el cliente Windows de Microsoft Dynamics NAV. Dado que el código se ejecuta en todos los clientes, no es necesaria una distinción de casos por separado. La llamada a esta función puede ser realizada por cada tabla del sistema con la misma frecuencia, sólo la primera llamada utilizando Anveo Client Suite devuelve xRec y CurrFieldNo.