1. What are the new features of D365?
Here the answers are based on the comparison with Microsoft Dynamics AX version.
2. What is Dynamics 365 Finance & Operations?
Microsoft Dynamics 365 is a cloud based business platform developed by Microsoft, which is designed as a cloud based Enterprise Resource Planning (ERP) by Microsoft on Azure Platform.The browser based Microsoft Dynamics 365 Finance & Operations which replaces the previous version on premise version Dynamics AX.
3. What is a Model in D365?
Creating model is a mandatory thing for any sort of customization in Dynamics 365. A model is a design-time concept. A particular model can contain multiple Visual Studio projects. Therefore you can say that a model is a collection of projects and a single project can have all or subset of elements from originating model. However, association of a project is only with a single model. It is basically a unit of development/customization. Metadata for models is stored locally on an XML file called a descriptor XML.
Model = Collection of Components inside a Solution.
Examples of Models are : Payroll Model, Warehouse Management Model etc...
4. What are the different types of Tables used in D365?
Microsoft D365 operates with normal databse tables and temporary table based on the requirement in a project, here we have 3 different types of tables.
Regular tables are normal standard physical tables in SQL server database.
TempDB tables are the physical temporary tables held in the SQL server database.
InMemory tables are temporary tables which are held in the memory and written to local disc after reaching a certain limit of the system especially in Application Object Server (AOS).
5. Difference Between TempDB and InMemory Tables?
Usuallay TempDB temporary tables are faster than InMemory Temporary Tables
TempDB temporary tables are maintained in SQL Server database.
TempDB temporary tables supports more features from standard physical tables.
TempDB temporary tables supports More powerful joins with physical tables are possible.
InMemory temporary tables are instantiated in the active memory of the tier the process is running on. The process can run on the client tier or the server tier. The objects are held in memory until the size reaches 128 KB. The dataset is then written to a disk file on the server tier.
You can use InMemory temporary tables when the amount of data is small and Microsoft SQL Server round trips should be avoided.
Both InMemory and TempDb tables can be used as data sources on forms.
6. What is the concept of extension in D365?
An extension is a way to add functionality to an object in D365FO without modifying the base code of that object. Your extensions are compiled into their own DLLs, which are separate from the D365 base system libraries.It also makes easier for Microsoft to patch their SYS layer code.Microsoft has added to allow customization without allowing the base code to be changed, because they plan to not allow any overlayering of SYS layer code.
Examples : Adding one remarks column in the customer master form.
7. What is Chain Of Command (CoC) in D365
Chain of Command (CoC) is the term that describes how we customize, or extend, base Microsoft code in Microsoft Dynamics 365. Microsoft’s base objects and code cannot be changed directly in D365. However, we are able to make changes to separate objects and classes that are then combined with the existing base object to form the final version.
[ExtensionOf(classStr(CustTable))] public final class CustTable_Extension { public display str doSomething(int arg) { // Part 1 var s = next doSomething(arg + 4); // Part 2 return s; } }
8. Why Microsoft implemented CoC?
In the previous versions 2012 and before a programmer can change the Base Microsoft's source code directly from the developing environment. Microsoft identified the problem and from the next version , Microsoft re-architected the code and made it that Base Microsoft's source code and Objects cannot changed directly in D365.
Microsoft releases new features and hot fixes as a part of product improvement. In this cases the new code should be merged with customized code, depending on the depth of the customization the complexity of the merging process will increase. So Microsoft found this difficulty and removed the feature. This benefits the users to update the hot fixes and feature updated of the product from Microsoft very fast, secure and safer than ever could before.
9. What are Delete Actions in D365?
Normally a delete actions come in to picture when an user is trying to delete a database record. Delete actions are used to maintain the data integrity and the consistency of database. At the time of development ,a developer has to take care about the delete actions to implement in the project. Actually a delete action is performed when related table are existing in the project and deleting records from any table has to restricted for keeping the database consistency.
In Microsoft Dynamics 365 Finance & Operations, there are four types of Delete Actions.
If you are choosing None,As the name shows None means Delete Action is disabled .In this case while deleting records from the table nothing will occur on the related table.
Setting up the Delete Action property to Cascade extends the functionality of Tables's delete method. Cascade Delete action deletes all the records in the related tables where the primary key equivalent to the primary key of the parent table. which means that deleting record from parent table also deleting the child records from the child table where primary key of parent table matches the foreign key of the child table without any warning.
Setting up the Delete Action property to Restricted also extends the functionality of tables's delete method. In this case what the system checks is that while deleting a record from the parent table first the system checks whether any related records exists in the related child tables, if exists the system will generate a warning message.This warning message will generate only if the delete action is performed through user interface.If you are trying to delete through X++ code this will delete only the records from child table.
Setting up the Delete Action property to Cascade + Restricted also extends the functionality of tables's delete method. In this case while deleting a record from parent table will show a warning and if we delete the record from the parent table also delete the related child records from the child table.
10. What is EDT and Base Enum?
EDT stands for Extended Data Type and Base Enumerations (Enums) are data types which are created and managed in the development environment.Extended data types can be primitive data types like integers, strings , real numbers and so on. EDT extends the original properties of the data type from which they inherit in addition some extra properties are added.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.
Example for EDT : EDT Real, EDT Date,EDT String etc.
Base enums are a fixed set of values, integers in the database, which have a name (as referenced from X++ code) and a label (visible to users and translatable into different languages). They cannot be added to in real time by the application, only by developers and often with significant overhead, hence how they are fixed. You can have up to 255 values for Base enums. The integers in the database will take on the values 0 through 254.
The Application Object Tree (AOT) in Finance and Operations apps contains many existing EDTs and base enums that can be extended for use in your project, or you can create new data types. This module will focus on creating new data types.
Example for Base Enum : You can add one Base Enum for holding the gender of employee, you can create a Base Enum and rename to BEGender and add new elements with name "Male" & "Female" with integer values "0" & "1".
Object Oriented Programming is a programming concept that works on the principle that objects are the most important part of your program. It allows users create the objects that they want and then create methods to handle those objects. Manipulating these objects to get results is the goal of Object Oriented Programming.Object Oriented Programming popularly known as OOP, is used in a modern programming language.
All modern programming languages like X++, Java, C# etc are working based on the OOP Concept. So to work as D365 developer must learn what are the Core concepts of OOPs. The core concepts of OOPS in D365 are listed belowe.
12. What is SSRS Reports in D365?
Microsoft Dynamics 365FO users uses the SSRS report for the business reporting purposes. In Microsoft Dynamics 365 SSRS reporting feature is one of the significant feature provided by Microsoft for their users. This SSRS report will helps the users to get the right information about the business processes and transactions.
Based on the complexity of the SSRS reports, the development will be divided into two methods,
2. Data Provider Approach.
13 . What is the difference between Package and Model in D365?
A Package is a deployable container. It contains source files (XML files), resources and DLLs. It is similar to Model store of D365. A package can have one or more models. Packages can have references to other packages, just like .NET assemblies can reference each other.You can select one or more packages and create a deployable package, which can be used to move the code from one environment to other. Packages are stored under c:\packages folder. For every model new sub folder will be created under package folder.
Creating model is a mandatory thing for any sort of customization.A model is a design-time concept.A particular model can contain multiple Visual Studio projects. Therefore you can say it is a collection of projects and a single project can have all or subset of elements from originating model. However, association of a project is only with a single model. It is basically a unit of development/customization. Metadata for models is stored locally on an XML file called a descriptor XML.
Model = Collection of Components inside a Solution.
14. Package Model Project and Element Concepts in D365
A Package is a deployable container. It contains source files (XML files), resources and DLLs. It is similar to Model store of D365. A package can have one or more models. Packages can have references to other packages, just like .NET assemblies can reference each other.You can select one or more packages and create a deployable package, which can be used to move the code from one environment to other. Packages are stored under c:\packages folder. For every model new sub folder will be created under package folder.
Creating model is a mandatory thing for any sort of customization.A model is a design-time concept.A particular model can contain multiple Visual Studio projects. Therefore you can say it is a collection of projects and a single project can have all or subset of elements from originating model. However, association of a project is only with a single model. It is basically a unit of development/customization. Metadata for models is stored locally on an XML file called a descriptor XML.
Model = Collection of Components inside a Solution.
A Project is a small, manageable group of Elements means Project is collection of Elements.But in D365 an element can be customized only once they are added to a specific Visual Studio project.Project always belongs to only 1 model. We can use project files to import/export between different instances of D365. The project may only belong to one model.
An Element is the object in the AOT(Application Object Tree) such as tables, classes, forms etc.Elements in Dynamics 365 for Finance and Operations are stored on disk as XML files; these files contain the metadata and source code for the element. The XML files are the unit of Source Control.
AOS server stands for Application Object Server is the second-tier application server in the Microsoft Dynamics AX three-tier architecture.From client environment (normally a Browser) a request is sending to AOS server. AOS will process this request. So all request and responses are processing from AOS environment. If required,this AOS is communicate with Data base server and finally processed response is send back to the client. This is the normal Three tier architecture followed by D365.
16. What are Table Relations in D365?
A table relation associates two tables that contain related information. Usually the primary key field of one table appears as a foreign key field of the related table. The table with the primary key is called the parent table. The table with the foreign key is called the child table.
In Microsoft Dynamics 365 there are
A normal relation is used to specify a relation without any conditions. A normal relation specifies related fields in another table. Multiple fields can also be added in normal relations.
Condition is , Table1.Field = Table2.Field
A Field Fixed Relation is used to specify relation fields to restrict the records in the primary table. Only records that meet the condition are selected. The field fixed is normally an enum.
The condition is ANDed with your relation here
Table.Field = <EnumValue>
A Related Field Fixed Relation is used to specify relation fields to restrict the records in the related table. Only records that meet the condition are selected.The Related field fixed is normally an enum.
The condition is ANDed with your relation here,
<EnumValue> = Table.Field
A Foreign Key Relation is used to specify a correspondence between a foreign key field in the present table to the primary key field in another parent table.
17. What are different type of Menu Items available in D365?
Mainly three types of Menu items available In dynamics 365 F&O,
Use this type when the menu item will open a form.
Use this type when the menu item will opening an SSRS report.
Use this type when the menu item will run a batch job. Or some other process, such as run by a class.
18. What is difference between select & select firstonly statements?
The statement fetches or manipulates data from the database or both fetches and manipulates data from the database.
Results of a select statement are returned in a table buffer variable.If you are going to use only the first record or if only one record can be found, use the firstOnly qualifier. This optimizes the select statement for only one record. It is a best practice to use the firstOnly qualifier in find methods on tables.
19. Differrence between RunBase and RunBaseBatch class – AX 2012 Or Dynamics 365 F&O?
RunBase: To create a job or an Action class – a program that carries out processes, such as accepting parameters from the user and then updating records in the database – you use the RunBase framework.
The framework is implemented by the RunBase application class and supplies many features, which include the following:
· dialog , with persistence of the last values entered by the user
The RunBase application framework runs or batches an operation.
An operation is a unit of work, such as the posting of a sales order or calculation of a master schedule.The RunBase framework uses the Dialog framework to prompt a user for data input.It uses the SysLastValue framework to persist usage data and the Operation Progress framework to show operation progress.The RunBase class is a framework for classes that need a dialog for user interaction and that need the dialog values to be saved per user.
RunBaseBatch: You can design your own batch job by extending the RunBaseBatch class. You can also write code to schedule the batch to run. The batch runs on the Application Object Server (AOS). RunBaseBatch is an extension of RunBase – it adds a support for batch processing.
SysOperation framework is a newer framework replacing RunBase (and its extensions such as RunBaseBatch).
20. What is SysOperation framework in D365?
SysOperation framework (formerly known as the Business Operation framework, or BOF) when you extend Microsoft Dynamics AX by adding new functionality that may require batch processing.
The SysOperation framework replaces the RunBase Framework and provides infrastructure for creating user interaction dialog boxes and integration with the batch server for batch processing.
The purpose of the SysOperation framework is to provide the same capabilities as the RunBase framework but with base implementations for common overrides.
The SysOperation framework handles,
Basic user interface creation
Routing to the CLR execution environment.
SysOperation framework works in a Model-View-Controller (MVC) pattern.
SysOperation framework Classes:
Contract class - SysOperationDataContractBase
UI Builder class - SysOperationAutomaticUIBuilder
Controller - SysOperationServiceController
Service - SysOperationServiceBase
21. What are display methods?
The display method modifier indicates that the method has a return value that can appear on a form or a report. A display method is any method that includes the display keyword as a method modifier. ... Form methods. Form data source methods.
Display methods will help you to show the data from some other table or hardcoded strings.These are not bound controls an we cannot use filter or sorting options.
22. What is Surrogate Key in AX or D365 ?
A surrogate key is a system generated value that acts as the primary key of a table. This value is typically used instead of a set of fields called the natural key which would typically act as the primary key of a table. Microsoft Dynamics AX 2012 or D365 uses RecId as the surrogate key.
A surrogate key value has no meaning to people. A large number generated by the system, such as RecId, could be a surrogate key.
23. How to synchronize Database in D365 ?
There are different methods to synchronize database in D365,
You should always do full synchronization in case you have the below points.
c) any major customization import.
However this should also be done along with the builds of the model.
For this , Select Dynamics 365 > Build Models >
2. Synchronize Database with Project Build
For this set the properties of the sync database in the solution explorer to yes.
3. Synchronization only database
Select Dynamics 365 > Build Models > Synchronize Database.
How to import and export data in D365. ?
You can use data entities or DMF (Data Management Framework) to import and export data in d365 .
Excel addins can also be used .
In fact excel can be used via entities to import in d365 with O365 login.
24. What is Microsoft LCS?
Lifecycle Services (LCS) for Microsoft Dynamics is a collaboration portal that provides an environment and a set of regularly updated services that can help you manage the application lifecycle of your implementations of the Dynamics 365 Finance and Operations apps.
25. Which Programming Language is used in Dynamics 365 F&O?
X++ programming language is used in Dynamics 365 environment. X++ is the object-oriented , application-aware, and data-aware programming language used for developing Dynamics 365 F&O. Which is very similar to C# or Java programming. X++ programming language powers all the items and elements that you can find within this Microsoft environment.
26. What are the Difference between edit and display method?
The display method indicates that ,
Edit indicates Indiactes that,
AOT stand for Application Object Tree. AOT contains all of the definitions of elements that are used to build Microsoft Dynamics 365 Applications, such as classes, tables, forms, Menus and so on.The Application Object Tree (AOT) is a tree view of all the application objects within Microsoft D365FO. The AOT contains everything you need to customize the look and functionality of a Microsoft Dynamics AX application. In the D365FO,
You can find the AOT objects in Visual Studio via View -> Application Explorer.
28. What is multiple inheritance?
Multiple inheritance means one class can have more than one superclass and inherit features from all its parent classes.
For Example :We have three classes class A,class B and class C, where class C inherits the features of class A and B.
29. In X++ Multiple inheritances possible or not ?
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).
For Example : We have three classes class A,class B and class C. In X++ Class C can only extend class A ot class B not both at a time.
30. In X++ Multiple inheritances is not possible ? How to overcome this?
As we know X++ does not support multiple class inheritance. To overcome this problem we use interfaces to achieve multiple class inheritance. With the help of the interface.
Example : class C can get the features of class A and B.