Pergunta

Eu gostaria de criar um trabalho em lotes em X ++ para Microsoft Axapta 3.0 (Dynamics AX).

Como posso criar um trabalho que executa um X função ++ como esta?

static void ExternalDataRead(Args _args)
{
...
}
Foi útil?

Solução

Aqui é o mínimo necessário para criar um trabalho em lotes no AX:

Criar um trabalho em lotes através da criação de uma nova classe que estende a classe RunBaseBatch:

class MyBatchJob extends RunBaseBatch
{
}

Implementar o método pack() resumo:

public container pack()
{
    return connull();
}

Implementar o método unpack() resumo:

public boolean unpack(container packedClass)
{
    return true;
}

Substitua o método run() com o código que você deseja executar:

public void run()
{
    ;
    ...
    info("MyBatchJob completed");
}

Adicionar um método main estático para sua classe para criar uma instância de sua classe e chamar o diálogo RunBaseBatch padrão:

static void main(Args _args)
{
    MyBatchJob myBatchJob = new MyBatchJob();
    ;
    if(myBatchJob.prompt())
    {
        myBatchJob.run();
    }
}

Se você quiser que o seu trabalho em lotes para ter uma descrição na lista de lote, adicionar um método description estático para sua classe:

server client static public ClassDescription description()
{
    return "My batch job";
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top