Comment créer un travail par lots X ++ dans Axapta 3.0?
Question
J'aimerais créer un travail par lots sous X ++ pour Microsoft Axapta 3.0 (Dynamics AX).
Comment créer un travail exécutant une fonction X ++ telle que celle-ci?
static void ExternalDataRead(Args _args)
{
...
}
La solution
Voici le strict minimum nécessaire pour créer un travail par lots dans AX:
Créez un travail par lots en créant une nouvelle classe qui étend la classe RunBaseBatch
:
class MyBatchJob extends RunBaseBatch
{
}
Implémentez la méthode abstraite pack ()
:
public container pack()
{
return connull();
}
Implémentez la méthode abstraite unpack ()
:
public boolean unpack(container packedClass)
{
return true;
}
Remplacez la méthode run ()
par le code que vous souhaitez exécuter:
public void run()
{
;
...
info("MyBatchJob completed");
}
Ajoutez une méthode main
statique à votre classe pour créer une instance de votre classe et appeler la boîte de dialogue standard RunBaseBatch
:
static void main(Args _args)
{
MyBatchJob myBatchJob = new MyBatchJob();
;
if(myBatchJob.prompt())
{
myBatchJob.run();
}
}
Si vous souhaitez que votre travail par lots ait une description dans la liste, ajoutez une méthode statique description
à votre classe:
server client static public ClassDescription description()
{
return "My batch job";
}