¿Cómo crear un trabajo por lotes X ++ en Axapta 3.0?
Pregunta
Me gustaría crear un trabajo por lotes en X ++ para Microsoft Axapta 3.0 (Dynamics AX).
¿Cómo puedo crear un trabajo que ejecute una función X ++ como esta?
static void ExternalDataRead(Args _args)
{
...
}
Solución
Este es el mínimo necesario para crear un trabajo por lotes en AX:
Cree un trabajo por lotes creando una nueva clase que amplíe la clase RunBaseBatch
:
class MyBatchJob extends RunBaseBatch
{
}
Implementar el método abstracto pack ()
:
public container pack()
{
return connull();
}
Implementar el método abstracto unpack ()
:
public boolean unpack(container packedClass)
{
return true;
}
Anule el método run ()
con el código que desea ejecutar:
public void run()
{
;
...
info("MyBatchJob completed");
}
Agregue un método estático main
a su clase para crear una instancia de su clase y llamar al diálogo estándar RunBaseBatch
:
static void main(Args _args)
{
MyBatchJob myBatchJob = new MyBatchJob();
;
if(myBatchJob.prompt())
{
myBatchJob.run();
}
}
Si desea que su trabajo por lotes tenga una descripción en la lista de lotes, agregue un método estático description
a su clase:
server client static public ClassDescription description()
{
return "My batch job";
}