1.What is Microsoft Dynamics AX?
Microsoft Dynamics AX is a multi-language, multi-currency, industry-specific, global ERP Product, and one of Microsoft’s Dynamics ERP Family.
2.Explain the difference between edit and display method?
•Display: 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: 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.
3.Explain the 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 tables, which is shared across all the virtual companies.
4. Why do 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.
5. 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.
6. 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.
7.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.
8.Define X++
X++ is the object-oriented programming language that is used in the MorphX environment.
9. Differentiate 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 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.
10. Define AOT?
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.
11. 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.
12. Difference between temp table and container?
•Data in containers are stored and retrieved sequentially, but a temporary table enables you to define indexes to speed up data retrieval.
•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.
•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.
13. Definition and use of Maps, how AddressMap (with methods) is used in standard AX?
•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.
14. What is the difference between Index and Index 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).
15. How many types of data validation methods are written on the table level?
validateField(),validateWrite(),validateDelete(),aosvalidateDelete(),aosvalidateInsert(), aosvalidateRead(),aosvalidateUpdate().
16. How many types of relations are available in Axapta, Explain each of them?
•Normal Relation: It enforces referential integrity such as foreign keys. For displaying lookup on the child table.
•Field fixed: This 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. For Example: Dimension table
•Related field fixed: It 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.
17. When the record is generated, what is its utility?
When the record is entered in the table the record is generated by the kernel. It is unique for each table.
18. How many kinds of lookups can be made and how?
By using table relations
•Using EDT relations.
•Using morphx and using X++ code(Syslookup class).
19. How many types of Delete Actions are there in Standard Ax and define the use of each?
•None
•Cascade
•Restricted
•Cascade+Restricted.
20. What is the function of super()?
This method calls the system methods to execute. It is used to instantiating the variables at the parent class. Used for code redundancy.
21. Utility and use of find method?
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.
22. What are the different types of Table groups defined on table properties?
•Miscellaneous
•Parameter
•Group
•Main
•Transaction
•WorkSheetHeader
•WorkSheetLine
23. Multiple inheritances possible or not, if not how can we overcome that?
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.
24. Do we need to write the main method, give reasons?
Yes, but to open the class from the action menu item we have to create the main method of the class.
25. What is the difference between the new & construct methods?
•new(): It is 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.
26. Which class is called when we create a SO/PO?
SalesFormLetter and PurchFormLetter.
27. What is the basic structure of a form? Properties of a form data source?
Methods, DataSources, Design. Name, Table, Index, AllowCheck, AllowEdit, AllowCreate,
AllowDelete, StartPosition,JoinSource, LinkType.
28. 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?
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.
29. How can we call table level methods from form DS (similar methods)?
By creating the variable to the table and with the table variable.methodname()
30. What is the difference between form init() & DS init()?
•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.