<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Dynamics AX Integration using AIF</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/aif/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/aif/feed.xml</link>
    <description>Integration scenarios, problems, solutions, etc.</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:14:23 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Microsoft Dynamics AX Services and Windows Azure Service Bus</title>
      <link>https://docs.microsoft.com/archive/blogs/aif/microsoft-dynamics-ax-services-and-windows-azure-service-bus</link>
      <pubDate>Mon, 29 Apr 2013 13:16:00 GMT</pubDate>
      <dc:creator><![CDATA[Sharrief Shabazz]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/aif/2013/04/29/microsoft-dynamics-ax-services-and-windows-azure-service-bus/</guid>
      <description><![CDATA[Introduction
&nbsp;
In Microsoft Dynamics AX 2012 R2 developers can deploy services using the...]]></description>
      <content:encoded><![CDATA[<h1 class="WordSection1"><strong><span style="font-family: Calibri Light; font-size: x-large;">Introduction</span></strong></h1>
<div class="WordSection1">&nbsp;</div>
<div class="WordSection1"><span style="font-size: small;">In Microsoft Dynamics AX 2012 R2 developers can deploy services using the Application Integration Framework (AIF) over HTTP. This works great for applications that needed to communicate with Microsoft Dynamics AX over an enterprise network. However added complexities arise when applications need to communicate with Microsoft Dynamics AX over the Internet or through external networks, complexities that require&nbsp;re-configuring firewalls and building additional infrastructure components. </span></div>
<div class="WordSection1">&nbsp;</div>
<div class="WordSection1"><span style="font-size: small;">With the AIF Windows Azure Service Bus Adapter, AIF&nbsp;can now be configured to work seamlessly with the Windows&nbsp;Azure Service Bus. The Service Bus acts as a message relay, allowing Microsoft Dynamics AX-bound service messages sent over the Internet to reach Microsoft Dynamics AX service endpoints on a private network, and allowing the message responses to be returned to the&nbsp;client application.</span></div>
<div class="WordSection1">&nbsp;</div>
<div class="WordSection1"><span style="font-size: small;">The process for publishing Microsoft Dynamics AX services to work with the AIF Windows Azure Service Bus Adapter is much the same as the process to publish Microsoft Dynamics AX services using the HTTP adapter in Microsoft Dynamics AX 2012 R2. <span style="font-size: small;">This article provides a high-level overview of the required infrastructure&nbsp;as well as&nbsp;the steps needed to publish a service using the AIF Windows Azure Service Bus Adapter. </span></span></div>
<div class="WordSection1">&nbsp;</div>
<div class="WordSection1"><span style="font-size: small;"><span style="font-size: small;">Before you are able to publish such a service yourself, you will need to complete the </span>one-time setup instructions that detail creating a Windows Azure account, Service Bus namespace, Access Control Services (ACS)&nbsp;namespace, and Microsoft ADFS configuration as covered in the article <em><a title="Microsoft Dynamics AX 2012 White Paper: Developing Mobile Apps" href="https://www.microsoft.com/en-us/download/details.aspx?id=38413" target="_blank">Microsoft Dynamics AX 2012 White Paper: Developing Mobile Apps</a>. </em></span></div>
<div class="WordSection1"><span style="font-size: small;">You will also need to install the <em><a title="AIF Windows Azure Service Bus Adapter Hotfix for Microsoft Dynamics AX 2012 R2" href="https://support.microsoft.com/kb/2845539" target="_blank">AIF Windows Azure Service Bus Adapter Hotfix for Microsoft Dynamics AX 2012 R2 </a></em>or install <a href="https://mbs2.microsoft.com/Knowledgebase/KBDisplay.aspx?scid=kb%3ben-us%3b2850972">Cumulative Update 6&nbsp;(CU6) for Microsoft Dynamics 2012 R2</a>&nbsp;from PartnerSource.</span></div>
<div class="WordSection1">&nbsp;</div>
<h2 class="WordSection1"><strong><span style="font-family: Calibri Light; font-size: x-large;">Overview</span></strong></h2>
<p class="WordSection1">&nbsp;</p>
<p class="WordSection1"><span style="font-size: small;">Below is&nbsp;an architecture&nbsp;overview detailing the flow of information between a Client Application&nbsp;on an external network (the Internet)&nbsp;communicating with X++ services running on Microsoft Dynamics AX in a firewalled&nbsp;enterprise network. The major components and their behaviors are:</span></p>
<div class="WordSection1"><ol>
<li><span style="font-size: small;">&nbsp;The Cloud/Client Application</span></li>
<ul>
<li><span style="font-size: small;">Prompts user for credentials. Creates an authentication request using Windows Claims-Based Authentication for the Active Directory Federation Services (ADFS).</span></li>
<li><span style="font-size: small;">Uses tokens from the Microsoft ADFS and the Windows Azure ACS to make X++ service calls through the Service Bus</span></li>
</ul>
<li><span style="font-size: small;">The ADFS</span></li>
<ul>
<li><span style="font-size: small;">Acts as a Security Token Service (STS) for the application.</span></li>
<li><span style="font-size: small;">The ADFS establishes a trust with the ACS as part of configuration. </span></li>
</ul>
<li><span style="font-size: small;">The Windows Azure Service Bus and Access Control Services</span></li>
<ul>
<li><span style="font-size: small;">The Service Bus receives service calls over HTTP from the Cloud/Client Applications.</span></li>
<li><span style="font-size: small;">Each Service Bus namespace has a coupled ACS, which is&nbsp;configured to authenticate service calls. The ACS requires configuration steps&nbsp;that are dependent on the ADFS settings. </span></li>
</ul>
<li><span style="font-size: small;">Microsoft Dynamics AX and IIS 7.5</span></li>
<ul>
<li><span style="font-size: small;">The AIF is used to publish services just as was done in Microsoft Dynamics AX 2012 R2. Services for the Cloud/Client Applications must be published using the Service Bus adapter.</span></li>
<li><span style="font-size: small;">AX will deploy a WCF routing service into IIS 7.5 when the service is published. The routing service requires no configuration after the service is configured using the AIF.</span></li>
</ul>
</ol></div>
<h2><strong><span style="font-family: Calibri Light; font-size: x-large;">Architecture Visual Representation</span></strong></h2>
<p>&nbsp;<a title="Larger Image" href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/93/72/5584.AXServicesWithAzureServiceBusDiagram.png" original-url="https://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-93-72/5584.AXServicesWithAzureServiceBusDiagram.png" target="_blank"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/93/72/5584.AXServicesWithAzureServiceBusDiagram.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-93-72/5584.AXServicesWithAzureServiceBusDiagram.png" alt="" width="570" height="301" border="0" /></a></p>
<p style="text-align: center;"><a title="Larger Image" href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/93/72/5584.AXServicesWithAzureServiceBusDiagram.png" original-url="https://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-93-72/5584.AXServicesWithAzureServiceBusDiagram.png" target="_blank">Click for larger image</a></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">The authentication process is as follows:</span></p>
<ol>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">The client app sends user credentials to ADFS.&nbsp;</span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">The client calls the ADFS Security Token System (STS) with the user credentials </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">and requests a Security Assertion Markup Language (SAML) token.&nbsp; The SAML token is signed but unencrypted. This </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">is because the token is used by Microsoft Dynamics AX 2012 R2</span><span style="font-family: arial,helvetica,sans-serif; font-size: small;"> to identify the user.<br /></span></li>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">ADFS computer sends token A to the client.<br /></span></li>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">The client app sends token A (the SAML token) to </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">ACS.<br /></span></li>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">ACS&nbsp;first verifies that the SAML token corresponds to a user with permissions to call the Service Bus, and then&nbsp;sends token B to the client app. Token B is a Single </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Web Token (SWT) that has the claim required to make the service call to the </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Service Bus.<br /></span></li>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">The client app makes a call to the </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Service Bus and passes tokens A and B along with the service request</span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">. The Service Bus consumes the SWT (token B), but allows the SAML token (token A)&nbsp;stored <span style="font-family: arial,helvetica,sans-serif; font-size: small;">in a custom header to pass through. </span>The SAML token&nbsp;is intended for use by an authentication </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">component hosted in IIS. </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><br /></span></li>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">The Service Bus relays the SAML token and service message </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">through to the Windows Communication Foundation (WCF) Routing </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">service. Because the WCF Routing service has established an <em>outbound</em> connection to the Service Bus, messages from the Service Bus&nbsp;are allowed through the firewall.<br /></span></li>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">The AOS receives&nbsp;the SAML token&nbsp;and the service message from </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">the WCF Routing service.<br /></span>
<ul>
<ul>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">An authentication component for the </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">service is invoked by IIS as part of the authentication process. (he authentication component is detailed in <em><a title="Microsoft Dynamics AX 2012 White Paper: Developing Mobile Apps" href="https://www.microsoft.com/en-us/download/details.aspx?id=38413" target="_blank">Microsoft Dynamics AX 2012 White Paper: Developing Mobile Apps</a>.<br /><br /></em>The authentication&nbsp;</span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">component performs the following steps while processing&nbsp;the message:</span></li>
</ul>
</ul>
<p style="padding-left: 90px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">a. Reads the custom header from the message.</span></p>
<p style="padding-left: 90px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">b. Extracts the SAML token from the custom header.</span></p>
<p style="padding-left: 90px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">c. Validates the token by verifying that the signature of the token matches the <span style="font-family: arial,helvetica,sans-serif; font-size: small;">signature</span> expected</span><br /><span style="font-family: arial,helvetica,sans-serif; font-size: small;">by the ADFS STS.</span></p>
<p style="padding-left: 90px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">d. Extracts the claims from the token.</span></p>
<p style="padding-left: 90px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">e. Creates the claims identity and principal and sets them on the security context of the message.</span></p>
<ol>
<ul>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">An AIF extension gets the user identity </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">from the message security context and sets it on the message being forwarded to </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">the AOS. The AOS authenticates the caller specified in the headers set </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">on the message by the AIF extension.<br /></span></li>
</ul>
</ol></li>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">The AOS processes the service call, and sends the Response message to the WCF </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">routing service hosted in IIS.<br /></span></li>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">The WCF routing service sends the service response back&nbsp;through the S</span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">ervice Bus.<br /></span></li>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">The Service Bus sends the service response back </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">to the client app.&nbsp;</span></li>
</ol>
<h2><strong><span style="font-family: Calibri Light;">Getting started with&nbsp;the AIF Windows Azure Service Bus Adapter</span></strong></h2>
<p><span style="font-size: small;">In order to get started using the AIF Windows Azure Service Bus Adapter you must first fulfill&nbsp;the following prerequisites as detailed in <em><a title="Microsoft Dynamics AX 2012 White Paper: Developing Mobile Apps" href="https://www.microsoft.com/en-us/download/details.aspx?id=38413" target="_blank">Microsoft Dynamics AX 2012 White Paper: Developing Mobile Apps</a>.</em></span></p>
<ul>
<li><span style="font-size: small;">Configure your <strong>Service Bus</strong> and <strong>ACS</strong> namespaces <br /></span></li>
<li><span style="font-size: small;">Configure a <strong>Microsoft ADFS</strong> <br /><em>OR</em><br />Contact the administrator of your local <strong>Microsoft ADFS</strong> and request&nbsp; that your <strong>ACS</strong> be added as a <em>relying party application</em> <br /></span></li>
<li><span style="font-size: small;">Verify the AX component <strong>Web Services on IIS 7.5</strong> is installed<br /></span></li>
<li><span style="font-size: small;"><span style="font-size: small;">Install the <strong>AIF Windows Azure Service Bus Adapter</strong> hotfix: <a href="https://support.microsoft.com/kb/2845539">https://support.microsoft.com/kb/2845539</a><br /></span></span></li>
<li><span style="font-size: small;">Create a service<strong> authentication component&nbsp;</strong></span></li>
</ul>
<p>&nbsp;</p>
<p><span style="font-size: small;">After fulfilling the prerequisites above you will be able to&nbsp;complete the following steps to make an AX service available through the Service Bus:</span></p>
<ol>
<li><span style="font-size: small;">Create an X++ service from an existing X++ class</span></li>
<li><span style="font-size: small;">Expose an existing X++&nbsp;method as an operation on the service</span></li>
<li><span style="font-size: small;">Register your Service Bus namespace with the AIF</span></li>
<li><span style="font-size: small;">Publish your X++ service to the Service Bus using the AIF Windows Azure Service Bus Adapter</span></li>
</ol>
<p>&nbsp;<span style="font-size: small;">These steps&nbsp;are summarized below, and detailed in full in <em><a title="Microsoft Dynamics AX 2012 White Paper: Developing Mobile Apps" href="https://www.microsoft.com/en-us/download/details.aspx?id=38413" target="_blank">Microsoft Dynamics AX 2012 White Paper: Developing Mobile Apps.</a></em></span></p>
<h3><span style="font-size: medium;">Create an X++ service from an existing X++ class</span></h3>
<ol>
<li><span style="font-size: small;">Open the <strong>Microsoft Dynamics AX MorphX Development Workspace</strong></span></li>
<li><span style="font-size: small;">Open the X++ Class containing the X++ methods you wish to expose as services</span></li>
<ol>
<li><span style="font-size: small;">Supply a <em>SysEntryPointAttribute</em> to each method</span></li>
<li><span style="font-size: small;">Save your changes</span></li>
</ol></ol>
<h3><span style="font-size: medium;">Expose an existing X++ method as an operation on the service</span></h3>
<ol>
<li><span style="font-size: small;">Open&nbsp;the <strong>Microsoft Dynamics AX MorphX Development Workspace</strong>&nbsp;</span></li>
<li><span style="font-size: small;">Create a new service by right-clicking the <strong>Services</strong> node in the <strong>AOT </strong>and selecting <strong>New Service</strong></span></li>
<ol>
<li><span style="font-size: small;">Supply a name for the service</span></li>
<li><span style="font-size: small;">Set the <em>Class</em>&nbsp;property to the name of an X++ class containing methods with the <em>SysEnrtyPointAttribute</em></span></li>
</ol>
<li><span style="font-size: small;">Right-click the new service and add a new operation</span></li>
<ol>
<li><span style="font-size: small;">Select all methods you wish to expose as operations on this service</span></li>
</ol>
<li><span style="font-size: small;">Right-click the new service, click <strong>Add-Ins</strong>&nbsp;and then click <strong>Register Service</strong></span></li>
</ol>
<p>&nbsp;</p>
<p style="padding-left: 30px;"><span style="font-size: small;">For more information on registering services and service operations, see: <br /><a href="https://technet.microsoft.com/en-us/library/gg731906.aspx">https://technet.microsoft.com/en-us/library/gg731906.aspx</a></span></p>
<h3><span style="font-size: medium;">Register your Service Bus namespace with AIF</span></h3>
<ol>
<li><span style="font-size: small;">Open the Microsoft Dynamics AX Client</span></li>
<li><span style="font-size: small;">Click <strong>System administration &gt; Setup &gt; Services and Application Integration Framework &gt; Windows Azure Service Bus Configuration</strong></span></li>
<li><span style="font-size: small;">Complete&nbsp;the <strong>Windows Azure Service Bus Configuration</strong> form (this is complete only once for each Service Bus namespace)</span></li>
<ol>
<li><span style="font-size: small;"><strong>Windows Azure service namespace: </strong>Supply the name your&nbsp;Service Bus namespace </span></li>
<li><span style="font-size: small;"><strong>Windows Azure service key issuer name:</strong> Supply the Access Key issuer name of your Service Bus</span></li>
<li><span style="font-size: small;"><strong>Windows Azure service key issuer secret:</strong> Supply the Access Key of your Service Bus</span></li>
<li><span style="font-size: small;"><strong>Deployment web site:</strong> Select the IIS website that will host the routing service </span></li>
<li><span style="font-size: small;"><strong>Class name:</strong> Select the authentication component registered while completing the prerequisites</span></li>
<li><span style="font-size: small;">Click <strong>Configure</strong></span></li>
<ol>
<li><span style="font-size: small;"><strong>Trusted Issuer Name:</strong> Supply the name of the X.509 certificate issuer as obtained while completing the prerequisites</span></li>
<li><span style="font-size: small;"><strong>Trusted Issuer Thumbprint: </strong>Supply the X.509 certificate thumbprint obtained while completing the prerequisites</span></li>
</ol>
<li><span style="font-size: small;"><strong>RSA Key Container Name:</strong> Supply the name of the key container created while completing the prerequisites</span></li>
<li><span style="font-size: small;"><strong>Description: </strong>Supply a description of the Service Bus namespace being configured</span></li>
</ol></ol>
<p><span style="font-size: small;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/93/72/5875.azureservicebusconfigurationform.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-93-72/5875.azureservicebusconfigurationform.png"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/93/72/5875.azureservicebusconfigurationform.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-93-72/5875.azureservicebusconfigurationform.png" alt="" border="0" /></a></span></p>
<h3><span style="font-size: large;">Publish your service to the Service Bus using the AIF Windows Azure Service Bus Adapter</span></h3>
<ol>
<li><span style="font-size: small;">Click <strong>System Administration &gt; Services and Application Integration Framework &gt; Inbound Ports</strong></span></li>
<li><span style="font-size: small;">Click <strong>New </strong>to create a new port</span></li>
<ol>
<li><span style="font-size: small;"><strong>Port Name:</strong> Type the name of the port</span></li>
<li><span style="font-size: small;"><strong>Description:</strong> Provide a description of the services this port hosts</span></li>
<li><span style="font-size: small;"><strong>Adapter:</strong> Select <strong>Windows Azure Service Bus </strong></span></li>
<li><span style="font-size: small;">Click the dropdown button beside the URI filed to open the <strong>Select Windows Azure Service Bus Namespace</strong> form</span></li>
<ol>
<li><span style="font-size: small;">Select the namespace you registered</span></li>
<li><span style="font-size: small;">Click <strong>OK<br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/93/72/5241.inboundports.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-93-72/5241.inboundports.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/93/72/5241.inboundports.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-93-72/5241.inboundports.png" alt="" border="0" /></a></strong></span></li>
</ol>
<li><span style="font-size: small;">Click the <strong>Service Operations</strong> button below Service Contract customizations</span></li>
<ol>
<li><span style="font-size: small;">Locate the X++ service you wish to expose</span></li>
<li><span style="font-size: small;">Select all of the Operations on your service you wish to publish by highlighting each one and clicking the "&lt;" button</span></li>
<li><span style="font-size: small;">Click <strong>Close</strong></span></li>
</ol></ol>
<li><span style="font-size: small;">In the <strong>Inbound Ports</strong> window, highlight the port you created&nbsp;in the left-hand pane</span></li>
<li><span style="font-size: small;">Click the <strong>Activate</strong> button at the top</span></li>
</ol>
<p><span style="font-size: small;">Your X++ service is now published to IIS 7.5 and listening to messages from the Service Bus.&nbsp;</span></p>
<p>&nbsp;</p>
<div class="WordSection1">
<h3><span style="font-size: large;">Downloads</span></h3>
<p><span style="font-size: small;">The article <em><a title="Microsoft Dynamics AX 2012 White Paper: Developing Mobile Apps" href="https://www.microsoft.com/en-us/download/details.aspx?id=38413" target="_blank">Microsoft Dynamics AX 2012 White Paper: Developing Mobile Apps</a></em> details all steps necessary to create an authentication component and encrypt sensitive configuration information. The steps in that document&nbsp;require the downloads available below.&nbsp;</span></p>
<ul>
<li>
<p><span style="font-size: small;"><a title="Sample authentication classes" href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/93/72/0511.ServiceBusCustomAuth.zip" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-93-72/0511.ServiceBusCustomAuth.zip">Sample authentication classes</a></span></p>
</li>
<li>
<p><span style="font-size: small;"><a title="Encryption scripts for securing container key" href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/93/72/8507.KeyScripts.zip" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-93-72/8507.KeyScripts.zip">Encryption scripts </a></span></p>
</li>
</ul>
</div>]]></content:encoded>
    </item>
    <item>
      <title>AX 2012 Documentation Resources for AIF and Services - with updates for Dynamics AX 2012 R2</title>
      <link>https://docs.microsoft.com/archive/blogs/aif/ax-2012-documentation-resources-for-aif-and-services-with-updates-for-dynamics-ax-2012-r2</link>
      <pubDate>Fri, 07 Dec 2012 11:09:00 GMT</pubDate>
      <dc:creator><![CDATA[ms-robinvs]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/aif/2012/12/07/ax-2012-documentation-resources-for-aif-and-services-with-updates-for-dynamics-ax-2012-r2/</guid>
      <description><![CDATA[I've gotten a few requests recently for links to the documentation resources for AIF and services in...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family: Calibri;"><span style="font-size: small;">I've gotten a few requests recently for links to the documentation resources for AIF and services in Dynamics AX 2012. The following list is organized by type of documentation - I hope you find it useful!</span></span></p>
<p><span style="font-family: Calibri;"><span style="font-size: small;">White papers:</span></span></p>
<ul>
<li><span style="font-family: Calibri; font-size: small;">Selecting the Best Development Technology for Your Application Development Scenario: </span><a href="https://technet.microsoft.com/EN-US/library/hh272857.aspx"><span style="color: #0563c1; font-family: Calibri; font-size: small;">https://technet.microsoft.com/EN-US/library/hh272857.aspx</span></a></li>
<li><span style="font-family: Calibri; font-size: small;">Consuming Web Services: </span><a href="https://technet.microsoft.com/EN-US/library/hh272880.aspx"><span style="color: #0563c1; font-family: Calibri; font-size: small;">https://technet.microsoft.com/EN-US/library/hh272880.aspx</span></a></li>
<li><span style="font-family: Calibri; font-size: small;">Services: </span><a href="https://technet.microsoft.com/EN-US/library/hh272881.aspx"><span style="color: #0563c1; font-family: Calibri; font-size: small;">https://technet.microsoft.com/EN-US/library/hh272881.aspx</span></a><span style="font-family: Calibri; font-size: small;">&nbsp;</span></li>
</ul>
<p><span style="font-family: Calibri; font-size: small;">Topics on Technet and MSDN: </span><a href="https://msdn.microsoft.com/en-us/library/gg731810.aspx"><span style="color: #0563c1; font-family: Calibri; font-size: small;">https://msdn.microsoft.com/en-us/library/gg731810.aspx</span></a><span style="font-size: small;"><span style="font-family: Calibri;">): </span></span></p>
<ul>
<li><span style="font-family: Calibri; font-size: small;">Services and AIF (includes Getting Started, Architecture, Planning, Operations, Troubleshooting): </span><a href="https://technet.microsoft.com/EN-US/library/gg731810.aspx"><span style="color: #0563c1; font-family: Calibri; font-size: small;">https://technet.microsoft.com/EN-US/library/gg731810.aspx</span></a></li>
<li><span style="font-family: Calibri; font-size: small;">Developer topics: </span><a href="https://technet.microsoft.com/EN-US/library/hh397321.aspx"><span style="color: #0563c1; font-family: Calibri; font-size: small;">https://technet.microsoft.com/EN-US/library/hh397321.aspx</span></a></li>
<li><span style="font-family: Calibri; font-size: small;">Troubleshooting: </span><a href="https://technet.microsoft.com/EN-US/library/aa548693.aspx"><span style="color: #0563c1; font-family: Calibri; font-size: small;">https://technet.microsoft.com/EN-US/library/aa548693.aspx</span></a></li>
</ul>
<p><span style="font-size: small;"><span style="font-family: Calibri;">Training course 80416: Application Integration Framework and Services in Microsoft Dynamics&reg; AX 2012</span></span></p>
<ul>
<li><span style="font-family: Calibri;"><span style="font-size: small;">PartnerSource:&nbsp;</span></span><a href="https://mbs.microsoft.com/partnersource/communities/training/trainingmaterials/student/course80416.htm?printpage=false"><span style="color: #0563c1; font-family: Calibri; font-size: small;">https://mbs.microsoft.com/partnersource/communities/training/trainingmaterials/student/course80416.htm?printpage=false</span></a></li>
<li><span style="font-family: Calibri; font-size: small;">CustomerSource: </span><a href="https://mbs.microsoft.com/customersource/training/trainingmaterials/student/course80416.htm?printpage=false"><span style="color: #0563c1; font-family: Calibri; font-size: small;">https://mbs.microsoft.com/customersource/training/trainingmaterials/student/course80416.htm?printpage=false</span></a></li>
</ul>
<p><span style="font-family: Calibri; font-size: small;">&nbsp;</span></p>]]></content:encoded>
    </item>
    <item>
      <title>How to serialize int/real properties with 0/0.00 values via AIF outbound integration</title>
      <link>https://docs.microsoft.com/archive/blogs/aif/how-to-serialize-intreal-properties-with-00-00-values-via-aif-outbound-integration</link>
      <pubDate>Mon, 07 May 2012 12:32:00 GMT</pubDate>
      <dc:creator><![CDATA[ShwetaSa]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/aif/2012/05/07/how-to-serialize-intreal-properties-with-00-00-values-via-aif-outbound-integration/</guid>
      <description><![CDATA[It is a known limitation that AIF does not serialize null values in outbound XMLs. This is true for...]]></description>
      <content:encoded><![CDATA[<p class="Publishwithline"><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">It is a known limitation that AIF does not serialize null values in outbound XMLs. This is true for fields of data type int or real (or any EDT based on them) in Microsoft Dynamics AX. If the outbound document has int or real fields with value 0 or 0.0, they would not appear in the outbound XML generated by AIF. The reason is that AX does not have null values so default values (0 for int, 0.00 for real, &lsquo;&rsquo; for strings) for each type are treated as nulls and are not serialized by outbound operations.</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">There are few workarounds for this limitation. If you want a field to be serialized irrespective of its value, you need to make it a &ldquo;required&rdquo; field. This can be done in two ways:</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">-</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Make field mandatory at table level ie. In AOT , set the field property &lsquo;Mandatory&rsquo; to Yes.</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">-</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Make the field mandatory at service level.</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Making a field mandatory at the table level affects all the consumers of the table such as forms. The second way is less intrusive since it only affects services stack. The tradeoff in this case is that both inbound and outbound exchanges for the document would need to include the required field or else the service operation would throw an error.</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">&nbsp;This article demonstrates shows how to make a field mandatory at service level. </span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">To demonstrate the outbound scenario, we are using <i>BomBillsofMaterialsService </i>document service already provided in Microsoft Dynamics AX and Contoso demo dataset available with product download. </span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Now let&rsquo;s walk through this scenario</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">1.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Import Contoso dataset</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">2.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Register BomBillsofMaterialsService in AOT.</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">3.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Create an outbound port. Expose BomBillsofMaterialsService.* service operations on the port.</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">4.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Open Inventory and Warehouse Management </span>&agrave;<span style="font-family: Calibri;" face="Calibri"> Common </span>&agrave;<span style="font-family: Calibri;" face="Calibri"> Bills Of Materials form. This form already has AIF send API to generate outbound requests for AIF.</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">5.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Select an item and set &lsquo;From qty = 0.00&rsquo; on the form. Click on &ldquo;Send&hellip;&rdquo;and select the outbound port. This sends an outbound BomBillsofMaterialsService.find request to the AIF.</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">6.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">Run AifOutboundProcessingService and AifGatewaySendService batch jobs. For more information, see&nbsp; the section &ldquo;Configure and start the AIF batch services&rdquo; in this topic on MSDN: </span><a href="https://msdn.microsoft.com/en-us/library/hh352313.aspx"><span style="color: #0000ff; font-family: Calibri; font-size: small;" face="Calibri" size="3" color="#0000ff">https://msdn.microsoft.com/en-us/library/hh352313.aspx</span></a><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri"> ..</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">7.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Check the resulting xml. The outbound xml in this case does not contain the tag &lsquo;FromQty&rsquo; since its value is 0.00</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">As you would have observed that the &lsquo;FromQty&rsquo; property is missing from the outbound xml. Let&rsquo;s apply workaround #2 &ndash; of making FromQty mandatory for<i> BomBillsofMaterialsService</i> by following steps:</span></span></p>
<p></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">1.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Open the document class for BomBillsofMaterialsService service &ndash; AxdBillsOfMaterials . Override method </span>initMandatoryFieldsMap()<span style="font-family: Calibri;" face="Calibri"> from the AxdBase in AxdBillsOfMaterials class</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">2.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Update method body as</span></span></p>
<p></p>
<pre class="scroll"><code class="csharp"> protected void initMandatoryFieldsMap()<br /> <br /> {<br /> <br /> super();<br /> <br /> this.setParmMethodAsMandatory(classNum(AxBOMVersion),methodStr(AxBOMVersion,parmFromQty));<br /> <br /> }<br /> </code></pre>
<pre class="scroll"><code class="csharp"> </code><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">For more information about the initMandatoryFieldsMap method, see </span><a href="https://msdn.microsoft.com/en-us/library/axdbase.initmandatoryfieldsmap.aspx"><span style="color: #0000ff; font-family: Calibri; font-size: small;" face="Calibri" size="3" color="#0000ff">https://msdn.microsoft.com/en-us/library/axdbase.initmandatoryfieldsmap.aspx</span></a><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri"> .</span></span></pre>
<p><span style="font-size: small;" size="3">&nbsp;</span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">3.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Here AxBOMVersion is the AxBC class for the table that contains the field and parmFromQty is the name of the field parm method.</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">4.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Compile the method.</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">5.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Generate Incremental IL</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">6.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Register the service again by right clicking the service node in AOT and selecting &lsquo;Register Service&rsquo;</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">7.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Stop and restart the AOS to flush all caches.</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">8.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Click on View Schema button on Document Data Policies form for the outbound port. The updated schema now shows &lsquo;FromQty&rsquo; as a mandatory field.</span></span></p>
<p></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/93/72/4403.blogpic1.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-93-72/4403.blogpic1.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/93/72/4403.blogpic1.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-93-72/4403.blogpic1.jpg" /></a></span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri"></span></span>&nbsp;</p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">&nbsp;</span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">9.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Send another request to the outbound port with FromQty = 0.00.</span></span></p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">10.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Open the outbound xml and&nbsp; this time you will see the FromQty property in the output xml.</span></span></p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri"></span></span>&nbsp;</p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/93/72/0513.blogpic2.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-93-72/0513.blogpic2.jpg"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/93/72/0513.blogpic2.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-93-72/0513.blogpic2.jpg" /></a></span></span></p>
<p></p>
<p></p>]]></content:encoded>
    </item>
    <item>
      <title>Introduction to the SysOperation Framework</title>
      <link>https://docs.microsoft.com/archive/blogs/aif/introduction-to-the-sysoperation-framework</link>
      <pubDate>Sat, 17 Mar 2012 09:16:00 GMT</pubDate>
      <dc:creator><![CDATA[ariph]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/aif/2012/03/17/introduction-to-the-sysoperation-framework/</guid>
      <description><![CDATA[This blog entry provides sample code for the whitepaper Introduction to the SysOperation Framework...]]></description>
      <content:encoded><![CDATA[<p>This blog entry provides sample code for the whitepaper <a title="Introduction to the SysOperation Framework  " href="https://go.microsoft.com/fwlink/?LinkId=246316">Introduction to the SysOperation Framework</a> for Microsoft Dynamics AX 2012.&nbsp; This white paper illustrates how the SysOperation framework can be used to build scalable asynchronous&nbsp;operations.&nbsp;The best use of the whitepaper is as a guide to running the samples.</p>
<p>&nbsp;</p>
<p>Use of the sample code is covered by the license agreement included in the zipfile.</p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/28/46/02/Introduction%20to%20the%20SysOperation%20Framework.zip" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-28-46-02/Introduction-to-the-SysOperation-Framework.zip">Introduction to the SysOperation Framework.zip</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Decoding image blobs obtained from OData query services</title>
      <link>https://docs.microsoft.com/archive/blogs/aif/decoding-image-blobs-obtained-from-odata-query-services</link>
      <pubDate>Thu, 05 Jan 2012 10:26:00 GMT</pubDate>
      <dc:creator><![CDATA[ms-robinvs]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/aif/2012/01/05/decoding-image-blobs-obtained-from-odata-query-services/</guid>
      <description><![CDATA[This post on the OData Query Service is by Principal Software Architect Arthur Greef.
Images...]]></description>
      <content:encoded><![CDATA[<p>This post on the OData Query Service is by Principal Software Architect Arthur Greef.</p>
<p><span style="font-size: small;" size="3"><span style="font-family: Calibri;" face="Calibri">Images retrieved using OData query services are returned as base 64 encoded containers. The following code will decode the image container into a byte array that contains just the image.</span></span></p>
<p></p>
<p style="padding-left: 30px;">string base64EncodedString = "&lt;place your base64 encoded blob here&gt;";</p>
<p style="padding-left: 30px;">byte[] serializedContainer = Convert.FromBase64String(base64EncodedString);</p>
<p style="padding-left: 30px;">byte[] modifiedSerializedContainer = null;</p>
<p style="padding-left: 30px;">&nbsp;if (serializedContainer.Length &gt;= 7 &amp;&amp;</p>
<p style="padding-left: 30px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; serializedContainer.Take(3).SequenceEqual(new byte[] { 0x07, 0xFD, 0x30 }))</p>
<p style="padding-left: 30px;">{</p>
<p style="padding-left: 30px;">&nbsp;&nbsp;&nbsp; modifiedSerializedContainer = serializedContainer.Skip(7).ToArray();</p>
<p style="padding-left: 30px;">}</p>
<p style="padding-left: 30px;">File.WriteAllBytes("&lt;image file name here&gt;", modifiedSerializedContainer);</p>
<p style="padding-left: 30px;"><span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"></span>&nbsp;</p>
<p><span style="font-family: Calibri; font-size: small;" size="3" face="Calibri">This posting is provided "AS IS" with no warranties, and confers no rights.&nbsp;</span></p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>New content for September</title>
      <link>https://docs.microsoft.com/archive/blogs/aif/new-content-for-september</link>
      <pubDate>Wed, 21 Sep 2011 19:12:00 GMT</pubDate>
      <dc:creator><![CDATA[Jim Travis [MS]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/aif/2011/09/21/new-content-for-september/</guid>
      <description><![CDATA[Our colleague Margo Crandall has posted the list of new and updated content for Dynamics AX on...]]></description>
      <content:encoded><![CDATA[<p>Our colleague Margo Crandall has posted the list of new and updated content for Dynamics AX on TechNet and MSDN for the month of September. See <a title="https://blogs.msdn.com/b/axsupport/archive/2011/09/20/content-news-september.aspx" href="https://blogs.msdn.com/b/axsupport/archive/2011/09/20/content-news-september.aspx" target="_blank">https://blogs.msdn.com/b/axsupport/archive/2011/09/20/content-news-september.aspx</a></p>
<p>One big piece of news is that we now publish all the Services and AIF content on both TechNet and MSDN as a unified set of documentation. We hope that this will make the content easier to navigate and use. Whether you're a power user, system admin, or a developer, you can choose your favorite flavor of website.</p>
<p>See for yourself!&nbsp;</p>
<p>This: <a title="https://msdn.microsoft.com/en-us/library/gg731810.aspx " href="https://msdn.microsoft.com/en-us/library/gg731810.aspx" target="_blank">https://msdn.microsoft.com/en-us/library/gg731810.aspx</a>&nbsp;</p>
<p>Is the same as this:&nbsp; <a title="https://technet.microsoft.com/en-us/library/gg731810.aspx" href="https://technet.microsoft.com/en-us/library/gg731810.aspx" target="_blank">https://technet.microsoft.com/en-us/library/gg731810.aspx</a></p>
<p>-- Jim</p>]]></content:encoded>
    </item>
    <item>
      <title>OData Query Service</title>
      <link>https://docs.microsoft.com/archive/blogs/aif/odata-query-service</link>
      <pubDate>Tue, 23 Aug 2011 17:05:00 GMT</pubDate>
      <dc:creator><![CDATA[ms-robinvs]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/aif/2011/08/23/odata-query-service/</guid>
      <description><![CDATA[Today's post on the OData Query Service is by&nbsp;Principal Software&nbsp;Architect Arthur...]]></description>
      <content:encoded><![CDATA[<p>Today's post on the OData Query Service is by&nbsp;Principal Software&nbsp;Architect Arthur Greef.</p>
<p>Microsoft Dynamics AX 2012 hosts an <a href="https://www.odata.org/"><span style="color: #0000ff;" color="#0000ff">OData</span></a> Query Service that uses the Open Data Protocol (OData) protocol to execute queries that are modeled in the Application Object Tree (AOT). The OData protocol is a HTTP protocol for querying and updating data. Microsoft Dynamics AX 2012 supports data query scenarios (with some limitations listed below), but does not support data update scenarios. The following example describes how to read data from the Currency table. The sample assumes that the Application Object Server (AOS) is installed on a machine named &lsquo;aoshost&rsquo;.</p>
<p><b>Set up an AOT query that can be executed by the OData Query Service</b></p>
<ol>
<li>Open the Microsoft Dynamics AX 2012 development environment.</li>
<ol>
<li>Under AOT, click the Queries node, and then create a new query node. Either&nbsp;&nbsp;(1) Select File &gt; New or (2) Right-click the Queries node, and then select New Query.</li>
<li>Change the name the new query node to &ldquo;CurrencyQuery&rdquo;.</li>
<li>Under AOT, click Queries &gt; CurrencyQuery &gt; Data Sources node, and then create a new data source node. Either: (1) SelectFile &gt; New. or (2) Right-click the Data Sources node, and then select New Data Source.</li>
<li>Select the new data source node Currency_1, and then on the Table property in the property sheet, select Currency</li>
</ol>
<li>Open the Microsoft Dynamics AX 2012 Windows Client.</li>
<ol>
<li>Click Organization Administration &gt; Setup &gt; Document management &gt; Document data sources.</li>
<li>In the Document data sources form, click New or press CTRL+N to add a new document data source.</li>
</ol></ol>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i.&nbsp;&nbsp;&nbsp; No specific value is required in the Module column.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ii.&nbsp;&nbsp;&nbsp; In the Data source type column, select Query.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iii.&nbsp;&nbsp;&nbsp; In the Data source name column, select or enter the CurrencyQuery.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iv.&nbsp;&nbsp;&nbsp; Select the Activated check box to activate the query as a document data source.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; v.&nbsp;&nbsp;&nbsp; Close the Document data sources form.</p>
<p><b>Using the OData Query Service with Windows </b><b>Internet Explorer</b></p>
<ol>
<li>Open Internet Explorer.</li>
<li>Enter the following URL to return the OData Query Service definition: <a href="https://aoshost:8101/DynamicsAx/Services/ODataQueryService/"><span style="color: #0000ff;" color="#0000ff">https://aoshost:8101/DynamicsAx/Services/ODataQueryService/</span></a>. The service will display the name CurrencyQuery. The Application Object Server (AOS) host name and the services port are provided when installing and configuring each AOS and can be found in the AX32Serv.exe.config file created under the file system folder created for the AOS.</li>
<li>Enter the following URL to return the OData Query Service metadata definition: <a href="https://aoshost:8101/DynamicsAx/Services/ODataQueryService/$metadata"><span style="color: #0000ff;" color="#0000ff">https://aoshost:8101/DynamicsAx/Services/ODataQueryService/$metadata</span></a></li>
<li>Enter the following URL to execute the CurrencyQuery query: <a href="https://aoshost:8101/DynamicsAx/Services/ODataQueryService/CurrencyQuery"><span style="color: #0000ff;" color="#0000ff">https://aoshost:8101/DynamicsAx/Services/ODataQueryService/CurrencyQuery</span></a></li>
</ol>
<p>Note: If Internet Explorer formats the results as a feed, then right-click on the HTML page, and select View source to open the result in Notepad.</p>
<p>&nbsp;<b>Using the OData Query Service with Microsoft PowerPivot</b></p>
<ol>
<li>Install Microsoft Excel.</li>
<li>Install Microsoft <a href="https://powerpivot.com/"><span style="color: #0000ff;" color="#0000ff">PowerPivot</span></a>.</li>
<li>Open Microsoft Excel.</li>
<li>Click the PowerPivot tab.</li>
<li>On the PowerPivot tab, in the Launch group, click the PowerPivot Window button. A PowerPivot window opens.</li>
<li>On the Home tab, in the Get External Data group, click the From Data Feeds button.</li>
<li>In the Data Feed Url field, enter the following URL:&nbsp;<span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">&nbsp;</span><a href="https://aoshost:8101/DynamicsAx/Services/ODataQueryService/"><span style="color: #0000ff;" color="#0000ff">https://aoshost:8101/DynamicsAx/Services/ODataQueryService/</span></a></li>
<li>Click the Next button to view the CurrencyQuery OData data source.</li>
<li>Click the Finish button to import the currency data into PowerPivot.</li>
<li>Click the Close button to view the currency data.</li>
</ol>
<p></p>
<p><b>Using the OData Query Service with Microsoft Visual Studio</b></p>
<ol>
<li>Install Microsoft Visual Studio.</li>
<li>Create a new Console Application.</li>
<li>Right-click the project References node in the Solution Explorer window, and then select the Add Service Reference&hellip; menu item.</li>
<li>Enter the following Url into the Address field and click Go: <a href="https://aoshost:8101/DynamicsAx/Services/ODataQueryService/"><span style="color: #0000ff;" color="#0000ff">https://aoshost:8101/DynamicsAx/Services/ODataQueryService/</span></a></li>
<li>Click OK to add the service reference to the project.</li>
</ol>
<p><b>OData Query Service paging</b></p>
<p>The OData Query Service returns data in pages that have a length specified in the AX32Serv.exe.config file created under the file system folder created for the AOS. The page size can be modified by editing the configuration file and by restarting the AOS. The default page size is shown in the following XML document fragment.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;add key="ODataQueryPageSize" value="1000" /&gt;</p>
<p><b>OData Query Service limitations</b></p>
<ul>
<li>OData protocol filters are not supported.</li>
<li>OData protocol create and update operations are not supported.</li>
<li>Each record in an OData query response must have a unique primary key. AOT queries with View data sources are therefore not OData query candidates and will not be displayed in an OData metadata request.</li>
<li>Only queries that support &ldquo;Value-based paging&rdquo; are executed. AOT queries whose FetchMode property value is &ldquo;1:N&rdquo; will generate an error message in the Windows Event Log</li>
</ul>
<p><b>OData Query Service notes</b></p>
<ul>
<li>You may need to replace the AOS host machine name with an IP address in the OData Query Service Url when accessing OData Query Services remotely.</li>
<li>Some applications require a slash mark (/) at the end of the service definition URL. For example: <a href="https://aoshost:8101/DynamicsAx/Services/ODataQueryService/"><span style="color: #0000ff;" color="#0000ff">https://aoshost:8101/DynamicsAx/Services/ODataQueryService/</span></a></li>
<li>Check the Application Windows Log in the Event Viewer if no results are returned from a query. Error messages generated by unsupported queries are written to this log.</li>
</ul>
<p>&nbsp;<span style="font-size: small;"><strong>Known Bugs</strong></span></p>
<ul>
<li>There is a bug in how we check for 1:N fetch mode in Microsoft Dynamics AX 2012 and this results in&nbsp;a windows event log message stating that the query is not supported because it specifies a fetch mode of 1:N. The problem is that the root data source's fetch mode defaults to 1:N and the query validation logic&nbsp;checks and throws an exception for this condition. The root data source fetch mode is not exposed in the AOT so the work around is to export the query as an XPO file and then to edit the query by adding the fetch mode for the root data source as shown in the following example:</li>
</ul>
<p>&nbsp;&nbsp;&nbsp;&nbsp; BLOCK #TrvExpTable<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PROPERTIES<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #TrvExpTable<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Table&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #TrvExpTable<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UniqueId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #1000<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FetchMode&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #1:1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ENDPROPERTIES</p>
<p>This posting is provided "AS IS" with no warranties, and confers no rights.</p>
<p><span style="font-family: Calibri; font-size: small;" face="Calibri" size="3">&nbsp;</span></p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>New white paper for BizTalk integration with AIF</title>
      <link>https://docs.microsoft.com/archive/blogs/aif/new-white-paper-for-biztalk-integration-with-aif</link>
      <pubDate>Wed, 17 Aug 2011 10:59:26 GMT</pubDate>
      <dc:creator><![CDATA[Jim Travis [MS]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/aif/2011/08/17/new-white-paper-for-biztalk-integration-with-aif/</guid>
      <description><![CDATA[Hi everyone,
I'm Jim Travis, a Senior Technical Writer at Microsoft. I write documentation for...]]></description>
      <content:encoded><![CDATA[<p>Hi everyone,</p>
<p>I'm Jim Travis, a Senior Technical Writer at Microsoft. I write documentation for services and Application Integration Framework (AIF) in Microsoft Dynamics AX.</p>
<p>Recently, I've been working on integration between Microsoft BizTalk Server 2010 (<a href="https://www.microsoft.com/biztalk/en/us/default.aspx">https://www.microsoft.com/biztalk/en/us/default.aspx</a>) and Microsoft Dynamics AX 2012. If you have used BizTalk, then you know that BizTalk Server is a commonly used middleware product from Microsoft that is used for large-scale integration scenarios in the enterprise. While the Dynamics AX services and AIF features are very well suited to small-scale integrations, when BizTalk is in use in the enterprise, then AIF becomes more of a "spoke" to the BizTalk "hub."</p>
<p>In Microsoft Dynamics AX2009, we included a specialized BizTalk adapter. This component did a fair job of setting up the connections between Dynamics AX and BizTalk, but at the cost of creating some additional complications and requiring deployment of custom code and a superfluous component. In Dynamics AX 2012, we have removed the BizTalk adapter. Instead, we have chosen to favor standards-based communications, wherever possible. Because BizTalk and AIF both are built on Windows Communication Foundation (WCF), you can simply use the standard WCF adapters to manage communications across various transports and using various protocols. Typically, synchronous communications happen through standard Web services by using the HTTP or NetTCP adapters, while asynchronous communications simply use the file system or Message Queuing (MSMQ).</p>
<p>Now, if you've become accustomed to using the Dynamics AX 2009 BizTalk adapter, there will be some work to do to understand how to get the systems to communicate without the adapter. However, I assure you that it's very straightforward and you should be up and running in no time at all. If you're used BizTalk before, here are a few important points to understand:</p>
<ul>
<li>For simple scenarios, such as those requiring<br />just transformation and communication of data to and from AX, there is no need<br />to create an orchestration. &nbsp;All the<br />transformations and communication happen through the standard ports and<br />pipelines. You will still need to add an orchestration if you have the need for<br />additional processing in complex scenarios.</li>
<li>You don't need to write any custom code. The<br />BizTalk mapper can create the transformations for you and the BizTalk<br />administration console can set up the entire integration.</li>
<li>Microsoft Dynamics AX 2012 integration ports are<br />much simpler to configure than earlier versions, yet provide the needed<br />flexibility to enforce your data and authorization policies.</li>
</ul>
<p>We've published a detailed white paper on this topic. The white paper provides a comprehensive FAQ and then walks you through two scenarios, step by step. The first scenario shows you how to create a sales order that starts out in a custom XML format, by using the file system adapter. The second scenario shows you how to read the sales order that you created in the first scenario, by using the NetTCP adapter.</p>
<p>You can download the white paper from this link: <a href="https://go.microsoft.com/fwlink/?LinkId=221937">https://go.microsoft.com/fwlink/?LinkId=221937</a></p>
<p>I'll be posting a video, soon, that walks you through a bit of this scenario, as well.</p>
<p>Thanks,</p>
<p>Jim Travis [MS]</p>
<p>This posting is provided "AS IS" with no warranties, and confers no rights.</p>]]></content:encoded>
    </item>
    <item>
      <title>Microsoft Dynamics AX 2012 Services and AIF White Papers</title>
      <link>https://docs.microsoft.com/archive/blogs/aif/microsoft-dynamics-ax-2012-services-and-aif-white-papers</link>
      <pubDate>Wed, 15 Jun 2011 12:21:00 GMT</pubDate>
      <dc:creator><![CDATA[ms-robinvs]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/aif/2011/06/15/microsoft-dynamics-ax-2012-services-and-aif-white-papers/</guid>
      <description><![CDATA[We are very happy to announce the availability of several white papers that describe new...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family: Calibri;"><span style="font-size: small;">We are very happy to announce the availability of several white papers that describe new capabilities supporting the implementation of web services in Microsoft Dynamics AX 2012. The following white papers introduce the different types of services in Microsoft Dynamics AX 2012 and a new model for consuming external web services:</span></span></p>
<ul>
<li><a href="https://www.microsoft.com/downloads/en/details.aspx?FamilyID=9927764d-0b67-409b-a6d0-f9c6d9604f0d"><span style="font-family: Calibri; font-size: small;">Services in Microsoft Dynamics AX 2012</span></a><span style="font-family: Calibri;"><span style="font-size: small;"> gives an overview of different types of services that are available in Microsoft Dynamics AX 2012 and provides guidance for developers and architects in deciding when to use a specific service type.</span></span></li>
<li><a href="https://www.microsoft.com/downloads/en/details.aspx?FamilyID=9927764d-0b67-409b-a6d0-f9c6d9604f0d"><span style="font-family: Calibri; font-size: small;">Consuming Web Services</span></a><span style="font-family: Calibri;"><span style="font-size: small;"> describes how to reference a web service and provides example code that demonstrates how to use the service in X++.</span></span></li>
</ul>
<p><span style="font-family: Calibri;"><span style="font-size: small;">In addition to exposing functionality through services that ship with Microsoft Dynamics AX 2012, Microsoft Dynamics AX 2012 also provides declarative language constructs (X++ attributes) and development tools so that you can quickly expose existing X++ business logic as services without additional coding. </span></span></p>
<p><span style="font-family: Calibri;"><span style="font-size: small;">This white paper provides an overview of the common development patterns, programming models, and development tool changes in Microsoft Dynamics AX 2012, including services:</span></span></p>
<ul>
<li><a href="https://www.microsoft.com/downloads/en/details.aspx?FamilyID=99406a2e-648f-40a5-8114-f5875f10aa48"><span style="font-family: Calibri; color: #0000ff; font-size: small;">Selecting the Best Development Technology for Your Application Development Scenario</span></a></li>
</ul>
<p><span style="font-family: Calibri;"><span style="font-size: small;">You may also be interested in the following resources for developers:</span></span></p>
<ul>
<li><a href="https://msdn.microsoft.com/en-us/library/gg845327(AX.60).aspx"><span style="font-family: Calibri; color: #0000ff; font-size: small;">What&rsquo;s New in Microsoft Dynamics AX 2012 for Developers</span></a></li>
<li><a href="https://technet.microsoft.com/en-us/library/gg751352(AX.60).aspx"><span style="font-family: Calibri; font-size: small;">What&rsquo;s New: Services and AIF (Microsoft Dynamics AX 2012) on Technet</span></a></li>
<li><a href="https://msdn.microsoft.com/en-us/library/aa496079.aspx"><span style="font-family: Calibri; font-size: small;">Developer Help on MSDN</span></a><span style="font-family: Calibri;"><span style="font-size: small;"> </span></span></li>
<li><a href="https://msdn.microsoft.com/en-us/dynamics/ax/bb453258"><span style="font-family: Calibri; color: #0000ff; font-size: small;">MSDN Developer Center</span></a><span style="font-family: Calibri;"><span style="font-size: small;">- includes a link to the April 2011&nbsp;beta code&nbsp;download</span></span></li>
</ul>
<p><span style="font-family: Calibri;"><span style="font-size: small;">And finally, this white paper describes all the Microsoft Dynamics AX 2012 documentation currently available:</span></span></p>
<ul>
<li><a href="https://www.microsoft.com/downloads/en/details.aspx?FamilyID=165b2986-4459-42cd-8d85-201851d49d89"><span style="font-family: Calibri; color: #0000ff; font-size: small;">Documentation Resources for Microsoft Dynamics AX 2012</span></a></li>
</ul>]]></content:encoded>
    </item>
    <item>
      <title>Web Service Message Limits in AX 2009</title>
      <link>https://docs.microsoft.com/archive/blogs/aif/web-service-message-limits-in-ax-2009</link>
      <pubDate>Thu, 30 Apr 2009 14:54:00 GMT</pubDate>
      <dc:creator><![CDATA[dsiebold]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/aif/2009/04/30/web-service-message-limits-in-ax-2009/</guid>
      <description><![CDATA[By default, the WCF values for maxBufferSize and maxReceivedMessageSize are both 65536 (64K). If you...]]></description>
      <content:encoded><![CDATA[<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">By default, the WCF values for <B style="mso-bidi-font-weight: normal">maxBufferSize</B> and <B style="mso-bidi-font-weight: normal">maxReceivedMessageSize</B> are both 65536 (64K). If you send a request to a document service in Microsoft Dynamics AX and the message size exceeds this value, you’ll see a cryptic error that says something like: “The remote server returned an error: (400) Bad<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Request.” You may also see an error message that references the <B style="mso-bidi-font-weight: normal">maxReceivedMessageSize</B> property.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">To fix this problem,&nbsp;increase the binding properties <B style="mso-bidi-font-weight: normal">maxBufferSize</B> and <B style="mso-bidi-font-weight: normal">maxReceivedMessageSize</B>.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>These properties are part of the &lt;bindings&gt; section in the app.config and web.config. Both parameters must be changed on the both the client side in the app.config and on the server side in the web.config. To change these properties, you can edit the config files directly or go to&nbsp;<STRONG>Basic </STRONG>&gt;&nbsp;<STRONG>Setup</STRONG> &gt; <STRONG>AIF</STRONG> &gt; <STRONG>Services</STRONG> and&nbsp;click the <STRONG>Configure</STRONG> button to open the service&nbsp;configuration editor.&nbsp;Here are some links that cover this aspect of WCF:<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"><STRONG>MSDN:</STRONG> <A href="https://msdn.microsoft.com/en-us/library/ms733135.aspx" mce_href="https://msdn.microsoft.com/en-us/library/ms733135.aspx"><FONT color=#800080>https://msdn.microsoft.com/en-us/library/ms733135.aspx</FONT></A><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"><STRONG>Blog:</STRONG> <A href="https://geekswithblogs.net/niemguy/archive/2007/12/11/wcf-maxstringcontentlength-maxbuffersize-and-maxreceivedmessagesize.aspx" mce_href="https://geekswithblogs.net/niemguy/archive/2007/12/11/wcf-maxstringcontentlength-maxbuffersize-and-maxreceivedmessagesize.aspx"><FONT color=#800080>https://geekswithblogs.net/niemguy/archive/2007/12/11/wcf-maxstringcontentlength-maxbuffersize-and-maxreceivedmessagesize.aspx</FONT></A><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"><o:p>&nbsp;</o:p></SPAN></P><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">These are the relevant binding sections of app.config:<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"></SPAN><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&lt;?xml version="1.0" encoding="utf-8" ?&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&lt;configuration&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp; &lt;system.serviceModel&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;bindings&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;basicHttpBinding&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;binding name="BasicHttpBinding_FreeTextInvoiceService" closeTimeout="00:01:00"<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="BACKGROUND: yellow; mso-highlight: yellow">maxBufferSize="565536"</SPAN> maxBufferPoolSize="524288" <SPAN style="BACKGROUND: yellow; mso-highlight: yellow">maxReceivedMessageSize="565536"</SPAN><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; useDefaultWebProxy="true"&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; maxBytesPerRead="4096" maxNameTableCharCount="16384" /&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;security mode="TransportCredentialOnly"&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;transport clientCredentialType="Windows" proxyCredentialType="None"<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; realm="" /&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;message clientCredentialType="UserName" algorithmSuite="Default" /&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/security&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/binding&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/basicHttpBinding&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/bindings&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;client&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;endpoint address="https://dynamicsvm.contoso.com/MicrosoftDynamicsAXAif50/freetextinvoiceservice.svc"<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_FreeTextInvoiceService"<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; contract="FreeTxtInvoiceWebService.FreeTextInvoiceService"<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name="BasicHttpBinding_FreeTextInvoiceService" /&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/client&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp; &lt;/system.serviceModel&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&lt;/configuration&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'"><o:p>&nbsp;</o:p></SPAN></P><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">These are the relevant binding sections of web.config:<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"></SPAN><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&lt;system.serviceModel&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp; &lt;bindings&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;basicHttpBinding&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;binding name="basicHttpBindingWindowsAuth"<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="BACKGROUND: yellow; mso-highlight: yellow">maxBufferSize="565536"<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN style="BACKGROUND: yellow; mso-highlight: yellow">maxReceivedMessageSize="565536"&gt;</SPAN><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;security mode="TransportCredentialOnly"&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;transport clientCredentialType="Windows" /&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/security&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/binding&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/basicHttpBinding&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp; &lt;/bindings&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&lt;service behaviorConfiguration="serviceBehaviorConfiguration"<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name="Microsoft.Dynamics.IntegrationFramework.Service.FreeTextInvoiceService"&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;endpoint address="" binding="basicHttpBinding" bindingConfiguration="basicHttpBindingWindowsAuth"<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bindingNamespace="https://schemas.microsoft.com/dynamics/2008/01/services"<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; contract="Microsoft.Dynamics.IntegrationFramework.Service.FreeTextInvoiceService" /&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 8.5pt; FONT-FAMILY: 'Segoe UI','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/service&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">In addition to changing these properties, you might also want to look at the <B style="mso-bidi-font-weight: normal">transportMode</B> property if your messages are very large. By default, this property is set to <STRONG>Buffered</STRONG> for the document services in AX. More relevant links about this property are:<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">MSDN:</SPAN></B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"> <A href="https://msdn.microsoft.com/en-us/library/ms731913.aspx" mce_href="https://msdn.microsoft.com/en-us/library/ms731913.aspx"><SPAN style="COLOR: windowtext">https://msdn.microsoft.com/en-us/library/ms731913.aspx</SPAN></A><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">MSDN:</SPAN></B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"> <A href="https://msdn.microsoft.com/en-us/library/ms789010.aspx" mce_href="https://msdn.microsoft.com/en-us/library/ms789010.aspx"><SPAN style="COLOR: windowtext">https://msdn.microsoft.com/en-us/library/ms789010.aspx</SPAN></A><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">MSDN Forum:</SPAN></B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"> <A href="https://social.msdn.microsoft.com/forums/en-US/wcf/thread/f00037f1-02e1-4e1c-b6ed-03fe134f3460/" mce_href="https://social.msdn.microsoft.com/forums/en-US/wcf/thread/f00037f1-02e1-4e1c-b6ed-03fe134f3460/"><SPAN style="COLOR: windowtext">https://social.msdn.microsoft.com/forums/en-US/wcf/thread/f00037f1-02e1-4e1c-b6ed-03fe134f3460/</SPAN></A><B style="mso-bidi-font-weight: normal"><o:p></o:p></B></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><B style="mso-bidi-font-weight: normal"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">MSDN Blog:</SPAN></B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"> <A href="https://blogs.msdn.com/drnick/archive/2006/03/31/565558.aspx" mce_href="https://blogs.msdn.com/drnick/archive/2006/03/31/565558.aspx"><SPAN style="COLOR: windowtext">https://blogs.msdn.com/drnick/archive/2006/03/31/565558.aspx</SPAN></A> <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true">There are many considerations when it comes to message size and services such as limits in IIS, WCF configuration options,&nbsp;etc.&nbsp;Let me know if this resolves your message size issues or if you come across any other tips that worked in your particular installation.</P>]]></content:encoded>
    </item>
  </channel>
</rss>