Esta es una traducción automática. El mensaje original está disponible en Inglés.

ANVEDI Job Handler

ElMicrosoft Dynamics NAV 2015 tiene un sistema de programación de trabajos que le permite ejecutar codeunits a ciertas horas. Anveo EDI Connect ofrece una codeunit dedicada que puede ser utilizada. La codeunit de código tiene el ID 5327312 y se llama ANVEDI Job Handler.

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

Esta unidad de codeunit ofrece diferentes trabajos y puede ser controlada por la cadena de parámetros. Esta cadena sigue reglas simples 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 que están disponibles para la mayoría de los trabajos, excepto para las transacciones comerciales:

ProcessFollowing

Controla si los post-procesamientos se ejecutan automáticamente. Esto es por defecto False, si no se especifica.

True

El post-procesamiento debe realizarse después

False

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

ProcessQueueView

Este parámetro es opcional. El valor predeterminado 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 NAV 2015, como WHERE(Project Code=FILTER(A*)).

Medidas de uso frecuente

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

Recibiendo datos

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

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

Tendrá que especificar uno de los siguientes parámetros:

Channel

Especifica una cadena de filtro al código del canal de comunicación. Esto puede ser el código completo, o una cadena de filtro.

Folder

Especifica una cadena de filtro al código de la carpeta de transmisión. Esto puede ser el código completo, o una cadena de filtro.

Haga un mapping

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

RUN(ProjectFilter=TEST, FormatFilter=NAV, CodeFilter=EXPORT_JOB, ProcessFollowing=True)
Ejemplo de cadena de parámetros: Ejecutar el mapping TEST, NAV, EXPORT_JOB.
RUN(ProjectFilter=TEST, FormatFilter=NAV, CodeFilter=*, MultipleAllowed=True, ProcessFollowing=True)
Ejemplo de cadena de parámetros: Ejecutar todos los mapeos de NAV del proyecto TEST.

Los parámetros permitidos son:

ProjectFilter

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

FormatFilter

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

CodeFilter

El código mapping o una cadena de filtros en el código mapping.

MultipleAllowed

Característica de seguridad. Si se deben ejecutar múltiples mapeos. Por defecto es False.

True

Se pueden ejecutar múltiples mapeos.

False

No se pueden ejecutar múltiples mapeos.

Recopilar datos de transacciones comerciales

Si tiene una clase de operación comercial con recopilación de datos, puede utilizar el siguiente string de parámetros:

BT_COLLECT(Code=MY_BT_TYPE)
Ejemplo de cadena de parámetros: Recoge los datos como se define en la clase de operació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.

Acciones avanzadas

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

Datos de transacciones comerciales del proceso por lotes

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

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

Recopilar y procesar por lotes los datos de las transacciones comerciales

Esta es 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: Recoge los datos de MY_BT_TYPE y ejecuta la acción de lote 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.

Procesar Abrir colas de procesamiento

Si no se ejecutan los post-procesamientos automáticamente, se pueden configurar los trabajos para ejecutar ciertas acciones abiertas.

PROCESS(ProcessQueueView=WHERE(Project Code=FILTER(MY_PROJECT)))
Ejemplo de cadena de parámetros: Procesa 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 hace como un paso posterior a la ejecución del mapping. Sin embargo, si quieres enviar archivos abiertos en un momento determinado, puedes usar un trabajo.

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

Especifica una cadena de filtro al código del canal de comunicación. Esto puede ser el código completo, o una cadena de filtro.

Folder

Especifica una cadena de filtro al código de la carpeta de transmisión. Esto puede ser el código completo, o una cadena de filtro.

Ejecutar la llamada de código personalizado

Puedes usar la unidad de codeunit del manejador de trabajos para ejecutar tu código personalizado.

Puede especificar tantos parámetros como necesite. Recomendamos utilizar un parámetro Nombre para especificar un identificador de llamada de retorno. Puedes acceder a los parámetros desde la codeunit de devolución de llamada de ANVEDI. 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 la Codeunit de devolución de llamada de ANVEDI.

Tenga en cuenta que los nombres de los parámetros se convierten en mayúsculas en la variable ParameterDictionary. Puedes usar 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 de cadena de parámetros: Llamar código personalizado