ANVEDI Callback
La información de esta página es para instalaciones en el lugar de trabajo usando sólo los archivos FOB.
Si utiliza Microsoft Dynamics NAV 2017 o más reciente y Anveo EDI Connect 5.00 ofrece una nueva lógica de personalización basada en eventos. Recomendamos encarecidamente pasar a los nuevos eventos de integración, si es posible, para facilitar las actualizaciones a las nuevas versiones.
La Codeunit ANVEDI Callback con el ID 5327310 es el punto central si quieres cambiar el comportamiento de Anveo EDI Connect. Mantenemos la API de esta Codeunit constante, para que no tengas que sobrescribir este objeto cuando actualices nuestro módulo. Hay varias funciones que pueden ser modificadas por usted y algunas funciones de ayuda que no deben ser modificadas. Si ha actualizado el módulo y se pierde una función de ayuda que podría haber sido añadida en una versión más reciente, hay un segundo objeto llamado EDI Callback - Template con ID 5327313 donde encontrará la nueva funcionalidad.
OnFunction
El módulo le permite definir su propia funcionalidad, que puede ser llamada desde los mapas EDI. Puedes definir tantas funciones como necesites. Debe utilizar el caso predefinido y añadir llamadas a las funciones incorporadas FunctionName..FunctionName5.
No se debe poner ningún código fuera de la estructura de casos predefinida, ya que esta función puede ser llamada con bastante frecuencia y cualquier código adicional puede tener impactos negativos en el rendimiento.
El número al final de la función de ayuda local FunctionName define el recuento de parámetros. Puede definir funciones con hasta cinco parámetros. Puede acceder al contenido de los parámetros llamando a las funciones GetTextParameter(ParNumber) y a las funciones similares para otros tipos de datos. El número del parámetro se cuenta de «1» a «5».
Cada función tiene que devolver un valor llamando a la función local con el nombre FunctionResult.
Debe llamar a la función FunctionResult sólo una vez. Es una buena práctica añadir una declaración de SALIDA directamente después de ella para evitar llamar a la función varias veces.
Puede elegir los nombres de los objetos y las funciones como desee.
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.
Aquí una lista completa de las funciones disponibles para usar en la declaración CASE. A partir de Anveo EDI Connect 4.00:
- FunctionName(ObjectName: Text; FunctionName: Text)
- FunctionName1(ObjectName: Text; FunctionName: Text; ParamName1: Text)
- FunctionName2(ObjectName: Text; FunctionName: Text; ParamName1: Text; ParamName2: Text)
- FunctionName3(ObjectName: Text; FunctionName: Text; ParamName1: Text; ParamName2: Text; ParamName3: Text)
- FunctionName4(ObjectName: Text; FunctionName: Text; ParamName1: Text; ParamName2: Text; ParamName3: Text; ParamName4: Text)
- FunctionName5(ObjectName: Text; FunctionName: Text; ParamName1: Text; ParamName2: Text; ParamName3: Text; ParamName4: Text; ParamName5: Text)
Aquí una lista de la función que puede utilizar para acceder a los parámetros:
- GetTextParameter(ParNum : Integer) : Text
- Obtiene el parámetro e intenta lanzarlo a un tipo de texto de datos.
- GetIntegerParameter(ParNum : Integer) : Integer
- Obtiene el parámetro e intenta lanzarlo a un tipo de datos entero.
- GetBooleanParameter(ParNum : Integer) : Boolean
- Toma el parámetro e intenta lanzarlo a un tipo de datos booleanos.
- GetDecimalParameter(ParNum : Integer) : Decimal
- Toma el parámetro y trata de lanzarlo a un tipo de datos decimal.
- GetDateParameter(ParNum : Integer) : Date
- Obtiene el parámetro e intenta lanzarlo a la fecha de tipo de datos.
- GetTimeParameter(ParNum : Integer) : Time
- Obtiene el parámetro e intenta lanzarlo al tipo de datos de tiempo.
- GetDateTimeParameter(ParNum : Integer) : DateTime
- Toma el parámetro e intenta lanzarlo al tipo de datos fecha/hora.
- GetParameter(ParNum : Integer;VAR EDIVariant : Codeunit
- Obtiene el parámetro como una instancia de la unidad de Codeunit de la variante ANVEDI Variant.
CallbackRegistration
Esta función se llama cada vez que algo sucede en el módulo, a lo que puedes reaccionar. La función contiene una estructura de casos, donde se puede comprobar en el parámetro pasado CallbackSupport lo que pasó.
No se debe poner ningún código fuera de la estructura de casos predefinida, ya que esta función puede ser llamada con bastante frecuencia y cualquier código adicional puede tener impactos negativos en el rendimiento.
Esta estructura puede parecer inusual para los desarrolladores de C/AL, pero podemos de esta manera añadir funcionalidad, sin necesidad de actualizar la unidad de Codeunit de devolución de ANVEDI Callback.
Los eventos disponibles son definidos por el Soporte ANVEDI Callback Support la Unidad de Codeunit. En las siguientes secciones discutiremos los eventos disponibles.
OnJobCallback
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.
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.
Parámetros:
Un registro de la tabla de EDI Transmission con los datos que se conocen hasta ahora. El registro aún no está escrito.
Si reacciona a este evento, debe llamar a la siguiente función:
Parámetros:
Si recibir la transmisión o no. El valor True significa que quieres recibir los datos, el valor False que quieres ignorar la transmisión.
Deberías pasar el registro de la llamada de la OnAcceptTransmission a este parámetro.
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.
Parámetros:
Especifica un registro de datos de la tabla de EDI Communication Channel en el que se buscarán los nuevos mensajes.
Este evento no requiere una llamada a otra función ya que no soporta ningún valor de retorno.
OnAfterList
Este código se llama después de que el módulo haya buscado nuevos datos.
Parámetros:
Especifica un registro de datos de la tabla de EDI Communication Channel.
Este evento no requiere una llamada a otra función ya que no soporta ningún valor de retorno.
OnBeforeReceive
Este evento se llama antes de que se recupere una transmisión.
Parámetros:
Especifica un registro de datos de la tabla de EDI Transmission.
Este evento no requiere una llamada a otra función ya que no soporta ningún valor de retorno.
OnAfterReceive
Este evento se llama después de recibir una transmisión.
Parámetros:
Especifica un registro de datos de la tabla de EDI Transmission.
Este evento no requiere una llamada a otra función ya que no soporta ningún valor de retorno.
OnBeforeArchive
Este evento es llamado antes de que se archive una transmisión.
Parámetros:
Especifica un registro de datos de la tabla de EDI Transmission.
Este evento no requiere una llamada a otra función ya que no soporta ningún valor de retorno.
OnAfterArchive
Este evento es llamado después de que una transmisión es archivada.
Parámetros:
Especifica un registro de datos de la tabla de EDI Transmission.
Este evento no requiere una llamada a otra función ya que no soporta ningún valor de retorno.
OnBeforeDelete
Este evento se llama antes de que se borre una transmisión.
Parámetros:
Especifica un registro de datos de la tabla de EDI Transmission.
Este evento no requiere una llamada a otra función ya que no soporta ningún valor de retorno.
OnAfterDelete
Este evento se llama después de que se borra una transmisión.
Parámetros:
Especifica un registro de datos de la tabla de EDI Transmission.
Este evento no requiere una llamada a otra función ya que no soporta ningún valor de retorno.
OnBeforeSend
Este evento es llamado antes de que se envíe una transmisión.
Parámetros:
Especifica un registro de datos de la tabla de EDI Transmission.
Cuando se reacciona a este evento hay que llamar a la función:
Si enviar o no la transmisión. El valor True significa que la transmisión debe ser enviada.
La transmisión que recibiste con la llamada del evento.
OnComposeMessage
Este evento se llama cuando se compone una transmisión.
Parámetros:
Especifica un registro de datos de la tabla de EDI Transmission.
Este evento no requiere una llamada a otra función ya que no soporta ningún valor de retorno.
OnAfterSend
Este evento se llama después de que se envía una transmisión.
Parámetros:
Especifica un registro de datos de la tabla de EDI Transmission.
Cuando se reacciona a este evento hay que llamar a la función:
El resultado es actualmente ignorado.
La transmisión que recibiste con la llamada del evento.
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.
Puede encontrar un ejemplo a continuación:
Parámetros:
El nombre de la variable entre los corchetes para la que se busca un valor.
Al reaccionar a este evento, deberías llamar a la función:
Parámetros:
Si quieres devolver un valor. Si devuelve True debe especificar un valor para la variable. Puedes anular las variables del sistema.
El valor que debe utilizarse.
OnError
Este evento se llama cuando se produce un error en la cola de procesamiento.
Parámetros:
Una instancia de la tabla Cola de Procesamiento EDI Processing Queue cuyo procesamiento falló.
AfterProcess
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.
Parámetros:
Una instancia de la tabla Cola de Procesamiento EDI Processing Queue que fue procesada.
LookupLinkedDocument
Esta función se llama desde la lista de documentos vinculados, si el usuario desea abrir la página de la tarjeta. Hay algunas páginas predefinidas en el módulo e intentamos volver a la página de búsqueda por defecto, en caso de que esta función devuelva False.
El registro para el cual el usuario quiere abrir la página.
Un valor booleano. Devuelve el valor True, si la página fue abierta por esta función; False en caso contrario.
BeforeConvert
Esta función se llama antes de que se inicie un mapping. La llamada está dentro de la transacción de la base de datos del mapping. Puedes cancelar la ejecución del mapping, antes de que el mapping haya empezado, devolviendo el valor True. En general, no recomendamos utilizar esta función. Si desea llamar a un código personalizado, por favor, utilice el nuevo CallbackRegistration o la funcionalidad OnFunction.
AfterConvert
Esta función se llama después de que un mapping haya terminado con éxito. La llamada está dentro de la transacción de la base de datos del mapping. En general, no recomendamos utilizar esta función. Si desea llamar a un código personalizado, por favor, utilice el nuevo CallbackRegistration o la funcionalidad OnFunction.
En Anveo EDI Connect 4.00 agregamos a los eventos la función CallbackRegistration llamada OnError y AfterProcess. Por favor, use la nueva funcionalidad, si es posible.
Referencias cruzadas
Puedes definir tu propia lógica de referencias cruzadas. Esta funcionalidad se llama, cuando el tipo de referencia cruzada está configurado para llamar callback vuelta. A menudo recomendamos usar mapeos en lugar de código de devolución de llamada personalizado para facilitar la lectura de los mapeos. El código de referencia cruzada personalizado es, desde nuestro punto de vista, más difícil de mantener.
ValidateCrossReferenceNumber
Comprueba si un número de referencia externa es válido.
esta función está desaprobada y no debe utilizarse.
GetInternalNo
Devuelve un número interno de uno externo.
GetExternalNo
Devuelve un número externo de uno interno.
UpdateCrossReference
Se llama si el usuario intenta actualizar una referencia cruzada.
Funciones desaprobadas
La funcionalidad que figura a continuación sólo está parcialmente implementada y, por lo tanto, no es segura. Recomendamos usar los filtros de seguridad predeterminados de Microsoft Dynamics 365 Business Central y dejar las dos funciones vacías.
ApplyUserFilter
Permite filtrar los datos pasados de manera que el usuario pueda cambiar el filtro más adelante. Ya no se recomienda el uso de esta función. La función podría ser eliminada en versiones más recientes.
ApplySecurityFilter
Permite filtrar los datos de manera que el filtro no pueda ser cambiado por el usuario. Esta función no se llama en todos los casos. Ya no se recomienda el uso de esta función. La función podría ser eliminada en versiones más recientes.