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.

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:
Controla si los post-procesamientos se ejecutan automáticamente. Esto es por defecto False, si no se especifica.
El post-procesamiento debe realizarse después
La configuración por defecto determinará si se ejecutarán los post-procesamientos.
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)
Tendrá que especificar uno de los siguientes parámetros:
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.
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)
RUN(ProjectFilter=TEST, FormatFilter=NAV, CodeFilter=*, MultipleAllowed=True, ProcessFollowing=True)
Los parámetros permitidos son:
El código del proyecto o una cadena de filtro en el código del proyecto.
El código de formato o una cadena de filtro en el código de formato.
El código mapping o una cadena de filtros en el código mapping.
Característica de seguridad. Si se deben ejecutar múltiples mapeos. Por defecto es False.
Se pueden ejecutar múltiples mapeos.
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)
Sólo hay un parámetro:
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)
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)
El código del Batch. Este parámetro no permite filtros.
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)))
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)
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.
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;
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)