Ax Interview Question

1.  Difference between following
condel :- Use condel to delete one or more items from a container.
confind :- Use confind to locate a sequence of items in a container. 
conins :- Use conins to insert some items into a container.
conlen :- Use conlen to find out how many items there are in a container.
connull :- Use connull to explicitly dispose of the contents of a container.
conpeek :- Use conpeek to extract an item from a container, and to convert it into another data type  
conpoke :- Use conpoke to replace (poke) an item in a container.
2. Difference between edit and display method
Display Indicates that the method's return value is to be displayed on a form or a report.
The value cannot be altered in the form or report
Edit Indicates that the method's return type is to be used to provide information for a field that is used in  In a form. The value in the field can be edited.     
3. Difference between perspectives and table collection
Perspectives  can organize information for a report model  in the Application Object Tree (AOT).
A perspective is a collection of tables. You use a report model to create reports.
Table collection is a collection of table, which sharing across all the virtual companies.  
   4.What are the 4 types of files we need to copy to the standard folder?
 *.aod, *.ahd, *.ald, *.add, *.khd
    5.  Why we use virtual companies?
 Virtual company accounts contain data in certain tables that are shared by any number of company accounts. This allows users to post information in one company that will be available to another company.
    6. How can we restrict a class to be further extended?
 using Final Keyword for ex: public final class <ClassName>
    7.Which are classes are used for data import export?
 SysDataImport and SysDataExport
    8. From which table u can get the user permissions stored in Ax?
 AccessRightList table.
    9.What should we do if we need last record to be active when a form is opened?
 In properties of datasource table set the StartPosition property as last.
    10. What is the sequence of events while a report is generated?
 Init, Run, Prompt, Fetch, Print
    11. Name few X++ classes/Coreclasses related to Queries?
     Query, QueryRun, QueryBuildRange, QueryBuildDataSource, QueryBuildLink
    12. What is an index?
An index is a table-specific database structure that speeds the retrieval of rows from the table. Indexes are used to improve the performance of data retrieval and sometimes to ensure the existence of unique records

QUES:Define IntelliMorph

IntelliMorph is the technology that controls the user interface in Microsoft Dynamics AX. The user interface is how the functionality of the application is presented or displayed to the user.
IntelliMorph controls the layout of the user interface and makes it easier to modify forms, reports, and menus.

QUES:Define MorphX  

The MorphX Development Suite is the integrated development environment (IDE) in Microsoft Dynamics AX used to develop and customize both the Windows interface and the Web interface.

QUES:Define  X++   

X++ is the object-oriented programming language that is used in the MorphX environment .

QUES:Differenciate refresh(),reread(),research(),executequery()  

refresh() will not reread the record from the database.  It basically just refreshes the screen with whatever is stored in the form cache.
reread() will only re-read the CURRENT record from the DB so you should not use it to refresh the form data if you have added/removed records.  It's often used if you change some values in the current record in some code, and commit them to the database using .update() on the table, instead of through the form datasource.  In this case .reread() will make those changes appear on the form.

research() will rerun the existing form query against the data source, therefore updating the list with    new/removed records as well as updating existing ones.  This will honour any existing filters and sorting on the form.
executeQuery() is another useful one.  It should be used if you have modified the query in your code and need to refresh the form.  It's like
research() except it takes query changes into account.


The Application Object Tree (AOT) is a tree view of all the application objects within Microsoft Dynamics AX. The AOT contains everything you need to customize the look and functionality of a Microsoft Dynamics AX application

QUES:Define AOS  

The Microsoft Dynamics AX Object Server (AOS) is the second-tier application server in the Microsoft Dynamics AX three-tier architecture.
The 3-tier environment is divided as follows:
First Tier – Intelligent Client • Second Tier – AOS • Third Tier – Database Server
In a 3-tier solution the database runs on a server as the third tier; the AOS handles the business logic in the second tier. The thin client is the first tier and handles the user interface and necessary program logic.

QUES: Difference between Index and Iindex hint  

Adding the "index" statement to an Axapta select, it does NOT mean that this index will be used by the database. What it DOES mean is that Axapta will send an "order by" to the database.
Adding the "index hint" statement to an Axapta select, it DOES mean that this index will be used by the database (and no other one).

QUES: Difference between temp table and container.

1.Data in containers are stored and retrieved sequentially, but a temporary table enables you to define indexes to speed up data retrieval.
2. Containers provide slower data access if you are working with many records. However, if you are working with only a few records, use a container.
3. Another important difference between temporary tables and containers is how they are used in method calls. When you pass a temporary table into a method call, it is passed by reference. Containers are passed by value. When a variable is passed by reference, only a pointer to the object is passed into the method. When a variable is passed by value, a new copy of the variable is passed into the method. If the computer has a limited amount of memory, it might start swapping memory to disk, slowing down application execution. When you pass a variable into a method, a temporary table may provide better performance than a container

Data dictionary
1.What is an EDT, Base Enum, how can we use array elements of an EDT,
2.Definition and use of Maps, how AddressMap (with methods) is used in standard AX
3.What is the difference between Index and Index hint?
Utility and use of find method.
4.How many types of data validation methods are written on table level?
5.How many types of relations are available in Axapta, Explain each of them.
6.When the recid is generated, what is its utility, what are the different types of Table groups defined on table properties.
7.Difference between Primary & Cluster index.
8.How many kind of lookups can be made and how.
9.How can we utilize field groups in forms
10.How many types of Delete Actions are there in Standard Ax and define the use of each
11.If any record is created in table I want to fetch the date & time stamp, how will you do that
12.What is the function of super()


1. What is an abstract class, what is the utility of an abstract method
2. Multiple inheritance possible or not, if not how can we overcome that.
3. What is an interface, Why do we implement it
4. Do we need to write main method, give reasons
5. What is difference between new & construct method
6. What is the utilty of the RunOn property
7. What is main class used in batch process OR which class will you inherit to make a batch job
8. How can we make a batch job occur at regular interval
9. What is the main utility of classes in standard Ax
10. Which class is called when we create a SO/PO.
11. What are classes used to write query.
12. What is a static method, why do we make static methods and where can we write it.
13. When do we make methods private or protected.Forms
14. What is the basic structure of a form
15. Utility of init(), run(), wait() methods
16. What are different types of Link Types available in a form datasource, justify each of them
17. Properties of a form datasource
18. validateWrite() method can be written in form datasource as well as table level, when should we write it in form DS and when in table. Similar in case of write() method
19. How can we call table level methods from form DS (similar methods)
20. What is the difference between form init() & DS init()
21. When a form opens what are the sequential methods called.
22. Where is the best place to write code to perform filter in a form
23. What are the different types of menu items available, explain each of them
24. A action type menu item is attached to a form but in the drop down the menu item is not appearing, what could be the problem
1. What are the two most important methods
2. When do block the super() method of fetch
3. Can we make a report from wizard, if yes from where
4. What is a Programmable Section, how we use it in reports
5. What is the difference between Auto Design Spec & Generated Design
6. How can we sort the DS, what facility we can get in by placing fields in Ranges
7. What is the role of executeSection
8. What are Queries, how do we use them

 Menu Items

1. What is the use of Parameter, Enum TypeParameter/Enum Parameter properties of display
2. Why do we provide Configuration key & Security key
3. Normally what do we attach in Output
4. Normally what do we attach in Action

 General Questions

1. What is difference between select & select firstonly statements
2. What are the keywords used to access data from "multiple companies" and "one company to another company".
3. How can we override a lookup
4. How do the following methods work in a form DS.
ds.refresh(), ds.research(), ds.reread(), in what situation we should these methods
5. On closing a form name the methods which are invoked
6. What are security key/configuration keys, how do we use it in Ax
7. How can we provide user level/user group level security
8. What is a virtual company
9. What is Visual MorphXplorer, what do we do with that?(Reverse engineering tool has replaced Visual MorphXplorer)
10. What is the function of Application Hierarchy Tree
11. If you want to monitor the database activity, where can you get that
12. Where can we find the Label log and what is its utility
13. What are the tools you will use to upgrade any object
14. What is the difference between display() and edit() methods, how do we use each
15. What is the use of System Documentation/Application Developer Documentation/Application Documentation

 Few More Questions on DAX

1.What are the classes, Tables, Forms and Methods used to post the sales orders.
2. What are the classes, Tables, Forms and Methods used to post the purchase orders.
3. What are the classes, Tables, Forms and Methods used to post the Ledgers.
4. What are the classes, Tables, Forms and Methods used to post the Inventory.
5. What is the base class to send the on-boad E-mailing.
6. What are the storage Dimensions?
7. What are the Item Dimensions?
8. What is the difference between RunBase and RunBaseBatch?
9. How do you create a NumberSequence for existing Module and also fro new Module.
10.What is the difference between Insert and doinsert.
11.What is the Runbase Stack?


1.Table buffer on the FROM in x++ clause ,not the table as in SQL
2.ORDER BY clause precedes the WHERE clause 
3.! for negation ,not NOT as in SQL
4.&& and || for logical operator ,not AND or OR as in SQL.
5.* and ? for like wildcards ,not % and _ as in SQL.


1.Join clause has no ON keyword in x++,use WHERE instead
2.Defauld JOIN direction is left .
3.there are no LEFT and RIGHT keyword for JOIN in x++
4.The FROM clause is optional when:
-No column is listed or
-Only one table is listed in the SELECT in x++

select * FROM CustTable;
select CustTable;

both are same.

1.The WHILE SELECT statement provides an automatic cursor for return rows in x++
2.There is no HAVING keyword in x++
3.No null values are return in x++


Viewing/Navigation options

Accelerator Keys
Task Description
Show Navigation Pane (if it is not in auto-hide mode)

This shortcut works from both MDI & SDI windows, so it is a good shortcut to get back to the main workspace.
Enable/Disable auto-hide for the Navigation Pane
Toggles the Content Pane between Developer and Content modes.  Developer mode makes the content frame (where Area pages & List pages are viewed) restorable/minimizable so it is easier to work with developer windows.
Open global search pane
Toggle the docking status of a docking window
Move to the next docked window
Move to the previous docked window
Move to the next MDI window
Move to the previous MDI window
Open “Version control parameters” form
Open a new workspace
Focus the Address Bar in edit mode (works from anywhere)
Alt+Left Arrow
Shortcut for the Back button on the Address bar
Alt+Right Arrow
Shortcut for the Forward button on the Address bar
From AreaPage, ListPage or developer (MDI) window

Show the Microsoft Dynamics AX Command Bar
Show Windows menu

Hint: do this then press “a” to close all windows.
Show View menu
Show Help menu
Show Keytips

Press the corresponding key to navigate directly to ActionPaneTab/Group/Button

There may be one or more ActionPaneTabs/Groups/Buttons with the same letter for a Keytip.  To execute a duplicate Keytip, keep pressing the letter until focus is on the one you want and then hit Enter.

Standard Forms

Accelerator Keys
Task Description
Create a new record
Save current record
Delete record(s)
Close the active window (saving changes)
Close the active window (cancelling changes)
Close the active window from SDI form (saving changes), Close the application from the main window
Print auto-report associated with current form
Select all rows in the currently active data source (works regardless of whether you are in a grid or not)
Alt+Down Arrow
Drops down a lookup field or drop-down-list
Menu + G
Go to Main Table Form
Activate the form’s menu bar (File, Edit, etc.)
Enter or Tab
Move to the next field

Enter will skip over buttons and will move to fields across tabs.

Tab will navigate to buttons and will always stay on the same tab page.
Shift+Enter or Shift+Tab
Move to the previous field (same caveats as previous row)
Go to the first entry field in the form
Go to the last entry field in the form
Ctrl+Page Up
Go to the previous field group
Ctrl+Page Down
Go to the next field group
Open context menu for current field
Page Up
Move to the previous page of records
Page Down
Move to the next page of records
Move to the first record
Move to the last record
Refresh all data sources on the current form
Restore only the active record

Filtering Commands

Accelerator Keys
Task Description
Find by Field (clears previously applied filters)
Filter by Field (appends to previously applied filters)
Filter by Selection
Open Advanced Filter window
Clear all filters
Within a Grid

Enable/Disable Filter by Grid
Ctrl+Up Arrow
From a grid cell, move focus to the Filter by Grid input cell for that column (Filter by Grid must be enabled)
On a ListPage

Focus the Quick Filter (“Type to filter” area)
Focus in Quick Filter

Execute/Clear Quick Filter
Down Arrow
Drop down the Quick Filter’s Field Chooser menu

Actions Specific to Grids

Accelerator Keys
Task Description
Export to Excel (only contents of grid)

1)      If Single cell is selected, copies just that cell contents
2)      If the entire row is selected or multiple rows are selected, copies values for ALL fields on all the rows (including those off the grid)
Up/Down Arrow
Move focus to the next/previous record, unselecting the current record
Ctrl+Up/Down Arrow
Move focus to the previous/next record, leaving the current record marked and not marking the newly focused record
Shift+Up/Down Arrow
Move focus to the previous/next record, leaving the current record marked and marking the newly focused record
Mark all records between the currently selected record and the first/last record
Editable Grids

Mark the current record, leaving previously marked records marked.
Read-only Grids
(such as on a ListPage)

Execute default action (only on ListPage grids, usually opens the corresponding details form for selected record)

For, Non-ListPage forms, Enter will move to the next field
Left Arrow
Move focus one field to the left.  If focus is already in the left-most column, hitting Left Arrow will “mark” the row.
Right Arrow
Move focus one field to the right.
Mark the current record, leaving previously marked records marked.
Mark all records between the current record and the top-most marked record (or the top record if none are marked), leaving previously marked records marked.
Shift+Page Up/Page Down
Mark all records between the currently selected record and the previous/next page of records.


  1. Hi,

    Please share some interview questions for Trade & Logistics functional....


  2. what is difference between cluster and non-cluster indes in ax

  3. madhu its good question-
    cluster index-
    -it is one in the table
    -it define order of records in which it physically stored
    -define logical order to store data in table
    -by default non cluster index is enabled for table

    for example if u create cluster index and non cluster index on emplid for Empl Table
    and fetch data through select statement, it will come in order to emplid for cluster index

    1. what are the classes tables forms for SO PO Inventory Management, pls explain this question and also u have any material for T&L Interview questions

    2. For the sales cycle(SO) following tables are used:
      Sales Confirmation:CustConfirmJour, CustConfirmTrans
      Sales Packing Slip:CustPackingSlipJour, CustPackingSlipTrans
      Sales Invoice:CustInvoiceTable,CustInvoiceTrans,CustTrans
      and Classes--
      SalesFormLetter_Invoice etc.

      and similar to SO we can find out PO objects.

    3. Hi Jitendra,

      I think u have missed SalesFormLetter_ PickingList and tables for that are (WMS-Warehouse Managemt System)WmsPickingRoute , WmsPickingTrans.
      The process for SalesOrder is as following:

      SalesFormLetter -> is the Parent Class
      SalesFormLetter_ Confirm
      SalesFormLetter_ PickingList
      SalesFormLetter_ PackingSlip
      SalesFormLetter_ Invoice.

      Hope It ll help.

      NandaKishore Varre.

  4. Thanks for the article, excellent stuff.
    I have seen interesting Interview Questions and Answers here.

  5. what are the tables classes forms in SO PO Inventory management

  6. what is the diff b/w views and temporary tables

    1. View is mapping on multiple tables. temporary table could be table in memory for temporary transactional purposes.

  7. what are the advantages of using table inheritance

  8. very informative ,Thanks for sharing