Saturday, 21 March 2015

AIF Service Common Usage Scenarios in ax 2012

Custom Services: Use to expose very simple business entities as a service, or to expose custom logic from Microsoft Dynamics AX.
          This Service enables developers to expose any logic written in x++ through a service interface. The support for Custom Services was introduced in Dynamics AX 2009, but it was limited to some specific data types. In Microsoft Dynamics AX 2012 with the integration of Windows Communication Foundation (WCF), attributes can be set on the Data Contract class to make them serialize and De-serialize across the network connection.
·                To expose a custom x++ logic. 
·                Say, you have a custom module and you want to expose some logic/code to your custom application.

Document Services: - Use to expose business entitles with varying degrees of complexity, or to support medium-to-complex integration scenario involving business entities.
                This was introduced in Microsoft Dynamics AX 4.0. It enables the user to exchange data between internal and external systems via XML documents. 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 the XML that is sent across a network. For synchronization of Document Services, there are two new entities introduced in Dynamics AX.
§  getKey
§  getChangedKey
Developers need to extend these functions to enable their own scenario.

§  Document services are services which expose a business entity. For example, Customer, Vendor, Employee, Sales Order.
§  You can Map the business entity using Query and run through Document Service Wizard to build the web service and perform CRUD operations.

System Service: System services are Windows Communication Foundation (WCF) services that are included with Microsoft Dynamics AX. These services enable clients to interact with and retrieve system information. 
             This is a new Service category introduced in Microsoft Dynamics AX 2012. This type of Service is not customizable and not mapped to any X++ code. There are three types of Services that come under System Services:
§  Query Service
§  Metadata Service
§  User Session Service
All these Services have unique functionality that will be discussed in my next post.

§  System services are kind of utility services.
§  Up and running when AOS starts.
§  Can be used for interactive clients 
§  Build Ad-hoc query

System Service: Query Service: - Use to implement read operations for any Microsoft Dynamics AX, ad-hoc, or existing AOT query.


  • Enables you to issue a query for data without using an Application Integration Framework (AIF) document service or creating a custom service. The query service returns data in a dataset and implements a paging mechanism so that you can manage queries that return large amounts of data.
When you call the query service, you can specify the query to run in one of three different ways:

    • Static query – A query that is already defined in the AOT under the Queries node.
    • User-defined query – A query that is defined by using the QueryMetadata class which is found in the metadata service.
    • Dynamic query – A query that is defined in an X++ class that extends the AifQueryBuilder class. All query logic resides in the query builder class
System Service: Metadata Service: - Use to retrieve information about the structures in Microsoft Dynamics AX for a client application. For example, if you want to return information about a table such as what indexes exist on that table, you can use the metadata service.

Enables you to retrieve information about elements in the AOT. You can retrieve metadata for labels, menus, menu items, tables, extended data types, data types, enums, queries, web menus, web menu items, info parts, cues, dimensions, form parts, web controls, service groups, and services. The metadata service should be used when you want to return information about the structures in Microsoft Dynamics AX to a client application. For example, if you want to return information about a table such as what indexes exist on that table, you can use the metadata service.

System Service: User Session Service: - Use to retrieve information about the user session.

Enables you to return information about the current Windows user. You can return information such as the user’s default language, Default Company, default company time zone, permissions to access-controlled items, and so on



Adapter:

HTTP adapter – This adapter provides for synchronous message exchanges by using an HTTP or HTTPs transport.

NetTCP adapter – This adapter provides for synchronous exchanges by using WS-* standards support over the Transmission Control Protocol (TCP) transport. This adapter corresponds to the WCF-NetTcp binding in Windows Communication Foundation (WCF).

MSMQ adapter – This adapter provides support for queuing by using Message Queuing as a transport. Message Queuing is also known as MSMQ. Message Queuing is a type of asynchronous communication. This adapter corresponds to the WCF-NetMsmq binding in WCF.

File system adapter – This adapter provides support for the asynchronous exchange of documents through file system directories.

Windows Azure Service Bus adapter – This adapter enables publishing AX 2012 services by using the Windows Azure Service Bus. The Service Bus provides the messaging channel for connecting your cloud applications to your on-premises applications, services and systems.

This adapter requires Internet Information Services (IIS) 7.5, authentication for inbound Service Bus messages, and registration of a Service Bus namespace. Cumulative update 6 or later for AX 2012 provides classes to

support the required authentication in addition to the infrastructure to register a Service Bus namespace from AX 2012.

http://axwonders.blogspot.com/2012/01/microsoft-dynamics-ax-2012-services-and.html

https://community.dynamics.com/ax/b/axwonders/archive/2012/01/24/microsoft-dynamics-ax-2012-services-and-application-integration-framework-aif-architecture

http://ax2012aifintegration.blogspot.in/2015/06/microsoft-dynamics-ax-2012-class.html

https://social.technet.microsoft.com/wiki/contents/articles/33257.biztalk-server-lob-integration-dynamics-ax.aspx

1. AIFGatewayReceiveService – this service communicates with the adapters, receives messages from their external source locations, and puts them into the gateway queue to wait for processing.
2. AIFInboundProcessingService – this service takes incoming messages from the gateway queue and then processes the documents according to the rules that are specified by the inbound port.
3. AIFOutboundProcessingService – this service processes an outbound document according to the rules that are specified by the integration port and then adds the envelope XML code to create a fully-formed AIF message. The service then places the message into
the gateway queue to send.
4. AIFGatewaySendService – this service sends the messages to the correct external destinations.


How documents are exchanged
AIF provides an extensible framework for the exchange of XML documents with external systems. The framework supports both synchronous andasynchronous transports.
In synchronous mode, requests are tightly coupled to responses, which means that the submitter of the request must wait for a response from AIF before proceeding.  In this case, AIF does process the request immediately and then sends a response.

In asynchronous mode, however, requests are placed into a queue, called thegateway queue. Queued messages are processed at a later time and AIF sends a response when processing is completed. In this case, responses are delayed, but note that large volumes of messages can be processed more efficiently, and message processing can be controlled by changing various configuration settings.




  1. Service operation

    Service operations are class methods that expose any business logic in a service. To define a service operation, add the SysEntryPointAttribute attribute at the top of a method. Any existing method can be converted to a service operation by adding this attribute at the beginning of the method. 
    &absp;
    Note:
     The service operation name cannot include Create, Find, Update or Delete. These names are reserved to be used by AIF Document services. AX will make an exception when they are called from a client.
  2. SysEntryPointAttribute

    SysEntryPointAttribute defines the authorization checks that will be performed when a method is called from the server. This attribute must be set on all the service operations. If the value is “true”, it means that authorization checks will be performed for all the tables accessed in the method and if set to “false”, no authorization checks will be performed.
  3. AifCollectionTypeAttribute

    AifCollectionTypeAttribute is used when you want to use a collection as a return type or in a parameter of a service operation. This attribute defines the type of data a collection contains.



No comments:

Post a Comment