Microsoft Dynamics AX Interview Questions with Answers
Microsoft Dynamics AX Interview Questions with Answers
1. Can we 2-tier / 3 tier thick deployment of Dynamics AX is possible?
ANS: No, Only Option available is 3 tier configurations with a thin client.
2. What type of changes are there in Axapta3.0 and AX4.0 related to recid?
ANS: Axapta3.0 recid is 32 bit. Ax4.0 recid is 64 bit.
3. Can we specify the type of operation a user can perform on table depending upon user’s permission in Dynamics Ax 4.0?
ANS: Yes using AOS Authorization table property.
4. What is unit testing framework in Dynamics Ax 4.0?
ANS: Microsoft Dynamics AX now has an integrated Unit Test Framework built into the MorphX development environment. Unit tests are made as individual test cases. Each test can include a number of tests in the form of assertions. Test cases can be contained within test suite classes or as part of a project in MorphX. Testing can be done from the Unit Test toolbar from which individual test cases, test suites, or test projects can be executed. Test results can be viewed from the Unit Test toolbar that indicates the test passed or failed state, per case and test, and can even include code coverage measures for the classes and methods that are tested.
5. What is the difference in Cross Reference of Ax 3.0 and Ax 4.0?
ANS: Cross-references to other Microsoft Dynamics AX objects are now name-based and no longer ID-based. If you rename an object, you need to update all the references to it.
6. What is the difference in Layers of Ax 3.0 and Ax 4.0?
ANS: The GLS layer has now been merged into the SYS layer. A new SE layer has been introduced. The IDs for the SYS layer are now 1-14000. The IDs for the SE layer are 14001-16000.
7. What is optimistic concurrency control? And how you can enable it for a table in Ax 4.0?
ANS:
• The optimistic concurrency control is enabled for a table by setting the OccEnabled property on a table or calling the DictTable.occEnabledmethod.
• When this mode is enabled, data is not locked from future modification when it is fetched from the database. Data is locked only when the actual update is performed.
8. What type of communication is there between Client and Server in Ax4.0?
ANS: RPC where as in 3.0 it is socket programming.
9. What type of changes are there in Axapta3.0 and AX4.0 related to recid?
ANS: Axapta3.0 recid is 32 bit. Ax4.0 recid is 64 bit.
10. What we need to consider at the time of installation when upgrading?
ANS: check box Start the AOS Windows service as part of installation should be unchecked.
11. Can I have 2-tier installation of AX?
ANS: No. Ax has only 3-tier installation whereas Axapta3.0 supports both 2-tier and 3-tier.
12. What type of communication is there between Client and Server in Ax4.0?
ANS: RPC where as in 3.0 it is socket programming.
13. What type of changes are there in Axapta3.0 and AX4.0 related to recid?
ANS: Axapta3.0 recid is 32 bit. Ax4.0 recid is 64 bit.
14. What are the 4 types of files we need to copy to the standard folder?
ANS: *.aod, *.ahd, *.ald, *.add, *.khd
15. Which file we delete from standard folder?
ANS: axapd.aoi file( Index file).
16. What is Enterprise portal?
ANS: Web enable part of Axapta is called enterprise portal.
17. What business connector enterprise portal uses to connect with SharePoint?
ANS: .Net business connector in AX4.0 COM business connector in 3.0.
18. What type of objects can I expose to enterprise portal?
ANS: Webforms, Webreports, AXreports, Classes. But not AXForms.
19. What are the two types of WebMenuItems in AX?
ANS: URLs and Actions.
20. What type of WebmenuItem we use for WebReports and WebForms?
ANS: URL type.
21. What are two types of WebContentItems in AX?
ANS: Display and Output.
22. Can we see the AX form in EP?
ANS: No. we can’t see the AX form in EP.
23. How many default templates are available for enterprise portal in SharePoint template picker?
ANS: 2 Templates.
• Microsoft Dynamics Enterprise Portal
• Microsoft Dynamics Public
24. Business connector proxy must be a member of which user groups in AD?
ANS: IIS_WPG, SPS_WPG
25. Action type WebmenuItem is used to refer what type of object in AX?
ANS: Classes and Jobs.
26. Output type webContent is used to refer what type of objects in AX?
ANS: Web reports and reports.
27. Display type webContent is used to refer what type of objects in AX?
ANS: Web Forms only.
28. Where can I register the site as EP site?
ANS: In administration->setup->Internet->Enterprise portal->Websites->register website button.
29. What type of weblet we use to display the Axreport or Webreport in EP?
ANS: WebReportweblet.
30. What type of weblet we use to display the Webforms in EP?
ANS: WebFormWeblet.
31. Name few of the Dynamics Ax Weblets.
ANS: WebReportweblet, WebFormWeblet, WebImageWeblet, PageTitleWeblet, WebMenuBoxWeblet, WebMenuWeblet.
32. Where can we find the AX weblets in sharepoint?
ANS: In virtual server gallery.
33. Why we use 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.
34. To enable the Debugging of X++ what should we do?
ANS: Set the debug mode to “When break point” in Development tab in tools-> options.
Check “Enable breakpoints to debug X++ code running on this server” on the server configuration utility to debug the server code.
35. Can we debug the Business connector code running on the server?
ANS: Yes. By selecting the check box “Enable User break points to debug code running on the Business connector”.
36. What type of relationship we can define for an extended Data Type (Multiple ANSwer)
ANS: Single Field Relationship, Conditions on a relationship
37. While implementing ax when it is advisable to setup the virtual companies?
ANS: If you would like to use virtual companies at some time in the future, it is best to set up the virtual companies from the beginning of the implementation of Microsoft Dynamics AX. This avoids problems with combining records into a shared table at some time in the future.
38. Before you can create or modify a virtual company account what must be established?
ANS:
• The application object server that the administrator is connected to must be the only one running. All other application object servers must be shut down.
• Only the administrator who is creating the virtual company account can be connected; only one active client connection is allowed.
• After you create or modify a virtual company account, you must restart the Microsoft Dynamics AX client in order to update the client with the new virtual company account information.
39. How u can check that for a particular SQL call RLS is applied or not?
ANS: Using Database trace. Database trace should be activated for this. For RLS applied statements it will show like this salesLine.select () (RLS)
40. What is the difference between the Client kernel and Business connector kernel?
ANS:
• The Session Manager in the client kernel manages only a single instance--in the Business Connector kernel, it manages multiple instances.
• The client kernel includes forms security, while the Business Connector kernel does not.
41. What Type of cache you will apply for most static data
ANS: Found
42. How can we cache a display method of a table?
ANS: By Using CacheAddMethod
43. When there are common methods across tables, which will be the best option to create?
ANS: Create a map and add those methods and corresponding tables
44. How can we restrict a class to be further extended?
ANS: using Final Keyword for ex: public final class <ClassName>
45. In Axapta can we use tables as classes?
ANS: Yes
46. If yes Then Can we extend the table as similar to class? If yes then how it is possible and if no then why?
ANS: No, Tables are by default Final.
47. What all are methods modifiers?
ANS: abstract, client, display, edit, final, public, private, protected, server, static.
48. I want to put final modifier to new and finalize methods? How can I do this where I need to right this keyword in method?
ANS: You cannot use Final modifiers for the New and Finalize methods.
49. What are optional parameters?
ANS: It is possible to initialize parameters in the method declaration. This makes the parameter an optional parameter. If no value is supplied in the method call, the default value is used.
50. What are local functions?
ANS: With X++, you can embed a function inside a method to create a local function (or local method). The local functions that you can create in X++ are only visible within the scope where they are defined.
51. How u can get the count of methods in a class?
ANS: Using DictClass methods: staticMethodCount and objectMethodCount
52. Which class will be used for ODBC connection?
ANS: ODBCConnection
53. Which are classes are used for data import export?
ANS: SysDataImport and SysDataExport
54. Which is the base class for these two classes above mentioned?
ANS: SysDataImportBase and SysDataExportBase.
55. Which class will be used to get the object names, security key names / count, configuration key name/ count etc.?
ANS: Dictionary
56. Which is the class used for creating / opening files?
ANS: IO
57. How can we get the no of table available in Ax through code?
ANS: Using Dictionary class object tablecnt method.
58. Which class will be used to get the online users info?
ANS: SysUsersOnline
59. Which is the mandatory parameter needs to be passed while creating the ODBC connection class object?
ANS: LoginProperty class object.
60. Which all classes will be used to create a com object for excel application?
ANS: SysExcel, SysExcelApplication, SysExcelApplication_2000, SysExcelApplication_2007, SysExcelApplication_XP.
Note: There are related classes for opening the workbooks, worksheets, range, cells. For Ex:SysExcelCell, SysExcelCell_2000, SysExcelCell_XP, SysExcelCell_2007.
61. How can we get the client computer name through code?
ANS: Class xSession, Method: clientComputerName()
62. Do you know about List class in Dynamics Ax? Why it is used?
ANS: Lists are structures that can contain values of any X++ type. All the values in the list must be of the same type.
63. Which function is used to get current user name in Ax?
ANS: Curusrid();
64. Which function is used to change the company through code?
ANS: ChangeCompany(‘companyName’);
65. From which table u can get the user permissions stored in Ax?
ANS: AccessRightList table.
66. What is the use of VirtualDataAreaList table?
ANS: This table stores the list of virtual companies available in Dynamics Ax.
67. What all are aggregate functions available in select statement of X++?
ANS: sum | avg | minof | maxof | count
Options = [(order by | group by) FieldIdentifier [ asc | desc ]
68. What is the use of update method?
ANS: Updates the current record with the contents of the buffer.
69. When one should use doUpdate?
ANS: The doUpdate method should be used when the update method on the table is to be bypassed.
70. What is the difference between X++ and SQL sort command in select statement?
ANS: X++ does not allow group by and order by clauses in the same select statement. This means that explicit sorting is not possible. SQL does allow group by and order by clauses to be in the same statement.
71. What should we use to increase performance while inserting, updating or deleting records from a table?
ANS:
• RecordSortedList: Allows you to insert multiple records in one database trip. Use the RecordSortedList construct when you want a subset of data from a particular table, and when you want it sorted in an order that does not currently exist as an index.
• RecordInsertList: Allows you to insert multiple records in one database trip. Use the RecordInsertList construct when you do not need to sort the data.
• insert_recordset: Allows you to copy multiple records from one or more tables directly into another table on a single database trip.
• update_recordset: Allows you to update multiple rows in a table on a single database trip.
• delete_from Allows you to delete multiple records from the database on a single database trip.
72. Do forms support Inheritance?
ANS: No
73. What is must to be declared for a control to get accessed anywhere in the form?
ANS: In the control properties set the Auto declaration property to yes.
74. What should we do if we need last record to be active when a form is opened?
ANS: In properties of datasource table set the StartPosition property as last.
75. What are the different link types available?
ANS:
• Active
• Delayed
• Passive
• InnerJoin
• OuterJoin
• ExistsJoin
• NotExistsJoin
76. What are the three basic nodes found in Forms Node?
ANS:
• Methods
• Data Sources
• The Data source defines the interface between the form and the database.
• Design
• The design of the form defines the interface between the form and the user and controls the layout and presentation of the data.
77. What for Formrun Kernel class and FormDataSource Kernel Class are used?
ANS:
• Formrun Kernel class is used to control the Startup and Shutdown of the form.
• FormDataSource Kernel Class contains the methods which are used for Displaying, Validating and Updating data in forms.
• The objects for each data source and data fields defined are inherited form which kernel class?
• (Data Source)FormDataSource which has methods related to displaying, validating, and updating data.
• (Data Field)FormDataObject which has methods related to field specific navigation (filter, lookup, jump to main table etc.), validating and modifying the field.
78. What properties are to be used and set in a form for automatically creating a new record in it?
ANS:
• Set the InsertIfEmpty Property to yes if the forms do not find any data
• Set the InsertAtEnd Property to yes if the user browses past the last record in the data source
• (Note: If the user browses past the last record in the data source)
79. Different Properties of a field.
ANS:
• Allow Edit: This property specifies whether the field can be changed. This property can't remove a restriction imposed by the table field, security settings, or the data source.
• Enabled: The enabled property specifies whether the user can access the control. If the field is disabled it will be grayed and the used can not give focus to the control.
• Visible: This property can be used to remove a field from the user interface. The same property exists on the database field and should be specified here if the option should apply system wide.
• Allow Edit: This property specified whether the field can be added to the design by the user. Because the default value is restricted, the default behavior of forms is set so that extra information cannot be added to the form.
In order to add a field to a design, two prerequisites must be met.
• The AllowAdd property on the datasource field must allow the field to be added.
• The container where the field is to be added must allow full user setup
Mandatory: This option determines if it is required to fill in data in this field. The same property exists on the database field and should be specified here if the option should apply system wide.
80. Which is the best practice followed for placing code?
ANS: To program system wide logic which is tight related to a record, we should place the logic in object methods on the table. The table which inherits from the kernel class xRecord has many events we can override and supplement with our logic.
If we are to put the X++ code in the form, try to avoid programming on the design and put our logic on the data source. Many events on the design are very dependant on exactly how the user is navigating the form. The programming on the controls does not take the user possibility to modify the contents of the form into account.
81. What does FormRun.Init method do?
ANS: This method initializes the form and its objects and is the first event we can override in connection with the start up of the form.
82. What is the importance of super call method in FormRun.Init?
ANS: Never remove the super () call from this method, as this removes the initialization of all the objects.
83. How to do manual initializations in FormRun.Init?
ANS: If you want to make some manual initializations this is typically placed in this method. This could include the following tasks:
• Verification of the contents of the args-object received
• Initialization of supporting classes
• Dynamically changes to the design
84. What is FormRun.Close method used for?
ANS: This method shuts down the form. If we have some cleanup in connection with finishing the execution of the form, this will be the place.
85. What is FormDataSource.Init method used for?
ANS:
• This method initializes the data source and is called from the super () of FormRun.Init (). The method will only be called once when the form is opened.
• The main task for this method is to initialize the query used for fetching data.
• If we want to modify or replace the query automatically created by the form, this should be done after the super () call of this method.
86. FormDataSource.InitValue Method?
ANS:
• This method is used to initialize a new record with default values. The super () of this method calls the corresponding method on the underlying table, which in turn invokes the record template functionality.
• If we have some initialization which should apply system wide, you should place the code on the table.
87. FormDataSource.Active Method?
ANS:
• This event is called when a new record becomes active in the data source and is typically overridden to change properties which depend on the contents of the current record:
o Modify access rights to the data source
o Modify access rights to the fields
o Enable/Disable buttons
88. Where is the specification of fields stored in report?
ANS: AutoDesignSpecs
89. How many generated designs we can have in a report design?
ANS: 1
90. What is the sequence of events while a report is generated?
ANS: Init, Run, Prompt, Fetch, Print
91. If AutoHeader property of the query is set to Yes, where will this get reflected?
ANS: Report
92. Through overriding of which method of report we can restrict the user to see only certain records which are not possible through the range method?
ANS: Fetch
93. Through overriding of which method we can hide the columns or parts of report?
ANS: Execute Section
94. If the design is similar for more than one report what is the best solution in developing such reports?
ANS: Use Report Templates.
95. What are query criteria operators?
ANS: = =,!=, >, <, ..(Range)
96. Name few X++ classes/Coreclasses related to Queries?
ANS: Query, QueryRun, QueryBuildRange, QueryBuildDataSource, QueryBuildLink.
97. How many sorting fields we can add to a query?
ANS: we can add many. But adding many will slow down the query performance.
What else you need to download and keep it as pdf.
Download or view as pdf link::
http://1drv.ms/1MljGqm
Happy Infra!
Thanks & Regards,
Mail ID: pandit.umesh@hotmail.com