ANVEDI Events
Anveo EDI Connect ofrece una única unidad de codeunit para los eventos de integración: Codeunit ANVEDI Events. Puede reaccionar a los eventos de esta codeunit de código a través de su propia codeunit. Los eventos están soportados tanto en la versión FOB como en la versión Extension de Microsoft Dynamics.
Events
Los Events disponibles son:
- OnFunctionRegistration
- OnFunctionExecution
- OnJob
- OnAcceptTransmission
- OnBeforeList
- OnAfterList
- OnBeforeReceive
- OnAfterReceive
- OnBeforeArchive
- OnAfterArchive
- OnBeforeDelete
- OnAfterDelete
- OnBeforeSend
- OnComposeMessage
- OnAfterSend
- OnReplacePlaceholder
- OnError
- OnAfterProcess
OnFunctionRegistration
Este evento es llamado cuando el módulo busca funciones personalizadas. Puede definir sus propias funciones utilizando la funcionalidad proporcionada por la codeunit ANVEDI Function Register que se proporciona con el nombre Register. La codeunit proporciona dos funciones: RegisterFunction y AddParameter.
RegisterFunction espera dos parámetros, el nombre del objeto y el nombre de la función de su nueva función. Estos nombres pueden elegirse libremente, pero no pueden superar los 30 caracteres.
Los primeros 29 caracteres de la combinación de objeto y nombre de función deben ser únicos para poder especificar los parámetros desde el mapping. Intente que los nombres sean cortos.
Después de registrar una función, puede llamar a AddParameter hasta 5 veces. AddParameter espera un nombre para el parámetro de su función. Puede utilizar múltiples bloques de RegisterFunction y AddParameter en un Event. Pero recomendamos separar múltiples funciones a múltiples Event listeners.
Después de registrar la función, hay que reaccionar a las llamadas de función. Esto se hace mediante el OnFunctionExecution que se describe a continuación.
OnFunctionExecution
El Event se activa cuando el módulo busca la implementación de una función personalizada. A este evento se le pasa una instancia de la codeunit ANVEDI Function Call con el nombre FunctionCall.
Debe comprobar si el FunctionCall coincide con su función personalizada y sólo ejecutar cualquier código, si lo hace. Esto se hace llamando a la función Is() con los mismos parámetros con los que ha llamado a RegisterFunction en el OnFunctionRegistration. Si Is() devuelve true puede acceder a los parámetros, ejecutar su código personalizado y devolver un valor.
La codeunit ANVEDI Function Call proporciona las siguientes funciones:
Devuelve si la llamada a la función coincide con la firma de función especificada.
Tienes que llamar a esta función para mostrar al módulo que has manejado la llamada a la función. Puede pasar el resultado de una función, o simplemente utilizar true como resultado.
Recupera un parámetro con el número dado como texto. El índice empieza por 1.
Recupera un parámetro con el número dado como entero. El índice empieza por 1.
Recupera un parámetro con el número dado como booleano. El índice empieza por 1.
Recupera un parámetro con el número dado como decimal. El índice empieza por 1.
Recupera un parámetro con el número dado como fecha. El índice empieza por 1.
Recupera un parámetro con el número dado como fecha y hora. El índice empieza por 1.
Recupera un parámetro con el número dado como tiempo. El índice empieza por 1.
Recupera un parámetro con el número dado como EDIVariante. La función devuelve si se ha podido recuperar el parámetro. El índice empieza por 1.
OnJob
Puede utilizar la codeunit de trabajos del módulo para definir trabajos personalizados. La codeunit permite el uso de múltiples parámetros. Puede encontrar más información en la documentación del gestor de tareas.
Un diccionario que contiene los parámetros pasados a la tarea.
Debe establecer el Event como gestionado, si ha procesado un trabajo. La descripción de la estructura ANVEDI Event Args se encuentra al final de este capítulo.
OnAcceptTransmission
Esta función es llamada para determinar si un archivo o mensaje debe ser aceptado o ignorado por el módulo. El módulo no almacena si una transmisión fue ignorada y llamará a esta función cada vez que vea una transmisión. El archivo aún no se ha leído, por lo que sólo se puede decidir en función de los metadatos disponibles.
La transmisión para la que se recuperaron los metadatos. Tenga en cuenta que en este momento no se ha recibido ningún dato y que el registro aún no se ha insertado en la base de datos.
Debe establecer el Event como manejado, si procesó el Event. También debe devolver un valor si procesar la transmisión (establecer el valor de retorno en true); o no (establecerlo en false). La descripción de la estructura ANVEDI Event Args se encuentra al final de este capítulo.
OnBeforeList
Este código se ejecuta antes de que el módulo busque nuevos datos. Esto se puede utilizar para emitir un comando externo o script para recibir los archivos, antes de que el módulo busque nuevos datos.
El canal de comunicación que debe recuperar los datos.
Debe establecer el Event como manejado, si procesó el evento. La descripción de la estructura ANVEDI Event Args se encuentra al final de este capítulo.
OnAfterList
El canal de comunicación que debe recuperar los datos.
Debe establecer el Event como manejado, si procesó el Event. La descripción de la estructura ANVEDI Event Args se encuentra al final de este capítulo.
Este código se ejecuta después de que el módulo haya buscado nuevos datos.
OnBeforeReceive
Este Event se activa antes de recuperar una transmisión. Tenga en cuenta que no puede cancelar el proceso en este momento. Si desea decidir si recuperar o no un mensaje, utilice la función OnAcceptTransmission.
La transmisión. Los mensajes aún no se han recibido.
Debe establecer el Event como manejado, si procesó el Event. La descripción de la estructura ANVEDI Event Args se encuentra al final de este capítulo.
OnAfterReceive
Este Event se activa después de recibir una transmisión.
La transmisión después de ser recuperada (puedes acceder a los mensajes).
Debe establecer el Event como manejado, si procesó el Event. La descripción de la estructura ANVEDI Event Args se encuentra al final de este capítulo.
OnBeforeArchive
Este Event se ejecuta antes de archivar una transmisión.
La transmisión que se va a archivar en la ubicación remota.
Debe establecer el Event como manejado, si procesó el Event. La descripción de la estructura ANVEDI Event Args se encuentra al final de este capítulo.
OnAfterArchive
Este Event se activa después de archivar una transmisión.
La transmisión que se archivó en la ubicación remota.
Debe establecer el Event como manejado, si procesó el Event. La descripción de la estructura ANVEDI Event Args se encuentra al final de este capítulo.
OnBeforeDelete
Este Event se ejecuta antes de borrar una transmisión.
La transmisión que se va a borrar en la ubicación remota.
Debe establecer el Event como manejado, si procesó el Event. La descripción de la estructura ANVEDI Event Args se encuentra al final de este capítulo.
OnAfterDelete
Este Event se llama después de borrar una transmisión.
La transmisión que se borró de la ubicación remota.
Debe establecer el Event como manejado, si procesó el Event. La descripción de la estructura ANVEDI Event Args se encuentra al final de este capítulo.
OnBeforeSend
Este Event se activa antes de que se envíe una transmisión.
La transmisión que se va a enviar.
Debe establecer el Event como manejado, si procesó el Event. La descripción de la estructura ANVEDI Event Args se encuentra al final de este capítulo.
OnComposeMessage
Este Event se activa cuando se compone una transmisión.
La transmisión que se compone.
Debe establecer el Event como manejado, si procesó el Event. La descripción de la estructura ANVEDI Event Args se encuentra al final de este capítulo.
OnAfterSend
Este Event es llamado después de que una transmisión es enviada.
La transmisión que se envió.
Debe establecer el Event como manejado, si procesó el evento. La descripción de la estructura ANVEDI Event Args se encuentra al final de este capítulo.
OnReplacePlaceholder
Esta función se llama cuando se evalúa una cadena que puede contener variables definidas por el usuario, como el nombre de un archivo.
El nombre del marcador de posición. El módulo está buscando actualmente un valor para reemplazar este marcador de posición específico. Si desea proporcionar un valor, debe especificar el resultado y establecer el evento a manejar en el EventArgs.
Un registro prefiltrado de los documentos vinculados. Puede, por ejemplo, utilizar esta tabla para obtener los documentos del buffer que contiene el fichero.
Debe establecer el Event como manejado, si procesó el Event. También hay que aportar un valor. La descripción de la estructura ANVEDI Event Args se encuentra al final de este capítulo.
El siguiente ejemplo muestra cómo podría devolver datos del documento vinculado:
OnError
Este Event se activa cuando se produce un error en la cola de procesamiento.
Debe establecer el Event como manejado, si procesó el Event. La descripción de la estructura ANVEDI Event Args se encuentra al final de este capítulo.
OnAfterProcess
Este Event es llamado después del procesamiento de una entrada en la tabla EDI Processing Queue. Debe comprobar el estado de la entrada aprobada y reaccionar en consecuencia.
Debe establecer el Event como manejado, si procesó el Event. La descripción de la estructura ANVEDI Event Args se encuentra al final de este capítulo.
ANVEDI Event Args
Algunos de los Events utilizan una estructura llamada ANVEDI Event Args. Esta estructura permite devolver valores e indicar al módulo si ha gestionado el evento.
Las siguientes funciones están disponibles en el ANVEDI Event Args pasado al Event:
Si el Event fue manejado por tu código.
El valor de retorno, si el Event espera un valor de retorno.
Ejemplo
El siguiente ejemplo muestra cómo puede añadir su propia función personalizada «MYOBJECT.MYFUNC», que muestra un mensaje que contiene el nombre proporcionado seguido de ‘: ‘ y el valor. Puedes añadir tantas funciones de tantas extensiones como necesites.
Dependencias
Si quieres reaccionar al Event vía AL, necesitas añadir una dependencia al módulo Anveo EDI Connect.
Los valores para la Extension OnPremise son:
Asegúrese de sustituir x, y, z por el número de versión correcto.
Los valores para Business Central Online y Universal Code Extension son:
Asegúrese de sustituir x, y, z por el número de versión correcto. Las versiones anteriores de BC llamaban «id» a «appId».