Como criar um trabalho em lotes X ++ no Axapta 3.0?
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)
{
...
}
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";
}