Hilo iniciado por Eduardo Rotundo Soto el 28 de septiembre de 2017
-
AutorEntradas
-
septiembre 28, 2017 a las 4:57 pm #14573
Hola a todos!
Hoy vengo por acá con un problema, que es bastante puntual y no se si ha sucedido con anterioridad en está comunidad.
Tras seguir el documento de Microsoft para crear proveedores de tasas de cambio con X++, logré que el mismo apareciera en la herramienta sin problemas y al realizar la consulta para actualizar las tasas de cambio en cuestión funciona sin problemas, pero al momento de pasar esa actividad a una tarea ejecutada en lotes la misma falla y no funciona y me devuelve el siguiente error
Microsoft.Dynamics.Ax.Xpp.ErrorException: Se produjo una excepción de tipo ‘Microsoft.Dynamics.Ax.Xpp.ErrorException’.
en Dynamics.Ax.Application.ExchangeRateImportOperation.Import(ExchangeRateImportRequest exchangeRateImportRequest) en ExchangeRateImportOperation.import.xpp:línea 31
en ExchangeRateImportOperation::import(Object , Object[] )
en Microsoft.Dynamics.Ax.Xpp.ReflectionCallHelper.MakeInstanceCall(Object instance, String MethodName, Object[] parameters)
en Dynamics.Ax.Application.SysOperationServiceController.Runoperation(Boolean _async) en SysOperationServiceController.runOperation.xpp:línea 88
en Dynamics.Ax.Application.SysOperationServiceController.Run() en SysOperationServiceController.run.xpp:línea 27
en Dynamics.Ax.Application.BatchRun.runJobStaticCode(Int64 batchId) en BatchRun.runJobStaticCode.xpp:línea 54
en Dynamics.Ax.Application.BatchRun.runJobStatic(Int64 batchId) en BatchRun.runJobStatic.xpp:línea 13
en BatchRun::runJobStatic(Object[] )
en Microsoft.Dynamics.Ax.Xpp.ReflectionCallHelper.MakeStaticCall(Type type, String MethodName, Object[] parameters)
en BatchIL.taskThreadEntry(Object threadArg)Para lo cual no tengo idea de que pueda ser o por donde visualizar el problema (acotando que soy nuevo en Dynamics)
La versión que tengo actualmente es AX 2012 R3 CU8
septiembre 28, 2017 a las 6:00 pm #14574Hola Eduardo, segun entiendo creaste un proceso mediante el cual creas proveedores de tasa de cambio, al ejecutar tu proceso de forma manual funciona de forma perfecto pero cuando lo ejecutas por lotes falla.
Si la interpretacion es correcta tene en cuentalo siguiente.
Estimo que creaste una clase nueva donde tienes tu codigo, si lo vas a ejecutar por lotes debes tener encuenta algunas cuestiones.
La clase deberia tener un extends RunBaseBatch, por ejemplo:
Class claseEjemplo extends RunBaseBatch
{
}
Si es una tarea programada normalmente se ejecuta a nivel de AOS por lo que tu clase, en las propiedades seria conveniente que tenga el valor Server en la propiedad RunOn
Espero que te resulte de utilidad.
septiembre 29, 2017 a las 9:36 am #14575Hola Jonathan.
Lo que hice fue crear un proveedor de tasa de cambio, te coloco el código para que veas como hice la declaración de la clase, la misma hereda de ExchangeRateProvider para que AX 2012 lo pueda reconocer como un proveedor válido de tasas de cambio en la sección de Contabilidad General.
Este es el manual que segui para realizar el desarrollo del proveedor
https://www.microsoft.com/en-us/download/details.aspx?id=36047
El detalle rádica que cuando corro manualmente la importación de tasas de cambio con el proveedor creado, la misma funciona sin problema, pero si me voy a pestaña Lote y la configuro para que corra como una tarea por Lotes entonces ahí es donde da el error al intentar ejecutar la tarea en el tiempo y fecha programado. Este comportamiento que menciono no me pasa con el proveedor de tasas de cambio que viene por defecto en AX 2012 del banco de Rusia, tiene la programación similar y cuando lo ejecuto por lotes funciona sin problemas.
Saludos
ER
septiembre 29, 2017 a las 1:25 pm #14576Exacto, es lo mismo que te comento. Bien te recomiendo que hagas lo siguiente, como tu clase ya tiene un Extends y para facilitar las cosas, no tocar tu logica la cual desconozco, lo mas sencillo que veo es crear una nueva clase que se encargue del proceso batch.
Es decir creas una clase que tenga un extends de RunBaseBatch y luego desde aqui llamas a tu otra clase con tu logica que crea los proveedores de tasa de cambio la cual funciona de forma correcta.
Aqui te dejo un manual de Microsoft para que tengas en cuenta los puntos necesarios para la clase que va a correr por batch. https://msdn.microsoft.com/en-us/library/cc636647.aspx
-
AutorEntradas
- Debes estar registrado para responder a este debate.
