If you're looking for Microsoft Dynamics AX Interview Questions & Answers for Experienced or Freshers, you are at the right place. There are a lot of opportunities from many reputed companies in the world. According to research Microsoft Dynamics AX has a market share of about 6.6%. So, You still have the opportunity to move ahead in your career in Microsoft Dynamics AX Development. Mindmajix offers Advanced Microsoft Dynamics AX Interview Questions 2021 that helps you in cracking your interview & acquire a dream career as Microsoft Dynamics AX Developer.
Ans: Microsoft Dynamics AX is a multi-language, multi-currency, industry-specific, global ERP Product, and one of Microsoft’s Dynamics ERP Family.
Ans: 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 a form. The value in the field can be edited.
Ans: 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 tables, which sharing across all the virtual companies.
Ans: 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.
Ans: Using Final Keyword for ex: public final class
Ans: SysDataImport and SysDataExport
Ans: AccessRightList table.
Ans: In the properties of the data source table set the start position property as last.
Ans: Init, Run, Prompt, Fetch, send, Print
Ans: Query, QueryRun, QueryBuildRange, QueryBuildDataSource, QueryBuildLink
Ans: 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.
Ans: 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.
Ans: 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.
Ans: X++ is the object-oriented programming language that is used in the MorphX environment.
Ans: 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 data source. 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 honor 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.
Ans: 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
Ans: 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:
1. First Tier – Intelligent Client
2. Second Tier – AOS
3. 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.
Ans: 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
Ans: EDT – To reuse its properties. The properties of many fields can change at one time by changing the properties on the EDT. Relations can be assigned to an EDT are known as Dynamic relations.
EDT relations are Normal and Related field fixed.
Why not field fixed – field fixed works on only between two tables 1- 1 relation. And Related field fixed works on 1- many tables.so EDT uses related field fixed.
BaseEnum – which is a list of literals. Enum values are represented internally as integers. you can declare up to 251 (0 to 250) literals in a single enum type. To reference an enum in X++, use the name of the enum, followed by the name of the literal, separated by two colons. ex -NoYes:: No.
Ans: Maps define X++ elements that wrap table objects at run time. With a map, you associate a map field with a field in one or more tables. This enables you to use the same field name to access fields with different names in different tables. Map methods enable you to create or modify methods that act on the map fields.
Address map that contains an Address field. The Address map field is used to access both the Address field in the CustTable table and the ToAddress field in the CustVendTransportPointLine table
Ans: 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).
Ans: Normal Relation: enforce referential integrity such as foreign keys. For displaying lookup on the child table.
Field fixed: works as a trigger to verify that relation is active, if an enum field in the table has a specific value then the relation is active. It works on conditional relations and works on the enum type of data.
Ex- Dimension table
Related field fixed: works as a filter on the related table.it only shows records that match the specified value for an enum field on the related table.
Ans: When the record is entered in the table the record is generated by the kernel.it is unique for each table.
Ans: Primary index: It works on unique indexes. The data should be unique and not null. Retrieve data from the database.
Clustered Index: It works on unique and non-unique indexes. retrieve data from the AOS.
The advantages of having a clustered index are as follows:
1. Search results are quicker when records are retrieved by the clustered index, especially if records are retrieved sequentially along with the index.
2. Other indexes that use fields that are a part of the clustered index might use less data space.
3. Fewer files in the database; data is clustered in the same file as the clustering index. This reduces the space used on the disk and in the cache.
4. The disadvantages of having a clustered index are as follows:
5. It takes longer to update records (but only when the fields in the clustering index are changed).
6. More data space might be used for other indexes that use fields that are not part of the clustered index (if the clustering index is wider than approximately 20 characters).
Ans: By using table relations
1. Using EDT relations.
2. Using morphx and using X++ code(Syslookup class).
Ans: This method calls the system methods to execute.
It is used to instantiating the variables at the parent class. Used for code redundancy.
Ans: All the tables should have at least one find method that selects and returns one record from the table that matches the unique index specified by the input parameters. The last input parameter in a find method should be a Boolean variable called for update or update that is defaulted to false. When it is set to true, the caller object can update the record that is returned by the find method.
Ans: In X++, a new class can only extend one other class; multiple inheritances are not supported. If you extend a class, it inherits all the methods and variables in the parent class (the superclass).
We can use Interfaces instead of multiple inheritances in Ax.
Ans: Yes, but to open the class from the action menu item we have to create the main method of the class.
Ans: new(): used to create a memory to the object.
Construct(): You should create a static construct method for each class. The method should return an instance of the class.
Ans: Application objects such as reports, tables, and methods can run on the application object server (AOS) or the client. An object can also have the RunOn property value set to Called from. Objects set to Called from can run from either the client or server, depending on where the object is called from. This topic describes the RunOn property, tiers that class objects can run on, and hints about using AOSRunMode.
Default value of RunOn for Classes – Called from
MenuItems – Client
Ans: RunBaseBatch class
Ans: – Using RunbaseBatch
Ans: For business logic
Ans: SalesFormLetter and PurchFormLetter
Ans: Methods, DataSources, Design.
Ans: Name, Table, Index, AllowCheck, AllowEdit, AllowCreate,
AllowDelete, StartPosition,JoinSource, LinkType.
Q41. validateWrite() method can be written in the form data source as well as table level, when should we write it in form DS and when in the table. Similar in the case of write() method?
Ans: When we want the validation at the table level means in every form where this table is used, we can write at the table level.
If we want validations at the particular form and it doesn’t affect the other forms where this table was used, then we can use form level validations.
Ans: By creating the variable to the table and with the table variable.methodname()
Ans: Form init(): init is activated immediately after new and creates the run-time image of the form.
DS init(): Creates a data source query based on the data source properties.
The form data source init method creates the query to fetch data from the database and sets up links if the form is linked to another form.
Ans: Form init(), DataSource init(), Form run(), DataSource executeQuery(), canClose(), close().
Ans: FormDataSource – executeQuery() and call this method in the design field of the form.
Ans: Display – for Form
Output – for Report
Action – for classes.
Ans: Pass By Reference: In Pass by reference address of the variable is passed to a function. Whatever changes made to the formal parameter will affect the actual parameters
– Same memory location is used for both variables. (Formal and Actual)-
– it is useful when you required to return more than 1 values
Pass By Value:
– In this method value of the variable is passed. Changes made to formal will not affect the actual parameters.
– Different memory locations will be created for both variables.
– Here there will be a temporary variable created in the function stack which does not affect the original variable.
In the case of pass by value, the change in the sub-function will not cause any change in the main function whereas in the pass by reference the change in the sub-function will change the value in the main function.
Pass by value sends a COPY of the data stored in the variable you specify, pass by reference sends a direct link to the variable itself. So if you pass a variable by reference and then change the variable inside the block you passed it into, the original variable will be changed. If you simply pass by value, the original variable will not be able to be changed by the block you passed it into but you will get a copy of whatever it contained at the time of the call.
Q49. Visual SourceSafe and MDAX 4.0
I have installed Visual SourceSafe version 6 sp6. I want to use it inside AX. When I use the development tools version control – setup system settings and add a database, I receive this error:
“COM object of class ‘SourceDepot.SDConnection’ could not be created. Ensure that the object has been properly registered on computer ‘WMLI009230’”.
If I then use version control – setup – Version control parameters and change the Version control system to Visual Source Safe I receive this error:
“Cannot create an instance of CLSID_VSSDatabase. Check that Visual SourceSafe client is installed properly”.
Do you have any solution to this problem?
Ans:: Yes, there is a solution. You need to use VSS 2005.
Q50. Sub-contract in AX4
I’ve been looking at the new sub-contracting processes in AX 4 for vendor production. This is where a company supplies raw material to a sub-contractor and in a single operation, the sub-contractor makes a finished product or sub-assembly.
I can get the sub-contractor’s route operation updated when I post a purchase order delivery note onto the related sub-contract purchase order. After which I get it to post a route card journal onto that operation, but I still have to post a report as a finished journal (or update report as finished) on the production order. Normally, when you post a route card journal you have the option of posting the report as finished if you’re updating the last operation.
Is there a setup I need to do to accomplish this?
Ans: Unfortunately, it is currently not possible to use the automatic reports as a finished feature when posting a purchase order from a sub-contractor. It simply follows the same rules as for the rest of the automatic journal postings.
Automatic report as the finished parameter is always copied from Production parameters to the header of the route card journal but copied to the journal lines only when a user manually enters the lines. That is the common rule for the route card journal.
Q51. ABC Codes
I am doing data conversion for the item form. There is a field called ABC codes (Items form- others tab). Now, these item codes have values None, A, B, and C. I don’t know what these stand for. I also checked the base enums but they all say just A, B, and C under the properties field.
I have to update the ABC codes for something called “fast pick items” which I guess is a customized value.
Can you give an idea of what this particular value is for?
Ans: ABC is a classification of your inventory based on sales. You have a few different categories in which to rank the items too.
Here is an example from my company:
The A items account for the top 80% of sales performance, B is 15% and C is 5%. Some items may be ranked high on the revenue scale (A), but the margin could be lower (B or C), which would represent an item that we don’t get great margin on, but sell quite a bit of.
I hope the example makes it a bit clearer to grasp.
Q52. User Admin is not connected to employee
I am getting the following error when I click on HR > Journal > Absence > Request.
“User admin is not connected to employee”
What does it mean? What do I do from here?
Ans: You need to check the Administration menu > Users > select Admin user > User relations (button) and finally relate the user to an employee (General tab).
We have a single test server AXTST for Ax 40sp1 with 2 AOS installation and 2 Application files and SQL server 2005 on it with 2 AX databases. We have plans for restarting AXTST every Sunday at 03:50:00 after midnight. But after restarting the server on AOS, server 02 restarted automatically but 2nd server did not restart automatically. I got these error messages instead:
Event ID: 18456
User NT AUTHORITYSYSTEM
Login failed for user ‘NT AUTHORITYSYSTEM’. [CLIENT: ]
Source: Report Server Windows
Event ID: 107
Report Server Windows Service (SQL2005) cannot connect to the report server database.
Event ID: 18456
User NT AUTHORITYNETWORK SERVICE
Login failed for user ‘NT AUTHORITYNETWORK SERVICE’. [CLIENT: 10.1.2.11]
Source: Dynamics Server 01
Event ID: 140
Object Server 01: Fatal SQL condition during login. Error message:
“[Microsoft][ODBC SQL Server Driver][SQL Server]Cannot open database
“Demo5Ax40” requested by the login. The login failed.
Source: Dynamics Server 01
Event ID: 163
Object Server 01: SQL diagnostics: [Microsoft][ODBC SQL Server Driver][SQL
Server]Cannot open database “Demo5Ax40” requested by the login. The login
failed.. Connect information was: Userid = , Database = [Demo5Ax40], Server
= [AXTSTSQL2005], DSN = , Other = 
Source: Dynamics Server 01
Event ID: 110
Object Server 01: Server main session is being destroyed.
Source: Dynamics Server 01
Event ID: 108
Object Server 01: Dynamics Server has been stopped
Can you give me some tips on how to deal with this?
Ans: Try a delayed service restart after the reboot (net stop/net start). It is most probable that the SQL is not accessible in the current time.
I am installing the AX Reporting Server Role, and I have to specify the source database. I have several databases (development, testing, UAT, training) and I want to be able to use them all.
Do I have to install the role on four separate servers?
Ans: There is no need to install the role on separate servers. If you look in Administration > Setup > Business analysis > Reporting services, you will see on the advanced tab, SSRS options AX report folder (defaults to Dynamics), and data source name (defaults to Dynamics Database).
The installer, when you specify the source database, creates the Dynamics Database data source that will contain “data source= SQL server you specified; initial catalog=AX database you specified”.
You can use as many AX databases as you like from a single reporting server, but you have to set up the different AX report folder names and the data source name in each AX environment. You can then create these folders and data sources on the reporting server. Use the ones created by install as a template and you are set to go.
I have two Windows 2003 standard server with the latest updates under one domain. The first server SQLDB01 has SQL server 2000 with sp4 installed and Axapta database. The 2nd server AXSRV01 has an Axapta server and I have two installations on it with Ax 3.0 sp4.
I now want to install the enterprise portal on the server. But when I tried to install at the SQL server SQLDB01 and change the Identity to the local administrator and to TEST in Axapta, I got this error message:
“The Microsoft Axapta Business Connector was loaded without problems. Could not log in to Microsoft Axapta.
This may be due to the wrong or unspecified user name and password for COM-logon in Axconfig.axc, or permissions to the COM-logon do not exist.
Method ‘logon2’ in COM object of class ‘AxaptaComConnector.Axapta2’ returned
error code 0x80004005 (E_FAIL) which means: Microsoft Axapta Error: An illegal directory structure for Axapta has been detected.
The sub-directory V: Axapta Application SP4 in does not exist. Please restart the Axapta Business Connector before logging on.
“V:” is a shared Directory for Application on the AXSRV01 server.
Then I tried to register Enterprise Portal at Axapta server AXSRV01 then “identity” to the local Administrator. I got this error message instead:
“The Microsoft Axapta Business Connector was loaded without problems.
Could not log in to Microsoft Axapta
This may be due to the wrong or unspecified user name and the password for COM-logon in Axconfig.axc, or that permissions to the COM-logon do not exist.
Method ‘logon2’ in COM object of class ‘AxaptaComConnector.Axapta2’ returned Error code 0x80004005 (E_FAIL) which means : SQL error : SQL has reported the following error:
[Microsoft][ODBC SQL Server Driver][Shared Memory]SQL Server does not exist or access denied.. Connect information was: Userid = [bmssa], Database =
Server = [WMSI002561E], DSN = , Other =  You may refer to the error log file for further details. Retry the operation?
Please restart the Microsoft Axapta Business Connector before logging on.
On both servers, the Administrator has the same password.
Can you tell me what might have caused the problem?
Ans: You need to use a domain user account to use the .NET Business Connector. A local administrator account will not do. Check the implementation guide for more information.
The RCT download site somehow disappeared from PartnerSource. I know it was there because I just saw it the other day.
Do you know where I can get it?
Ans: Yes. Try visiting this site to download:
Q57. Microsoft.Dynamics.BusinessConnectorNet.Axapta in BatchRuns
I am successfully using Microsoft.Dynamics.BusinessConnectorNet.AxaptaClassLibrary to connect several independent AX-Installations. Now I am trying to work with BatchRuns to have my Systems connected.
Although I am using <> the Logon Method of my Axapta-Object does not work at all.
The BatchQue and the BatchJob are running under my User Id, so I don’t see any User Rights problem.
Is it a known bug, that the dotNet -Connector cannot be used in BatchRuns?
Do you have any ideas on how to deal with this sort of problem?
Ans: Class BatchRun is instantiated on the server. You will need to check your properties settings.
I installed Dynamics AX 4.0 for evaluation. I am now trying to add a user importing users from the Active Directory.
The user Id was not filled out. When I tried to fill out the user Id manually I noticed that the next button is not enabled. It is enabled only for users with a user ID filled out.
Is there another way to add users?
Ans: Yes, there is. You need to add the user id and check the ‘select’ checkbox; then the ‘Next’ button should become enabled.
I’m trying to create locations in a warehouse (in the usual Aisle-Rack-Shelf sequence), but the Wizard only creates Aisles. I don’t know if I’m missing something or the wizard is broken in AX4.
Can you help me out?
Ans: I don’t think anything’s wrong with the wizard.
In the warehouse, look for tab Location names. For instance, Rack, Level, and Bin/Position should be switched on. Then the wizard will create locations as well.
Is it possible to delete the bill of material records using the excel import/export tool?
If not, what would be my best option?
Ans: Your best option would be to use the SQL table browser or SQL code to delete the BOM.
Q61. Changing the language in Axapta 4.0
How can we change the language in Axapta 4.0?
Ans: You can change the default language by a user in the Tools/Options/Language and change the language. Your option is limited to the languages that you have purchased – under the language tab in the License information.
You have to close and re-open AX for the language change to take effect.
The default language codes (for sending out invoices, etc.) are set up under the Company information in the ‘Other tab’.
I’ve recently upgraded a 3.0 SP4 Application to a 4.0 SP1. Everything went fine, but when users (or me, the Admin user) try to post a Purchase Order or a Sales Order or any type of document doesn’t matter, this message is displayed:
“Your Microsoft Dynamics AX user session is no longer valid. Logoff your computer and logon again. If the problem persists, contact your Microsoft Dynamics administrator.
Tracing code shows that error appears in the Formletter.dialog() method, not always in the same line code.”
Can you help me with this?
Ans: You will need to verify if you have Windows Server 2003 hotfix 913184 for the Remote Procedure Call engine. If you don’t have it, you need to get it to fix your problem.
Do you know how to invite multiple attendees for an activity in the CRM-module of AX when these attendees are not fellow employees?
Ans: Yes. It is possible to do this in AX 4.0 where you press the attendees’ button on the activities form and add attendees by adding records. The only field required is the attendees’ e-mail addresses.
In AX3.0 and earlier versions, it is not possible. The attendees’ functionality is primarily a quick way of generating activities for your co-workers.
On which tables does synchronization have the highest probability of failing?
The error message is as follows:
“Error Synchronize cannot execute a data definition language command on ().
The SQL database has issued an error.
Error Synchronize cannot execute a data definition language command on ().
The SQL database has issued an error.
Error Synchronize cannot execute a data definition language command on ().
The SQL database has issued an error.
Error Synchronize Problems during SQL data dictionary synchronization.
The operation failed.
Info Synchronize failed on 3 table(s)”
Can you enlighten me concerning this matter?
Ans: Yes, definitely. On the SQL administration form, verify the Check / Synchronize option under Table actions is activated. This should fix the error message that you got.
Q65. Maintenance Strategy
We recently went live with Axapta 3.0 and feel the need to develop a strategy for maintaining our data.
What are considered the best practices for data maintenance? When and how often do you perform the following?
-Database Log Cleanup
Plus, are there any other tasks deemed important to properly maintain the database?
Ans: These are the standard maintenance strategy:
This is done once a year after the end of year activities.
> Consistency Checks
It is a good practice to run checks after you set up new static data, for instance, customers, items, routes, etc.
This is needed only when upgrading the data structure; for instance tables or EDTs.
> Database Log Cleanup
There must be some reason why you are logging and what. You should determine this issue according to your company's security policy.
> Performance Analysis
This is done the first time when you go life and then once a year after the end of year activities and re-indexing.
Meanwhile, other tasks deemed important to proper database maintenance include the following:
– Watch that your backups do not fill the data or log disk.
– Take backups also from the document directories.
– Run SQL trace on selected users to find long-running queries.
– Monitor reloading time and count of records of entire table cached tables.
I installed 2 instances of AX40 on one computer.
Can I rename one of the instances?
Or do I have to uninstall the instance first, then reinstall and assign the new name?
Ans: You have to uninstall the instance and reinstall it with the new name. AOS in AX 4.0 is now a service and services cannot be renamed.
|Microsoft Dynamics AX||Microsoft Dynamics CRM|
|Microsoft Dynamics 365||Microsoft Dynamics SL|
|Microsoft Dynamics NAV||Microsoft Dynamics GP|
Ravindra Savaram is a Content Lead at Mindmajix.com. His passion lies in writing articles on the most popular IT platforms including Machine learning, DevOps, Data Science, Artificial Intelligence, RPA, Deep Learning, and so on. You can stay up to date on all these technologies by following him on LinkedIn and Twitter.