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)
{
...
}
¿Fue útil?

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";
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top