Microsoft Dynamics 365 supports the following three kinds of services: Document services, Custom services, System services.
Document services are query-based services that can be used to exchange data with external systems by sending and receiving XML documents. These documents represent business entities, such as customers, vendors, or sales orders.
Document services are generated from a query that models the business entity. For example, a customer query will run the Document Service Generation Wizard to create the service artifacts. Document services include logic to handle the details of how a query will be serialized or de-serialized from XML that is sent across a network. For example, the document services framework can serialize and de-serialize dimension attributes and perform natural key substitution. The framework deals with the polymorphic nature of queries, the date effective fields, and so on. All the data-layer improvements have been handled in the framework. The creator of a document service only has to make sure that the business entity is properly mapped to the query object. All artifacts produced in a document service are customizable so that a developer can further fine-tune the functionality based on the requirements.
Custom services can be used by developers to expose any X++ logic, such as X++ classes and their members, through a service interface. Custom services in Microsoft Dynamics 365 allow developers to expose any X++ logic through a service interface. For any complex type, developers were required to write custom serialization and de-serialization logic. Microsoft Dynamics 365 provides standard attributes that can be set on the DataContract class and its members to make them serialize and de-serialize data that is sent and received across a network connection. Many predefined types, such as Collections and Tables, are also supported. This feature enables you to expose any existing X++ class and its members as part of a service operation without writing new code, just by setting a few attribute values. The syntax is similar to using data contract attributes in WCF.
System services are provided by Microsoft Dynamics AX. System services include the Query service, the Metadata service, and the User Session service. Query Service exposes APIs to execute any Application Object Tree (AOT)–defined or ad hoc client-defined query against the system. The results are returned as an ADO.NET DataSet object. This feature is especially useful in creating Microsoft .NET Framework applications that use controls that can be bound to the returned result. Metadata Service enables clients to get information about some key metadata in the AOT. Clients can through this service retrieves information about tables, classes, forms and menu items. The third system service are User Session Service and allows the caller to retrieve information about the calling user. This includes details such as the user’s company, time zone and language.
With this range of services, it is possible to handle complex integrations in a flexible and standardized way.