Events Codeunit
El Anveo Mobile App proporciona la codeunit ACF App Events en Dynamics a la que se envían todos los cambios de datos entrantes desde dispositivos móviles durante la sincronización. En esta codeunit, puede definir qué hacer con los cambios de datos de los usuarios móviles. Detecte y resuelva los conflictos de datos aquí en caso de que dos usuarios hayan cambiado el mismo registro debido a las capacidades fuera de línea. Además, puede ejecutar el código C/AL individual. Esta subsección describe sus características.
Propiedades globales
La codeunit proporciona un gran conjunto de variables globales. Según la función que se ejecute, las variables se fijan con valores. En la primera línea de comentarios de cada función se pueden ver las variables que están configuradas.
Esta variable contiene el registro del Dynamics, incluidos todos los campos. Se recuperó de la base de datos SQL con GET(Primary Key) antes. Es la que hay que cambiar en esta codeunit. RecRef es la variable más importante que puede usar para establecer sus cambios – con o sin modificación de los datos entrantes.
En esta codeunit, usted define qué datos deben ser transferidos desde el dispositivo móvil almacenado en DeviceRecRef a su RecRef. Paso a paso puede establecer sus valores en RecRef hasta que se escriba de nuevo en su base de datos SQL usando INSERT o MODIFY más adelante en el proceso.
Registro de dispositivo móvil. Sólo contiene los datos de los campos que se incluyen en los paquetes de sincronización para el usuario actual. Este RecordRef es una fuente de datos para establecer valores en RecRef.
Registro previo del dispositivo móvil. Sólo contiene los datos de los campos que se incluyen en los paquetes de sincronización para el usuario actual. Este RecordRef contiene los datos antes de que el usuario o Anveo Script hiciera cambios en el dispositivo móvil.
Esto es muy importante para detectar conflictos de datos: Comparando RecRef y xDeviceRecRef obtiene la información si dos personas han modificado los mismos datos al mismo tiempo. En RecRef se obtiene el valor actual de Dynamics, en xDeviceRecRef se ve el registro antes de que se cambie en la aplicación. Si difieren, el usuario podría haber decidido modificar los valores de los datos antiguos.
Para cada tabla y campo, puede decidir si desea comparar los valores de los campos y qué campos incluir para la comparación: algunos campos o todos los campos del registro.
Esta propiedad le da la información si un valor fue cambiado en la interfaz de usuario o por Anveo Script.
Los valores de opción son: User, Script
Puede utilizarlo para el campo Sell-to Name en la tabla Sales Header: Un cambio hecho por Anveo Script debe provenir del disparador de su mesa móvil y puede ser ignorado porque el código C/AL en Dynamics hace lo mismo. Pero las modificaciones en la interfase de usuario por parte del usuario son modificaciones individuales que deben aceptarse.
ParaINSERT , MODIFY y DELETE el valor NAVAction define si se aceptan los cambios en los datos entrantes y si se ejecutan los desencadenantes de la tabla OnInsert, OnModify u OnDelete en la tabla Dynamics. Además, puede rechazar los cambios de datos en su dispositivo móvil y enviar un paquete de actualización al dispositivo móvil que rechaza el cambio.
Si establece un valor en un campo, esta propiedad decide si desea aceptar la modificación y si desea ejecutar la función VALIDATE en el Dynamics.
Se acepta el cambio de datos y el Dynamics ejecuta su activación de tabla.
Se acepta el cambio de datos, pero no se ejecutará ningún disparo de tabla en el Dynamics.
No se acepta el cambio de datos y no se envía ningún rechazo al dispositivo móvil. En este caso, debe tener en cuenta la coherencia de los datos entre el Dynamics y el dispositivo móvil.
No se acepta el cambio de datos y se envía un mensaje de rechazo al dispositivo móvil.
Si ha recibido la eliminación de un registro, se enviará un mensaje de creación de registro al dispositivo móvil. En caso de un nuevo registro, se envía un mensaje de borrado. Esto asegura la consistencia de los datos.
En la función OnSetValue puede utilizar la propiedad RemoteAction para ver si un cambio de datos en Anveo Script fue realizado por SETVALUE o VALIDATE . Las modificaciones del usuario en la interfase de usuario se marcan como VALIDATE.
Para una mejor comprensión del procesamiento de los datos entrantes, se recomienda activar un log de texto detallado. Esto se hace configurando el Logging Level en Usuario Anveo a (más información aquí). Obtendrá un protocolo detallado de procesamiento de datos paso a paso.
Función OnSyncRequest
Esta función se ejecuta antes de ejecutar el proceso de inicialización y sincronización. El parámetro IsInit muestra si se trata de la primera inicialización o de una sincronización.
La sincronización comienza después de que se hayan procesado todos los datos entrantes del dispositivo móvil.
Función OnSetValue
Esta función se ejecuta si el usuario cambia un valor en la interfaz de usuario o si Anveo Script utiliza los comandos SETVALUE o VALIDATE. Esta función se puede utilizar para decidir si aceptar o ignorar las modificaciones de los valores entrantes. La opción NAVAction se utiliza para decidir si se ejecuta el activador de tabla OnValidate de ese campo.
Función OnBeforeInsert
Esta función se ejecuta antes de que se inserte un registro en la base de datos de Dynamics. Es usado por OnInsertRecord para estructurar el código solamente.
Función OnInsertRecord
Esta función se ejecuta si Anveo Script utiliza el comando Record:INSERT(). La opción NAVAction se utiliza para decidir si se ejecuta RecRef.INSERT() y su tabla OnInsert al final de la función.
Función OnModifyRec
Esta función se ejecuta si el usuario ha modificado un valor en la interfaz de usuario o si Anveo Script ha utilizado el comando Record:MODIFY(). La opción NAVAction se utiliza para decidir si se ejecuta RecRef.MODIFY() y su activador de tabla OnModify al final de la función.
Función OnDeleteRec
Esta función se ejecuta si Anveo Script utiliza el comando Record:DELETE(). La opción NAVAction se utiliza para decidir si se ejecuta RecRef.DELETE() y su activador de tabla OnDelete al final de la función.
Función PrintReport
Esta función es responsable de guardar los resultados del informe como un documento PDF y enviarlo al usuario utilizando la tabla ACF File Repository.
Función GetMatchedRecRef
Esta función forma parte de la gestión de series de números móviles. Es responsable de transformar RecRefs con series de números móviles en series de números finales de Dynamics.
Función LanguageIDMapping
Para algunos idiomas es necesario que el dispositivo móvil transforme el idioma de Windows de la tabla Language en otro valor de idioma de Windows.
Función SETVALUES/GETVALUES
Estas funciones se utilizan internamente para establecer y obtener valores de esta codeunit.