Dynamics AX RunBase framework Overview
Dynamics AX RunBase framework provides a common software platform for data manipulation in Microsoft Dynamics. It gives a standardized pathway to create batch jobs and periodic processes.
Dynamics AX RunBase framework can be used to run a process periodically or to manipulate some data over a period of time.
Using Dynamics AX RunBase framework has the following advantages:
- All future updates are integrated automatically
- Common layout of the dialog
- Remembering the user selections from the last run
- Easy to implement
To implement Microsoft Dynamics AX RunBase framework, extend a class with RunBaseBatch.
- Microsoft Dynamics AX 2012
- The batch server must be configured
Run is the central method of the Dynamics AX RunBase framework and is where all business logic is written. All information manipulation statements are placed in this method.
The description is a static method that returns a descriptive name of a batch job. This name is then shown as a caption on the batch job dialog to identify the specific job in the batch queue.
Main is a static method which gives the entry point for a batch job. This procedure calls the prompt method, which calls RunBase dialog, and run method which processes the batch job.
As part of this tutorial, RunBase class will mark all customers on-hold who have exceeded their credit limit.
First, create a new class. Open AOT -> Classes
Right-click on the Classes, choose New Class and create a new RunBaseDemo class
- Open the class declaration by right-clicking on the RunBaseDemo class and choosing View Code
Write the following code:
Add a new method and name it as the description. Write the following code in the method:
client server static ClassDescription description()
return “Mark customers on-hold”;
Include a new method and name it as main. Write the following code in the method:
static void main(Args _args)
RunBaseDemo objClass = new RunBaseDemo();
//prompt for runbase framework dialog
//run the process
Override the run method and write the below code:
public void run()
//select all customers
while select forUpdate * from custTable
//if credit limit is reached, placed on-hold
if(custTable.CreditMax && custTable.balanceMST() > custTable.CreditMax)
custTable.Blocked = CustVendorBlocked::Invoice;
//throw error of failure
- Run the job by right-clicking on the RunBaseDemo class and choose Open. Alternatively, the job can also be called from the menu item
- The RunBase framework dialog will open
- There are 2 ways to run the batch job, only once and periodically
- If once, click OK. Use this option if you want to run job just this time
- If periodically, schedule the batch job. Use this option if you want to run job periodically. Follow the below steps to schedule the batch job
- Check the Batch processing box
- Choose the respective batch group from the Batch group drop down
- Click on the Recurrence button
- In the Recurrence dialog, set the appropriate schedule and click OK.
- Click OK to schedule. It will now run the job according to inputted schedule.
Batch job history can be viewed from System administration -> Inquiries -> Batch jobs -> Batch job history