Anveo EDI Connect / Config / Automatización / ANVEDI Job Handler
Esta es una traducción automática. El mensaje original está disponible en Inglés.

ANVEDI Job Handler

Microsoft Dynamics 365 Business Central dispone de un sistema de programación de trabajos que le permite ejecutar codeunits a determinadas horas. Anveo EDI Connect ofrece una codeunit específica que puede utilizarse. La codeunit tiene el ID 5327312 y se llama ANVEDI Job Handler.

Ejemplo de configuración de cola de trabajos en Microsoft Dynamics 365 Business Central

Esta codeunit ofrece diferentes trabajos y puede controlarse mediante la cadena de parámetros. Esta cadena sigue reglas sencillas y le mostraremos ejemplos para cada una de las acciones disponibles. La sintaxis general de este parámetro es:

ACTION_NAME(Parameter1=Value1, Parameter2=Value2)

Hay dos parámetros disponibles para la mayoría de los trabajos, excepto para las Transacciones Comerciales:

ProcessFollowing

Controla si los post-procesamientos se ejecutan automáticamente. Si no se especifica, el valor predeterminado es False.

True

El post-procesamiento debe ejecutarse después

False

La configuración por defecto determinará si se ejecutarán los post-procesamientos.

ProcessQueueView

Este parámetro es opcional. El valor por defecto es sin vista de tabla. Este parámetro especifica una vista en la tabla para la cola de procesamiento EDI que se utiliza si ProcessFollowing=True. La cadena tiene que ser una vista de tabla Microsoft Dynamics 365 Business Central, como WHERE(Project Code=FILTER(A*)).

Acciones de uso frecuente

La mayoría de las veces, querrá utilizar una de las siguientes acciones:

Recepción de datos

Esta acción recibirá datos para un canal de comunicación o carpeta especificados.

RECEIVE(Channel=MY_COMM_CHANNEL, ProcessFollowing=True)
Ejemplo Cadena de parámetros: Recibir datos del canal de comunicación MY_COMM_CHANNEL

Deberá especificar uno de los siguientes parámetros:

Channel

Especifica una cadena de filtro para el código del canal de comunicación. Puede ser el código completo o una cadena de filtro.

Folder

Especifica una cadena de filtro para el código de la carpeta de transmisión. Puede ser el código completo o una cadena de filtro.

Ejecutar un mapping

A menudo, si se desea exportar datos, se empieza con un trabajo de transacción comercial o con un mapping de NAV. Pero el sistema de programación puede ejecutar cualquier tipo de mapping.

RUN(ProjectFilter=TEST, FormatFilter=NAV, CodeFilter=EXPORT_JOB, ProcessFollowing=True)
Ejemplo Cadena de Parámetros: Ejecutar el mapping TEST, NAV, EXPORT_JOB.
RUN(ProjectFilter=TEST, FormatFilter=NAV, CodeFilter=*, MultipleAllowed=True, ProcessFollowing=True)
Ejemplo Cadena de parámetros: Ejecutar todas las asignaciones NAV del proyecto TEST.

Los parámetros permitidos son:

ProjectFilter

El código del proyecto o una cadena de filtro sobre el código del proyecto.

FormatFilter

El código de formato o una cadena de filtro sobre el código de formato.

CodeFilter

El código mapping o una cadena de filtro sobre el código mapping.

MultipleAllowed

Característica de seguridad. Si se deben ejecutar varias asignaciones. Por defecto es False.

True

Se pueden ejecutar varias asignaciones.

False

No se pueden ejecutar asignaciones múltiples.

Recopilar datos de transacciones comerciales

Si tiene un tipo de operación con recogida de datos, puede utilizar la siguiente cadena de parámetros:

BT_COLLECT(Code=MY_BT_TYPE)
Ejemplo Cadena de Parámetros: Recoge los datos como los definidos en el Tipo de Transacción Comercial MY_BT_TYPE.

Sólo hay un parámetro:

Code

El código del tipo de transacción comercial. Este parámetro no permite filtros.

Mantenimiento

Si desea utilizar la función de reintento automático de las asignaciones o los canales de comunicación, debe configurar una tarea de mantenimiento sencilla. Este trabajo es realmente rápido es no hay nada que hacer y se puede ejecutar con bastante frecuencia. Tenga en cuenta que el trabajo debe ejecutarse al menos con la frecuencia con la que desee reintentar acciones.

MAINTENANCE()
Ejemplo Cadena de parámetros: Ejecutar procesos automáticos como reintentos.

El trabajo no tiene parámetros.

Acciones avanzadas

Las siguientes acciones son más especializadas y no se utilizan con tanta frecuencia.

Procesamiento por lotes de datos de transacciones comerciales

BT_BATCH(Batch=MY_BATCH_CODE)
Ejemplo Cadena de parámetros: Ejecutar la acción por lotes con el código MY_BATCH_CODE.
Batch

El código del Batch. Este parámetro no permite filtros.

Recopilación y procesamiento por lotes de datos de transacciones comerciales

Se trata de una combinación de BT_COLLECT y BT_BATCH.

BT_COLLECT_BATCH(Code=MY_BT_TYPE, Batch=MY_BATCH_CODE)
Ejemplo de cadena de parámetros: Recopilar datos de MY_BT_TYPE y ejecutar la acción por lotes con el código MY_BATCH_CODE.
Batch

El código del Batch. Este parámetro no permite filtros.

Code

El código del tipo de transacción comercial. Este parámetro no permite filtros.

Proceso Colas de tratamiento abiertas

Si no ejecuta postprocesamientos automáticamente, puede configurar tareas para que ejecuten determinadas acciones abiertas.

PROCESS(ProcessQueueView=WHERE(Project Code=FILTER(MY_PROJECT)))
Ejemplo Cadena de parámetros: Procesar las entradas abiertas del proyecto MY_PROJECT.

Puede utilizar los parámetros ProcessQueueView y ProcessFollowing.

Enviar transmisiones abiertas

Normalmente, el envío de datos se realiza como un paso posterior a la ejecución mapping. Sin embargo, si desea enviar archivos abiertos a una hora determinada, puede utilizar una tarea.

SEND(Channel=MY_CHANNEL)
Ejemplo Cadena de parámetros: Envía la transmisión abierta de MY_CHANNEL.
Channel

Especifica una cadena de filtro para el código del canal de comunicación. Puede ser el código completo o una cadena de filtro.

Folder

Especifica una cadena de filtro para el código de la carpeta de transmisión. Puede ser el código completo o una cadena de filtro.

Ejecutar código personalizado Callback

Puede utilizar la codeunit del gestor de tareas para ejecutar su código personalizado.

Puede especificar tantos parámetros como necesite. Recomendamos utilizar un parámetro Nombre para especificar un identificador de devolución de llamada. Puede acceder a los parámetros desde la codeunit ANVEDI Callback. En la codeunit ANVEDI Callback en la función CallbackRegistration puede reaccionar al evento OnJobCallback implementando el siguiente bloque CASE:

CallbackSupport.OnJobCallback(ParameterDictionary):
  BEGIN
    IF NOT ParameterDictionary.GETBYKEY('NAME', Tmp) THEN
      ERROR(Text001);

    Name := Tmp;
    CASE UPPERCASE(Name) OF
      'Example':
        BEGIN
          IF NOT ParameterDictionary.GETBYKEY('MYPARAM1', Tmp) THEN
            ERROR(Text001);
         MyParam1 := tmp;

         IF NOT ParameterDictionary.GETBYKEY('MYPARAM2', Tmp) THEN
           ERROR(Text001);
         MyParam2 := tmp;

        // Do something with the parameters MyParam1 and MyParam2
     END;
  ELSE
    ERROR(Text002, Name);
  END;
END;
Ejemplo de código en ANVEDI Callback Codeunit.

Tenga en cuenta que los nombres de los parámetros se convierten a mayúsculas en la variable ParameterDictionary. Puede utilizar la siguiente cadena de parámetros en la cola de trabajos para llamar a la devolución de llamada:

CALLBACK(Name=Example, MyParam1=Hello, MyParam2=World)
Ejemplo Cadena de parámetros: Llamar código personalizado