Application Integration Framework Overview

59
Integrating Other Applications with Microsoft Dynamics AX Dynamics AX 4.0 Other Versions 0 out of 5 rated this helpful - Rate this topic The ability to integrate Microsoft Dynamics AX with other systems inside and outside of the enterprise is a common requirement. There are a variety of technologies you can use to integrate Microsoft Dynamics AX with other applications and exchange data, which include the following: Application Integration Framework (AIF) – Exchanges data with other internal or external systems. Business Connector – Enables external applications to access Microsoft Dynamics AX data and invoke business logic. Common Language Runtime (CLR) – Provides interoperability with external .NET components and enables you to create and execute managed components from within X++ code. The integration components in all these methods interact with Application Object Server (AOS) as shown in the following figure. Therefore, integration between Microsoft Dynamics AX and any other system is done only through AOS.

description

AX 2012 AIF

Transcript of Application Integration Framework Overview

Page 1: Application Integration Framework Overview

Integrating Other Applications with Microsoft Dynamics AX Dynamics AX 4.0

Other Versions

0 out of 5 rated this helpful - Rate this topic

The ability to integrate Microsoft Dynamics AX with other systems inside and outside of the enterprise is a common requirement. There are a variety of technologies you can use to integrate Microsoft Dynamics AX with other applications and exchange data, which include the following:

Application Integration Framework (AIF) – Exchanges data with other internal or external systems.

Business Connector – Enables external applications to access Microsoft Dynamics AX data and invoke business logic.

Common Language Runtime (CLR) – Provides interoperability with external .NET components and enables you to create and execute managed components from within X++ code.

The integration components in all these methods interact with Application Object Server (AOS) as shown in the following figure. Therefore, integration between Microsoft Dynamics AX and any other system is done only through AOS.

Page 2: Application Integration Framework Overview

Reproduced by permission from Greef, Pontoppidan, et al, Inside Microsoft Dynamics AX 4.0 (Redmond, WA: Microsoft Press, 2006)

Microsoft Dynamics AX integration technologies

For more information about the integration technologies available, see Greef, Pontoppidan, et al. 2006. Inside Microsoft Dynamics AX 4.0. 190-192. Redmond: Microsoft Press.

AIF

AIF provides an extensible framework within Microsoft Dynamics AX that enables the exchange of data. Data is exchanged in the form of XML documents. AIF replaces the Commerce Gateway for Microsoft Dynamics AX 3.0 (formerly Microsoft Business Solutions—Axapta 3.0) This framework provides a more secure business-to-business (B2B) and application-to-application (A2A) integration between your system and trading partners or other software systems.

AIF has the following types of exchanges:

Page 3: Application Integration Framework Overview

Adapter-based exchange – An asynchronous document exchange that uses an adapter in Microsoft Dynamics AX and does not require the installation of Microsoft Internet Information Services (IIS). In this type of exchange, documents are moved through the system by using queues. Adapter transports supported by AIF are Microsoft Message Queuing (MSMQ), file system, Microsoft BizTalk Server 2006, and outbound Web services.

Web service exchange – A synchronous document exchange that uses Web services and requires that IIS be installed and configured to send and receive data. Because this type of exchange is synchronous, queues are not used. The Web services are generated automatically from the Microsoft Dynamics AX business logic. Developers with limited Web experience can easily create their own Web services. The Web service exchange differs from the outbound Web service adapter exchange in that it is synchronous, and it can accept requests. In contrast, the outbound Web service adapter cannot.

For more about AIF, see the Application Integration Framework Overview.

Business Connector

The Microsoft Dynamics AX Business Connector enables external applications to access Microsoft Dynamics AX data and invoke business logic. The Business Connector consists of the following components:

.NET Business Connector – Provides interoperability with the Microsoft .NET Framework. Use these components for integration with external applications that are written in managed code and are built with the Microsoft .NET Framework. The .NET Business Connector requires the installation of the Microsoft .NET Framework 2.0.

COM Business Connector - Provides interoperability with Microsoft COM. Use these components for integration with external applications that are compiled to the COM specification.

For more information about the differences between the .NET Business Connector and the COM Business Connector, see Differences Between .NET and COM Business Connectors.

CLR

CLR provides interoperability with external .NET components and enables you to instantiate and execute managed components from within X++ code. This interoperability is achieved with X++ language statements. These statements enable you to instantiate objects within Microsoft Dynamics AX and set them to objects in managed assemblies. In X++, the CLRObject and CLRInterop classes are used to wrap external objects. Calls can be made to external object methods through the object wrappers.

Page 4: Application Integration Framework Overview

Application Integration Framework OverviewDynamics AX 2009 Other Versions

8 out of 15 rated this helpful - Rate this topic

Application Integration Framework (AIF) is the infrastructure within Microsoft Dynamics AX with which you can expose business logic or exchange data with other systems. AIF is comprised of three primary components:

Services - Enable you to expose business logic written in X++ as a service to be consumed by other applications. Within Microsoft Dynamics AX, you can create, customize, and publish services.

Document services - A specific implementation of services in which the Microsoft Dynamics AX business logic is exposed through document services.

Consume Web services - In Microsoft Dynamics AX, you can consume external Web services from your X++ code.

Services

In Microsoft Dynamics AX, you can build a custom service. This is done by creating a class in X++ that follows certain coding rules, defining a service interface by adding a new service to the AOT, and then linking the service interface to the service implementation class. You can then make the class methods available as service operations if the method parameters are serializable.

Document Services

In Microsoft Dynamics AX, document services enable you to exchange data with external systems by sending and receiving data in XML documents. These documents represent business objects such as a customer, a vendor, a sales order, and so on. The AIF document services are designed to be extensible. Developers can create their own document services with the AIF Document Service Wizard or customize the services that ship with Microsoft Dynamics AX.

AIF enables enterprise application integration scenarios with a variety of transports, including the following:

File system Microsoft Message Queuing (MSMQ)

Page 5: Application Integration Framework Overview

Microsoft BizTalk Server 2006 Web services

Within the AIF architecture there are two primary areas of functionality—the transport components and the business logic components. Although transport functionality is separate from the business logic, the two are closely related.

The AIF architecture showing the transport layers above and the business logic layers below.

Transport

The transport components handle the transfer of business logic in and out of the system using XML documents. The elements of the transport layer define how data is exchanged, including the source of the data, the destination of the data, and how it is transported. These elements include the following:

Local endpoints Transport adapters Channels Actions Endpoints Endpoint action policies Endpoint action data policies Queues Global settings Pipeline settings Value mapping

Page 6: Application Integration Framework Overview

The transport layer is implemented in Microsoft Dynamics AX through the forms that you use to configure AIF. To implement a document exchange, you must first configure the transport functionality that ships with Microsoft Dynamics AX for your specific environment and document exchange. For more information about configuring AIF transport elements, see "Configuring and managing AIF" in the Server and Database Administration Help.

Business Logic

The business logic component of document exchange consists of the data, its format, and the business rules that govern the data. This business logic is exposed by two sets of classes—the base classes and the document service classes in the XML Document Framework.

Base Classes

The AifDocumentService, AxdBase, and AxInternalBase base classes are the foundation of the Microsoft Dynamics AX business logic type hierarchy. They are described as follows:

AifDocumentService - The base class of all document service classes. All document services inherit from this class and provide a layer of abstraction over the AxdBase classes. The document service class operations (create, delete, find, findKeys, read, and update) call methods from this class (createList, deleteList, findList, findKeyList, readList, and updateList).

AxdBase – The base class of all Axd<Document> classes. All new documents inherit from this class. The AxdBase class enables you to serialize and deserialize XML to and from tables in Microsoft Dynamics AX. The AxdSalesOrder class is an example of a class that inherits from the AxdBase class.

The AxdBase class exposes a number of methods that support the ability to create and read XML. The create methods create records in the Microsoft Dynamics AX database from XML. The read methods retrieve data from the database and return it as XML. The read and create methods implement their functionality by calling the AxdBaseRead and AxdBaseCreate classes, respectively.

AxInternalBase – This class provides a further level of abstraction for a table and contains functionality such as value substitution and dynamic defaulting. These classes also expose some of the underlying table's functionality such as field and record validation (they call the table validateField and validateWrite methods). The Microsoft Dynamics AX classes that are derived from AxInternalBase typically implement validation, value substitution, and data defaulting.

In AIF document services, the AifDocumentService instance classes expose service operations. When those service operations are called, the request is passed to the AxdBase class. The AxdBase instance classes read and write to database tables by using the AxInternalBase instance classes.

Page 7: Application Integration Framework Overview

For example, to create a sales order, you call the SalesSalesOrderService.create method and pass in a data object that contains one or more sales orders. The SalesSalesOrderService class inherits from AifDocumentService. The create method then calls the AifDocumentService.createList method. The AifDocumentService.createList method deserializes the parameters, determines which Axd<Document> class to reference, and calls the createList method on the AxdSalesOrder class (which inherits from the AxdBase class). The call to AxdSalesOrder saves the sales order to the database using the Ax<Table> classes (which inherit from the AxInternalBase class) such as AxSalesTable, AxSalesLine, and so on.

XML Document Framework

The XML Document Framework is comprised of the classes that implement the business logic for individual documents in Microsoft Dynamics AX. These classes expose internal business logic to external systems and are used to create, read, update, and delete data.

The XML Document Framework contains the types of classes shown in the following table.

Class Type Description Example

Service class

The service class is the point of contact for external systems and exposes service operations to those systems: create, delete, find, findKeys, read and update. These classes provide a layer of abstraction from the Axd<Document> classes, and a service class exists for each Axd<Document> class. The service class inherits from the AifDocumentService class, which in turn accesses the AxdBase class. This is how a service class is linked to an Axd<Document> class.

SalesSalesOrderService

Document objectThe class that represents the entire document and is the root data object.

SalesSalesOrder

Data objects A data object class is created for each data source in the query. These objects are a tree that follows the hierarchy of the query data sources. For example, SalesSalesOrder_SalesLine is a child of SalesSalesOrder_SalesTable and so on. These objects are children of

SalesSalesOrder_SalesTable, SalesSalesOrder_SalesLine, SalesSalesOrder_DocuRefHeader, SalesSalesOrder_DocuRefLine, SalesSalesOrder_InventDim, SalesSalesOrder_MarkupTransHeader, SalesSalesOrder_MarkupTransLine

Page 8: Application Integration Framework Overview

the root data object class.

AOT service node

An entry in the AOT Services node where you can view and modify the properties of the service and its operations.

SalesSalesOrderService

Axd<Document> Class

Presents XML data as an electronic document. As a group, these classes provide a layer of abstraction from the complexity of the underlying tables and enable developers to implement business logic and error handling at the document level. Each Axd<Document> class has an associated query and can represent data from multiple tables. The Axd<Document>class can also be used to generate an XML schema that describes the document based on its associated query.

These classes eliminate the need for an external system that is exchanging data to be aware of the Microsoft Dynamics AX data model or business rules.

Note The Axd<Document> class encapsulates the functionality of a document. The terms "Axd<Document> class" and "document" are therefore often used interchangeably.

AxdSalesOrder

Ax<Table> Class Inherits from the AxInternalBase class and represents a single table in the AOT. As a group, these classes handle all interaction with the base tables and encapsulate any table-specific business logic. Therefore, the calling application does not require information about the Microsoft Dynamics AX table structures or database business rules. The Axd<Document>classes always use the Ax<Table> classes to read or write to the underlying

AxSalesTable, AxSalesLine, AxInventDim, AxDocuRef, AxMarkupTrans

Page 9: Application Integration Framework Overview

tables. Typically, you will find an Ax<Table> class for each data source in the query.

Consume Web Services

Microsoft Dynamics AX 2009 provides the ability to consume Web services from X++ code. Creating a service reference to an external Web service generates a .NET service proxy that enables the service to be available through IntelliSense within X++. The external Web service can be consumed by Microsoft Dynamics AX using the .NET service proxy through CLR interop.

Updating Data With AIFDynamics AX 2009 This topic has not yet been rated - Rate this topic

This topic describes the different ways that you can update data using Application Integration Framework (AIF). AIF services support updating data so companies can implement data synchronization with systems external to Microsoft Dynamics AX. Each document service that is included with Microsoft Dynamics AX that supports data updates has an update service operation. AIF supports two types of updates:

Full update - All the data submitted to AIF is considered to be the full document and all fields in the database tables will be updated with the fields from the submitted document. If there are fields in the table that are not in the submitted data, those table fields will be cleared according to the rules for the data type of the field.

The result of a full update is the same as if you deleted the record and then added it from the submitted data with these exceptions:

o Primary key fields are not changed. o Fields that are allowed by the schema but not included in the submitted data are

cleared. o Fields that are not allowed by the schema and therefore cannot be sent as part of

the update message are defaulted if they have defaulting logic but are not affected otherwise.

For more information on full updates, see Walkthrough: Updating Data with AIF (Full Update).

Page 10: Application Integration Framework Overview

Partial update - Only the fields contained in the submitted message will be updated in the database tables. If there are fields in the table that are not in the submitted data, those field values will retain their original values (except for fields that are defaulted based on other fields that have been updated).

The behavior of the partial update differs based on whether you are running Microsoft Dynamics AX 2009 SP1. For more information, see Update Action Rules in AIF.

Update Process

When you update data through AIF, you call the document service update service operation. For example, if you want to update a sales order, you call the SalesSalesOrderService.update service operation. This operation takes two parameters.

_entityKeyList - An XML message that contains one or more entity key values (IDs) for the records to be updated.

_salesSalesOrder - An XML message that contains the sales order data that will update the sales order in the database.

Each of these parameters must be valid XML and validate against the document and endpoint schemas. These schemas define the content and structure of the service operation parameters.

AIF Schemas

There are various schemas that define what data can be updated as shown in the following table.

Schema DescriptionDocument schema

Defines all the fields that can participate in a data exchange. Any message that comes into AIF must validate against the document schema.

Endpoint schema

Further restricts the fields that can participate in a data exchange for a particular endpoint. The endpoint schema is defined by the data policy that you set for each endpoint action.

View the Document Schema

The document schema is the full schema and contains the complete structure and content for a message coming into AIF. The messages are passed as parameters to service operations. You can view the document schema for each parameter of the SalesSalesOrderService.update operation by following these steps.

1. On the Setup pane in the Basic module, expand Application Integration Framework and click Services.

2. Select the row for the SalesSalesOrderService service and click Service operations.

Page 11: Application Integration Framework Overview

3. Select the SalesSalesOrderService.update service operation and then click Parameter schema.

4. Select the _salesSalesOrder parameter and click View schema. In the Schema form, you will see the complete schema for all the elements that can be in the message when you update a sales order.

5. To save the schema as an .xsd file, click Save as.

NoteYou can also view the schema for the _entityKeyList parameter. This is the schema for the XML message that contains the entity keys (IDs) for the sales orders to be updated.

View the Endpoint Schema

The endpoint schema defines for each endpoint which fields can participate in an exchange. The endpoint schema is derived from the data policy for each endpoint action. The data policy specifies which fields are enabled and required for an endpoint action. To view the endpoint schema for the sales order update service operation, follow these steps.

1. On the Setup pane in the Basic module, expand Application Integration Framework and click Endpoints.

2. Select an endpoint and click Action policies. 3. On the Endpoint action policies form, select the SalesSalesOrderService.update service

operation and then click Parameter schema. 4. Select the _salesSalesOrder parameter and then click View schema. In the Schema form,

you will see the complete schema for all the elements that can be in the message when you update a sales order.

NoteIf you select the Default Endpoint on the Endpoints form and click Action policies, on the Endpoint action policies form, you will see a field that is named Is default policy. If this field is selected, then the endpoint is using the default data policy. This means that the schema for the endpoint is the same as the full document schema.

Update Action

In order to specify an update, the XML message coming into AIF must contain the update action in the header as shown in the following code. This specifies that the sales order service update service operation should be called.

The update action is used for both full and partial updates. However, partial updates are signified by attributes.

Page 12: Application Integration Framework Overview

Copy<?xml version="1.0" encoding="utf-8" ?><Envelope xmlns="http://schemas.microsoft.com/dynamics/2008/ 01/documents/Message"> <Header> <MessageId></MessageId> <SourceEndpointUser></SourceEndpointUser> <SourceEndpoint></SourceEndpoint> <DestinationEndpoint></DestinationEndpoint> <Action>http://schemas.microsoft.com/dynamics/2008/ 01/services/SalesOrderService/update</Action> <ConversationId></ConversationId> </Header> <Body>… </Body></Envelope>

Walkthrough: Updating Data with AIF (Full Update)Dynamics AX 2009 This topic has not yet been rated - Rate this topic

Application Integration Framework (AIF) enables you to integrate your Microsoft Dynamics AX installation with external systems. This framework supports the ability to create, read, update, and delete data.

In this walkthrough, you will update a sales order using the file system transport. This topic describes how to configure AIF as well as how to format the update message correctly.

This walkthrough illustrates the following tasks:

Configure a file system transport adapter Create and configure a directory Add a channel Enable the sales order service Set up the AIF batch services Read the sales order Update the sales order

This walkthrough demonstrates a full update. This is also known as a "document-centric" update and one in which all the data being updated is assumed to be in the message. If a field in the message matches a field in the table, the table field is updated with the message value. If there is a field in the table that is not in the message, the table field is cleared according to the rules for the data type of the field.

Page 13: Application Integration Framework Overview

You can identify a full update in one of two ways:

1. The presence of the update action in the message header and no other update attributes in any of the records.

2. The presence of the update action in the message header and the top record in the submitted data contains the replace action attribute.

For more information about full and partial updates, see Update Action Rules in AIF.

Prerequisites

To complete this walkthrough, you will need:

Microsoft Dynamics AX A license file that has access to AIF

Configure the File System Transport Adapter

To use the file system as the transport, you must first configure a file system adapter.

To configure the file system adapter

1. Open Microsoft Dynamics AX. 2. On the Setup pane in the Basic module, expand Application Integration Framework and

click Transport Adapters. 3. Press CTRL+N and select the AIFFileSystemAdapter from the Adapter class field. There

may be a slight delay while Microsoft Dynamics AX scans for adapters. 4. Type a name for the adapter in the Name field. 5. Select Active to make the adapter available for use in a channel.

Create and Configure Directories

If you have not already done so, you must create an inbound and an outbound directory. The inbound directory is where the XML files that come into AIF will be put. The outbound directory is where XML files produced by AIF will be put. When the batch jobs are started, AIF will poll the inbound directory for files.

To create and configure a directory

1. In Windows Explorer, create an inbound and an outbound directory. 2. Configure the directories with the appropriate permissions. For more information, see

"Configure the file system for AIF" in the Server and Database Administration Help.

Page 14: Application Integration Framework Overview

Add the Channels

The channels associate the file system adapter with the file system directories that you just created. You must create two channels: one for the outbound directory and one for the inbound directory. For more information, see "Create a channel" in the Server and Database Administration Help.

To add the outbound channel

1. On the Setup pane in the Basic module, expand Application Integration Framework and click Channels.

2. In the Channels form, press CTRL+N to create a new channel. 3. Enter the identification information for the new channel, including a unique identifier in

the Channel ID field and a friendly name in the Name field. 4. Select File System Adapter in the Adapter field. 5. Select Active to activate the channel. 6. Select Outbound in the Direction field. 7. In the Address field, select the outbound directory (file folder) that you just created. You

can select an existing directory or click Make New Folder to make a new directory.

To add the inbound channel

1. Press CTRL+N to create a new channel. 2. Enter the identification information for the new channel, including a unique identifier in

the Channel ID field and a friendly name in the Name field. 3. Select File System Adapter in the Adapter field. 4. Click Active to activate the channel. 5. Select Inbound in the Direction field. 6. In the Address field, select the inbound directory (file folder) that you just created. You

can select an existing directory or click Make New Folder to make a new directory. 7. In the response channel field, select the outbound channel that you previously created.

The response channel is used to respond back to the source endpoint with verification results or error responses to inbound transfers. This is the channel in which AIF will put the sales order that is requested.

Enable the Sales Order Service

In order to enable an exchange using a service, you must first enable the service. For more information, see "Configure services" in the Server and Database Administration Help.

To enable the sales order service

Page 15: Application Integration Framework Overview

1. On the Setup pane in the Basic module, expand Application Integration Framework and click Services. The first time the form opens, the grid is empty and you must click Refresh to load the services. There may be a delay while the services load.

2. Scroll down to the SalesSalesOrderService and select Enabled.

Setup the AIF Batch Services

For AIF to begin sending and receiving documents for adapter-based exchanges, the services that move documents through the queues must be running as batch jobs within Microsoft Dynamics AX. For more information, see "Start and stop the asynchronous AIF services" in the Server and Database Administration Help.

Read the Sales Order

The first step in updating a sales order is to read the sales order and return the current sales order data in the table to the client. This is necessary because the update operation uses concurrency control to determine whether the record you are attempting to update has been changed in between the time the record was first read and the time the update is sent into AIF. Concurrency control is implemented by comparing a hash value or by comparing the RecId and RecVersion fields for each record being updated. For more information about concurrency, see Concurrency When Updating Data.

To read the sales order, you must place a message specifying the entity key (ID) of the sales order you want to read in the inbound directory. AIF will get this message from the inbound channel and put a message containing the corresponding sales order into the outbound channel.

To read the sales order

1. Create an XML file containing the entity key of the sales order to be updated. The format of this message should look like the following XML example. Notice that the <Field> and <Value> elements contain the name of the table field that contains the SalesId and the value of the SalesId. The <Action> element in the header is the only required header element and specifies the read action. This exchange will use the default endpoint that ships with Microsoft Dynamics AX because there is no source or destination endpoint specified in the message header. When using the default endpoint, there is no source endpoint user specified so AIF will get the user credentials from the file itself.

Copy

<?xml version="1.0" encoding="utf-8"?><Envelope xmlns="http://schemas.microsoft.com/dynamics/2008/ 01/documents/Message"> <Header> <MessageId></MessageId> <SourceEndpointUser></SourceEndpointUser>

Page 16: Application Integration Framework Overview

<SourceEndpoint></SourceEndpoint> <DestinationEndpoint></DestinationEndpoint> <Action>http://schemas.microsoft.com/dynamics/2008/ 01/services/SalesOrderService/read</Action> <ConversationId></ConversationId> </Header><Body> <MessageParts xmlns="http://schemas.microsoft.com/dynamics/2008/ 01/documents/Message"> <EntityKeyList xmlns="http://schemas.microsoft.com/dynamics/ 2006/02/documents/EntityKeyList"> <EntityKey xmlns="http://schemas.microsoft.com/dynamics/ 2006/02/documents/EntityKey"> <KeyData> <KeyField> <Field>SalesId</Field> <Value>00016_036</Value> </KeyField> </KeyData> </EntityKey> </EntityKeyList> </MessageParts></Body></Envelope>

NoteThis message is passed as a parameter to the SalesSalesOrderService.update service operation. Therefore, it must validate against the schema for the _entityKeyList parameter. For more information, see Updating Data With AIF.

2. Place the message in the inbound directory. Depending on how often you configure the batch jobs to run, the services will get this request message and then write the requested sales order into the outbound directory. The section Response Sales Order XML at the end of this topic provides an example of what the sales order returned by AIF will look like.

Update the Sales Order

Now that you have read the sales order, you can make the necessary changes and send the data back to AIF to update the sales order in the table.

To update the sales order

1. Create an XML file that contains the sales order to be updated. The format of this message should resemble the XML in the section Update Sales Order XML at the end of this topic. The <Action> element in the header is the only required header element and specifies the update action. This exchange will use the default endpoint because there is no source or destination endpoint specified in the message header. Notice that there are

Page 17: Application Integration Framework Overview

no RecId or RecVersion fields so this update will use the _DocumentHash value for concurrency control.

2. Put the message in the inbound directory. Depending on how often you configure the batch jobs to run, the services will retrieve this request message and then update the sales order in Microsoft Dynamics AX.

Response Sales Order XML

The following code is an example of what AIF will return when you request a sales order.

Copy<?xml version="1.0" encoding="utf-8" ?> <Envelope xmlns="http://schemas.microsoft.com/dynamics/2008/ 01/documents/Message"> <Header> <MessageId>{2002A291-8AA4-4405-BC10-383C30376F76}</MessageId> <SourceEndpoint>Default</SourceEndpoint> <DestinationEndpoint>Default</DestinationEndpoint> <Action>http://schemas.microsoft.com/dynamics/ 2008/01/services/SalesOrderService/read</Action> <RequestMessageId>{13A5A1E4-D248-4361-B484-791AE121C952} </RequestMessageId> </Header> <Body> <MessageParts xmlns="http://schemas.microsoft.com/dynamics/ 2008/01/documents/Message"> <SalesOrder xmlns="http://schemas.microsoft.com/dynamics/ 2008/01/documents/SalesOrder"> <DocPurpose>Original</DocPurpose> <SenderId>DAT</SenderId> <SalesTable class="entity"> <_DocumentHash>de321661b44419fc5052246e6274f726 </_DocumentHash> <CaseTagging>No</CaseTagging> <CashDisc>14D1%</CashDisc> <CommissionGroup>CCG-OTH</CommissionGroup> <CovStatus>1</CovStatus> <CreditCardAuthorizationError>No </CreditCardAuthorizationError> <CurrencyCode>EUR</CurrencyCode> <CustAccount>4005</CustAccount> <CustGroup>40</CustGroup> <Deadline>2002-03-31</Deadline> <DeliveryAddress>St. Hallvard vei 1 N-0244 Oslo Norway</DeliveryAddress> <DeliveryCity>Oslo</DeliveryCity> <DeliveryCountryRegionId>NO </DeliveryCountryRegionId <DeliveryDate>2002-03-01</DeliveryDate> <DeliveryDateControlType>None </DeliveryDateControlType> <DeliveryName>Office Supplies Inc.</DeliveryName> <DeliveryStreet>St. Hallvard vei 1</DeliveryStreet>

Page 18: Application Integration Framework Overview

<DeliveryZipCode>N-0244</DeliveryZipCode> <DlvMode>UPS</DlvMode> <DocumentStatus>None</DocumentStatus> <EInvoiceLineSpec>No</EInvoiceLineSpec> <FreightSlipType>None</FreightSlipType> <GiroType>None</GiroType> <InclTax>No</InclTax> <InterCompanyAllowIndirectCreation>No </InterCompanyAllowIndirectCreation> <InterCompanyAutoCreateOrders>No </InterCompanyAutoCreateOrders> <InterCompanyDirectDelivery>No </InterCompanyDirectDelivery> <InterCompanyDirectDeliveryOrig>No </InterCompanyDirectDeliveryOrig> <InterCompanyOrder>No</InterCompanyOrder> <InvoiceAccount>4005</InvoiceAccount> <ItemTagging>No</ItemTagging> <LanguageId>En-us</LanguageId> <Listcode>IncludeNot</Listcode> <MarkupGroup>FR10</MarkupGroup> <OneTimeCustomer>No</OneTimeCustomer> <PalletTagging>No</PalletTagging> <Payment>M15</Payment> <PaymMode>CHEQUE</PaymMode> <PostingProfile>Gen</PostingProfile> <PurchOrderFormNum /> <RecId>5637144586</RecId> <RecVersion>1</RecVersion> <Reservation>None</Reservation> <ReturnReplacementCreated>No </ReturnReplacementCreated> <ReturnStatus>None</ReturnStatus> <SalesGroup>CSG-OTH</SalesGroup> <SalesId>00016_036</SalesId> <SalesName>Office Supplies Inc.</SalesName> <SalesPoolId>DEF</SalesPoolId> <SalesResponsible>MPO</SalesResponsible> <SalesStatus>Backorder</SalesStatus> <SalesTaker>TJO</SalesTaker> <SalesType>Sales</SalesType> <SettleVoucher>None</SettleVoucher> <ShipCarrierBlindShipment>No </ShipCarrierBlindShipment> <ShipCarrierDlvType>Misc</ShipCarrierDlvType> <ShipCarrierExpeditedShipment>No </ShipCarrierExpeditedShipment> <ShipCarrierFuelSurcharge>No </ShipCarrierFuelSurcharge> <ShipCarrierResidential>No</ShipCarrierResidential> <ShippingDateConfirmed>2002-03-01 </ShippingDateConfirmed> <ShippingDateRequested>2002-03-01 </ShippingDateRequested> <totalBalance>3300.00</totalBalance> <TotalCashDiscount>33.00</TotalCashDiscount> <TotalInvoice>3300.00</TotalInvoice>

Page 19: Application Integration Framework Overview

<SalesLine class="entity"> <Blocked>No</Blocked> <CaseTagging>No</CaseTagging> <Complete>No</Complete> <ConfirmedDlv>2002-03-01</ConfirmedDlv> <CurrencyCode>EUR</CurrencyCode> <CustAccount>4005</CustAccount> <CustGroup>40</CustGroup> <DeliveryAddress>St. Hallvard vei 1 N-0244 Oslo Norway</DeliveryAddress> <DeliveryCity>Oslo</DeliveryCity> <DeliveryCountryRegionId>NO </DeliveryCountryRegionId> <DeliveryDateControlType>None </DeliveryDateControlType> <DeliveryName>Office Supplies Inc. </DeliveryName> <DeliveryStreet>St. Hallvard vei 1 </DeliveryStreet> <DeliveryType>None</DeliveryType> <DeliveryZipCode>N-0244</DeliveryZipCode> <InventDimId>00001_060</InventDimId> <InventRefType>None</InventRefType> <InventTransId>00065_059</InventTransId> <ItemId>OL-1500</ItemId> <itemReplaced>No</itemReplaced> <ItemTagging>No</ItemTagging> <LineAmount>3300.00</LineAmount> <LineNum>1.0000000000</LineNum> <Name>Office Lamp 1500 2-tubes</Name> <PalletTagging>No</PalletTagging> <PriceUnit>1.00</PriceUnit> <ProjCategoryId>Lamps</ProjCategoryId> <QtyOrdered>200.00</QtyOrdered> <RecId>5637144590</RecId> <RecVersion>1</RecVersion> <RemainInventPhysical>200.00 </RemainInventPhysical> <RemainSalesPhysical>200.00 </RemainSalesPhysical> <Reservation>None</Reservation> <ReturnAllowReservation>No </ReturnAllowReservation> <ReturnStatus>None</ReturnStatus> <SalesGroup>CSG-OTH</SalesGroup> <SalesId>00016_036</SalesId> <SalesPrice>16.50</SalesPrice> <SalesQty>200.00</SalesQty> <SalesStatus>Backorder</SalesStatus> <SalesType>Sales</SalesType> <SalesUnit>Pcs</SalesUnit> <Scrap>No</Scrap> <TaxAutogenerated>Yes</TaxAutogenerated> <TaxItemGroup>full</TaxItemGroup> <InventDim class="entity"> <inventDimId>00001_060</inventDimId> <InventLocationId>GW</InventLocationId>

Page 20: Application Integration Framework Overview

<InventSiteId>S1</InventSiteId> <RecId>5637144576</RecId> <RecVersion>1</RecVersion> </InventDim> </SalesLine> </SalesTable> </SalesOrder> </MessageParts> </Body></Envelope>

Update Sales Order XML

The following code is an example of what the XML message should look like when you submit data to update a sales order.

Copy<?xml version="1.0" encoding="utf-8"?><Envelope xmlns="http://schemas.microsoft.com/dynamics/ 2008/01/documents/Message"> <Header> <MessageId></MessageId> <SourceEndpoint></SourceEndpoint> <DestinationEndpoint></DestinationEndpoint> <Action>http://schemas.microsoft.com/dynamics/ 2008/01/services/SalesOrderService/update</Action> <ConversationId></ConversationId> </Header> <Body> <MessageParts xmlns="http://schemas.microsoft.com/dynamics/ 2008/01/documents/Message"> <EntityKeyList xmlns="http://schemas.microsoft.com/ dynamics/2006/02/documents/EntityKeyList"> <EntityKey xmlns="http://schemas.microsoft.com/ dynamics/2006/02/documents/EntityKey"> <KeyData> <KeyField> <Field>SalesId</Field> <Value>00016_036</Value> </KeyField> </KeyData> </EntityKey> </EntityKeyList> <SalesOrder xmlns="http://schemas.microsoft.com/ dynamics/2008/01/documents/SalesOrder"> <DocPurpose>Original</DocPurpose> <SenderId>dat</SenderId> <SalesTable class="entity"> <_DocumentHash>820acb9d4e266e791f5069edd7bd3d39 </_DocumentHash> <CaseTagging>No</CaseTagging> <CashDisc>14D1%</CashDisc> <CommissionGroup>CCG-OTH</CommissionGroup> <ContactPersonId>00174_002</ContactPersonId> <CreditCardAuthorizationError>No

Page 21: Application Integration Framework Overview

</CreditCardAuthorizationError> <CurrencyCode>EUR</CurrencyCode> <CustAccount>4005</CustAccount> <CustGroup>40</CustGroup> <Deadline>2002-03-30</Deadline> <DeliveryAddress>St. Hallvard vei 1 N-0244 Oslo Norway</DeliveryAddress> <DeliveryCity>Oslo</DeliveryCity> <DeliveryCountryRegionId>NO </DeliveryCountryRegionId> <DeliveryDate>2002-03-01</DeliveryDate> <DeliveryDateControlType>None </DeliveryDateControlType> <DeliveryName>Office Supplies Inc.</DeliveryName> <DeliveryStreet>St. Hallvard vei 1 </DeliveryStreet> <DeliveryZipCode>N-0244</DeliveryZipCode> <DlvMode>UPS</DlvMode> <DocumentStatus>None</DocumentStatus> <EInvoiceLineSpec>No</EInvoiceLineSpec> <Email>[email protected]</Email> <FreightSlipType>None</FreightSlipType> <GiroType>None</GiroType> <InclTax>No</InclTax> <InterCompanyAllowIndirectCreation>No </InterCompanyAllowIndirectCreation> <InterCompanyAutoCreateOrders>No </InterCompanyAutoCreateOrders> <InterCompanyDirectDelivery>No </InterCompanyDirectDelivery> <InterCompanyDirectDeliveryOrig>No </InterCompanyDirectDeliveryOrig> <InterCompanyOrder>No</InterCompanyOrder> <InvoiceAccount>4005</InvoiceAccount> <ItemTagging>No</ItemTagging> <LanguageId>En-us</LanguageId> <Listcode>IncludeNot</Listcode> <MarkupGroup>FR10</MarkupGroup> <OneTimeCustomer>No</OneTimeCustomer> <PalletTagging>No</PalletTagging> <Payment>M15</Payment> <PaymMode>CHEQUE</PaymMode> <PostingProfile>Gen</PostingProfile> <PurchOrderFormNum>00007_049</PurchOrderFormNum> <Reservation>None</Reservation> <ReturnReplacementCreated>No </ReturnReplacementCreated> <ReturnStatus>None</ReturnStatus> <SalesGroup>CSG-OTH</SalesGroup> <SalesId>00016_036</SalesId> <SalesName>Office Supplies Inc.</SalesName> <SalesPoolId>DEF</SalesPoolId> <SalesResponsible>MPO</SalesResponsible> <SalesStatus>Backorder</SalesStatus> <SalesTaker>TJO</SalesTaker> <SalesType>Sales</SalesType> <SettleVoucher>None</SettleVoucher>

Page 22: Application Integration Framework Overview

<ShipCarrierBlindShipment>No </ShipCarrierBlindShipment> <ShipCarrierDlvType>Misc</ShipCarrierDlvType> <ShipCarrierExpeditedShipment>No </ShipCarrierExpeditedShipment> <ShipCarrierFuelSurcharge>No </ShipCarrierFuelSurcharge> <ShipCarrierResidential>No </ShipCarrierResidential> <ShippingDateConfirmed>2002-03-01 </ShippingDateConfirmed> <ShippingDateRequested>2002-03-01 </ShippingDateRequested> <totalBalance>3300.00</totalBalance> <TotalCashDiscount>33.00</TotalCashDiscount> <TotalInvoice>3300.00</TotalInvoice> <URL>www.test.test</URL> <SalesLine class="entity"> <Blocked>No</Blocked> <CaseTagging>No</CaseTagging> <Complete>No</Complete> <ConfirmedDlv>2002-03-01</ConfirmedDlv> <CurrencyCode>EUR</CurrencyCode> <CustAccount>4005</CustAccount> <CustGroup>40</CustGroup> <DeliveryAddress>St. Hallvard vei 1 N-0244 Oslo NO</DeliveryAddress> <DeliveryCity>Oslo</DeliveryCity> <DeliveryCountryRegionId>NO </DeliveryCountryRegionId> <DeliveryDateControlType>None </DeliveryDateControlType> <DeliveryName>Office Supplies Inc.</DeliveryName> <DeliveryStreet>St. Hallvard vei 1 </DeliveryStreet> <DeliveryType>None</DeliveryType> <DeliveryZipCode>N-0244</DeliveryZipCode> <InventDimId>00001_060</InventDimId> <InventRefType>None</InventRefType> <ItemId>OL-1500</ItemId> <itemReplaced>No</itemReplaced> <ItemTagging>No</ItemTagging> <LineAmount>3300.00</LineAmount> <LineNum>1.0000000000</LineNum> <Name>Office Lamp 1500 2-tubes</Name> <PalletTagging>No</PalletTagging> <PriceUnit>1.00</PriceUnit> <ProjCategoryId>Lamps</ProjCategoryId> <QtyOrdered>200.00</QtyOrdered> <RecId>5637144590</RecId> <RecVersion>406348234</RecVersion> <RemainInventPhysical>200.00 </RemainInventPhysical> <RemainSalesPhysical>200.00</RemainSalesPhysical> <Reservation>None</Reservation> <ReturnAllowReservation>No </ReturnAllowReservation>

Page 23: Application Integration Framework Overview

<ReturnStatus>None</ReturnStatus> <SalesGroup>CSG-OTH</SalesGroup> <SalesId>00016_036</SalesId> <SalesQty>200.00</SalesQty> <SalesStatus>Backorder</SalesStatus> <SalesType>Sales</SalesType> <SalesUnit>Pcs</SalesUnit> <Scrap>No</Scrap> <ShipCarrierDlvType>Misc</ShipCarrierDlvType> <ShippingDateConfirmed>2002-03-01 </ShippingDateConfirmed> <ShippingDateRequested>2002-03-01 </ShippingDateRequested> <StatTriangularDeal>No</StatTriangularDeal> <TaxAutogenerated>Yes</TaxAutogenerated> <TaxItemGroup>full</TaxItemGroup> <InventDim class="entity"> <inventDimId>00001_060</inventDimId> <InventLocationId>GW</InventLocationId> <InventSiteId>S1</InventSiteId> <RecId>5637144576</RecId> <RecVersion>1</RecVersion> </InventDim> </SalesLine> </SalesTable> </SalesOrder> </MessageParts> </Body></Envelope>

Next Steps

After you submit the message to update the sales order, you can check the status of the exchange in the Queue manager form. After AIF has processed the message, you can view it in the Document history form or troubleshoot any errors in the Exceptions form. For more information, see "Managing document exchanges" in the Server and Database Administration Help.

Concurrency When Updating DataDynamics AX 2009 This topic has not yet been rated - Rate this topic

This topic describes how you can implement concurrency when updating data in Microsoft Dynamics AX by using Application Integration Framework (AIF). Concurrency is the ability for multiple processes to access or change shared data at the same time. The greater the number of concurrent processes that can execute without blocking each other, the greater the concurrency of the database system.

When you update data in Microsoft Dynamics AX using AIF, there are two methods the framework uses to handle concurrency:

Page 24: Application Integration Framework Overview

The document hash The RecId and RecVersion fields for each record in the update

When performing an update, you must first read the data, modify it, and then send it back to update the database.

Document Hash

When you update data using AIF, the document hash is required and it must be correct. If the document hash is not in the message or if it is incorrect, AIF will return an error.

When you read data, AIF returns a document hash field called _DocumentHash. This field contains a hash of all the RecId and RecVersion values for each record that is returned. When you send the data back into AIF to update a record, it recalculates the document hash from the database records in the update and compares it to the document hash in the inbound message. If the data has changed, for example, if a record was updated or added, the calculated document hash will differ from the document hash in the inbound document and AIF will return an error.

If a concurrency error occurs when AIF checks the document hash, AIF can only report that a record was changed and not which record changed.

RecId and RecVersion

The RecId and RecVersion fields are optional for concurrency checking. If these fields exist in a message, AIF will use them for concurrency checking in addition to the document hash. If the RecId and RecVersion fields are included in a message, then they must be correct otherwise AIF will return an error. If these fields are not included, then AIF will use only the document hash for concurrency.

If the inbound message contains the RecId and RecVersion field values for each record, AIF will check those values against the values in the database table before data is updated. If the RecId and RecVersion field values in the inbound message differ from the values in the table, a concurrency error is returned. When you use the RecId and RecVersion fields for concurrency and an error occurs, the error will specify the table and record in which the data has changed.

2012

What's New: Services and AIF for Developers in Microsoft Dynamics AX 2012 [AX 2012]

Page 25: Application Integration Framework Overview

This topic has not yet been rated - Rate this topic

Updated: January 10, 2013

Applies To: Microsoft Dynamics AX 2012 R2, Microsoft Dynamics AX 2012 Feature Pack, Microsoft Dynamics AX 2012

This page lists the new and enhanced developer features for Services and Application Integration Framework (AIF) that are available in Microsoft Dynamics AX 2012. For more information about administrator features, see What's New: Services and AIF administration.

Services and AIF both support integration with external systems. Services is the WS-* standards-based programming model that enables you to expose Microsoft Dynamics AX functionality through service interfaces. AIF is the framework that contains integration-specific features such as integration ports, data policies, pipelines, transforms, and so on.

For information about new features included in Microsoft Dynamics AX 2012 R2, see What's New in Microsoft Dynamics AX 2012 R2 for Developers.

What is new or changed?

This feature has changed considerably since Microsoft Dynamics AX 2009. Many new features have been added to support application development and integration with Microsoft Dynamics AX through services.

New features have been added to enable X++ business logic to be exposed as services and for X++ to consume services. In addition to programming model changes, AIF has been updated to enable developers to create transformations of non-XML data. The AIF system services enable you to retrieve user or metadata information and also to run queries.

Services Enhancements Service Groups Support for Data Model Changes Business Operation Framework Support for Non-XML Files SOAP Headers Consume External Services in X++ Correlate Exceptions, Ports, and Messages in the Exception Log System Services Support for New Document Service Operations GetKeys and GetChangedKeys

Services Enhancements

What can you do?

Microsoft Dynamics AX 2009

Microsoft Dynamics AX 2012

Why is this important?

Where can I find more

Page 26: Application Integration Framework Overview

information?

X++ business logic can easily be exposed as a service.

X++ classes had to implement a service interface in order to be exposed as a service.

X++ classes and members can be exposed as services and service operations by using attributes.

Enables you to easily expose X++ business logic as a service to external systems. This means that existing X++ code investments can be re-used.

Using Custom Services

Services support data contracts of any type.

Only classes that implemented the AifSerializable interface could be used as service data contracts.

Any .NET or X++ native type (such as a str or an int) can be used as a data contract. Any class that uses the AIF data contract attributes can be used as a data contract.

Enables you to more easily develop services because you can use all native types and complex types as data contracts.

Using Data Contracts in X++

Support for X++ types in data contracts.

Feature not available.

Data contracts can now use X++ container types and strongly typed X++ collections such as a Set or an Array.

Support for complex X++ types means that more complex data scenarios can supported in services.

Using Data Contracts in X++

Service Groups

What can you do?

Microsoft Dynamics AX 2009

Microsoft Dynamics AX 2012

Why is this important?Where can I

find more information?

The ability to group services by using service groups was added to the AOT.

Services were managed at the individual service level.

A service group is a collection of services that are frequently consumed and managed together. All services in a service group are published in a single Web Services Definition Language (WSDL) file.

You only have to add a reference to a single WSDL to gain access to the service proxies for all the services in that service group. Service groups enable type sharing for simple types common across various services in a service group. For example, if two services in a service group take a parameter that is an enum or Extended Data Type (EDT), it is shared and can be seamlessly passed between the two services. Complex types like Address, however, are not

Services, service operations, and service groups

Page 27: Application Integration Framework Overview

shared.

Support for Data Model Changes

What can you do?

Microsoft Dynamics AX 2009

Microsoft Dynamics AX 2012Why is this important?

Where can I find more

information?Extensive data model changes are supported by AIF.

Feature not available.

The document services framework supports the data model changes implemented in Microsoft Dynamics AX 2012. The document services framework handles the following scenarios to produce a usable data contract schema:

Replaces a surrogate foreign key (SFK) with the natural key for a specific table relationship. This means that the service contract has user-friendly, readable fields instead of obscure SFKs.

Handles all queries that contain the Global Address Book (GAB) views as one of their data sources.

Supports query data source tables that implement table inheritance.

Supports query data sources that contain tables with date effective fields.

Handles query data sources that contain tables with dimension columns. The framework supports serialization and deserialization of the dimension columns across the service boundary.

The wizards used to create and update document services support these data

AIF fully supports data model features to make data contracts easier to use.

What's New: AOS and Database for Developers in Microsoft Dynamics AX 2012

Page 28: Application Integration Framework Overview

model changes.

Business Operation Framework

What can you do?

Microsoft Dynamics AX

2009

Microsoft Dynamics AX

2012Why is this important?

Where can I find more

information?

Business Operation Framework (BOF) replaces the RunBase framework.

Only the RunBase framework was available. User interface, business logic code, and data contract code were all contained in a single class.

BOF uses services to call from the client to the server so application “chattiness” is reduced. The BOF classes separate the user interface, business logic, and data contract logic.

You can use BOF to write applications that have reduced client to server communication. Because BOF uses services, there is no calling from the client back to the server, and an open connection from the server to the client cannot be maintained. The user interface for input parameters can be auto-generated.

SysOperation Framework Overview

Support for Non-XML Files

What can you do?

Microsoft Dynamics AX 2009

Microsoft Dynamics AX 2012Why is this important?

Where can I find more

information?

AIF supports the import and export of data in non-XML formats.

Feature not available.

Data that is not XML, for example, a comma-delimited file, can now be imported into and exported from Microsoft Dynamics AX. This feature provides the ability for developers to create custom transformations that are used to transform non-XML data into a format that can be consumed by AIF. Custom transformations can be implemented by using an XSLT or a .NET DLL that implements the ITransform interface.

AIF can work with non-XML data, and you can handle all data transformations within Microsoft Dynamics AX

Messages and transforms in AIF

SOAP Headers

What can Microsoft Microsoft Dynamics AX 2012 Why is this Where can I

Page 29: Application Integration Framework Overview

you do?Dynamics AX

2009important?

find more information?

You can pass data into a service by using the SOAP header.

Developers had to manually add custom code for SOAP headers.

SOAP headers have been extended. Now there is a strongly-typed parameter that is part of the service contract.

You can add SOAP headers when you call a service to pass additional data into the service. The following SOAP headers are supported:

Company – The calling user’s default company.

Language – The calling user’s default language.

Logon As User – This is the Microsoft Dynamics AX user who performs the service operation. Defaults to the submitting user (calling user) in the format “domain\user.”

Extended SOAP headers enable developers to provide more contextual information to a service when the client calls it.

Using the Call Context

Consume External Services in X++

What can you do?

Microsoft Dynamics AX 2009

Microsoft Dynamics AX

2012Why is this important?

Where can I find more

information?

Consume external web services from X++ without adding a service reference in the AOT.

You could consume an external Web service from X++, but you first had to add a service reference in the AOT. The ability to consume external services only worked in limited scenarios. For example, server authentication was not supported.

The Service References node has been removed from the AOT. You add a service reference in a .NET project and then add that project to the model store. Then you can access the external service from X++ code.

There is now full support for web services that have complex schemas in addition to support for web services authentication. The comprehensive deployment functionality in Visual Studio means that your service references are automatically deployed when you configure them to do so.

Consuming External Web Services

Page 30: Application Integration Framework Overview

Correlate Exceptions, Ports, and Messages in the Exception Log

What can you do?

Microsoft Dynamics AX 2009

Microsoft Dynamics AX 2012

Why is this important?Where can I find

more information?

You can correlate exceptions to messages and ports.

Feature not available.

You can view information about the related port, message, and message set on the Exceptions form.

Troubleshooting integrations is easier because you can correlate the exception to the related port and message.

Configure troubleshooting options for integration ports

Monitoring services and AIF

System Services

What can you do?

Microsoft Dynamics AX 2009

Microsoft Dynamics AX 2012Why is this important?

Where can I find more

information?Use system services to interact with and retrieve Microsoft Dynamics AX information.

Feature not available.

System services are Windows Communication Foundation (WCF) services that are included with Microsoft Dynamics AX. The system services include the following:

Metadata service – Enables you to query for data about the structure of your installation. You can retrieve metadata for labels, menus, tables, data types, enums, services, and so on. The metadata service should be used when you want to return information about the structures in Microsoft Dynamics AX to a client application.

Query service – Enables you to issue a query for data without using an AIF document service or creating a custom

The system services open up Microsoft Dynamics AX development to other platforms because they enable you to retrieve system information via services. System services make it easier to develop applications that work with Microsoft Dynamics AX.

AIF System Services

Page 31: Application Integration Framework Overview

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 that the query is run in one of three different ways: static query, user-defined query, or dynamic query.

User session service – Enables you to retrieve information about the calling user such as the user’s default language, default company, default company time zone, and so on.

Support for New Document Service Operations GetKeys and GetChangedKeys

What can you do?

Microsoft Dynamics AX 2009

Microsoft Dynamics AX 2012Why is this important?

Where can I find more

information?

You can implement change tracking by retrieving only entity keys for those records that match certain criteria and that have changed since a specified date and time.

Feature not available.

The following two new service operations are supported:

GetKeys– returns a list of entity keys for documents based on a document filter.

GetChangedKeys – returns a list of entity keys for documents based on criteria in a document filter. It also restricts the list to include only keys for records that have changed since a specified date and time.

Change tracking is supported for data exchanges. Retrieving a list of entity keys for only those records that have changed since the last refresh improves performance when you update data external to Microsoft Dynamics AX.

Configuring AIF for change tracking

Are there any special considerations?

Page 32: Application Integration Framework Overview

AIF integrations in Microsoft Dynamics AX 2009 are upgraded to Microsoft Dynamics AX 2012 during the installation process. However, there are some manual upgrade actions that you may have to perform. The following points should be considered for any upgrade.

The Microsoft Dynamics AX data upgrade process attempts a conversion of all AIF artifacts that correspond to artifacts in Microsoft Dynamics AX 2012. For example: the conversion of endpoints to integration ports. However, some artifacts cannot be upgraded because there is no equivalence in Microsoft Dynamics AX 2012, for example, endpoint constraints. After the upgrade is complete, you should verify the configuration of your integration ports and properties.

There is no code upgrade for services code. All existing services must be manually updated with the required SysEntryPointAttribute and other access-level attributes so that they are deployed successfully.

Using the Application Integration Framework (AIF) to integrate Microsoft Dynamics AX with external software systemsDynamics AX 4.0

8 out of 9 rated this helpful - Rate this topic

Application Integration Framework (AIF) provides an extensible framework that supports multiple asynchronous transports, as well as synchronous transport using Web services, to reliably exchange documents in XML format with trading partners or other systems.

An exchange starts with a document, that is, a document class defined using Microsoft Dynamics AX business logic. The document is serialized into XML and header information is added to create a message, which may then be transferred into or out of your Microsoft Dynamics AX system (called the local endpoint within AIF). The other entity taking part in the exchanges is called the endpoint. The transaction types are called actions in AIF: for example, SendPurchaseOrder. You set up and configure endpoints and actions and all the other elements of an exchange using forms found when you click Basic > Setup > Application Integration Framework.

An asynchronous exchange uses an adapter to convert the document into the proper format for exchange by means of a particular transport mechanism, such as Microsoft Message Queuing (also known as MSMQ). Adapter-based exchanges are asynchronous in that they involve moving the document into a queue where it waits for processing by a Microsoft Dynamics AX batch job. Adapter-based exchanges require configuration of a channel for use by the AIF. Adapters support the following transaction types for asynchronous exchange:

Page 33: Application Integration Framework Overview

Send Documents - Microsoft Dynamics AX sends documents to another system Receive and Create Documents - Microsoft Dynamics AX receives documents from

another authorized system and creates new records in the Microsoft Dynamics AX database

Respond to Read and Query Requests - Microsoft Dynamics AX receives requests for documents from another authorized system, retrieves the requested information (whether a document or a list of documents) from the Microsoft Dynamics AX database, and returns it to the requesting system, with appropriate filtering and security

The same transactions can be accomplished by using Web services. Using Web services for inbound documents requires installation and configuration of Web services for application integration and Microsoft Internet Information Services (IIS) 6.0. An exchange using outbound Web services (that is, sending a document from your installation to another system) requires an adapter and the Web services that reside on the receiving end of the transaction.

You configure the AIF framework using the configuration forms found in the Basic section of Microsoft Dynamics AX. For asynchronous, adapter-based exchanges, you configure and control the Microsoft Dynamics AX batch jobs that process documents in the AIF queues. Exchanges configured to use inbound Web services are processed synchronously. AIF allows multiple connections. That is, your Microsoft Dynamics AX system can support the processing of document exchanges with multiple partners using multiple transport types simultaneously.

Microsoft Dynamics AX includes the functionality to enable connections with the following asynchronous adapters:

Microsoft Message Queue (MSMQ)

Important

To send documents using MSMQ, you must use a domain account for the AOS account. For more information, see Install an Application Object Server (AOS) instance

File system (documents exchanged to and from folders on a computer) Outbound Web Services

Synchronous document exchange is supported using inbound Web services.

To help ensure the highest level of security, deploy Web services on your intranet only. Deployment of Web services outside your intranet requires additional middleware to ensure security.

Send and receive documents and data

Page 34: Application Integration Framework Overview

By using outbound exchanges in AIF, you can send documents and data to your trading partners. You receive documents and data from endpoints in an inbound exchange.

Send documents and data

Sending a document can be initiated by clicking a button on a form, such as the Send electronically button on the Chart of accounts form. For more information, see How to send and receive documents electronically and About sending and receiving documents electronically.

Receive documents and data

When documents are received in an inbound transfer data is added, deleted or changed in the Microsoft Dynamics AX database. For this reason, you should carefully consider how to proceed to help ensure the security of your Microsoft Dynamics AX system when configuring the Microsoft Dynamics AX users associated with an endpoint, making sure that the users are trusted by your business organization.

Create a connection

Whether you exchange documents using Web services or an adapter-based exchange such as MSMQ, file system, or outbound Web services, you must:

Negotiate agreements on document or data exchange with trading partners or third parties which are represented in the Microsoft Dynamics AX database.

Install Web services for application integration using the Microsoft Dynamics AX setup program and install and configure Microsoft IIS 6.0 if you intend to set up exchanges that use inbound Web services. See Install an application integration server and Configure IIS to work with Microsoft Dynamics AX Web services.

Configure the connection using the forms found when you click Basic > Setup > Application Integration Framework.

You use a different set of steps when you configure asynchronous adapter-based exchanges (including outbound Web services) and synchronous exchanges using inbound Web services. For more detailed information about configuration, see the sections on configuring, below. See also Configuring document exchanges.

Carefully consider the resources used in the transfer and the effect of the transfers on performance. You can set the maximum batch size (or set it to be unlimited) to control the number of messages processed from a queue at one time by a batch job. You can also set the maximum locking interval, that is, the maximum time in minutes that the channels and endpoints are to be locked while processing. If you do not have any special circumstances, such as very large or very small messages, you can use the default, monitor your system's performance, and change the maximum locking interval accordingly.

Page 35: Application Integration Framework Overview

Maintain and troubleshoot connections by viewing messages in the queues and information when exceptions occur using the Queue manager, Document history, and Exceptions forms found by clicking Basic > Periodic > Application Integration Framework. See Managing document exchanges.

Configure an adapter-based (asynchronous) exchange

A core installation of Microsoft Dynamics AX includes the software to enable adapter-based connections. After a connection is configured and processing initiated by starting the Microsoft Dynamics AX batch jobs, messages are exchanged between the local endpoint and the endpoint using the defined channel. The XML messages consist of the document and a header and can be viewed during the exchange as they appear on the queues.

After your company decides to exchange documents or data with a trading partner or third-party system, you must perform the following tasks.

Configure the local endpoint (your Microsoft Dynamics AX system). A local endpoint also determines the company that inbound messages are applied to. See Create and configure local endpoints.

Create and configure actions that define the transactions processed though the framework. Every action specifies a Microsoft Dynamics AX document and the direction of the transfer. For example, the SendPurchaseOrder action specifies that the Microsoft Dynamics AX Purchase Order document is to be sent to the endpoint. See Configure an action.

Choose a transport mechanism (MSMQ, file system, or outbound Web services) and perform any prerequisite configuration. See the following topics:

o Configure Message Queuing to work with Microsoft Dynamics AX . o Configure Microsoft Dynamics AX to use the file system for exchanging

documents. o Configure outbound Web services .

Configure the adapter and enable it for use in a channel. Adapters are custom software components that pass the document to a specific transport mechanism, for example, MSMQ. See Configure an adapter.

Create and configure a channel, specifying the adapter. Channels define the transport method and address, which enables messages to move in and out of the framework to reach the endpoint. See Configure a channel.

Define an endpoint for the trading partner or third party, which must be represented in the Microsoft Dynamics AX database. An endpoint is the destination for an outbound document and the source of an incoming document. See Configure an endpoint.

Note

Endpoints are the conceptual entities at either end of a transaction. For example, a single endpoint may apply to multiple customers or vendors. If sales order confirmations must

Page 36: Application Integration Framework Overview

be sent to a chain of retail stores where each store is set up in the Microsoft Dynamics AX database as a separate customer, you can create a single endpoint which can be authorized for each of the individual stores.

Create endpoint action policies to define the actions (an action contains a document and an operation, for example SendPurchaseOrder) to be associated with an endpoint. See Configure endpoint action policies.

Create a data policy for each action on each endpoint. The data policy determines which of the document's data fields participate in the exchange. See Configure endpoint action data policies.

Optionally, define a pipeline to perform any optional document transformations, value substitutions, or custom operations. See Configure a pipeline. Optional value mappings are available for certain documents as well.

Note

The pipeline is a configurable engine for processing XML documents as they enter or are sent from Microsoft Dynamics AX. The pipeline is composed of a series of individual pipeline components that are executed in sequential order to transform the XML document. Some generic pipeline components are provided with the Microsoft Dynamics AX installation. The architecture of the pipeline allows developers to create and configure new pipeline components.

Start and stop processing in the queues for adapter-based exchanges by setting up batch jobs to process the asynchronous channels (using forms found by clicking Basic > Setup > Batch). For more information, see Processing batch jobs and Start and stop the asynchronous Application Integration Framework (AIF) services.

Configure an exchange using Web services

The AIF also provides a Web services interface for exchanging documents synchronously. This interface provides a seamless integration experience for Microsoft .NET and other Web clients. The Web services are generated automatically from the Microsoft Dynamics AX business logic, so that developers with limited Web experience can easily create their own Web services.

After your company decides to exchange documents or data with a trading partner or third-party system using Web services, the following tasks must be performed.

Page 37: Application Integration Framework Overview

Install Web services for application integration.

See Install an application integration server.

Configure IIS for Web services.

This includes specifying the folder where Web services will be installed using the Microsoft Dynamics AX setup wizard, using IIS and Windows administrative tools to set up the Application Pool, to configure security settings, and to create the virtual directory for Web services. See Configure IIS to work with Microsoft Dynamics AX Web services.

Create a record for the Web site and enter its virtual directory share path using the Web sites form from a Microsoft Dynamics AX client.

See Configure Web sites for document exchange.

Configure the local endpoint (your Microsoft Dynamics AX system).

A local endpoint also determines the company that inbound messages are applied to. See Create and configure local endpoints.

Create and configure actions that are used to generate Web services.

Every action specifies a Microsoft Dynamics AX document and the direction of the transfer. For example, the SendPurchaseOrder action specifies that the Microsoft Dynamics AX Purchase Order document is to be sent to the endpoint. See Configure an action.

Generate Web services for the actions.

See Create Web services for an action.

Define an endpoint for the trading partner or third party, which must be represented in the Microsoft Dynamics AX database.

An endpoint is the destination for an outbound document and the source of an incoming document. See Configure an endpoint.

Note

Endpoints are the conceptual entities at either end of a transaction. For example, a single endpoint may apply to multiple customers or vendors. If sales order confirmations must be sent to a chain of retail stores where each store is set up in the Microsoft Dynamics AX database as a separate customer, you can create a single endpoint which can be authorized for each of the individual stores.

Page 38: Application Integration Framework Overview

Create endpoint action policies to define the actions (an action contains a document and an operation, for example SendPurchaseOrder) to be associated with an endpoint.

See Configure endpoint action policies.

Create a data policy for each action on each endpoint.

The data policy determines which of the document's data fields participate in the exchange. See Configure endpoint action data policies.

Optionally, define a pipeline to perform any optional document transformations, value substitutions, or custom operations.

See Configure a pipeline. Optional value mappings are available for certain documents as well.

Note

The pipeline is a configurable engine for processing XML documents as they enter or are sent from Microsoft Dynamics AX. The pipeline is composed of a series of individual pipeline components that are executed in order to transform the XML document. Some generic pipeline components are provided with the Microsoft Dynamics AX installation. The architecture of the pipeline allows developers to create and configure new pipeline components.

Perform optional configuration: document transformations, value substitution, and value mapping

The pipeline is a configurable engine for processing XML documents as they enter or are sent from Microsoft Dynamics AX. The pipeline is composed of a series of individual pipeline components that are executed in order to transform the XML document. Some generic pipeline components are provided with the Microsoft Dynamics AX installation. The architecture of the pipeline allows developers to create and configure new pipeline components.

With value lookups, you can substitute one character string for another in any field of a document. You can configure value lookups using the AifValueSubstitutor pipeline component. See Creating and configuring a pipeline.

You can also create value lookups for any field, if you know the data type for the field. After creating a value lookup table using the Value lookup form, you associate that value

Page 39: Application Integration Framework Overview

lookup table to the pipeline component by entering an identification number in the Lookup table ID field when you configure the pipeline component.

You can set up optional pre-defined value mapping that is available for certain documents on the Value Mapping form. The value mappings are pre-defined for each document, and arise from the associated business logic. You can map the values used for the active action policy and for the particular endpoint such as item number, customer account number, vendor account number and terms of delivery.

Maintain integration with external software systems

Maintaining integration includes the following tasks:

Checking error logs and message queues to monitor traffic.

See About the error log and queue management.

Stopping and restarting the framework when necessary.

See Start and stop the asynchronous Application Integration Framework (AIF) services.

Reconfiguring the channel and endpoint if conditions change.

See Managing changes in documents.

See Also

Setting up and configuring an application integration server

Configuring document exchanges

Configuring document exchanges with adapters

Configuring document exchanges that expose Web services

Use AIF to integrate with external systemsOther Versions

Page 40: Application Integration Framework Overview

1 out of 2 rated this helpful - Rate this topic

Application Integration Framework (AIF) provides an extensible framework that supports multiple asynchronous transports, as well as synchronous transport using Web services, to exchange documents in XML format with external systems.

An exchange starts with a service based on a document, that is, a document class defined using Microsoft Dynamics AX business logic. The document is serialized into XML and header information is added to create a message, which may then be transferred into or out of the Microsoft Dynamics AX system.

Your Microsoft Dynamics AX system is called the local endpoint within AIF. The other entity taking part in an exchange is called the endpoint. Endpoints and all the other elements of an exchange are set up and configured using forms found when you click Basic > Setup > Application Integration Framework.

There are two methods for exchanging data in AIF:

Web services - A data exchange in which a Microsoft Dynamics AX service is consumed an external system.

Adapters - A data exchange in which Microsoft Dynamics AX adapters are used to communicate with the external system. Microsoft Dynamics AX adapters support the following transport mechanisms:

o File system o Message Queuing (MSMQ) o BizTalk Server

Web services-based exchanges

Using Web services for data exchange requires the installation and configuration of Web services for application integration and Microsoft Internet Information Services (IIS) 7.0. Exchanges configured to use Web services are processed synchronously and do not use the Microsoft Dynamics AX queues. AIF allows multiple connections; that is, your Microsoft Dynamics AX system can support the processing of document exchanges with multiple partners simultaneously.

To help ensure the highest level of security, deploy Web services on your intranet only. Deployment of Web services outside your intranet requires additional middleware known as a trusted intermediary to ensure security. For more information about AIF security, see Security considerations for AIF and Security considerations for AIF Web services.

Page 41: Application Integration Framework Overview

For more information about data exchanges using Web services, see Web services-based exchanges in AIF and Configure document exchanges with Web services in AIF.

Adapter-based exchanges

An adapter-based exchange uses an adapter to convert the document into the proper format for exchange by means of a particular transport mechanism, such as Message Queuing (MSMQ). Adapter-based exchanges are asynchronous because they involve moving the document into a queue where it waits for processing by a Microsoft Dynamics AX batch job. Adapter-based exchanges require configuration of an adapter and a channel for use by AIF.

For asynchronous, adapter-based exchanges, you configure and control the Microsoft Dynamics AX batch jobs that process documents in the AIF queues.

Microsoft Dynamics AX includes the functionality to enable connections with the following asynchronous adapters:

File system Message Queuing (MSMQ) BizTalk Server

Note

Although adapter-based exchanges are asynchronous, if you use the BizTalk adapter, it is possible to configure the data exchange to be synchronous or asynchronous.

For more information about data exchanges using adapters, see Adapter-based exchanges in AIF and Configure document exchanges with adapters in AIF.

Send and receive documents and data

Regardless of which transport method you use, AIF can be used to either send data into Microsoft Dynamics AX (inbound) or retrieve it (outbound). An example of an inbound exchange would be an external system sending a sales order to be saved to the Microsoft Dynamics AX database. An example of an outbound exchange would be an external system sending a request for a purchase order and receiving the purchase order back. The inbound and outbound exchanges can be categorized as follows:

Send data - Microsoft Dynamics AX sends documents to an external system.

Page 42: Application Integration Framework Overview

Send data in response to requests - Microsoft Dynamics AX receives requests for documents from another authorized system, retrieves the requested information (a document or a list of documents) from the Microsoft Dynamics AX database, and returns it to the requesting system, with appropriate filtering and security. The request message would contain the entity keys or a query that specifies the data that the external system is requesting.

Receive and create data - Microsoft Dynamics AX receives documents from another authorized system and creates new records in the Microsoft Dynamics AX database.

By using outbound exchanges in AIF, you can send documents and data to your trading partners. You receive documents and data from endpoints in an inbound exchange.

Send documents and data

Sending a document can be initiated by clicking a button on a form, such as the Send electronically button on the Chart of accounts form. For more information, see topics "How to: Send and receive electronic documents automatically" and "How to: Send documents manually" in the Application and Business Processes Help.

Receive documents and data

When documents are received in an inbound transfer, data is added, updated, deleted or changed in the Microsoft Dynamics AX database. For this reason, you should carefully consider how to ensure the security of your Microsoft Dynamics AX system when configuring the Microsoft Dynamics AX users associated with an endpoint. Be sure that endpoint users are trusted by your business organization.