This is an automatic translation. The original post is available in Inglés.

ANVEDI Events

Anveo EDI Connect ofrece una única codeunit para eventos de integración: Unidad de Codeunit ANVEDI Events. Puedes reaccionar a los eventos de esta unidad de codeunit a través de tu propia codeunit. Los eventos están soportados tanto en la versión FOB como en la versión Extensión de Microsoft Dynamics.

Events

Los eventos disponibles son:

  • OnFunctionRegistration
  • OnFunctionExecution
  • OnJob
  • OnAcceptTransmission
  • OnBeforeList
  • OnAfterList
  • OnBeforeReceive
  • OnAfterReceive
  • OnBeforeArchive
  • OnAfterArchive
  • OnBeforeDelete
  • OnAfterDelete
  • OnBeforeSend
  • OnComposeMessage
  • OnAfterSend
  • OnReplacePlaceholder
  • OnError
  • OnAfterProcess

OnFunctionRegistration

Este evento se llama cuando el módulo busca funciones personalizadas. Puede definir sus propias funciones utilizando la funcionalidad proporcionada por la codeunit ANVEDI Function Register Register que se proporciona bajo el nombre de Register. La codeunit de código tiene 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 ser elegidos libremente, pero no pueden exceder de 30 caracteres.

Los primeros 29 caracteres de la combinación del nombre del objeto y de la función deben ser únicos para poder especificar los parámetros del mapping. Deberías tratar de mantener los nombres cortos.

Después de registrar una función puedes llamar a AddParameter hasta 5 veces. AddParameter espera un nombre para el parámetro de su función. Puedes usar varios bloques de RegisterFunction y AddParameter en un solo evento. Pero recomendamos separar las funciones múltiples a los oyentes de eventos múltiples.

Ejemplo: Usando el registro de la función

Después de registrar la función, tienes que reaccionar a las llamadas de la función. Esto se hace mediante el evento OnFunctionExecution descrito a continuación.

OnFunctionExecution

El evento se llama, cuando el módulo está buscando una implementación de función personalizada. Una instancia de la codeunit ANVEDI Function Call de función se pasa a este evento bajo el nombre de FunctionCall de función.

Deberías comprobar si la llamada a la FunctionCall coincide con tu 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 que ha llamado RegisterFunction en el evento OnFunctionRegistration. Si Is() devuelve true puedes acceder a los parámetros, ejecutar tu código personalizado y devolver un valor.

Ejemplo: Reaccionar a la llamada de la función

La codeunit de código ANVEDI Function Call proporciona las siguientes funciones:

Devuelve si la llamada de 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 de la función. Puedes pasar un resultado de la función, o simplemente usar true como resultado.

Recupera un parámetro con el número dado como texto. El índice comienza con 1.

Recupera un parámetro con el número dado como entero. El índice comienza con 1.

Recupera un parámetro con el número dado como booleano. El índice comienza con 1.

Recupera un parámetro con el número dado como decimal. El índice comienza con 1.

Recupera un parámetro con el número dado como fecha. El índice comienza con 1.

Recupera un parámetro con el número dado como fecha y hora. El índice comienza con 1.

Recupera un parámetro con el número dado como tiempo. El índice comienza con 1.

Recupera un parámetro con el número dado como EDIVariante. La función regresa, si el parámetro pudo ser recuperado. El índice comienza con 1.

OnJob

Puedes usar la unidad de codeunit de trabajo del módulo para definir trabajos personalizados. La codeunit de código permite soportar el uso de múltiples parámetros. Puede encontrar más información en la documentación del encargado del trabajo.

ParamaterDictionary

Un diccionario que contiene los parámetros pasados al trabajo.

EventArgs

Deberías poner el evento a manejar, si procesaste un trabajo. La descripción de la estructura de los ANVEDI Event Args se encuentra al final de este capítulo.

OnAcceptTransmission

Esta función se llama 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, así que sólo puede decidir en base a los metadatos disponibles.

ANVEDITransmission

La transmisión, para la cual 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.

EventArgs

Deberías poner el evento a manejar, si es que lo procesaste. También debe devolver un valor si se procesa la transmisión (fije el valor de retorno en true); o no (fije el valor en false). La descripción de la estructura de los ANVEDI Event Args se encuentra al final de este capítulo.

OnBeforeList

Este código se llama antes de que el módulo busque nuevos datos. Esto puede ser usado para emitir un comando o script externo para recibir los archivos, antes de que el módulo busque nuevos datos.

EDICommunicationChannel

El canal de comunicación que debe recuperar los datos.

EventArgs

Deberías poner el evento a manejar, si es que lo procesaste. La descripción de la estructura de los ANVEDI Event Args se encuentra al final de este capítulo.

OnAfterList

EDICommunicationChannel

El canal de comunicación que debe recuperar los datos.

EventArgs

Deberías poner el evento a manejar, si es que lo procesaste. La descripción de la estructura de los ANVEDI Event Args se encuentra al final de este capítulo.

Este código se llama después de que el módulo haya buscado nuevos datos.

OnBeforeReceive

Este evento se llama antes de que se recupere una transmisión. Por favor, tenga en cuenta que no puede abortar el proceso en este momento. Si quieres decidir si quieres recuperar un mensaje o no, por favor usa el evento OnAcceptTransmission.

ANVEDITransmission

La transmisión. Los mensajes aún no se han recibido.

EventArgs

Deberías poner el evento a manejar, si es que lo procesaste. La descripción de la estructura de los ANVEDI Event Args se encuentra al final de este capítulo.

OnAfterReceive

Este evento se llama después de recibir una transmisión.

ANVEDITransmission

La transmisión después de ser recuperada (se puede acceder a los mensajes).

EventArgs

Deberías poner el evento a manejar, si es que lo procesaste. La descripción de la estructura de los ANVEDI Event Args se encuentra al final de este capítulo.

OnBeforeArchive

Este evento es llamado antes de que se archive una transmisión.

ANVEDITransmission

La transmisión que se va a archivar en la ubicación remota.

EventArgs

Deberías poner el evento a manejar, si es que lo procesaste. La descripción de la estructura de los ANVEDI Event Args se encuentra al final de este capítulo.

OnAfterArchive

Este evento es llamado después de que una transmisión es archivada.

ANVEDITransmission

La transmisión que se archivó en la ubicación remota.

EventArgs

Deberías poner el evento a manejar, si es que lo procesaste. La descripción de la estructura de los ANVEDI Event Args se encuentra al final de este capítulo.

OnBeforeDelete

Este evento se llama antes de que se borre una transmisión.

ANVEDITransmission

La transmisión que se va a borrar en la ubicación remota.

EventArgs

Deberías poner el evento a manejar, si es que lo procesaste. La descripción de la estructura de los ANVEDI Event Args se encuentra al final de este capítulo.

OnAfterDelete

Este evento se llama después de que se borra una transmisión.

ANVEDITransmission

La transmisión que fue borrada de la ubicación remota.

EventArgs

Deberías poner el evento a manejar, si es que lo procesaste. La descripción de la estructura de los ANVEDI Event Args se encuentra al final de este capítulo.

OnBeforeSend

Este evento es llamado antes de que se envíe una transmisión.

ANVEDITransmission

La transmisión que se va a enviar.

EventArgs

Deberías poner el evento a manejar, si es que lo procesaste. La descripción de la estructura de los ANVEDI Event Args se encuentra al final de este capítulo.

OnComposeMessage

Este evento se llama cuando se compone una transmisión.

ANVEDITransmission

La transmisión que se compone.

EventArgs

Deberías poner el evento a manejar, si es que lo procesaste. La descripción de la estructura de los ANVEDI Event Args se encuentra al final de este capítulo.

OnAfterSend

Este evento se llama después de que se envía una transmisión.

ANVEDITransmission

La transmisión que fue enviada.

EventArgs

Deberías poner el evento a manejar, si es que lo procesaste. La descripción de la estructura de los 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 un nombre de archivo.

Placeholder

El nombre del marcador de posición. El módulo está buscando un valor para reemplazar este marcador de posición específico. Si quieres proporcionar un valor, tienes que establecer especificar el resultado y configurar el evento para que se maneje en el EventArgs.

ANVEDILinkedDocument

Un registro prefiltrado de los documentos vinculados. Puede, por ejemplo, utilizar esta tabla para obtener los documentos de la memoria intermedia que se encuentran en el archivo.

EventArgs

Deberías poner el evento a manejar, si es que lo procesaste. También tienes que proporcionar un valor. La descripción de la estructura de los ANVEDI Event Args se encuentra al final de este capítulo.

El siguiente ejemplo muestra cómo se podrían devolver los datos del documento vinculado:

Ejemplo: OnReplacePlaceholder

OnError

Este evento se llama cuando se produce un error en la cola de procesamiento.

EventArgs

Deberías poner el evento a manejar, si es que lo procesaste. La descripción de la estructura de los ANVEDI Event Args se encuentra al final de este capítulo.

OnAfterProcess

Este evento se llama después del procesamiento de una entrada en la tabla Cola de Procesamiento EDI Processing Queue. Deberías comprobar el estado de la entrada aprobada y reaccionar en consecuencia.

EventArgs

Deberías poner el evento a manejar, si es que lo procesaste. La descripción de la estructura de los ANVEDI Event Args se encuentra al final de este capítulo.

ANVEDI Event Args

Algunos de los eventos usan una estructura llamada ANVEDI Event Args. Esta estructura le permite devolver valores y decirle al módulo si ha manejado el evento.

Las siguientes funciones están disponibles en los Archivos ANVEDI Event Args pasados al evento:

Value

Si el evento fue manejado por tu código.

Value

El valor de retorno, si el evento 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.

Un ejemplo completo: Función personalizada

Dependencias

Si quieres reaccionar a los eventos a través de AL, necesitas añadir una dependencia al módulo Anveo EDI Connect.

Los valores de la Extensión en el lugar son:

Por favor, asegúrate de reemplazar x, y, z con el número de versión correcto.

Los valores de la Extensión Online de Business Central son:

Por favor, asegúrate de reemplazar x, y, z con el número de versión correcto.