tag:blogger.com,1999:blog-70904024564026302472024-03-13T13:10:14.359-07:00Dynamics AX 2012 Data Import using Excel Add-inAlex Anikievhttp://www.blogger.com/profile/13438665643699572584noreply@blogger.comBlogger32125tag:blogger.com,1999:blog-7090402456402630247.post-81314031460985373412014-02-02T01:26:00.001-08:002014-02-02T01:30:28.216-08:00Microsoft Dynamics AX 2012 Excel Add-in – Security Roles (Add Tables, Add Data)<div class="WordSection1">
<div style="border: currentColor; mso-element: para-border-div; padding: 0in 0in 4pt;">
<div align="center" class="MsoTitle" style="text-align: center;">
<strong>Microsoft Dynamics AX 2012 Excel Add-in – Security Roles (Add Tables, Add Data)</strong></div>
<div align="center" class="MsoTitle" style="text-align: center;">
<strong><o:p></o:p></strong> </div>
</div>
<div class="MsoNormal">
<b>Purpose: </b>The purpose of this document is to explain security settings required by Microsoft Dynamics AX 2012 Excel Add-in for data import/export using "Add Tables" and "Add Data" methods.</div>
<div class="MsoNormal">
<o:p></o:p> </div>
<div class="MsoNormal">
<b>Challenge: </b>When using Microsoft Dynamics AX 2012 Excel Add-in you have 2 methods to access data using "Add Tables" and "Add Data" functions. "Add Tables" function allows you to access raw tables (as they are listed in AOT). "Add Data" function allows you to access Services, standard Queries (Query references) and Custom Queries exposed through Document Data Sources in Organization Administration > Setup > Document Management. The challenge is how to set up security settings for Microsoft Dynamics AX 2012 Excel Add-in following required minimum privilege principle to allow users import/export data. <o:p></o:p></div>
<div class="MsoNormal">
<b></b> </div>
<div class="MsoNormal">
<b>Solution:</b> When<b> </b>using "Add Tables" function the system will access raw tables (as they are listed in AOT) and thus the user should be assigned to System Administrator role in order to import/export data. When using "Add Data" function the system will access the list of Document Data Sources to provide the user with the access to business data in accordance with his/her permissions. In order to use "Add Data" function the user does NOT need to be assigned to System Administrator role, instead you can leverage a very granular security setup to allow the user to import/export business data exposed through Document Data Sources, for example, only using certain operations preventing business data damage which may occur when using raw tables approach. <o:p></o:p></div>
<div class="MsoNormal">
<b></b> </div>
<div class="MsoNormal">
<b>Walkthrough<o:p></o:p></b></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
When<b> </b>using "Add Tables" function the system will access raw tables (as they are listed in AOT).<o:p></o:p></div>
<div class="MsoNormal">
<i></i> </div>
<div class="MsoNormal">
<i>Select Tables<o:p></o:p></i></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<a href="http://3.bp.blogspot.com/-M7R4XipVqQQ/Uu4PYTsVqwI/AAAAAAAAPus/gCybZiF_31Y/s1600/image001-716087.png"><img alt="" border="0" src="http://3.bp.blogspot.com/-M7R4XipVqQQ/Uu4PYTsVqwI/AAAAAAAAPus/gCybZiF_31Y/s320/image001-716087.png" id="BLOGGER_PHOTO_ID_5975730665844747010" /></a><o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
In Microsoft Dynamics AX 2012 by default and by design only System Administrators have access to AOT.</div>
<div class="MsoNormal">
<o:p></o:p> </div>
<table border="0" cellpadding="0" class="MsoNormalTable"> <tbody>
<tr> <td style="padding: 0.75pt;"><div align="center" class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt; line-height: 106%;">Recommendation <o:p></o:p></span></b></div>
</td> <td style="padding: 0.75pt;"><div align="center" class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12pt; line-height: 106%;">Description <o:p></o:p></span></b></div>
</td> </tr>
<tr> <td style="padding: 0.75pt;"><div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt; line-height: 106%;">Always assign the least permissions when you set up and configure the user security features in Microsoft Dynamics AX. <o:p></o:p></span></div>
</td> <td style="padding: 0.75pt;"><div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12pt; line-height: 106%;">Before you set up and configure the least permissions in Microsoft Dynamics AX, consider the following recommendations: <o:p></o:p></span></div>
<ul type="disc">
<li class="MsoNormal" style="line-height: normal; mso-list: l0 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"> <span style="background: yellow; font-family: "Times New Roman","serif"; font-size: 12pt; mso-highlight: yellow;">By default, and by design, only Microsoft Dynamics AX system administrators have access to the Application Object Tree (AOT).</span><span style="font-family: "Times New Roman","serif"; font-size: 12pt;"> Do not grant users access to the AOT, unless the users are members of a development role who must access the AOT as part of their job requirements. If you grant regular users access to the AOT, the users may intentionally or unintentionally compile the application, synchronize the application, change license files, or change module configurations. All of these actions can cause problems in your business or organization. <o:p></o:p></span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l0 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"> <span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Do not make users members of the System administrators role, or grant these users access to <b>System administration</b> in Microsoft Dynamics AX, unless the users are responsible for setting up and configuring Microsoft Dynamics AX in your business or organization. If you grant regular users access to this group and module, the users may intentionally or unintentionally cause problems in the Microsoft Dynamics AX application. <o:p> </o:p></span></li>
<li class="MsoNormal" style="line-height: normal; mso-list: l0 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"> <span style="font-family: "Times New Roman","serif"; font-size: 12pt;">Do not assign users to the Windows Administrators group or Power Users group on their local computers, unless the users are explicitly required to perform the job functions of an administrator or power user. Members of these groups can add applications to their local computers and remove applications from their local computers, and these actions can introduce security risks. Instead, assign users to the Windows User group. Click Start > Administrative Tools > Server Manager > Local Users and Groups. <o:p></o:p></span></li>
</ul>
</td> </tr>
</tbody> </table>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
Please find more info about Security Best Practices in AX 2012 here: <span style="color: #1f497d;"><a href="http://technet.microsoft.com/en-us/library/hh202063.aspx">http://technet.microsoft.com/en-us/library/hh202063.aspx</a><o:p></o:p></span></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
When the user invokes "Add Tables" or "Add Data" functions in Microsoft Dynamics AX 2012 Excel Add-in the system will use AifUserSessionService AIF Web Service to retrieve info about current user session</div>
<div class="MsoNormal">
<o:p></o:p> </div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: currentColor;"> <tbody>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 467.5pt;" valign="top" width="623"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<span style="font-family: Consolas; font-size: 8pt;">[SysEntryPointAttribute]<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><span style="color: darkblue; font-family: Consolas; font-size: 8pt;">public</span></b><span style="font-family: Consolas; font-size: 8pt;"> AifUserSessionInfo getUserSessionInfo()<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<span style="font-family: Consolas; font-size: 8pt;">{<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<span style="font-family: Consolas; font-size: 8pt;"> AifUserSessionInfo info = <b> <span style="color: darkblue;">new</span></b> AifUserSessionInfo();<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<span style="font-family: Consolas; font-size: 8pt;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<span style="font-family: Consolas; font-size: 8pt;"> info.parmAXLanguage(this.getLanguage());<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<span style="font-family: Consolas; font-size: 8pt;"> info.parmCurrencyInfo(this.getAifCurrencyInfo());<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<span style="font-family: Consolas; font-size: 8pt;"> info.parmCompany(this.getCompany());<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<span style="font-family: Consolas; font-size: 8pt;"> info.parmCompanyTimeZone(this.getCompanyTimeZone());<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<span style="font-family: Consolas; font-size: 8pt;"> info.parmUserPreferredTimeZone(this.getUserPreferredTimeZone());<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<span style="font-family: Consolas; font-size: 8pt;"> info.parmUserPreferredCalendar(this.getUserPreferredCalendar());<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<span style="font-family: Consolas; font-size: 8pt;"> <span style="background: yellow; mso-highlight: yellow;"> info.parmUserId(this.getUserId());<o:p></o:p></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<span style="background: yellow; font-family: Consolas; font-size: 8pt; mso-highlight: yellow;"> info.parmIsSysAdmin(Global::isSystemAdministrator());</span><span style="font-family: Consolas; font-size: 8pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<span style="font-family: Consolas; font-size: 8pt;"> info.parmAOSLocaleName(AifUserSessionService::getAosLocaleName());<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<span style="font-family: Consolas; font-size: 8pt;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<span style="font-family: Consolas; font-size: 8pt;"> <b><span style="color: darkblue;">return</span></b> info;<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<span style="font-family: Consolas; font-size: 8pt;">}</span><o:p></o:p></div>
</td> </tr>
</tbody> </table>
<div class="MsoNormal">
<o:p> </o:p></div>
<div class="MsoNormal">
Please note that an instance of AifUserSessionInfo class will have UserId and IsSysAdmin properties assigned to be consumed in External code (Excel Add-in). IsSysAdmin property signifies that the current user is assigned to System Administrator role, and in case IsSysAdmin property is set to "true" the user will have access "Add Tables" – "Select Tables" screen regardless of what actual UserId value is passed ("Admin" or not). And vice versa even if UserId = "Admin" value is passed, but IsSysAdmin property is not set the user will not have access to "Add Tables" – "Select Tables" screen and "The role you are assigned does not have permissions to access the selected data" error will appear. <o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
When using "Add Data" function the system will access the list of Document Data Sources to provide the user with the access to business data in accordance with his/her permissions. Please consider using "Add Data" function for business data import/export which does NOT require your user to be assigned to System Administrator role.<o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
To illustrate a necessary security setup for Microsoft Dynamics AX 2012 Excel Add-in when using "Add Data" approach I'll use User KEN for import of Ledger transactions via LedgerGeneralJournalService AIF Web Service <o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
Please note that LedgerGeneralJournalService AIF Web Service is exposed and activated in Document Data Sources as shown below <o:p></o:p></div>
<div class="MsoNormal">
<i></i> </div>
<div class="MsoNormal">
<i>Document Data Sources<o:p></o:p></i></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<a href="http://2.bp.blogspot.com/-ufjiU90cJgU/Uu4PZAdxcxI/AAAAAAAAPu4/KO0KNG0xtfo/s1600/image002-720365.png"><img alt="" border="0" src="http://2.bp.blogspot.com/-ufjiU90cJgU/Uu4PZAdxcxI/AAAAAAAAPu4/KO0KNG0xtfo/s320/image002-720365.png" id="BLOGGER_PHOTO_ID_5975730677863248658" /></a><o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
This is security settings in Microsoft Dynamics AX 2012 for User KEN. Please note that User KEN is NOT assigned to System Administrator role <o:p></o:p></div>
<div class="MsoNormal">
<i></i> </div>
<div class="MsoNormal">
<i>User KEN (Financial controller) <o:p></o:p></i></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<a href="http://1.bp.blogspot.com/-aEVJZf-FnPU/Uu4PZ_E1sJI/AAAAAAAAPvE/fi8tkKRpdr8/s1600/image003-723265.jpg"><img alt="" border="0" src="http://1.bp.blogspot.com/-aEVJZf-FnPU/Uu4PZ_E1sJI/AAAAAAAAPvE/fi8tkKRpdr8/s320/image003-723265.jpg" id="BLOGGER_PHOTO_ID_5975730694670102674" /></a><o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
Now if I try to invoke "Add Tables" function the following error pops up<o:p></o:p></div>
<div class="MsoNormal">
<i></i> </div>
<div class="MsoNormal">
<i>Dynamics AX Error<o:p></o:p></i></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<a href="http://2.bp.blogspot.com/-O8_OMtTJNpI/Uu4Pa0eG2VI/AAAAAAAAPvQ/jGHB24Iz0M8/s1600/image004-727275.png"><img alt="" border="0" src="http://2.bp.blogspot.com/-O8_OMtTJNpI/Uu4Pa0eG2VI/AAAAAAAAPvQ/jGHB24Iz0M8/s320/image004-727275.png" id="BLOGGER_PHOTO_ID_5975730709003163986" /></a><o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
Please note that User KEN is NOT assigned to System Administrator role<o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
Now instead of "Add Tables" I'm going to invoke "Add Data" function and select LedgerGeneralJournalService AIF Web Service<o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
In the case your User doesn't have access to the business data based on tables in the query used by AIF Web Service you could see "User is not authorized to select a record in table" error<o:p></o:p></div>
<div class="MsoNormal">
<i></i> </div>
<div class="MsoNormal">
<i>Microsoft Dynamics AX Office Addin <o:p></o:p></i></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<a href="http://3.bp.blogspot.com/-pNUQCDYe40s/Uu4PbQnlQ9I/AAAAAAAAPvc/EuMX6oiS65k/s1600/image005-729352.png"><img alt="" border="0" src="http://3.bp.blogspot.com/-pNUQCDYe40s/Uu4PbQnlQ9I/AAAAAAAAPvc/EuMX6oiS65k/s320/image005-729352.png" id="BLOGGER_PHOTO_ID_5975730716559098834" /></a><o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
In this particular case I used User TONY who doesn't have access to the required business data. You can easily fix it by assigning TONY to the role which has access to the required business data<o:p></o:p></div>
<div class="MsoNormal">
In fact User KEN already has access to the required business data, so I'm going to invoke "Add Data" function now<o:p></o:p></div>
<div class="MsoNormal">
<i></i> </div>
<div class="MsoNormal">
<i>Add Data<o:p></o:p></i></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<a href="http://2.bp.blogspot.com/-fJqAmW9tZWI/Uu4PcnkP_RI/AAAAAAAAPvo/CjbF8pP5Gs4/s1600/image006-733932.jpg"><img alt="" border="0" src="http://2.bp.blogspot.com/-fJqAmW9tZWI/Uu4PcnkP_RI/AAAAAAAAPvo/CjbF8pP5Gs4/s320/image006-733932.jpg" id="BLOGGER_PHOTO_ID_5975730739899006226" /></a><o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
LedgerGeneralJournalService AIF Web Service shows up in the list of available Document Data Sources now. Please make sure you deploy appropriate Service group in order for Services to show up in the list<o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
For example, on Microsoft Dynamics AX 2012 Demo VM I had to deploy LedgerServices Services group<o:p></o:p></div>
<div class="MsoNormal">
<i></i> </div>
<div class="MsoNormal">
<i>Service group<o:p></o:p></i></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<a href="http://2.bp.blogspot.com/-5ONCTfo_XjI/Uu4PdShQnoI/AAAAAAAAPv0/YJ1q13SVRyA/s1600/image007-737056.png"><img alt="" border="0" src="http://2.bp.blogspot.com/-5ONCTfo_XjI/Uu4PdShQnoI/AAAAAAAAPv0/YJ1q13SVRyA/s320/image007-737056.png" id="BLOGGER_PHOTO_ID_5975730751429189250" /></a><o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
Now I can compose a data set for data import/export using Field Chooser. The next step will be to retrieve the info about Ledger journals from Microsoft Dynamics AX 2012 using Refresh function<o:p></o:p></div>
<div class="MsoNormal">
<i></i> </div>
<div class="MsoNormal">
<i>Refresh<o:p></o:p></i></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<a href="http://1.bp.blogspot.com/-XQ_pQx74Xgc/Uu4PeHmwxcI/AAAAAAAAPwA/AKJBHYFJUiM/s1600/image008-740033.png"><img alt="" border="0" src="http://1.bp.blogspot.com/-XQ_pQx74Xgc/Uu4PeHmwxcI/AAAAAAAAPwA/AKJBHYFJUiM/s320/image008-740033.png" id="BLOGGER_PHOTO_ID_5975730765679347138" /></a><o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
Now it's time to use Publish function and create a brand-new Ledger journal in Microsoft Dynamics AX 2012 using Excel Add-in<o:p></o:p></div>
<div class="MsoNormal">
<i></i> </div>
<div class="MsoNormal">
<i>Publish<o:p></o:p></i></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<a href="http://2.bp.blogspot.com/-HKDEWZ8z07w/Uu4PekNLPTI/AAAAAAAAPwM/vsadErPzovA/s1600/image009-742593.png"><img alt="" border="0" src="http://2.bp.blogspot.com/-HKDEWZ8z07w/Uu4PekNLPTI/AAAAAAAAPwM/vsadErPzovA/s320/image009-742593.png" id="BLOGGER_PHOTO_ID_5975730773356657970" /></a><o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
When I try to publish the following error may occur if the user doesn't have permissions to execute operation<o:p></o:p></div>
<div class="MsoNormal">
<i></i> </div>
<div class="MsoNormal">
<i>Publishing Details<o:p></o:p></i></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<a href="http://1.bp.blogspot.com/-r-QwJz045Dg/Uu4PfWSHwRI/AAAAAAAAPwY/e4933PRTSjQ/s1600/image010-744963.png"><img alt="" border="0" src="http://1.bp.blogspot.com/-r-QwJz045Dg/Uu4PfWSHwRI/AAAAAAAAPwY/e4933PRTSjQ/s320/image010-744963.png" id="BLOGGER_PHOTO_ID_5975730786799173906" /></a><o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
This is because User KEN doesn't have access to the Server method which is one of possible securable objects in Microsoft Dynamics AX 2012 <o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
In order to resolve this issue and grant appropriate access for User KEN I will create my own Role and assign User KEN to it <o:p></o:p></div>
<div class="MsoNormal">
<i></i> </div>
<div class="MsoNormal">
<i>Security Role "Alex"<o:p></o:p></i></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<a href="http://1.bp.blogspot.com/-dS-H_tvLUGc/Uu4PgCpMNTI/AAAAAAAAPwk/RJhYE0IluDA/s1600/image011-748236.png"><img alt="" border="0" src="http://1.bp.blogspot.com/-dS-H_tvLUGc/Uu4PgCpMNTI/AAAAAAAAPwk/RJhYE0IluDA/s320/image011-748236.png" id="BLOGGER_PHOTO_ID_5975730798707094834" /></a><o:p></o:p></div>
<div class="MsoNormal">
<i></i> </div>
<div class="MsoNormal">
<i>Duty<o:p></o:p></i></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<a href="http://2.bp.blogspot.com/-KxmgLPocV8Q/Uu4PgzVmAlI/AAAAAAAAPww/lunq0dHs940/s1600/image012-751497.png"><img alt="" border="0" src="http://2.bp.blogspot.com/-KxmgLPocV8Q/Uu4PgzVmAlI/AAAAAAAAPww/lunq0dHs940/s320/image012-751497.png" id="BLOGGER_PHOTO_ID_5975730811778237010" /></a><o:p></o:p></div>
<div class="MsoNormal">
<i></i> </div>
<div class="MsoNormal">
<i>Privilege<o:p></o:p></i></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<a href="http://4.bp.blogspot.com/-sCRO7TEkJqE/Uu4PhgUpw8I/AAAAAAAAPw8/Q2iBzidvAOI/s1600/image013-754294.png"><img alt="" border="0" src="http://4.bp.blogspot.com/-sCRO7TEkJqE/Uu4PhgUpw8I/AAAAAAAAPw8/Q2iBzidvAOI/s320/image013-754294.png" id="BLOGGER_PHOTO_ID_5975730823853884354" /></a><o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
Please note that I explicitly provided access to Server method (LedgerGeneralJournalService.create), so User KEN will be able to create Ledger journals<o:p></o:p></div>
<div class="MsoNormal">
<i></i> </div>
<div class="MsoNormal">
<i>Add permissions to privilege<o:p></o:p></i></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<a href="http://3.bp.blogspot.com/-96KFrGeYsLI/Uu4Pis3oIEI/AAAAAAAAPxI/2fDrOJkXULM/s1600/image014-758107.png"><img alt="" border="0" src="http://3.bp.blogspot.com/-96KFrGeYsLI/Uu4Pis3oIEI/AAAAAAAAPxI/2fDrOJkXULM/s320/image014-758107.png" id="BLOGGER_PHOTO_ID_5975730844401672258" /></a><o:p></o:p></div>
<div class="MsoNormal">
<i></i> </div>
<div class="MsoNormal">
<i>Add permissions to privilege<o:p></o:p></i></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<a href="http://3.bp.blogspot.com/-OT6-GlDuGX8/Uu4PjYQJy7I/AAAAAAAAPxU/tWYGK6NS6V4/s1600/image015-761381.png"><img alt="" border="0" src="http://3.bp.blogspot.com/-OT6-GlDuGX8/Uu4PjYQJy7I/AAAAAAAAPxU/tWYGK6NS6V4/s320/image015-761381.png" id="BLOGGER_PHOTO_ID_5975730856047266738" /></a><o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
Now I'll assign User KEN to my new Security Role "Alex"<o:p></o:p></div>
<div class="MsoNormal">
<i></i> </div>
<div class="MsoNormal">
<i>User KEN<o:p></o:p></i></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<a href="http://2.bp.blogspot.com/--JEuZO-nrVU/Uu4PkIn10jI/AAAAAAAAPxg/IJ31o6K9wJo/s1600/image016-764234.png"><img alt="" border="0" src="http://2.bp.blogspot.com/--JEuZO-nrVU/Uu4PkIn10jI/AAAAAAAAPxg/IJ31o6K9wJo/s320/image016-764234.png" id="BLOGGER_PHOTO_ID_5975730869031522866" /></a><o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
Now I'll be able to successfully create Ledger journal in Microsoft Dynamics AX 2012 <o:p></o:p></div>
<div class="MsoNormal">
<i></i> </div>
<div class="MsoNormal">
<i>Publish<o:p></o:p></i></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<a href="http://2.bp.blogspot.com/-HKDEWZ8z07w/Uu4PekNLPTI/AAAAAAAAPwM/vsadErPzovA/s1600/image009-742593.png"><img alt="" border="0" src="http://2.bp.blogspot.com/-HKDEWZ8z07w/Uu4PekNLPTI/AAAAAAAAPwM/vsadErPzovA/s320/image009-742593.png" id="BLOGGER_PHOTO_ID_5975730773356657970" /></a><o:p></o:p></div>
<div class="MsoNormal">
<i></i> </div>
<div class="MsoNormal">
<i>Publishing details<o:p></o:p></i></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<a href="http://2.bp.blogspot.com/-Yl89qClyhcU/Uu4PkjcvzlI/AAAAAAAAPxs/n9BIWEEKk8I/s1600/image017-766457.png"><img alt="" border="0" src="http://2.bp.blogspot.com/-Yl89qClyhcU/Uu4PkjcvzlI/AAAAAAAAPxs/n9BIWEEKk8I/s320/image017-766457.png" id="BLOGGER_PHOTO_ID_5975730876232748626" /></a><o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
Here's the resulting Ledger journal in Microsoft Dynamics AX 2012 <o:p></o:p></div>
<div class="MsoNormal">
<i></i> </div>
<div class="MsoNormal">
<i>General journal<o:p></o:p></i></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<a href="http://4.bp.blogspot.com/-fRSLXCIImAI/Uu4Plbo2lkI/AAAAAAAAPx4/vGtokSn5zpo/s1600/image018-769220.png"><img alt="" border="0" src="http://4.bp.blogspot.com/-fRSLXCIImAI/Uu4Plbo2lkI/AAAAAAAAPx4/vGtokSn5zpo/s320/image018-769220.png" id="BLOGGER_PHOTO_ID_5975730891315910210" /></a><o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
Please note that in terms of access to the business data you can also assign permissions to particular tables through Override permissions as shown below<o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<a href="http://2.bp.blogspot.com/-3e1cWEO7pwI/Uu4Pmzre1mI/AAAAAAAAPyE/iS1Zvwm-KCo/s1600/image019-774467.png"><img alt="" border="0" src="http://2.bp.blogspot.com/-3e1cWEO7pwI/Uu4Pmzre1mI/AAAAAAAAPyE/iS1Zvwm-KCo/s320/image019-774467.png" id="BLOGGER_PHOTO_ID_5975730914949256802" /></a><o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
This approach allows to granularly set up permissions for users to use Microsoft Dynamics AX 2012 Excel Add-in without assigning them to System Administrator role.<o:p></o:p></div>
<div class="MsoNormal">
<b></b> </div>
<div class="MsoNormal">
<b>Summary:</b> This document describes how to set up security settings required by Microsoft Dynamics AX 2012 Excel Add-in for data import/export following required minimum privilege principle.<o:p></o:p></div>
<div class="MsoNormal">
<b><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt; line-height: 106%;">Author</span></b><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt; line-height: 106%;">: </span><span class="MsoHyperlink"><a href="mailto:%20ani.kiev@live.com">Alex Anikiev</a></span>, PhD, MCP<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt; line-height: 106%;"><o:p></o:p></span></div>
<div class="MsoNormal">
<b></b> </div>
<div class="MsoNormal">
<b>Tags:</b> Dynamics ERP, Dynamics AX 2012, Excel, Dynamics AX 2012 Excel Add-in, Data Import, Data Conversion, Data Migration, Application Integration Framework, Add Tables, Add Data, Security Role, System Administrator.<o:p></o:p></div>
<div class="MsoNormal">
<b></b> </div>
<div class="MsoNormal">
<b>Note:</b> This document is intended for information purposes only, presented as it is with no warranties from the author. This document may be updated with more content to better outline the concepts and describe the examples.<o:p></o:p></div>
<div class="MsoNormal">
<o:p> </o:p></div>
</div>
Alex Anikievhttp://www.blogger.com/profile/13438665643699572584noreply@blogger.com27tag:blogger.com,1999:blog-7090402456402630247.post-75210039529268539402013-04-24T12:11:00.001-07:002013-04-24T13:20:45.037-07:00Dynamics AX 2012 Excel Add-in - Issues and Solutions (Method UpdateRecIdVisibility not found)<div class="WordSection1">
<div style="border-bottom: solid #4F81BD 1.0pt; border: none; mso-element: para-border-div; padding: 0in 0in 4.0pt 0in;">
<div align="center" class="MsoTitle" style="text-align: center;">
Dynamics AX 2012 Excel Add-in – Issues and Solutions (Method not found: ‘Void Microsoft.Dynamics.AX.Framework.OfficeAddin.DataSourceContainer.UpdateRecIdVisibility(Boolean))<o:p></o:p></div>
</div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<b><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">Purpose:</span></b><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"> The purpose of this document is to outline some issues you may encounter when using Dynamics AX 2012 Excel Add-in for import of data and provide solutions to resolve them.<o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<b><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">Issue</span></b><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">: ‘Method not found: ‘Void Microsoft.Dynamics.AX.Framework.OfficeAddin.DataSourceContainer.UpdateRecIdVisibility(Boolean)’<o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<b><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">Reason</span></b><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">: After you initially install Microsoft Dynamics AX 2012 R2 Office Add-ins and then install Microsoft Dynamics AX 2012 R2 CU1 the old Microsoft Dynamics AX 2012 R2 DLLs related to Office Add-ins may still be present in the file system. The system uses old Microsoft Dynamics AX 2012 R2 DLLs related to Office Add-ins DLLs which causes this issue<o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<b><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">Dynamics AX Error</span></b><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<a href="http://3.bp.blogspot.com/-D9X6D8doI5c/UXguS8PVQ1I/AAAAAAAAKyc/LxC1B93vwLY/s1600/image001-767748.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5870493017220399954" src="http://3.bp.blogspot.com/-D9X6D8doI5c/UXguS8PVQ1I/AAAAAAAAKyc/LxC1B93vwLY/s320/image001-767748.png" /></a><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">For example, on the latest (as of today, April 24, 2013) Microsoft Dynamics AX 2012 R2 CU1 Demo VM this error occurs when you launch Excel 2013, define connection Options and then try to Add Table or Add Data <o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">Please note that Microsoft Dynamics AX 212 R2 CU1 build number is 6.2.1000.156<o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<a href="http://3.bp.blogspot.com/-H7GdPwQV7fI/UXguTjTe5mI/AAAAAAAAKyo/X-LlZIJHEs4/s1600/image002-769841.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5870493027706791522" src="http://3.bp.blogspot.com/-H7GdPwQV7fI/UXguTjTe5mI/AAAAAAAAKyo/X-LlZIJHEs4/s320/image002-769841.jpg" /></a><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">In fact if you look for UpdateRecIdVisibility method in Microsoft Dynamics AX 2012 R2 CU1 Microsoft.Dynamics.AX.Framework.OfficeAddin.dll assembly you will be able to find it there <o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><a href="http://3.bp.blogspot.com/-yU72DgVYkxI/UXguT8rpQ9I/AAAAAAAAKy0/NCldZTNFOJ4/s1600/image003-771391.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5870493034519020498" src="http://3.bp.blogspot.com/-yU72DgVYkxI/UXguT8rpQ9I/AAAAAAAAKy0/NCldZTNFOJ4/s320/image003-771391.jpg" /></a></span><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">So the real problem is in the fact that the system uses old Microsoft Dynamics AX 2012 R2 Microsoft.Dynamics.AX.Framework.OfficeAddin.dll assembly instead of new one<o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">Please note that Microsoft Dynamics AX 212 R2 build number is 6.2.158.0<o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><a href="http://4.bp.blogspot.com/-1g1Q-MuFzr8/UXguU1-KZJI/AAAAAAAAKzA/xmk1NTKgA2U/s1600/image004-775222.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5870493049897510034" src="http://4.bp.blogspot.com/-1g1Q-MuFzr8/UXguU1-KZJI/AAAAAAAAKzA/xmk1NTKgA2U/s320/image004-775222.jpg" /></a></span><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">And if you check the version of Microsoft.Dynamics.AX.Framework.OfficeAddin.dll assembly <o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<a href="http://3.bp.blogspot.com/-KpxH3Xv_LdA/UXguVI68_rI/AAAAAAAAKzM/8pml9IF9-sk/s1600/image005-776642.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5870493054984322738" src="http://3.bp.blogspot.com/-KpxH3Xv_LdA/UXguVI68_rI/AAAAAAAAKzM/8pml9IF9-sk/s320/image005-776642.jpg" /></a><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">in <b>C:\Windows\Microsoft.NET\assembly\GAC_MSIL folder</b><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<a href="http://1.bp.blogspot.com/-Uikmi4xis18/UXguVw3L0RI/AAAAAAAAKzY/brLIxaHLBKw/s1600/image006-779252.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5870493065705935122" src="http://1.bp.blogspot.com/-Uikmi4xis18/UXguVw3L0RI/AAAAAAAAKzY/brLIxaHLBKw/s320/image006-779252.jpg" /></a><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">You will see that it’s 6.2.158.0 which corresponds to Microsoft Dynamics AX 2012 R2<o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<a href="http://4.bp.blogspot.com/-ldkvgsxerqQ/UXguWaNAVhI/AAAAAAAAKzk/79A9xYtjQNI/s1600/image007-781177.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5870493076803311122" src="http://4.bp.blogspot.com/-ldkvgsxerqQ/UXguWaNAVhI/AAAAAAAAKzk/79A9xYtjQNI/s320/image007-781177.png" /></a><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<b><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">Solution</span></b><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">: Please delete highlighted above Microsoft.Dynamics.AX.Framework.Office.Addin folders in <b>C:\Windows\Microsoft.NET\assembly\GAC_MSIL</b> folder to get rid of old versions of DLLs <o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><a href="http://2.bp.blogspot.com/-elV8Q1PwLfw/UXguW4kwx7I/AAAAAAAAKzw/ekn-TdcZTRY/s1600/image008-783360.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5870493084956018610" src="http://2.bp.blogspot.com/-elV8Q1PwLfw/UXguW4kwx7I/AAAAAAAAKzw/ekn-TdcZTRY/s320/image008-783360.jpg" /></a></span><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">If you get a message that Microsoft.Dynamics.AX.Framework.Office.Addin.dll is being used by another process when you try to delete it, please stop Microsoft Dynamics AX AOS and try again<o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<b><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">Result:</span></b><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"> As the result you will be able to Add Tables and Add Data in Excel workbook<o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<i><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">Options<o:p></o:p></span></i></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><a href="http://2.bp.blogspot.com/-VKzdh1k1cI8/UXguXXpe8kI/AAAAAAAAKz8/8q4XzYrgCf8/s1600/image009-785662.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5870493093297320514" src="http://2.bp.blogspot.com/-VKzdh1k1cI8/UXguXXpe8kI/AAAAAAAAKz8/8q4XzYrgCf8/s320/image009-785662.png" /></a></span><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<i><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">Add Tables<o:p></o:p></span></i></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><a href="http://2.bp.blogspot.com/-yYpIvr1Fr7U/UXguYDBLB_I/AAAAAAAAK0I/f0E9caqCODw/s1600/image010-788383.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5870493104939403250" src="http://2.bp.blogspot.com/-yYpIvr1Fr7U/UXguYDBLB_I/AAAAAAAAK0I/f0E9caqCODw/s320/image010-788383.png" /></a></span><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<i><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">Field Chooser<o:p></o:p></span></i></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><a href="http://1.bp.blogspot.com/-NQzl84hwZqc/UXguYp1YpWI/AAAAAAAAK0U/vCFsOVfjIBA/s1600/image011-790151.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5870493115358946658" src="http://1.bp.blogspot.com/-NQzl84hwZqc/UXguYp1YpWI/AAAAAAAAK0U/vCFsOVfjIBA/s320/image011-790151.jpg" /></a></span><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">Specials Thanks is for Chris and Jason for helping to resolve this issue<o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">Please check out Chris’ </span><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">blog for more interesting articles here:<b> </b></span><a href="http://blogs.msdn.com/b/chrisgarty/"><span style="font-family: "Arial","sans-serif"; font-size: 10pt;">http://blogs.msdn.com/b/chrisgarty/</span></a><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<b><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">Tags</span></b><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">: Dynamics ERP, Dynamics AX 2012, Excel, Dynamics AX 2012 Excel Add-in, Data Import, Data Conversion, Data Migration, Application Integration Framework, Issue, Problem, Solution, Resolution. <o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<b><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">Note</span></b><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">: This document is intended for information purposes only, presented as it is with no warranties from the author. This document may be updated with more content to better outline the issues and describe the solutions.<o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in;">
<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: normal;">
<b><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">Author</span></b><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">: </span><a href="mailto:%20alexani@microsoft.com"><span style="font-family: "Arial","sans-serif"; font-size: 10pt;">Alex Anikiev</span></a><span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;">, PhD, MCP<o:p></o:p></span></div>
<div class="MsoNormal">
<o:p> </o:p></div>
<div class="MsoNormal">
<o:p> </o:p></div>
</div>
Alex Anikievhttp://www.blogger.com/profile/13438665643699572584noreply@blogger.com15tag:blogger.com,1999:blog-7090402456402630247.post-82227544470022115482012-10-22T00:28:00.001-07:002012-10-22T00:32:28.109-07:00Microsoft Dynamics AX 2012 Excel Add-in – Questions and Answers (Business Logic)<div class="WordSection1">
<div style="border: currentColor; mso-element: para-border-div; padding: 0in 0in 4pt;">
<div align="center" class="MsoTitleCxSpFirst" style="text-align: center;">
<strong>Microsoft Dynamics AX 2012 <o:p></o:p></strong></div>
<div align="center" class="MsoTitleCxSpLast" style="text-align: center;">
<strong>Excel Add-in – Questions and Answers (Business Logic)</strong> </div>
<div align="center" class="MsoTitleCxSpLast" style="text-align: center;">
<o:p></o:p></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Purpose: </b>The purpose of this document is to provide answers to frequently asked questions related to Microsoft Dynamics AX 2012 Excel Add-in.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Question</b>: How can I execute additional business logic using Microsoft Dynamics AX 2012 Excel Add-in?<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Answer</b>: Microsoft Dynamics AX 2012 Excel Add-in uses AIF Web Services for publishing the data into Microsoft Dynamics AX 2012. In order to automate certain processes or execute additional business logic you can override updateNow method in appropriate AIF Document class and implement necessary business logic in X++. In this document to illustrate main concepts I will use General journal (LedgerGeneralJournalService) and Customer Payment journal (LedgerCustPaymJournalService) Web Services in Microsoft Dynamics AX 2012.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Details<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Every AIF Web Service has corresponding Document class in AOT, usually these classes are prefixed with Axd. For example, General journal Web Service Document class is AxdLedgerGeneralJournal class and Customer Payment journal Web Service Document class is AxdCustPaymJournal class. Focusing on Business Logic aspect in this investigation we'll take a closer look at Framework classes implementing create and update operations.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Classes\AxdBaseCreate\Methods\deserializeDocument<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://2.bp.blogspot.com/--CgROJLGAXo/UIT1qX7SKNI/AAAAAAAAFI4/Y7oFuyxQJxI/s1600/image001-720796.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5802032328286021842" src="http://2.bp.blogspot.com/--CgROJLGAXo/UIT1qX7SKNI/AAAAAAAAFI4/Y7oFuyxQJxI/s320/image001-720796.png" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Call Stack:<o:p></o:p></b></div>
<div class="MsoListParagraphCxSpFirst" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxdBase\Methods\updateNow<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxdBaseUpdate\Methods\postProcessDocument<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxdBaseUpdate\Methods\deserializeDocument<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxdBaseCreate\Methods\createDocumentList<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxdBase\Methods\createList<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AifDocumentService\Methods\createList <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Classes\AxdBaseUpdate\Methods\postProcessDocument<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://4.bp.blogspot.com/-YX-hHS-Q8u0/UIT1q84y1tI/AAAAAAAAFJE/3lhVPnZEPvk/s1600/image002-723235.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5802032338207692498" src="http://4.bp.blogspot.com/-YX-hHS-Q8u0/UIT1q84y1tI/AAAAAAAAFJE/3lhVPnZEPvk/s320/image002-723235.png" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Call Stack:<o:p></o:p></b></div>
<div class="MsoListParagraphCxSpFirst" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxdBase\Methods\updateNow<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxdBaseUpdate\Methods\postProcessDocument<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxdBaseUpdate\Methods\deserializeDocument<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxdBaseUpdate\Methods\updateDocumentList<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxdBase\Methods\updateList<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AifDocumentService\Methods\updateList<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto;">
…<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
updateNow method in Document class will be executed as a last step (post-processing) after AIF message processing which allows you to execute additional business logic <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
For example, after General journal will be created or updated via General journal Web Service certain fields such as Journal balance, etc will be updated<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Classes\AxdLedgerGeneralJournal\Methods\updateNow<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://2.bp.blogspot.com/-VvuvFobnNhY/UIT1rn81xdI/AAAAAAAAFJQ/J6AluWXyYhg/s1600/image003-725480.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5802032349767386578" src="http://2.bp.blogspot.com/-VvuvFobnNhY/UIT1rn81xdI/AAAAAAAAFJQ/J6AluWXyYhg/s320/image003-725480.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
For comparison in Rich Client when you post General journal Journal balance update is triggered from Form in "Validate" (and "Post") button clicked method <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Forms\LedgerJournalTransDaily\Designs\DesignList\ButtonCheckJournal\Methods\clicked<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://2.bp.blogspot.com/-BTzRpEmpRx4/UIT1sS6u4AI/AAAAAAAAFJc/gL83sYro4b0/s1600/image004-728806.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5802032361301270530" src="http://2.bp.blogspot.com/-BTzRpEmpRx4/UIT1sS6u4AI/AAAAAAAAFJc/gL83sYro4b0/s320/image004-728806.png" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Another example is Customer Payment journal when after its creation or update in certain scenarios it may be necessary to generate Settlements against Customer invoices<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Classes\AxdCustPaymJournal\Methods\updateNow<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://4.bp.blogspot.com/-KD5oprKyqps/UIT1szmiBdI/AAAAAAAAFJo/kb0n0qODZTk/s1600/image005-731674.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5802032370074912210" src="http://4.bp.blogspot.com/-KD5oprKyqps/UIT1szmiBdI/AAAAAAAAFJo/kb0n0qODZTk/s320/image005-731674.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Typical requirement for automation is when you need to automatically post General journal after its successful creation. Please see below how you can implement this requirement in Microsoft Dynamics AX 2012<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: currentColor;"> <tbody>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 6.65in;" valign="top" width="638"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><span style="color: #0070c0;">LedgerJournalPost::postJournal(LedgerJournalTable, false);</span><o:p></o:p></b></div>
</td> </tr>
</tbody> </table>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Classes\AxdLedgerGeneralJournal\Methods\updateNow<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://4.bp.blogspot.com/-6fT2cKiZIo8/UIT1tu3rDUI/AAAAAAAAFJ0/aeI3l6HdyDw/s1600/image006-733601.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5802032385984499010" src="http://4.bp.blogspot.com/-6fT2cKiZIo8/UIT1tu3rDUI/AAAAAAAAFJ0/aeI3l6HdyDw/s320/image006-733601.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
If you face with this requirement I'd also recommend introducing dedicated parameter in UI to control whether it's required or not to automatically post General journal when General journal AIF Web Service is invoked <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Once you change necessary Document class please generate CIL because all AIF Web Services related code in Microsoft Dynamics AX 2012 is executed in CIL on the server<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Please also note that if you use Tables (Add Tables) in Microsoft Dynamics AX 2012 Excel Add-in the system will use Generic Document Web Service at the back-end<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Version:</b> Microsoft Dynamics AX 2012 R2<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Tags</b>: Dynamics ERP, Dynamics AX 2012, Excel, Dynamics AX 2012 Excel Add-in, Data Import, Data Conversion, Data Migration, Application Integration Framework, Question, Answer, Business Logic.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Note</b>: This document is intended for information purposes only, presented as it is with no warranties from the author. This document may be updated with more content to better outline the issues and describe the solutions.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Author</b>: <a href="mailto:%20ani.kiev@live.com">Alex Anikiev</a>, PhD, MCP<o:p></o:p></div>
</div>
Alex Anikievhttp://www.blogger.com/profile/13438665643699572584noreply@blogger.com6tag:blogger.com,1999:blog-7090402456402630247.post-88011153283994801812012-10-21T21:52:00.001-07:002012-10-21T21:54:28.203-07:00Microsoft Dynamics AX 2012 Excel Add-in – Questions and Answers (Validation Logic)<div class="WordSection1">
<div style="border: currentColor; mso-element: para-border-div; padding: 0in 0in 4pt;">
<div align="center" class="MsoTitleCxSpFirst" style="text-align: center;">
<strong>Microsoft Dynamics AX 2012 <o:p></o:p></strong></div>
<div align="center" class="MsoTitleCxSpLast" style="text-align: center;">
<strong>Excel Add-in – Questions and Answers (Validation Logic)</strong> </div>
<div align="center" class="MsoTitleCxSpLast" style="text-align: center;">
<o:p></o:p></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Purpose: </b>The purpose of this document is to provide answers to frequently asked questions related to Microsoft Dynamics AX 2012 Excel Add-in.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Question</b>: How does Microsoft Dynamics AX 2012 Excel Add-in implement Validation Logic?<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Answer: </b>The way the system implements Validation logic in Excel Add-in varies depending on AIF proxy classes implementation for particular business entities. In this document to illustrate main concepts I will use General journal (LedgerJournalTrans) business entity in Microsoft Dynamics AX 2012. Also some special controls for interactive validation are provided in Excel Add-in for certain types of information, for example, financial dimensions combinations.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Details<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
LedgerJournalTrans Table in Microsoft Dynamics AX 2012 has corresponding AxLedgerJournalTrans AIF Proxy class. All AIF Proxy classes extend AxInternalBase class. AxInternalBase class in its turn implements some core methods related to data manipulation. One of core methods in AxInternalBase class is doSave method. Focusing on Validation logic in this investigation we'll take a closer look at validateFields and validateWrite methods where Validation logic is usually implemented.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://4.bp.blogspot.com/-7CMx0YoMZe4/UITRD7dWDtI/AAAAAAAAFFQ/1H62Y7C6xKs/s1600/image001-750659.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801992085390626514" src="http://4.bp.blogspot.com/-7CMx0YoMZe4/UITRD7dWDtI/AAAAAAAAFFQ/1H62Y7C6xKs/s320/image001-750659.png" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>General journal<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Rich Client</b> <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Out-of-the-box in Rich Client on a Form when you change the value for certain field and move the focus to another field the system does auto-save of record and at this time the validation is performed<b><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://3.bp.blogspot.com/-yUWLBvE2PRg/UITREasbjDI/AAAAAAAAFFc/9pBD5z7W6_0/s1600/image002-752790.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801992093775399986" src="http://3.bp.blogspot.com/-yUWLBvE2PRg/UITREasbjDI/AAAAAAAAFFc/9pBD5z7W6_0/s320/image002-752790.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
For example, if Currency value is changed on General journal line the system may throw validation error <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://3.bp.blogspot.com/-bEaXOyLbF_s/UITREjVqR1I/AAAAAAAAFFo/OVAP2aewDMQ/s1600/image003-754410.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801992096095815506" src="http://3.bp.blogspot.com/-bEaXOyLbF_s/UITREjVqR1I/AAAAAAAAFFo/OVAP2aewDMQ/s320/image003-754410.png" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
In this particular case X++ validation logic was executed and as the result the user will see the following error <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://2.bp.blogspot.com/-WKUYWq57H_Y/UITRFISjNrI/AAAAAAAAFF0/OiCrTR57xjE/s1600/image004-756173.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801992106014881458" src="http://2.bp.blogspot.com/-WKUYWq57H_Y/UITRFISjNrI/AAAAAAAAFF0/OiCrTR57xjE/s320/image004-756173.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Call stack:<o:p></o:p></div>
<div class="MsoListParagraphCxSpFirst" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l1 level1 lfo1; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\LedgerJournalEngine\currencyModified<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l1 level1 lfo1; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Forms\LedgerJournalTrandDaily\Data Sources\LedgerJournalTrans\Fields\CurrencyCode\Methods\modified<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
In some cases validation errors may be caused by data model itself and not X++ validation logic <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://2.bp.blogspot.com/-SU-W1LjM__g/UITRFvt5_wI/AAAAAAAAFGA/ETgMigTRB9o/s1600/image005-758207.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801992116598603522" src="http://2.bp.blogspot.com/-SU-W1LjM__g/UITRFvt5_wI/AAAAAAAAFGA/ETgMigTRB9o/s320/image005-758207.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
"The currency ALX does not exist" was caused by Relation between Currency and LedgerJournalTrans Tables <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Tables\LedgerJournalTrans\Relations\Currency<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://1.bp.blogspot.com/-65Ycj11QudQ/UITRGUAh_jI/AAAAAAAAFGM/4E0j1aooPOQ/s1600/image006-760798.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801992126340398642" src="http://1.bp.blogspot.com/-65Ycj11QudQ/UITRGUAh_jI/AAAAAAAAFGM/4E0j1aooPOQ/s320/image006-760798.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
X++ validation logic related to LedgerJournalTrans Table can be found in validateField and validateWrite method. validateField is executed when any field is changed and validateWrite method is executed for the entire record upon save <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Tables\LedgerJournalTrans\Methods\validateField<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://1.bp.blogspot.com/-9A-jRXMfcfw/UITRGwE7RWI/AAAAAAAAFGY/pBUkMaczkko/s1600/image007-762617.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801992133875025250" src="http://1.bp.blogspot.com/-9A-jRXMfcfw/UITRGwE7RWI/AAAAAAAAFGY/pBUkMaczkko/s320/image007-762617.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Tables\LedgerJournalTrans\Methods\validateWrite (validateWrite_Server)<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://4.bp.blogspot.com/-sq0GQfkrVts/UITRHLyxONI/AAAAAAAAFGk/uA5bqD63CIo/s1600/image008-764533.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801992141315061970" src="http://4.bp.blogspot.com/-sq0GQfkrVts/UITRHLyxONI/AAAAAAAAFGk/uA5bqD63CIo/s320/image008-764533.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Call Stack:<o:p></o:p></b></div>
<div class="MsoListParagraphCxSpFirst" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo2; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Tables\LedgerJournalTrans\ Methods\validateWrite<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo2; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Forms\LedgerJournalTransDaily\Data Sources\LedgerJournalTrans\Methods\validateWrite<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo2; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Forms\LedgerJournalTransDaily\Data Sources\LedgerJournalTrans\ Methods\leaveRecord<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
The principal difference between Rich Client and Excel Add-in is that in Rich Client some code is executed on the client which allows for interactive data validation <b>(stateful behavior)</b> and Excel Add-in will have to go through formal AIF interface every time the data is published into Microsoft Dynamics AX 2012 <b>(stateless behavior)</b>. Please note that when you deal with Form in Rich Client you already deal with predefined dataset as opposite to Excel Add-in where you have to define your dataset first. That's why in Rich Client it's possible to execute Validation logic from Form interactively.<b><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Excel Add-in<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
AxLedgerJournalTrans AIF Proxy class implements Validation logic in validateField and validateWrite methods<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Classes\AxLedgerJournalTrans\Methods\validateField<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://3.bp.blogspot.com/-e3AK_dUNgq0/UITRHizeSlI/AAAAAAAAFGw/UgsmxgudYjQ/s1600/image009-765883.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801992147492031058" src="http://3.bp.blogspot.com/-e3AK_dUNgq0/UITRHizeSlI/AAAAAAAAFGw/UgsmxgudYjQ/s320/image009-765883.png" /></a></b><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Classes\AxLedgerJournalTrans\Methods\validateWrite<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://2.bp.blogspot.com/-Q9PrO-a-1Zg/UITRIJ2fNQI/AAAAAAAAFG8/o5Sgh9czHbM/s1600/image010-768368.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801992157973656834" src="http://2.bp.blogspot.com/-Q9PrO-a-1Zg/UITRIJ2fNQI/AAAAAAAAFG8/o5Sgh9czHbM/s320/image010-768368.png" /></a></b><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Please note that validateField and validateWrite methods in AxLedgerJournalTrans AIF Proxy class will eventually trigger validateField and validateWrite methods in LedgerJournalTrans Table<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Currently out-of-the-box in Microsoft Dynamics AX 2012 R2 (September CTP) LedgerGeneralJournalService Web Service and LedgerJournalTrans Table can't be used due to error shown below<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
General journal – Add Data (LedgerGeneralJournalService)<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://1.bp.blogspot.com/-PBg6RYcB3cc/UITRImVo1fI/AAAAAAAAFHI/W9nZUlll2rQ/s1600/image011-770105.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801992165620504050" src="http://1.bp.blogspot.com/-PBg6RYcB3cc/UITRImVo1fI/AAAAAAAAFHI/W9nZUlll2rQ/s320/image011-770105.png" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
General journal – Add Tables (LedgerJournalTrans)<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://1.bp.blogspot.com/-PBg6RYcB3cc/UITRImVo1fI/AAAAAAAAFHI/W9nZUlll2rQ/s1600/image011-770105.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801992165620504050" src="http://1.bp.blogspot.com/-PBg6RYcB3cc/UITRImVo1fI/AAAAAAAAFHI/W9nZUlll2rQ/s320/image011-770105.png" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
That's why for the sake of General journal Validation logic demo I'll use Microsoft Dynamics AX 2012 FPK<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Example of X++ validation logic error <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Before publishing<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://1.bp.blogspot.com/-qzlGapaClEI/UITRJHimv9I/AAAAAAAAFHU/qaH-ClWqj5w/s1600/image012-771708.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801992174533263314" src="http://1.bp.blogspot.com/-qzlGapaClEI/UITRJHimv9I/AAAAAAAAFHU/qaH-ClWqj5w/s320/image012-771708.png" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
After publishing<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://4.bp.blogspot.com/-Tydkd7BJoDs/UITRJXlkhNI/AAAAAAAAFHg/pytofFg491c/s1600/image013-773314.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801992178840667346" src="http://4.bp.blogspot.com/-Tydkd7BJoDs/UITRJXlkhNI/AAAAAAAAFHg/pytofFg491c/s320/image013-773314.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Example of data model validation logic error<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Before publishing<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://1.bp.blogspot.com/-md_nVWQT7_Q/UITRJ_ubx6I/AAAAAAAAFHs/iYk419O_LAU/s1600/image014-775361.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801992189615261602" src="http://1.bp.blogspot.com/-md_nVWQT7_Q/UITRJ_ubx6I/AAAAAAAAFHs/iYk419O_LAU/s320/image014-775361.png" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
After publishing<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://1.bp.blogspot.com/-DeQ3-zP56Fc/UITRKCxGuGI/AAAAAAAAFH4/EuDgHtGbHmo/s1600/image015-776812.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801992190431770722" src="http://1.bp.blogspot.com/-DeQ3-zP56Fc/UITRKCxGuGI/AAAAAAAAFH4/EuDgHtGbHmo/s320/image015-776812.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Excel Add-in also provides special controls for interactive validation for certain types of information. For example, financial dimension combination may be validated using "Select dimension attribute values" control<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://4.bp.blogspot.com/-BxO0cLWCuuE/UITRKivPwpI/AAAAAAAAFIE/Qq6V8D6QzWA/s1600/image016-778242.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801992199013909138" src="http://4.bp.blogspot.com/-BxO0cLWCuuE/UITRKivPwpI/AAAAAAAAFIE/Qq6V8D6QzWA/s320/image016-778242.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://4.bp.blogspot.com/-_1D1AMR8vp4/UITRLBq5OzI/AAAAAAAAFIQ/aE1EGR1wvic/s1600/image017-779950.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801992207317154610" src="http://4.bp.blogspot.com/-_1D1AMR8vp4/UITRLBq5OzI/AAAAAAAAFIQ/aE1EGR1wvic/s320/image017-779950.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Please note that Segmented control in Rich Client shows different value lookup (Ledger account, Vendor, Customer, etc} depending of Account type = {Ledger, Vendor, Customer, etc}, however corresponding "Select dimension attribute values" control in Excel Add-in is only tailored for Ledger accounts <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Versions: </b>Microsoft Dynamics AX 2012 R2, Microsoft Dynamics AX 2012 FPK<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Tags</b>: Dynamics ERP, Dynamics AX 2012, Excel, Dynamics AX 2012 Excel Add-in, Data Import, Data Conversion, Data Migration, Application Integration Framework, Question, Answer, Validation Logic.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Note</b>: This document is intended for information purposes only, presented as it is with no warranties from the author. This document may be updated with more content to better outline the issues and describe the solutions.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="background: white; line-height: normal;">
<b>Author</b>: <a href="mailto:%20ani.kiev@live.com"> Alex Anikiev</a>, PhD, MCP<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p></o:p></span></div>
</div>
Alex Anikievhttp://www.blogger.com/profile/13438665643699572584noreply@blogger.com6tag:blogger.com,1999:blog-7090402456402630247.post-80544582940514111242012-10-21T02:45:00.000-07:002012-10-21T02:47:19.607-07:00Microsoft Dynamics AX 2012 Excel Add-in – Questions and Answers (Related Records)<div class="WordSection1">
<div style="border: currentColor; mso-element: para-border-div; padding: 0in 0in 4pt;">
<div align="center" class="MsoTitleCxSpFirst" style="text-align: center;">
<strong>Microsoft Dynamics AX 2012 <o:p></o:p></strong></div>
<div align="center" class="MsoTitleCxSpLast" style="text-align: center;">
<strong>Excel Add-in – Questions and Answers (Related Records)</strong> </div>
<div align="center" class="MsoTitleCxSpLast" style="text-align: center;">
<o:p></o:p></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Purpose: </b>The purpose of this document is to provide answers to frequently asked questions related to Microsoft Dynamics AX 2012 Excel Add-in.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Question</b>: How does Microsoft Dynamics AX 2012 Excel Add-in deal with Related Records?<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Answer</b>: The way the system implements Related records logic in Excel Add-in varies depending on AIF proxy classes implementation for particular business entities. In this document to illustrate main concepts I will use Sales order (SalesTable/SalesLine) and Purchase order (PurchTable/PurchLine) business entities in Microsoft Dynamics AX 2012.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Details<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
SalesTable/SalesLine and PurchTable/PurchLine Tables in Microsoft Dynamics AX 2012 have corresponding AxSalesTable/AxSalesLine and AxPurchTable/AxPurchLine AIF Proxy classes. All AIF Proxy classes extend AxInternalBase class. AxInternalBase class in its turn implements some core methods related to data manipulation. One of core methods in AxInternalBase class is doSave method. Focusing on Related records in this investigation we'll take a closer look at createOrUpdateRelatedRecords method where Related records logic is usually implemented.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://3.bp.blogspot.com/-ttLopX5eSQU/UIPEb9kyxUI/AAAAAAAAFDY/AZlQ4sJMayg/s1600/image001-782807.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801696729647727938" src="http://3.bp.blogspot.com/-ttLopX5eSQU/UIPEb9kyxUI/AAAAAAAAFDY/AZlQ4sJMayg/s320/image001-782807.png" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Sales order – Sales line and Purchase order – Purchase line<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Data Model<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter" /> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0" /> <v:f eqn="sum @0 1 0" /> <v:f eqn="sum 0 0 @1" /> <v:f eqn="prod @2 1 2" /> <v:f eqn="prod @3 21600 pixelWidth" /> <v:f eqn="prod @3 21600 pixelHeight" /> <v:f eqn="sum @0 0 1" /> <v:f eqn="prod @6 1 2" /> <v:f eqn="prod @7 21600 pixelWidth" /> <v:f eqn="sum @8 21600 0" /> <v:f eqn="prod @7 21600 pixelHeight" /> <v:f eqn="sum @10 21600 0" /> </v:formulas> <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect" /> <o:lock v:ext="edit" aspectratio="t" /> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:411pt;height:339pt' o:ole=""> <v:imagedata src="cid:image002.emz@01CDAF36.2124FF60" o:title="" /> </v:shape><![endif]--><![if !vml]><a href="http://2.bp.blogspot.com/-EVcGU1nLOxU/UIPEcYBHB3I/AAAAAAAAFDk/wTL0tbWkbWo/s1600/image016-785318.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801696736745817970" src="http://2.bp.blogspot.com/-EVcGU1nLOxU/UIPEcYBHB3I/AAAAAAAAFDk/wTL0tbWkbWo/s320/image016-785318.png" /></a><![endif]><!--[if gte mso 9]><xml> <o:OLEObject Type="Embed" ProgID="Visio.Drawing.15" ShapeID="_x0000_i1025" DrawAspect="Content" ObjectID="_1412292826"> </o:OLEObject> </xml><![endif]--><b><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
In Microsoft Dynamics AX 2012 you can add Miscellaneous charges to Sales order/line and Purchase order/line. MarkupTrans Table contains all types of Miscellaneous charges transactions and references to the original document by TableID/RecID (TransTableID/TransRecID). <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Rich Client<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Out-of-the-box in Rich Client once you change Charges group on Sales order MarkupTrans record(s) may be automatically populated based on predefined rules (Automatic charges)<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://4.bp.blogspot.com/-8Uoh1oMgMMI/UIPEc42rx1I/AAAAAAAAFDw/uSs8CXPRa6Q/s1600/image017-787518.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801696745560459090" src="http://4.bp.blogspot.com/-8Uoh1oMgMMI/UIPEc42rx1I/AAAAAAAAFDw/uSs8CXPRa6Q/s320/image017-787518.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
This is triggered in update method of SalesTableType class<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Classes\SalesTableType\Methods\update<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://1.bp.blogspot.com/-ZWxrVg9Ir9Y/UIPEdbtWTdI/AAAAAAAAFD8/In223fpM8Ow/s1600/image018-789336.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801696754916543954" src="http://1.bp.blogspot.com/-ZWxrVg9Ir9Y/UIPEdbtWTdI/AAAAAAAAFD8/In223fpM8Ow/s320/image018-789336.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Call Stack:<o:p></o:p></div>
<div class="MsoListParagraphCxSpFirst" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\Markup\insertMarkupTrans<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Tables\SalesTable\Methods\createMarkupTrans<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\SalesTableType\Methods\update<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Tables\SalesTable\Methods\update<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Forms\SalesTable\Data Sources\SalesTable\Methods\update<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
The principal difference between Rich Client and Excel Add-in is that in Rich Client some code is executed on the client which allows for interactive data manipulation <b>(stateful behavior)</b> and Excel Add-in will have to go through formal AIF interface every time the data is published into Microsoft Dynamics AX 2012 <b>(stateless behavior)</b>. Please note that when you deal with Form in Rich Client you already deal with predefined dataset as opposite to Excel Add-in where you have to define your dataset first. That's why in Rich Client it's possible to trigger Related records logic from Form interactively. For example, when the record is changed on Form Data source update method on respective Data source (and update methods on Table) will be executed.<b><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Excel Add-in<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Sales line – Miscellaneous charges<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://4.bp.blogspot.com/-FT_W_om85-8/UIPEdzzLWYI/AAAAAAAAFEI/s0m3u9hCHhs/s1600/image019-790968.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801696761383442818" src="http://4.bp.blogspot.com/-FT_W_om85-8/UIPEdzzLWYI/AAAAAAAAFEI/s0m3u9hCHhs/s320/image019-790968.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Call Stack:<o:p></o:p></div>
<div class="MsoListParagraphCxSpFirst" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l1 level1 lfo2; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxSalesLine\createOrUpdateRelatedRecords<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l1 level1 lfo2; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxInternalBase\doSave<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l1 level1 lfo2; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxInternalBase\save<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
…<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Please note that as soon as Excel Add-in uses formal AIF interface Related records will be populated when you publish data into Microsoft Dynamics AX 2012.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Purchase order – Purchase line<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Rich Client<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Similarly once you change Charges group on Purchase order MarkupTrans record(s) may be automatically populated based on predefined rules (Automatic charges)<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://1.bp.blogspot.com/-Mj5vxO2QvAM/UIPEeRV2gyI/AAAAAAAAFEU/NE2u-BNuLVE/s1600/image020-792974.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801696769313506082" src="http://1.bp.blogspot.com/-Mj5vxO2QvAM/UIPEeRV2gyI/AAAAAAAAFEU/NE2u-BNuLVE/s320/image020-792974.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
This is triggered in update method of PurchTableType class<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Classes\PurchTableType\Methods\update<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://1.bp.blogspot.com/-BmupXmLH-6A/UIPEex54QoI/AAAAAAAAFEg/qFx-UGYa8pg/s1600/image021-794961.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801696778054550146" src="http://1.bp.blogspot.com/-BmupXmLH-6A/UIPEex54QoI/AAAAAAAAFEg/qFx-UGYa8pg/s320/image021-794961.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Call Stack:<o:p></o:p></div>
<div class="MsoListParagraphCxSpFirst" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\Markup\insertMarkupTrans<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Tables\PurchTable\Methods\createMarkupTrans<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\PurchTableType\Methods\update<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Tables\PurchTable\Methods\update<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast" style="line-height: normal; margin-bottom: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Forms\PurchTable\Data Sources\PurchTable\Methods\update<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Excel Add-in<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Purchase line – Miscellaneous charges<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://4.bp.blogspot.com/-4WI9uRydbHo/UIPEfDl-xmI/AAAAAAAAFEs/BxFDzAakItw/s1600/image022-796181.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801696782802929250" src="http://4.bp.blogspot.com/-4WI9uRydbHo/UIPEfDl-xmI/AAAAAAAAFEs/BxFDzAakItw/s320/image022-796181.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Call Stack:<o:p></o:p></div>
<div class="MsoListParagraphCxSpFirst" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l1 level1 lfo2; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxPurchLine\createOrUpdateRelatedRecords<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l1 level1 lfo2; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxInternalBase\doSave<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l1 level1 lfo2; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxInternalBase\save<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
…<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Please note that Related records logic will be executed after Defaulting logic when data is published into Microsoft Dynamics AX 2012 through AIF interface.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Version:</b> Microsoft Dynamics AX 2012 R2<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Tags</b>: Dynamics ERP, Dynamics AX 2012, Excel, Dynamics AX 2012 Excel Add-in, Data Import, Data Conversion, Data Migration, Application Integration Framework, Question, Answer, Related Records.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Note</b>: This document is intended for information purposes only, presented as it is with no warranties from the author. This document may be updated with more content to better outline the issues and describe the solutions.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="background: white; line-height: normal;">
<b>Author</b>: <a href="mailto:%20ani.kiev@live.com"> Alex Anikiev</a>, PhD, MCP<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p></o:p></span></div>
</div>
Alex Anikievhttp://www.blogger.com/profile/13438665643699572584noreply@blogger.com2tag:blogger.com,1999:blog-7090402456402630247.post-87098666421388190412012-10-20T23:35:00.000-07:002012-10-20T23:37:33.504-07:00Microsoft Dynamics AX 2012 Excel Add-in – Questions and Answers (Depending Fields)<div class="WordSection1">
<div style="border: currentColor; mso-element: para-border-div; padding: 0in 0in 4pt;">
<div align="center" class="MsoTitleCxSpFirst" style="text-align: center;">
<strong>Microsoft Dynamics AX 2012 <o:p></o:p></strong></div>
<div align="center" class="MsoTitleCxSpLast" style="text-align: center;">
<strong>Excel Add-in – Questions and Answers (Depending Fields)</strong> </div>
<div align="center" class="MsoTitleCxSpLast" style="text-align: center;">
<o:p></o:p></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Purpose: </b>The purpose of this document is to provide answers to frequently asked questions related to Microsoft Dynamics AX 2012 Excel Add-in.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Question</b>: How does Microsoft Dynamics AX 2012 Excel Add-in deal with Dependent fields?<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Answer</b>: The way the system implements Depending fields logic in Excel Add-in varies depending on AIF proxy classes implementation for particular business entities. In this document to illustrate main concepts I will use Sales order (SalesTable/SalesLine), Purchase order (PurchTable/PurchLine) and Free Text Invoice (CustInvoiceTable/CustInvoiceLine) business entities in Microsoft Dynamics AX 2012.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Details<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
SalesTable/SalesLine, PurchTable/PurchLine and CustInvoiceTable/CustInvoiceLine Tables in Microsoft Dynamics AX 2012 have corresponding AxSalesTable/AxSalesLine, AxPurchTable/AxPurchLine and AxCustInvoiceTable/AxCustInvoiceLine AIF Proxy classes. All AIF Proxy classes extend AxInternalBase class. AxInternalBase class in its turn implements some core methods related to data manipulation. <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
One of core methods in AxInternalBase class is save method. Focusing on Dependent fields in this investigation we'll take a closer look at valueMapDependentFields method where Dependent fields logic is usually implemented.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://2.bp.blogspot.com/-CsdInJFo3g8/UIOX45PdcBI/AAAAAAAAFAk/Qx8-OEZBDU4/s1600/image001-778705.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801647748677464082" src="http://2.bp.blogspot.com/-CsdInJFo3g8/UIOX45PdcBI/AAAAAAAAFAk/Qx8-OEZBDU4/s320/image001-778705.png" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Sales order – Sales line and Purchase order – Purchase line<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Data Model<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter" /> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0" /> <v:f eqn="sum @0 1 0" /> <v:f eqn="sum 0 0 @1" /> <v:f eqn="prod @2 1 2" /> <v:f eqn="prod @3 21600 pixelWidth" /> <v:f eqn="prod @3 21600 pixelHeight" /> <v:f eqn="sum @0 0 1" /> <v:f eqn="prod @6 1 2" /> <v:f eqn="prod @7 21600 pixelWidth" /> <v:f eqn="sum @8 21600 0" /> <v:f eqn="prod @7 21600 pixelHeight" /> <v:f eqn="sum @10 21600 0" /> </v:formulas> <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect" /> <o:lock v:ext="edit" aspectratio="t" /> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:403.5pt;height:284.25pt' o:ole=""> <v:imagedata src="cid:image002.emz@01CDAF1B.94A5E410" o:title="" /> </v:shape><![endif]--><![if !vml]><a href="http://2.bp.blogspot.com/-5pjYhn4RT84/UIOX5BAAcfI/AAAAAAAAFAw/umNngq-lCHo/s1600/image024-780733.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801647750760133106" src="http://2.bp.blogspot.com/-5pjYhn4RT84/UIOX5BAAcfI/AAAAAAAAFAw/umNngq-lCHo/s320/image024-780733.png" /></a><![endif]><!--[if gte mso 9]><xml> <o:OLEObject Type="Embed" ProgID="Visio.Drawing.15" ShapeID="_x0000_i1025" DrawAspect="Content" ObjectID="_1412281421"> </o:OLEObject> </xml><![endif]--><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
In Microsoft Dynamics AX 2012 the combination of inventory dimensions is represented by InventDimId field which references to InventDim Table. Thus SalesLine and PurchLine Tables have InventDimId field which is the foreign key pointing to InventDim Table. <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Rich Client</b> <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Out-of-the-box in Rich Client once you save Sales order line InventDimId field is populated automatically<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://2.bp.blogspot.com/-OnXiUYo0pq0/UIOX5-oBhMI/AAAAAAAAFA8/S09KnRx3HvY/s1600/image025-783008.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801647767302538434" src="http://2.bp.blogspot.com/-OnXiUYo0pq0/UIOX5-oBhMI/AAAAAAAAFA8/S09KnRx3HvY/s320/image025-783008.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
For Sales order line this is triggered in write method of Form Data Source<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Forms\SalesTable\Data Sources\SalesLine\Methods\write<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://4.bp.blogspot.com/-u8U-A3QBwlU/UIOX6QMpfyI/AAAAAAAAFBI/nfAHeCP_Nfg/s1600/image026-784982.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801647772019556130" src="http://4.bp.blogspot.com/-u8U-A3QBwlU/UIOX6QMpfyI/AAAAAAAAFBI/nfAHeCP_Nfg/s320/image026-784982.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Similarly once you save Purchase order line InventDimId field is populated automatically<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://2.bp.blogspot.com/-RyrCZ6ZbRyw/UIOX6opiSfI/AAAAAAAAFBU/ddJmn0UZ7bk/s1600/image027-786726.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801647778583169522" src="http://2.bp.blogspot.com/-RyrCZ6ZbRyw/UIOX6opiSfI/AAAAAAAAFBU/ddJmn0UZ7bk/s320/image027-786726.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
For Purchase order line this is triggered in write method of Form Data Source<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Forms\PurchTable\Data Sources\PurchLine\Methods\write<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://3.bp.blogspot.com/-77M5ipg3YOY/UIOX7bIknaI/AAAAAAAAFBg/22IwC7qu19g/s1600/image028-789664.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801647792135118242" src="http://3.bp.blogspot.com/-77M5ipg3YOY/UIOX7bIknaI/AAAAAAAAFBg/22IwC7qu19g/s320/image028-789664.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
The principal difference between Rich Client and Excel Add-in is that in Rich Client some code is executed on the client which allows for interactive data manipulation <b>(stateful behavior)</b> and Excel Add-in will have to go through formal AIF interface every time the data is published into Microsoft Dynamics AX 2012 <b>(stateless behavior)</b>. Please note that when you deal with Form in Rich Client you already deal with predefined dataset as opposite to Excel Add-in where you have to define your dataset first. That's why in Rich Client it's possible to trigger Dependent fields logic from Form interactively. For example, when the record is saved on Form Data source write method on respective Data source (and insert or update methods on Table) will be executed.<b><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Excel Add-in<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Sales line – Inventory dimensions <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://2.bp.blogspot.com/-gerXLaAnM68/UIOX8KycMII/AAAAAAAAFBs/jwdUQR1E-uw/s1600/image029-792862.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801647804927193218" src="http://2.bp.blogspot.com/-gerXLaAnM68/UIOX8KycMII/AAAAAAAAFBs/jwdUQR1E-uw/s320/image029-792862.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Purchase line – Inventory dimensions <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://2.bp.blogspot.com/-ONDi1nxsQPs/UIOX8h0mCCI/AAAAAAAAFB4/lrNYg3aIB3I/s1600/image030-794896.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801647811110242338" src="http://2.bp.blogspot.com/-ONDi1nxsQPs/UIOX8h0mCCI/AAAAAAAAFB4/lrNYg3aIB3I/s320/image030-794896.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Call Stack:<o:p></o:p></div>
<div class="MsoListParagraphCxSpFirst" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxSalesLine\valueMapDependingFields (Classes\AxPurchLine\valueMapDependingFields)<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxInternalBase\save<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
…<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Please note that as soon as Excel Add-in uses formal AIF interface InventDimId field on corresponding Table will be populated when you publish data into Microsoft Dynamics AX 2012.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Free text Invoice – Free text Invoice line<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Data Model<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<!--[if gte vml 1]><v:shape id="_x0000_i1026" type="#_x0000_t75" style='width:467.25pt;height:215.25pt' o:ole=""> <v:imagedata src="cid:image016.emz@01CDAF1B.94A5E410" o:title="" /> </v:shape><![endif]--><![if !vml]><a href="http://2.bp.blogspot.com/-JeO6hVYya4E/UIOX9IjccHI/AAAAAAAAFCE/lJdWfppau6E/s1600/image031-796452.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801647821507293298" src="http://2.bp.blogspot.com/-JeO6hVYya4E/UIOX9IjccHI/AAAAAAAAFCE/lJdWfppau6E/s320/image031-796452.png" /></a><![endif]><!--[if gte mso 9]><xml> <o:OLEObject Type="Embed" ProgID="Visio.Drawing.15" ShapeID="_x0000_i1026" DrawAspect="Content" ObjectID="_1412281422"> </o:OLEObject> </xml><![endif]--><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
In Microsoft Dynamics AX 2012 State is dependent on Country. Thus for CustInvoiceLine Table which has both OrigCountryRegionId and OrigState fields the system can assign State only if it belongs to specified Country.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Rich Client<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Out-of-the-box in Rich Client once you specify Country on Free Text invoice line the system will provide lookup for State with the list of States which belong to selected Country<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://3.bp.blogspot.com/-EGJQxx9kqoU/UIOX9686k6I/AAAAAAAAFCQ/O48sn7p-krY/s1600/image032-798812.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801647835035898786" src="http://3.bp.blogspot.com/-EGJQxx9kqoU/UIOX9686k6I/AAAAAAAAFCQ/O48sn7p-krY/s320/image032-798812.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
State lookup behavior is dictated by Table Relationship between CustInvoiceLine and LogisticsAddressState Tables<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://3.bp.blogspot.com/-wU7PoLqLfRM/UIOX-aPMm1I/AAAAAAAAFCc/6PbKujHI8C8/s1600/image020-701004.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801647843434077010" src="http://3.bp.blogspot.com/-wU7PoLqLfRM/UIOX-aPMm1I/AAAAAAAAFCc/6PbKujHI8C8/s320/image020-701004.png" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Please note that if you try to key in State without Country specified you will see the following warning<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://3.bp.blogspot.com/-9Gcl8W3yCu8/UIOX_FhN9bI/AAAAAAAAFCo/mW_F9IKJ6qQ/s1600/image021-703830.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801647855052387762" src="http://3.bp.blogspot.com/-9Gcl8W3yCu8/UIOX_FhN9bI/AAAAAAAAFCo/mW_F9IKJ6qQ/s320/image021-703830.png" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
This means that in order to select State you have to specify Country<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Excel Add-in<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Free Text invoice line – Country/State<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://2.bp.blogspot.com/-pvj-vnl3wCs/UIOX_4nV9eI/AAAAAAAAFC0/b9L-Mtyo5o4/s1600/image033-706905.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801647868768286178" src="http://2.bp.blogspot.com/-pvj-vnl3wCs/UIOX_4nV9eI/AAAAAAAAFC0/b9L-Mtyo5o4/s320/image033-706905.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Call Stack:<o:p></o:p></div>
<div class="MsoListParagraphCxSpFirst" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxCustInvoiceLine\valueMapDependingFields<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxInternalBase\save<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
…<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Please note that Dependent fields logic will be executed before doSave method of AxInternalBase class with all AIF proxy classes processing logic. In this particular case Country has to be specified in order for the system to accept State specified. Both values will have to be specified for successful publishing of Origin information (Foreign trade) into Microsoft Dynamics AX 2012. <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Version:</b> Microsoft Dynamics AX 2012 R2<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Tags</b>: Dynamics ERP, Dynamics AX 2012, Excel, Dynamics AX 2012 Excel Add-in, Data Import, Data Conversion, Data Migration, Application Integration Framework, Question, Answer, Dependent Fields.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Note</b>: This document is intended for information purposes only, presented as it is with no warranties from the author. This document may be updated with more content to better outline the issues and describe the solutions.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="background: white; line-height: normal;">
<b>Author</b>: <a href="mailto:%20ani.kiev@live.com"> Alex Anikiev</a>, PhD, MCP<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p></o:p></span></div>
</div>
Alex Anikievhttp://www.blogger.com/profile/13438665643699572584noreply@blogger.com3tag:blogger.com,1999:blog-7090402456402630247.post-90571295572265640282012-10-20T15:43:00.001-07:002012-10-20T15:46:08.418-07:00Microsoft Dynamics AX 2012 Excel Add-in – Questions and Answers (Defaulting Logic)<div class="WordSection1">
<div style="border: currentColor; mso-element: para-border-div; padding: 0in 0in 4pt;">
<div align="center" class="MsoTitleCxSpFirst" style="text-align: center;">
<strong>Microsoft Dynamics AX 2012 <o:p></o:p></strong></div>
<div align="center" class="MsoTitleCxSpLast" style="text-align: center;">
<strong>Excel Add-in – Questions and Answers (Defaulting Logic)</strong> </div>
<div align="center" class="MsoTitleCxSpLast" style="text-align: center;">
<o:p></o:p></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Purpose: </b>The purpose of this document is to provide answers to frequently asked questions related to Microsoft Dynamics AX 2012 Excel Add-in.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Question</b>: How does Microsoft Dynamics AX 2012 Excel Add-in implement defaulting logic?<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Answer</b>: The way the system implements defaulting logic in Excel Add-in varies depending on AIF proxy classes implementation for particular business entities. In this document to illustrate main concepts I will use General journal (LedgerJournalTable) - Description and Sales order (SalesTable) - Pool business entities fields in Microsoft Dynamics AX 2012.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Details<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
LedgerJournalTable and SalesTable Tables in Microsoft Dynamics AX 2012 have corresponding AxLedgerJournalTable and AxSalesTable AIF Proxy classes. All AIF Proxy classes extend AxInternalBase class. AxInternalBase class in its turn implements some core methods related to data manipulation. <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
One of core methods in AxInternalBase class is doSave method. Focusing on Defaulting Logic in this investigation we'll take a closer look at setTableFields method where the assignment of default values for fields usually happens. <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://3.bp.blogspot.com/-t3iOfiTiTg4/UIMpI00Sy8I/AAAAAAAAE8g/CTynOuIl6i8/s1600/image001-726717.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801525976577002434" src="http://3.bp.blogspot.com/-t3iOfiTiTg4/UIMpI00Sy8I/AAAAAAAAE8g/CTynOuIl6i8/s320/image001-726717.png" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>General journal – Description<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Rich Client<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Out-of-the-box in Rich Client once you specify Journal name on General journal header Description is populated from Journal name automatically<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://4.bp.blogspot.com/-FJSDacMo03c/UIMpJMVOONI/AAAAAAAAE8s/UsRzPTK0Qz4/s1600/image002-728917.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801525982889130194" src="http://4.bp.blogspot.com/-FJSDacMo03c/UIMpJMVOONI/AAAAAAAAE8s/UsRzPTK0Qz4/s320/image002-728917.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
This is triggered in modified method of Form Data Source<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Forms\LedgerJournalTable\Data Sources\LedgerJournalTable\Fields\JournalName\Methods\modified<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://1.bp.blogspot.com/-qM_ILg1ibIU/UIMpJhHJzII/AAAAAAAAE84/hjIItt5ILJk/s1600/image003-730372.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801525988467264642" src="http://1.bp.blogspot.com/-qM_ILg1ibIU/UIMpJhHJzII/AAAAAAAAE84/hjIItt5ILJk/s320/image003-730372.jpg" /></a></b><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Here's how Description is defined for Journal name <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://3.bp.blogspot.com/-AoNPrN6xYCo/UIMpKEV9apI/AAAAAAAAE9E/ODCAAonFL_w/s1600/image004-732840.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801525997924608658" src="http://3.bp.blogspot.com/-AoNPrN6xYCo/UIMpKEV9apI/AAAAAAAAE9E/ODCAAonFL_w/s320/image004-732840.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
The principal difference between Rich Client and Excel Add-in is that in Rich Client some code is executed on the client which allows for interactive data manipulation <b>(stateful behavior)</b> and Excel Add-in will have to go through formal AIF interface every time the data is published into Microsoft Dynamics AX 2012 <b>(stateless behavior)</b>. Please note that when you deal with Form in Rich Client you already deal with predefined dataset as opposite to Excel Add-in where you have to define your dataset first. That's why in Rich Client it's possible to trigger defaulting logic from Form interactively. For example, when new record is created on Form Data source initValue method on respective Data source (and Table) will be executed, or when field value is modified on the Form the system will execute modified method on Data source field (and modifiedField method on Table).<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Excel Add-in<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
If you explicitly provide the value of Description before publishing data in Excel Add-in the system will take this value into account. By other words explicitly provided value overrides default value from Journal name <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Before publishing<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://2.bp.blogspot.com/-Ye3-xu54ex4/UIMpKoxeawI/AAAAAAAAE9Q/sUoCUDLdWMQ/s1600/image005-734523.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801526007703694082" src="http://2.bp.blogspot.com/-Ye3-xu54ex4/UIMpKoxeawI/AAAAAAAAE9Q/sUoCUDLdWMQ/s320/image005-734523.png" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
After publishing<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://1.bp.blogspot.com/-6o33BPCHQMk/UIMpLJ_37SI/AAAAAAAAE9c/gp-BCBcAbis/s1600/image006-736483.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801526016622456098" src="http://1.bp.blogspot.com/-6o33BPCHQMk/UIMpLJ_37SI/AAAAAAAAE9c/gp-BCBcAbis/s320/image006-736483.png" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>What if I don't specify Description? <o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
If you don't provide a value of Description before publishing data in Excel Add-in it will still be populated from Journal name. Please note that you will see populated value of Description in Excel Add-in only after successful publishing <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Before publishing<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://4.bp.blogspot.com/--oz4XTJZAhs/UIMpLsKA2aI/AAAAAAAAE9o/7Fl9yyzS9LM/s1600/image007-738155.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801526025791789474" src="http://4.bp.blogspot.com/--oz4XTJZAhs/UIMpLsKA2aI/AAAAAAAAE9o/7Fl9yyzS9LM/s320/image007-738155.png" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
After publishing<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://2.bp.blogspot.com/-lOTtvDFbKYc/UIMpL2x1S6I/AAAAAAAAE90/byKQYMo4eOQ/s1600/image008-739799.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801526028643158946" src="http://2.bp.blogspot.com/-lOTtvDFbKYc/UIMpL2x1S6I/AAAAAAAAE90/byKQYMo4eOQ/s320/image008-739799.png" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
In Microsoft Dynamics AX 2012 LedgerJournalTableType class represents Ledger journal business entity of different types. LedgerJournalTableType class is equipped with number of methods in order to populate default values for certain fields including Description (LedgerJournalTable.Name)<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: currentColor;"> <tbody>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 203.4pt;" valign="top" width="271"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Field name<o:p></o:p></b></div>
</td> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 275.4pt;" valign="top" width="367"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Method name<o:p></o:p></b></div>
</td> </tr>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 203.4pt;" valign="top" width="271"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
JournalNum<o:p></o:p></div>
</td> <td style="border-color: currentColor windowtext windowtext currentColor; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 275.4pt;" valign="top" width="367"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
defaultJournalNum<o:p></o:p></div>
</td> </tr>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 203.4pt;" valign="top" width="271"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><span style="color: #00b050;">Name<o:p></o:p></span></b></div>
</td> <td style="border-color: currentColor windowtext windowtext currentColor; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 275.4pt;" valign="top" width="367"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><span style="color: #00b050;">defaultName<o:p></o:p></span></b></div>
</td> </tr>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 203.4pt;" valign="top" width="271"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
NumberSequenceId<o:p></o:p></div>
</td> <td style="border-color: currentColor windowtext windowtext currentColor; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 275.4pt;" valign="top" width="367"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
defaultNumberSequenceId<o:p></o:p></div>
</td> </tr>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 203.4pt;" valign="top" width="271"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
JournalType<o:p></o:p></div>
</td> <td style="border-color: currentColor windowtext windowtext currentColor; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 275.4pt;" valign="top" width="367"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
defaultJournalType<o:p></o:p></div>
</td> </tr>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 203.4pt;" valign="top" width="271"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
PaymentGenerated_IT<o:p></o:p></div>
</td> <td style="border-color: currentColor windowtext windowtext currentColor; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 275.4pt;" valign="top" width="367"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
defaultPaymentGenerated_IT<o:p></o:p></div>
</td> </tr>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 203.4pt;" valign="top" width="271"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
OffsetAccount<o:p></o:p></div>
</td> <td style="border-color: currentColor windowtext windowtext currentColor; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 275.4pt;" valign="top" width="367"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
defaultOffsetAccount<o:p></o:p></div>
</td> </tr>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 203.4pt;" valign="top" width="271"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
PostedDateTime<o:p></o:p></div>
</td> <td style="border-color: currentColor windowtext windowtext currentColor; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 275.4pt;" valign="top" width="367"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
defaultPostedDateTime<o:p></o:p></div>
</td> </tr>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 203.4pt;" valign="top" width="271"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
OffsetAccountType<o:p></o:p></div>
</td> <td style="border-color: currentColor windowtext windowtext currentColor; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 275.4pt;" valign="top" width="367"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
defaultOffsetAccountType<o:p></o:p></div>
</td> </tr>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 203.4pt;" valign="top" width="271"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
GroupBlockId<o:p></o:p></div>
</td> <td style="border-color: currentColor windowtext windowtext currentColor; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 275.4pt;" valign="top" width="367"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
defaultGroupBlockId<o:p></o:p></div>
</td> </tr>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 203.4pt;" valign="top" width="271"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Dimension<o:p></o:p></div>
</td> <td style="border-color: currentColor windowtext windowtext currentColor; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 275.4pt;" valign="top" width="367"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
defaultDimension<o:p></o:p></div>
</td> </tr>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 203.4pt;" valign="top" width="271"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
CurrencyCode<o:p></o:p></div>
</td> <td style="border-color: currentColor windowtext windowtext currentColor; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 275.4pt;" valign="top" width="367"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
defaultCurrencyCode<o:p></o:p></div>
</td> </tr>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 203.4pt;" valign="top" width="271"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
FixedExchRate<o:p></o:p></div>
</td> <td style="border-color: currentColor windowtext windowtext currentColor; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 275.4pt;" valign="top" width="367"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
defaultFixedExchRate<o:p></o:p></div>
</td> </tr>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 203.4pt;" valign="top" width="271"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
DetailSummaryPosting<o:p></o:p></div>
</td> <td style="border-color: currentColor windowtext windowtext currentColor; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 275.4pt;" valign="top" width="367"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
defaultDetailSummaryPosting<o:p></o:p></div>
</td> </tr>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 203.4pt;" valign="top" width="271"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
DocumentNum<o:p></o:p></div>
</td> <td style="border-color: currentColor windowtext windowtext currentColor; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 275.4pt;" valign="top" width="367"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
defaultDocumentNum<o:p></o:p></div>
</td> </tr>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 203.4pt;" valign="top" width="271"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
ExchRateSecondary<o:p></o:p></div>
</td> <td style="border-color: currentColor windowtext windowtext currentColor; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 275.4pt;" valign="top" width="367"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
defaultExchRateSecondary<o:p></o:p></div>
</td> </tr>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 203.4pt;" valign="top" width="271"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
ExchRate<o:p></o:p></div>
</td> <td style="border-color: currentColor windowtext windowtext currentColor; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 275.4pt;" valign="top" width="367"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
defaultExchRate<o:p></o:p></div>
</td> </tr>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 203.4pt;" valign="top" width="271"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
FixedOffsetAccount<o:p></o:p></div>
</td> <td style="border-color: currentColor windowtext windowtext currentColor; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 275.4pt;" valign="top" width="367"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
defaultFixedOffsetAccount<o:p></o:p></div>
</td> </tr>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 203.4pt;" valign="top" width="271"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
RemoveLineAfterPosting<o:p></o:p></div>
</td> <td style="border-color: currentColor windowtext windowtext currentColor; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 275.4pt;" valign="top" width="367"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
defaultRemoveLineAfterPosting<o:p></o:p></div>
</td> </tr>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 203.4pt;" valign="top" width="271"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
CurrentOperationsTax<o:p></o:p></div>
</td> <td style="border-color: currentColor windowtext windowtext currentColor; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 275.4pt;" valign="top" width="367"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
defaultCurrentOperationsTax<o:p></o:p></div>
</td> </tr>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 203.4pt;" valign="top" width="271"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
LedgerJournalInclTax<o:p></o:p></div>
</td> <td style="border-color: currentColor windowtext windowtext currentColor; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 275.4pt;" valign="top" width="367"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
defaultLedgerJournalInclTax<o:p></o:p></div>
</td> </tr>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 203.4pt;" valign="top" width="271"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
BankRemittanceType<o:p></o:p></div>
</td> <td style="border-color: currentColor windowtext windowtext currentColor; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 275.4pt;" valign="top" width="367"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
defaultBankRemittanceType<o:p></o:p></div>
</td> </tr>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 203.4pt;" valign="top" width="271"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
CustVendNegInstProtestProcess<o:p></o:p></div>
</td> <td style="border-color: currentColor windowtext windowtext currentColor; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 275.4pt;" valign="top" width="367"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
defaultCustVendNegInstProtestProcess<o:p></o:p></div>
</td> </tr>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 203.4pt;" valign="top" width="271"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
VoucherAllocatedAtPosting<o:p></o:p></div>
</td> <td style="border-color: currentColor windowtext windowtext currentColor; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 275.4pt;" valign="top" width="367"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
defaultVoucherAllocatedAtPosting<o:p></o:p></div>
</td> </tr>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 203.4pt;" valign="top" width="271"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
LinesLimitBeforeDistribution<o:p></o:p></div>
</td> <td style="border-color: currentColor windowtext windowtext currentColor; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 275.4pt;" valign="top" width="367"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
defaultLinesLimitBeforeDistribution<o:p></o:p></div>
</td> </tr>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 203.4pt;" valign="top" width="271"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
WorkflowApprovalStatus<o:p></o:p></div>
</td> <td style="border-color: currentColor windowtext windowtext currentColor; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 275.4pt;" valign="top" width="367"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
defaultWorkflowApprovalStatus<o:p></o:p></div>
</td> </tr>
</tbody> </table>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Default value of Description is populated in defaultName method<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Classes\LedgerJournalTableType\defaultName<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://1.bp.blogspot.com/-MVFiG2wLST0/UIMpMv-B1DI/AAAAAAAAE-A/71eMB4gkcxU/s1600/image009-742103.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801526043995132978" src="http://1.bp.blogspot.com/-MVFiG2wLST0/UIMpMv-B1DI/AAAAAAAAE-A/71eMB4gkcxU/s320/image009-742103.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Call Stack:<o:p></o:p></div>
<div class="MsoListParagraphCxSpFirst" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\LedgerJournalTableType\defaultName<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\LedgerJournalTableType\defaultRow<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxLedgerJournalTable\defaultRow<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxLedgerJournalTable\setTableFields<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxInternalBase\doSave<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxInternalBase\save<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>…<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Please note that there's also defaulting logic related to Description in insert method in LedgerJournalTable Table which covers other functional scenarios <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Tables\LedgerJournalTable\Methods\insert<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://4.bp.blogspot.com/-T5ASmXyzK6A/UIMpNFKq_II/AAAAAAAAE-M/mQwhTaz0xDQ/s1600/image010-744002.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801526049685306498" src="http://4.bp.blogspot.com/-T5ASmXyzK6A/UIMpNFKq_II/AAAAAAAAE-M/mQwhTaz0xDQ/s320/image010-744002.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Sales order – Pool</b><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Rich Client<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Out-of-the-box in Rich Client once you create Sales order header on Create Sales order form the system will populate Sales Pool ID right away <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://1.bp.blogspot.com/-fT5NJ4zd754/UIMpNlZtG6I/AAAAAAAAE-Y/H7e0bRMwIHk/s1600/image011-746117.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801526058338294690" src="http://1.bp.blogspot.com/-fT5NJ4zd754/UIMpNlZtG6I/AAAAAAAAE-Y/H7e0bRMwIHk/s320/image011-746117.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Please note that Pool is populated based on Default Pool from Parameters even before particular Customer account is selected<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://4.bp.blogspot.com/--sQ_1Q4GdDI/UIMpNywnQ3I/AAAAAAAAE-k/-MwUUiscIkk/s1600/image012-747860.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801526061924041586" src="http://4.bp.blogspot.com/--sQ_1Q4GdDI/UIMpNywnQ3I/AAAAAAAAE-k/-MwUUiscIkk/s320/image012-747860.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
This is triggered from Form Data source initValue method which will eventually call initValue method on SalesTableType class<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://4.bp.blogspot.com/-_w4ZGSYyp7k/UIMpOX2V04I/AAAAAAAAE-w/_PvcxmaBFSo/s1600/image013-749534.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801526071880176514" src="http://4.bp.blogspot.com/-_w4ZGSYyp7k/UIMpOX2V04I/AAAAAAAAE-w/_PvcxmaBFSo/s320/image013-749534.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Once Customer account is selected the system will populate Pool based on Customer settings<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://3.bp.blogspot.com/-i2LFD_-ZdII/UIMpO0dea0I/AAAAAAAAE-8/nB26geqa1j4/s1600/image014-750986.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801526079560510274" src="http://3.bp.blogspot.com/-i2LFD_-ZdII/UIMpO0dea0I/AAAAAAAAE-8/nB26geqa1j4/s320/image014-750986.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
This is triggered from Form Data source modified method which will eventually call modifiedField method on SalesTableType class<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://2.bp.blogspot.com/-ESN0yryWN3E/UIMpPPdAM8I/AAAAAAAAE_I/jP6VfI1okRY/s1600/image015-752733.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801526086806287298" src="http://2.bp.blogspot.com/-ESN0yryWN3E/UIMpPPdAM8I/AAAAAAAAE_I/jP6VfI1okRY/s320/image015-752733.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Excel Add-in<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
If you explicitly provide the value of Pool before publishing data in Excel Add-in the system will take this value into account. By other words explicitly provided value overrides default value from Customer (or Parameters)<b><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Before publishing<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://1.bp.blogspot.com/-HsnLYTiwfBk/UIMpPirVNXI/AAAAAAAAE_U/ozKm-0OWrYs/s1600/image016-754407.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801526091966657906" src="http://1.bp.blogspot.com/-HsnLYTiwfBk/UIMpPirVNXI/AAAAAAAAE_U/ozKm-0OWrYs/s320/image016-754407.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
After publishing<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://2.bp.blogspot.com/-c858zeplT7Q/UIMpQVMr22I/AAAAAAAAE_g/iFQVavjd26Y/s1600/image017-756999.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801526105528327010" src="http://2.bp.blogspot.com/-c858zeplT7Q/UIMpQVMr22I/AAAAAAAAE_g/iFQVavjd26Y/s320/image017-756999.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>What if I don't specify Pool? <o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
If you don't provide a value of Pool before publishing data in Excel Add-in it will still be populated from Customer (or Parameters). Please note that you will see populated value of Pool in Excel Add-in only after successful publishing <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Before publishing<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://2.bp.blogspot.com/-kjmM0HChTz4/UIMpQsVmsUI/AAAAAAAAE_s/TCgWuSM5aFA/s1600/image018-758564.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801526111739752770" src="http://2.bp.blogspot.com/-kjmM0HChTz4/UIMpQsVmsUI/AAAAAAAAE_s/TCgWuSM5aFA/s320/image018-758564.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
After publishing<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://1.bp.blogspot.com/-3OeIydrT5Yg/UIMpRFlT-ZI/AAAAAAAAE_4/S0_84u_NHII/s1600/image019-760411.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801526118516521362" src="http://1.bp.blogspot.com/-3OeIydrT5Yg/UIMpRFlT-ZI/AAAAAAAAE_4/S0_84u_NHII/s320/image019-760411.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
In Microsoft Dynamics AX 2012 SalesTableType class represents Sales order business entity of different types. SalesTableType class is equipped with number of methods in order to set values for certain fields including Pool (SalesTable.SalesPoolId)<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://2.bp.blogspot.com/-XpsbuWVrEng/UIMpRg2G-tI/AAAAAAAAFAE/Pg64htf8nXs/s1600/image020-761997.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801526125834730194" src="http://2.bp.blogspot.com/-XpsbuWVrEng/UIMpRg2G-tI/AAAAAAAAFAE/Pg64htf8nXs/s320/image020-761997.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Call Stack:<o:p></o:p></div>
<div class="MsoListParagraphCxSpFirst" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxSalesTable\setSalesPoolId<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxSalesTable\setTableFields<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxInternalBase\doSave<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxInternalBase\save<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
…<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Please note that what was done in 2 steps in Rich Client (Default Pool populated from Parameters and then Pool populated from Customer) on Create Sales order form is executed as 1 step in Excel Add-in when the data is published through AIF interface. <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Version:</b> Microsoft Dynamics AX 2012 R2<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Tags</b>: Dynamics ERP, Dynamics AX 2012, Excel, Dynamics AX 2012 Excel Add-in, Data Import, Data Conversion, Data Migration, Application Integration Framework, Question, Answer, Defaulting Logic.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Note</b>: This document is intended for information purposes only, presented as it is with no warranties from the author. This document may be updated with more content to better outline the issues and describe the solutions.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="background: white; line-height: normal;">
<b>Author</b>: <a href="mailto:%20ani.kiev@live.com"> Alex Anikiev</a>, PhD, MCP<o:p></o:p></div>
</div>
Alex Anikievhttp://www.blogger.com/profile/13438665643699572584noreply@blogger.com0tag:blogger.com,1999:blog-7090402456402630247.post-85423112433452317192012-10-20T01:08:00.001-07:002012-10-20T01:14:38.091-07:00Microsoft Dynamics AX 2012 Excel Add-in – Questions and Answers (Number Sequences) <div class="WordSection1">
<div style="border: currentColor; mso-element: para-border-div; padding: 0in 0in 4pt;">
<div align="center" class="MsoTitleCxSpFirst" style="text-align: center;">
<strong>Microsoft Dynamics AX 2012 <o:p></o:p></strong></div>
<div align="center" class="MsoTitleCxSpLast" style="text-align: center;">
<strong>Excel Add-in – Questions and Answers (Number Sequences)</strong> <br />
<o:p></o:p></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Purpose: </b>The purpose of this document is to provide answers to frequently asked questions related to Microsoft Dynamics AX 2012 Excel Add-in.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Question</b>: How do I work with Number Sequences in Microsoft Dynamics AX 2012 Excel Add-in?<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Answer</b>: The way you work with Number Sequences in Excel Add-in varies depending on data model properties for Number Sequence controlled fields and AIF proxy classes implementation for particular business entities. In this document to illustrate main concepts I will provide examples of General journal – Journal number (LedgerJournalTable.JournalNum) and Sales order – Sales ID (SalesTable.SalesID) fields which are controlled by Number Sequences in Microsoft Dynamics AX 2012.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Details<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
LedgerJournalTable and SalesTable Tables in Microsoft Dynamics AX 2012 have corresponding AxLedgerJournalTable and AxSalesTable AIF Proxy classes. All AIF Proxy classes extend AxInternalBase class. AxInternalBase class in its turn implements some core methods related to data manipulation. <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
One of core methods in AxInternalBase class is doSave method. Focusing on Number Sequences in this investigation we'll take a closer look at setTableFields method where the assignment of ID from Number Sequence usually happens. <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://3.bp.blogspot.com/-F3Ht9aL78cM/UIJb9dqtpFI/AAAAAAAAE2k/jNzoIqv0w7s/s1600/image001-701001.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300381500548178" src="http://3.bp.blogspot.com/-F3Ht9aL78cM/UIJb9dqtpFI/AAAAAAAAE2k/jNzoIqv0w7s/s320/image001-701001.png" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>General journal – Journal number<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
In standard Demo data "Gene_10" Number Sequence is used to assign Journal batch numbers<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://1.bp.blogspot.com/-3PwrVaqmB1M/UIJb-FcALBI/AAAAAAAAE2w/MA_uQbwZGVg/s1600/image002-704014.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300392176266258" src="http://1.bp.blogspot.com/-3PwrVaqmB1M/UIJb-FcALBI/AAAAAAAAE2w/MA_uQbwZGVg/s320/image002-704014.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Out-of-the-box LedgerJournalTable.JournalNum field is Mandatory and has AllowEditOnCreate and AllowEdit properties set to "No" which means that the intention is to assign Journal batch numbers automatically from Number Sequence <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://4.bp.blogspot.com/-a24PMWD01eM/UIJb-yW8WFI/AAAAAAAAE28/_Pr9qVSGxjI/s1600/image003-707491.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300404234639442" src="http://4.bp.blogspot.com/-a24PMWD01eM/UIJb-yW8WFI/AAAAAAAAE28/_Pr9qVSGxjI/s320/image003-707491.png" /></a><b> <o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Rich Client<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Out-of-the-box in Rich Client once you create new General journal header Journal batch number is assigned from Number Sequence right away<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://3.bp.blogspot.com/-pFy27rEQ-44/UIJb_ji8qVI/AAAAAAAAE3I/vx-LPCJbmE4/s1600/image004-710289.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300417438329170" src="http://3.bp.blogspot.com/-pFy27rEQ-44/UIJb_ji8qVI/AAAAAAAAE3I/vx-LPCJbmE4/s320/image004-710289.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
This is triggered in initValue method of Form Data Source<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Forms\LedgerJournalTable\Data Sources\LedgerJournalTable\Methods\initValue<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://3.bp.blogspot.com/-4KoiRTfEVFI/UIJcABVWHBI/AAAAAAAAE3U/-EjsY2-flUs/s1600/image005-711897.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300425434340370" src="http://3.bp.blogspot.com/-4KoiRTfEVFI/UIJcABVWHBI/AAAAAAAAE3U/-EjsY2-flUs/s320/image005-711897.png" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Excel Add-in UI is different from Rich Client UI in terms of dynamics. In Rich Client once form is opened it is loaded into a memory and client-side Form code can trigger different programmatic actions to implement dynamic behavior (<b>stateful behavior</b>). Excel Add-in implements static behavior (<b>stateless behavior</b>) so every time data is published to Microsoft Dynamics AX 2012 it is done through formal AIF interface. <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Application Integration Framework (AIF)<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Excel Add-in uses AIF Web Services to publish the data to Microsoft Dynamics AX 2012. For "Add Data" scenarios the respective AIF Web Service will be used and for "Add Tables" scenario Generic Document Service will be used.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Please see the examples of Request and Response XML messages when using General Journal Web Service<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Request XML<o:p></o:p></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: currentColor;"> <tbody>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 6.65in;" valign="top" width="638"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter" /> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0" /> <v:f eqn="sum @0 1 0" /> <v:f eqn="sum 0 0 @1" /> <v:f eqn="prod @2 1 2" /> <v:f eqn="prod @3 21600 pixelWidth" /> <v:f eqn="prod @3 21600 pixelHeight" /> <v:f eqn="sum @0 0 1" /> <v:f eqn="prod @6 1 2" /> <v:f eqn="prod @7 21600 pixelWidth" /> <v:f eqn="sum @8 21600 0" /> <v:f eqn="prod @7 21600 pixelHeight" /> <v:f eqn="sum @10 21600 0" /> </v:formulas> <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect" /> <o:lock v:ext="edit" aspectratio="t" /> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:468pt;height:132.75pt' o:ole=""> <v:imagedata src="cid:image006.png@01CDAE5F.573A3110" o:title="" /> </v:shape><![endif]--><![if !vml]><a href="http://3.bp.blogspot.com/-Sb97ZdxBl2w/UIJcA6FDZaI/AAAAAAAAE3g/3UHF18qGluw/s1600/image007-715130.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300440666826146" src="http://3.bp.blogspot.com/-Sb97ZdxBl2w/UIJcA6FDZaI/AAAAAAAAE3g/3UHF18qGluw/s320/image007-715130.jpg" /></a><![endif]><!--[if gte mso 9]><xml> <o:OLEObject Type="Embed" ProgID="PBrush" ShapeID="_x0000_i1025" DrawAspect="Content" ObjectID="_1412200541"> </o:OLEObject> </xml><![endif]--><o:p></o:p></div>
</td> </tr>
</tbody> </table>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Response XML<o:p></o:p></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: currentColor;"> <tbody>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 6.65in;" valign="top" width="638"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<!--[if gte vml 1]><v:shape id="_x0000_i1026" type="#_x0000_t75" style='width:468pt;height:121.5pt' o:ole=""> <v:imagedata src="cid:image008.png@01CDAE5F.573A3110" o:title="" /> </v:shape><![endif]--><![if !vml]><a href="http://1.bp.blogspot.com/-0eEWIWNVXjA/UIJcBUv_YSI/AAAAAAAAE3s/KsdkJFt9vPk/s1600/image009-717363.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300447826239778" src="http://1.bp.blogspot.com/-0eEWIWNVXjA/UIJcBUv_YSI/AAAAAAAAE3s/KsdkJFt9vPk/s320/image009-717363.jpg" /></a><![endif]><!--[if gte mso 9]><xml> <o:OLEObject Type="Embed" ProgID="PBrush" ShapeID="_x0000_i1026" DrawAspect="Content" ObjectID="_1412200542"> </o:OLEObject> </xml><![endif]--><o:p></o:p></div>
</td> </tr>
</tbody> </table>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Please see the examples of Request and Response XML messages when using LedgerJournalTable Table<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Request XML<o:p></o:p></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: currentColor;"> <tbody>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 6.65in;" valign="top" width="638"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<!--[if gte vml 1]><v:shape id="_x0000_i1027" type="#_x0000_t75" style='width:468pt;height:205.5pt' o:ole=""> <v:imagedata src="cid:image010.png@01CDAE5F.573A3110" o:title="" /> </v:shape><![endif]--><![if !vml]><a href="http://2.bp.blogspot.com/-3rXOMkpH03w/UIJcB0i-DEI/AAAAAAAAE34/cOM0R6eeuqs/s1600/image011-719377.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300456361561154" src="http://2.bp.blogspot.com/-3rXOMkpH03w/UIJcB0i-DEI/AAAAAAAAE34/cOM0R6eeuqs/s320/image011-719377.jpg" /></a><![endif]><!--[if gte mso 9]><xml> <o:OLEObject Type="Embed" ProgID="PBrush" ShapeID="_x0000_i1027" DrawAspect="Content" ObjectID="_1412200543"> </o:OLEObject> </xml><![endif]--><o:p></o:p></div>
</td> </tr>
</tbody> </table>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Response XML<o:p></o:p></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: currentColor;"> <tbody>
<tr> <td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 6.65in;" valign="top" width="638"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<!--[if gte vml 1]><v:shape id="_x0000_i1028" type="#_x0000_t75" style='width:468pt;height:147pt' o:ole=""> <v:imagedata src="cid:image012.png@01CDAE5F.573A3110" o:title="" /> </v:shape><![endif]--><![if !vml]><a href="http://1.bp.blogspot.com/-CLHZZq5QCbo/UIJcCjKma9I/AAAAAAAAE4E/7MAqAWjTD3o/s1600/image013-722150.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300468875815890" src="http://1.bp.blogspot.com/-CLHZZq5QCbo/UIJcCjKma9I/AAAAAAAAE4E/7MAqAWjTD3o/s320/image013-722150.jpg" /></a><![endif]><!--[if gte mso 9]><xml> <o:OLEObject Type="Embed" ProgID="PBrush" ShapeID="_x0000_i1028" DrawAspect="Content" ObjectID="_1412200544"> </o:OLEObject> </xml><![endif]--><o:p></o:p></div>
</td> </tr>
</tbody> </table>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Please note that even despite the fact that I'm passing JournalNum = "ALEX" as a part of Request XML message, the system will disregard JournalNum value because LedgerJournalTable.JounalNum field has AllowEditOnCreate property set to "No"<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Classes\AxdBaseUpdate\deserializeTopEntity<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://4.bp.blogspot.com/-6YUO_La-8Pg/UIJcDZ4-7rI/AAAAAAAAE4Q/L0XB72ucuMc/s1600/image014-724952.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300483565874866" src="http://4.bp.blogspot.com/-6YUO_La-8Pg/UIJcDZ4-7rI/AAAAAAAAE4Q/L0XB72ucuMc/s320/image014-724952.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Call Stack:<o:p></o:p></div>
<div class="MsoListParagraphCxSpFirst" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\LedgerJournalTableType\defaultJournalNum<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\LedgerJournalTableType\defaultRow<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxLedgerJournalTable\defaultRow<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxLedgerJournalTable\setTableFields<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxInternalBase\doSave<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxInternalBase\save<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>…<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Eventually the system will automatically assign new JournalNum value from Number Sequence in setTableFields method of AxLedgerJournalTable class<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Classes\AxLedgerJournalTable\setTableFields<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://1.bp.blogspot.com/-TcDCXDQM6qU/UIJcD1tdu5I/AAAAAAAAE4c/l_ClWA04DOs/s1600/image015-726408.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300491033754514" src="http://1.bp.blogspot.com/-TcDCXDQM6qU/UIJcD1tdu5I/AAAAAAAAE4c/l_ClWA04DOs/s320/image015-726408.png" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Classes\LedgerJournalTableType\defaultRow<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://1.bp.blogspot.com/-6PelV3NRXzA/UIJcEYzj0yI/AAAAAAAAE4o/VRJ1uphPUms/s1600/image016-728792.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300500454560546" src="http://1.bp.blogspot.com/-6PelV3NRXzA/UIJcEYzj0yI/AAAAAAAAE4o/VRJ1uphPUms/s320/image016-728792.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
As the result the value of Batch journal number for General journal header will be different from what I originally specified in Excel Add-in<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>What if I don't specify Journal number?<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
In the case if you don't provide the value for Batch journal number before publishing Excel Add-in will treat this record as incomplete and disregard it because LedgerJournalTable.JournalNum field is Mandatory in data model <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Add Data (LedgerGeneralJournalService) <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://3.bp.blogspot.com/-WwMOTwz98WA/UIJcEzUDzaI/AAAAAAAAE40/_tPrm04t9nQ/s1600/image017-731576.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300507570195874" src="http://3.bp.blogspot.com/-WwMOTwz98WA/UIJcEzUDzaI/AAAAAAAAE40/_tPrm04t9nQ/s320/image017-731576.png" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Add Tables (LedgerJournalTable)<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://3.bp.blogspot.com/-WwMOTwz98WA/UIJcEzUDzaI/AAAAAAAAE40/_tPrm04t9nQ/s1600/image017-731576.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300507570195874" src="http://3.bp.blogspot.com/-WwMOTwz98WA/UIJcEzUDzaI/AAAAAAAAE40/_tPrm04t9nQ/s320/image017-731576.png" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
This means that in any case you have to provide some (dummy) value for Journal batch number in Excel Add-in <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>What if I set up Journal number Number sequence as Manual?<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://2.bp.blogspot.com/-sAWjIt-ngBQ/UIJcFicDt8I/AAAAAAAAE5A/N4fkVAAvHQA/s1600/image018-734051.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300520220211138" src="http://2.bp.blogspot.com/-sAWjIt-ngBQ/UIJcFicDt8I/AAAAAAAAE5A/N4fkVAAvHQA/s320/image018-734051.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
In the case if you provide the value for Batch journal number before publishing but you have Number Sequence set up as Manual, the system will eventually disregard the value you explicitly passed but it will not be able to assign new value automatically and you will see the following error in Excel Add-in<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Add Data (LedgerGeneralJournalService)<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://4.bp.blogspot.com/-0BvvpVtkVbA/UIJcGPbbIII/AAAAAAAAE5M/-BveIUIVYIA/s1600/image019-736514.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300532297146498" src="http://4.bp.blogspot.com/-0BvvpVtkVbA/UIJcGPbbIII/AAAAAAAAE5M/-BveIUIVYIA/s320/image019-736514.png" /></a><b><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Add Tables (LedgerJournalTable)<b><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><span style="color: red;"><a href="http://3.bp.blogspot.com/-mOEBUHSdwi8/UIJcGwoDZVI/AAAAAAAAE5Y/EdNoUcv0PJ4/s1600/image020-739249.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300541208487250" src="http://3.bp.blogspot.com/-mOEBUHSdwi8/UIJcGwoDZVI/AAAAAAAAE5Y/EdNoUcv0PJ4/s320/image020-739249.png" /></a></span><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
This means that you have to have Journal batch number Number Sequence setup as Automatic in order to complete data import exercise <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Sales order – Sales ID<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
In standard Demo data "AR_018" Number Sequence is used to assign Sales order IDs<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://4.bp.blogspot.com/-Bi9SDJzP7iI/UIJcHAP7cII/AAAAAAAAE5k/43kdyrmG1hM/s1600/image021-740653.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300545402269826" src="http://4.bp.blogspot.com/-Bi9SDJzP7iI/UIJcHAP7cII/AAAAAAAAE5k/43kdyrmG1hM/s320/image021-740653.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Out-of-the-box SalesTable.SalesID field is Mandatory and has AllowEdit property set to "No" which means that Sales order ID is automatically generated from Number Sequence but based on the data model you could technically change it upon Sales order header creation <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://3.bp.blogspot.com/-C2XKJVWavyg/UIJcHz4b3FI/AAAAAAAAE5w/EyGbL1Qr9Lc/s1600/image022-742226.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300559262374994" src="http://3.bp.blogspot.com/-C2XKJVWavyg/UIJcHz4b3FI/AAAAAAAAE5w/EyGbL1Qr9Lc/s320/image022-742226.png" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Rich Client <o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Out-of-the-box in Rich Client once you create new Sales order header Sales order ID is assigned from Number Sequence right away<b><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://4.bp.blogspot.com/-AXq6Lmv9yxc/UIJcIaDmeBI/AAAAAAAAE58/4X7mNLm6zms/s1600/image023-745138.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300569509754898" src="http://4.bp.blogspot.com/-AXq6Lmv9yxc/UIJcIaDmeBI/AAAAAAAAE58/4X7mNLm6zms/s320/image023-745138.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Please note that on Create sales order form the decision whether or not to make Sales order field editable is made based on Number Sequence setup (Automatic vs. Manual) <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
The automatic assignment of Sales order ID is triggered in create method of Form Data Source (assuming Number Sequence setup is Automatic)<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Forms\SalesOrderCreate\Data Sources\SalesTable\Methods\create<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://2.bp.blogspot.com/-ru0_Gj6u-h4/UIJcIzLq6rI/AAAAAAAAE6I/DCmr7M2l18s/s1600/image024-747591.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300576254487218" src="http://2.bp.blogspot.com/-ru0_Gj6u-h4/UIJcIzLq6rI/AAAAAAAAE6I/DCmr7M2l18s/s320/image024-747591.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Sales Order Web Service can't be used for data import at the moment because of Surrogate foreign key expansion error<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://2.bp.blogspot.com/-60foturcOwk/UIJcJSj4IbI/AAAAAAAAE6U/_MAh1yhflbA/s1600/image025-749165.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300584677515698" src="http://2.bp.blogspot.com/-60foturcOwk/UIJcJSj4IbI/AAAAAAAAE6U/_MAh1yhflbA/s320/image025-749165.png" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
For the purpose of this investigation I'll use SalesTable Table<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Please note that in this case the value of SalesID = "ALEX" which I'm passing as a part of Request XML message will be carried through deserializeTopEntity method of AxBaseUpdate class<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Classes\AxdBaseUpdate\deserializeTopEntity<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://3.bp.blogspot.com/-ickJ1vp-6LQ/UIJcKNc-a0I/AAAAAAAAE6g/7xs-fh7vN6c/s1600/image026-751680.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300600486259522" src="http://3.bp.blogspot.com/-ickJ1vp-6LQ/UIJcKNc-a0I/AAAAAAAAE6g/7xs-fh7vN6c/s320/image026-751680.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Call Stack:<o:p></o:p></div>
<div class="MsoListParagraphCxSpFirst" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxSalesTable\setSalesId<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxSalesTable\setTableFields<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxInternalBase\doSave<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>Classes\AxInternalBase\save<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast" style="line-height: normal; margin-bottom: 0in; margin-left: 20.25pt; margin-right: 0in; mso-add-space: auto; mso-list: l0 level1 lfo1; mso-margin-top-alt: 0in; text-indent: -0.25in;">
<![if !supportLists]><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span><![endif]>…<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Classes\AxSalesTable\setTableFields<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://1.bp.blogspot.com/-fjQTeRz0kVc/UIJcKjd-fbI/AAAAAAAAE6s/n3Jw06sPtSM/s1600/image027-754583.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300606396038578" src="http://1.bp.blogspot.com/-fjQTeRz0kVc/UIJcKjd-fbI/AAAAAAAAE6s/n3Jw06sPtSM/s320/image027-754583.png" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Classes\AxSalesTable\setSalesId<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://1.bp.blogspot.com/-bH8w9p_llbo/UIJcLGvkrpI/AAAAAAAAE64/1cyrnWbL54k/s1600/image028-756618.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300615865085586" src="http://1.bp.blogspot.com/-bH8w9p_llbo/UIJcLGvkrpI/AAAAAAAAE64/1cyrnWbL54k/s320/image028-756618.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Please note that the system is only supposed to automatically assign Sales order ID in the case it was not provided. This means that the system will keep Sales order ID specified before publishing in Excel Add-in<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
However after you specify Sales order ID and try to publish data into Microsoft Dynamics AX 2012 in Excel Add-in you will see the following error<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://3.bp.blogspot.com/-1TUN40Gb8Bc/UIJcL60f-UI/AAAAAAAAE7E/FTxCpBcHHFs/s1600/image029-759209.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300629844392258" src="http://3.bp.blogspot.com/-1TUN40Gb8Bc/UIJcL60f-UI/AAAAAAAAE7E/FTxCpBcHHFs/s320/image029-759209.png" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
This is because there's additional check on Sales order ID in setSalesId method in AxSalesTable class which requires respected Number Sequence to be either Manual or Allow for user changes (To a lower number or To a higher number)<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Classes\AxSalesTable\setSalesId<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://4.bp.blogspot.com/-3JIQdTrdj1U/UIJcMe3OUWI/AAAAAAAAE7Q/enHcrxMbqxE/s1600/image030-761448.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300639519494498" src="http://4.bp.blogspot.com/-3JIQdTrdj1U/UIJcMe3OUWI/AAAAAAAAE7Q/enHcrxMbqxE/s320/image030-761448.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
In this case I'll go with Allow user changes option<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://1.bp.blogspot.com/-QlvcLMFjHlU/UIJcM4vdEnI/AAAAAAAAE7c/evnY9p8HXxE/s1600/image031-763277.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300646466228850" src="http://1.bp.blogspot.com/-QlvcLMFjHlU/UIJcM4vdEnI/AAAAAAAAE7c/evnY9p8HXxE/s320/image031-763277.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Finally you will need to make sure that Sales order ID value you provide conforms to the format of Number Sequence in order to avoid the following error <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://4.bp.blogspot.com/-wuTG2ehx8xs/UIJcNVK-mZI/AAAAAAAAE7o/9PnD2RQ2V68/s1600/image032-765012.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300654097865106" src="http://4.bp.blogspot.com/-wuTG2ehx8xs/UIJcNVK-mZI/AAAAAAAAE7o/9PnD2RQ2V68/s320/image032-765012.png" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Please see the result in Microsoft Dynamics AX 2012 below<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://4.bp.blogspot.com/-ucUOyDqZAsU/UIJcN2rUhjI/AAAAAAAAE70/Hn0zeh91-FI/s1600/image033-766910.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300663091889714" src="http://4.bp.blogspot.com/-ucUOyDqZAsU/UIJcN2rUhjI/AAAAAAAAE70/Hn0zeh91-FI/s320/image033-766910.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>What if I don't specify Sales ID?<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
In the case if you don't provide the value for Sales order ID before publishing Excel Add-in will treat this record as incomplete and disregard it because SalesTable.SalesID field is Mandatory in data model<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Add Tables (SalesTable)<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://3.bp.blogspot.com/-WwMOTwz98WA/UIJcEzUDzaI/AAAAAAAAE40/_tPrm04t9nQ/s1600/image017-731576.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300507570195874" src="http://3.bp.blogspot.com/-WwMOTwz98WA/UIJcEzUDzaI/AAAAAAAAE40/_tPrm04t9nQ/s320/image017-731576.png" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
This means that every time you have to provide a value for Sales order ID in Excel Add-in <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>What if I set up Sales order ID Number sequence as Manual?<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://2.bp.blogspot.com/-sNKhGltWleA/UIJcORY0ZqI/AAAAAAAAE8A/TqxXFJcJXyw/s1600/image034-768979.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5801300670262044322" src="http://2.bp.blogspot.com/-sNKhGltWleA/UIJcORY0ZqI/AAAAAAAAE8A/TqxXFJcJXyw/s320/image034-768979.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
In the case if you provide the value for Sales order ID before publishing and you have Number Sequence set up as Manual, the system will take value you explicitly passed into account as long as the value conforms to Number Sequence format<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Version:</b> Microsoft Dynamics AX 2012 R2<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Tags</b>: Dynamics ERP, Dynamics AX 2012, Excel, Dynamics AX 2012 Excel Add-in, Data Import, Data Conversion, Data Migration, Application Integration Framework, Question, Answer, Number Sequence.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p> </o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Note</b>: This document is intended for information purposes only, presented as it is with no warranties from the author. This document may be updated with more content to better outline the issues and describe the solutions. Please also note that you can change Number Sequence setup for data import exercise and then change Number Sequence setup back to its original state.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><o:p> </o:p></b></div>
<div class="MsoNormal" style="background: white; line-height: normal;">
<b>Author</b>: <a href="mailto:%20ani.kiev@live.com"> Alex Anikiev</a>, PhD, MCP<span style="color: #222222; font-family: "Arial","sans-serif"; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal">
<o:p> </o:p></div>
</div>
Alex Anikievhttp://www.blogger.com/profile/13438665643699572584noreply@blogger.com2tag:blogger.com,1999:blog-7090402456402630247.post-78277140899196010782012-08-16T22:40:00.001-07:002012-08-16T22:45:26.715-07:00Dynamics AX 2012 Excel Add-in – Issues and Solutions (Timeout issues)<div class="WordSection1">
<div align="center" class="MsoTitle" style="text-align: center;">
<strong>Microsoft Dynamics AX 2012 Excel Add-in – Issues and Solutions (Timeout issues)</strong></div>
<div align="center" class="MsoTitle" style="text-align: center;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Purpose:</b> The purpose of this document is to outline some issues you may encounter when using Dynamics AX 2012 Excel Add-in for import of data and provide solutions to resolve them.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Issue</b>: 'Method 'System.ServiceModel.CommunicationObjectFaultException.Detail' not found'.</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Issue</b>: 'The request channel timed out attempting to send after 00:10:00. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time allotted to this operation may have been a portion of a longer timeout'.</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Issue</b>: 'The socket connection was aborted. This could be caused by an error processing your message or a receive timeout being exceeded by the remote host, or an underlying network resource issue. Local socket timeout was '00:10:00'.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Reason</b>: This issue occurs because Client-side and/or Server-side binding has insufficient Timeout value settings for sending/receiving of messages. <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Dynamics AX Error<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://1.bp.blogspot.com/-MrsVn7iOaI0/UC3ZYpSv1yI/AAAAAAAAEqk/RAIG4MRQp3Y/s1600/image001-749614.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5777512914410788642" src="http://1.bp.blogspot.com/-MrsVn7iOaI0/UC3ZYpSv1yI/AAAAAAAAEqk/RAIG4MRQp3Y/s320/image001-749614.png" /></a><b><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
This error is the result of unhandled exception which was re-thrown (2<sup>nd</sup> level exception), the meaningful exceptions (1<sup>st</sup> level exceptions) are presented below <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<span style="color: #1f497d;"><a href="http://3.bp.blogspot.com/-kt0_oJw2KfA/UC3ZYy3EUPI/AAAAAAAAEqw/Sku0dF6Ld5E/s1600/image002-751367.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5777512916979044594" src="http://3.bp.blogspot.com/-kt0_oJw2KfA/UC3ZYy3EUPI/AAAAAAAAEqw/Sku0dF6Ld5E/s320/image002-751367.png" /></a></span><b><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<span style="color: #1f497d;"><a href="http://1.bp.blogspot.com/-x39W0g6hj-I/UC3ZZSEcHmI/AAAAAAAAEq8/4vZV7qW6x-A/s1600/image003-753770.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5777512925356629602" src="http://1.bp.blogspot.com/-x39W0g6hj-I/UC3ZZSEcHmI/AAAAAAAAEq8/4vZV7qW6x-A/s320/image003-753770.png" /></a></span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Solution</b>: Appropriate Client-side and/or Server-side binding Timeout value settings for sending/receiving of messages will be increased to handle bigger volumes of data which takes more time, in particular ReceiveTimeout and SendTimeout settings. Please note that you specify Server-side (AOS) binding settings using Microsoft Dynamics AX 2012 Configuration Utility (Client Configuration Utility) > Connection tab > Configure Services button > Microsoft WCF Service Configuration Editor, and you specify Client-side (Adapter) binding settings using Inbound port > Configure button > Microsoft WCF Service Configuration Editor. <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><span style="color: red;">Important</span></b>: <b>Please note that it is recommended to use Microsoft Dynamics AX 2012 DMF (Data Migration Framework) for data migration with large volumes of data because DMF allows for much better performance comparing to Excel Add-in.</b><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>In this particular case the issue was caused by Client-side binding Timeout settings which were increased appropriately.</b> You can see the example of Client-side config file if you use WCF Test Client utility to test your Web Service<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>WCF Test Client<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://2.bp.blogspot.com/-qWP9nOMQ3Ug/UC3ZZ_STT8I/AAAAAAAAErI/g6W5buAqveg/s1600/image004-755040.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5777512937494368194" src="http://2.bp.blogspot.com/-qWP9nOMQ3Ug/UC3ZZ_STT8I/AAAAAAAAErI/g6W5buAqveg/s320/image004-755040.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
This Client config file (Client.dll.config) is generated from scratch by WCF Test Client utility every time you add Web Service to it for testing. Please see binding settings highlighted with <b><span style="color: #00b050;">Green</span></b><span style="color: #00b050;"> </span>below <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse;"><tbody>
<tr><td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; border-right: windowtext 1pt solid; border-top: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 6.65in;" valign="top" width="638"><div class="MsoNormal">
<b><?xml version="1.0" encoding="utf-8"?><o:p></o:p></b></div>
<div class="MsoNormal">
<b><configuration><o:p></o:p></b></div>
<div class="MsoNormal">
<b> <system.serviceModel><o:p></o:p></b></div>
<div class="MsoNormal">
<b> <span style="color: #00b050;"><bindings><o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> <netTcpBinding><o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> <binding name="NetTcpBinding_BudgetTransactionService" closeTimeout="00:01:00"<o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> openTimeout="00:01:00" </span><span style="color: red;">receiveTimeout="00:10:00"</span><span style="color: #00b050;"> </span><span style="color: red;">sendTimeout="00:01:00"</span><span style="color: #00b050;"><o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"<o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> hostNameComparisonMode="StrongWildcard" listenBacklog="10"<o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> maxBufferPoolSize="524288" maxBufferSize="65536" maxConnections="10"<o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> maxReceivedMessageSize="65536"><o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"<o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> maxBytesPerRead="4096" maxNameTableCharCount="16384" /><o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> <reliableSession ordered="true" inactivityTimeout="00:10:00"<o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> enabled="false" /><o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> <security mode="Transport"><o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" /><o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> <message clientCredentialType="Windows" /><o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> </security><o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> </binding><o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> <binding name="NetTcpBinding_GeneralJournalService" closeTimeout="00:01:00"<o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"<o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"<o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> hostNameComparisonMode="StrongWildcard" listenBacklog="10"<o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> maxBufferPoolSize="524288" maxBufferSize="65536" maxConnections="10"<o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> maxReceivedMessageSize="65536"><o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"<o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> maxBytesPerRead="4096" maxNameTableCharCount="16384" /><o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> <reliableSession ordered="true" inactivityTimeout="00:10:00"<o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> enabled="false" /><o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> <security mode="Transport"><o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" /><o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> <message clientCredentialType="Windows" /><o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> </security><o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> </binding><o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> </netTcpBinding><o:p></o:p></span></b></div>
<div class="MsoNormal">
<b><span style="color: #00b050;"> </bindings><o:p></o:p></span></b></div>
<div class="MsoNormal">
<b> <client><o:p></o:p></b></div>
<div class="MsoNormal">
<b> <endpoint address="net.tcp://ax2012-a:8201/DynamicsAx/Services/OfficeAddins"<o:p></o:p></b></div>
<div class="MsoNormal">
<b> binding="netTcpBinding" bindingConfiguration="NetTcpBinding_BudgetTransactionService"<o:p></o:p></b></div>
<div class="MsoNormal">
<b> contract="BudgetTransactionService" name="NetTcpBinding_BudgetTransactionService"><o:p></o:p></b></div>
<div class="MsoNormal">
<b> <identity><o:p></o:p></b></div>
<div class="MsoNormal">
<b> <servicePrincipalName value="host/AX2012-A.contoso.com" /><o:p></o:p></b></div>
<div class="MsoNormal">
<b> </identity><o:p></o:p></b></div>
<div class="MsoNormal">
<b> </endpoint><o:p></o:p></b></div>
<div class="MsoNormal">
<b> <endpoint address="net.tcp://ax2012-a:8201/DynamicsAx/Services/OfficeAddins"<o:p></o:p></b></div>
<div class="MsoNormal">
<b> binding="netTcpBinding" bindingConfiguration="NetTcpBinding_GeneralJournalService"<o:p></o:p></b></div>
<div class="MsoNormal">
<b> contract="GeneralJournalService" name="NetTcpBinding_GeneralJournalService"><o:p></o:p></b></div>
<div class="MsoNormal">
<b> <identity><o:p></o:p></b></div>
<div class="MsoNormal">
<b> <servicePrincipalName value="host/AX2012-A.contoso.com" /><o:p></o:p></b></div>
<div class="MsoNormal">
<b> </identity><o:p></o:p></b></div>
<div class="MsoNormal">
<b> </endpoint><o:p></o:p></b></div>
<div class="MsoNormal">
<b> </client><o:p></o:p></b></div>
<div class="MsoNormal">
<b> </system.serviceModel><o:p></o:p></b></div>
<div class="MsoNormal">
<b></configuration><o:p></o:p></b></div>
</td></tr>
</tbody></table>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
You can change Server-side configuration (AOS) using Microsoft Dynamics AX Configuration Utility > Configure Services button <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Microsoft Dynamics AX Configuration Utility<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://3.bp.blogspot.com/-A9p-VchhXU4/UC3ZaMMHv5I/AAAAAAAAErU/u19APfGaEgw/s1600/image005-756561.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5777512940958105490" src="http://3.bp.blogspot.com/-A9p-VchhXU4/UC3ZaMMHv5I/AAAAAAAAErU/u19APfGaEgw/s320/image005-756561.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Microsoft Service Configuration Editor <o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://2.bp.blogspot.com/-xYiGqwTsW1M/UC3ZahaoyWI/AAAAAAAAErg/PAA-euZsRSs/s1600/image006-757950.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5777512946656135522" src="http://2.bp.blogspot.com/-xYiGqwTsW1M/UC3ZahaoyWI/AAAAAAAAErg/PAA-euZsRSs/s320/image006-757950.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>NetTCPBinding Before and After<o:p></o:p></b></div>
<table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse;"><tbody>
<tr><td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; border-right: windowtext 1pt solid; border-top: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 3.45in;" valign="top" width="331"><div class="MsoNormal">
<b><span style="color: red;">Before</span><o:p></o:p></b></div>
</td><td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; border-right: windowtext 1pt solid; border-top: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 3.2in;" valign="top" width="307"><div class="MsoNormal">
<b><span style="color: #00b050;">After</span><o:p></o:p></b></div>
</td></tr>
<tr style="height: 224.5pt;"><td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; border-right: windowtext 1pt solid; border-top: windowtext 1pt solid; height: 224.5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 3.45in;" valign="top" width="331"><div class="MsoNormal">
<a href="http://4.bp.blogspot.com/-i7H0aNCE7Ao/UC3ZbDTMyZI/AAAAAAAAErs/k_Cgr-_vQns/s1600/image023-760091.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5777512955751745938" src="http://4.bp.blogspot.com/-i7H0aNCE7Ao/UC3ZbDTMyZI/AAAAAAAAErs/k_Cgr-_vQns/s320/image023-760091.jpg" /></a><b><o:p></o:p></b></div>
</td><td style="border-bottom: windowtext 1pt solid; border-left: medium none; border-right: windowtext 1pt solid; border-top: medium none; height: 224.5pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 3.2in;" valign="top" width="307"><div class="MsoNormal">
<a href="http://2.bp.blogspot.com/-SdFyq-5-D3E/UC3ZbYd1-tI/AAAAAAAAEr4/WQVJ_kkxicg/s1600/image024-761561.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5777512961433533138" src="http://2.bp.blogspot.com/-SdFyq-5-D3E/UC3ZbYd1-tI/AAAAAAAAEr4/WQVJ_kkxicg/s320/image024-761561.jpg" /></a><b><o:p></o:p></b></div>
</td></tr>
</tbody></table>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
You can change Client-side configuration (Adapter) using Inbound form > Configure button <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Inbound port<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://3.bp.blogspot.com/-ZSFWjWymNQ0/UC3Zb-xQyeI/AAAAAAAAEsE/KrhePso_ZXc/s1600/image011-763155.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5777512971715529186" src="http://3.bp.blogspot.com/-ZSFWjWymNQ0/UC3Zb-xQyeI/AAAAAAAAEsE/KrhePso_ZXc/s320/image011-763155.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Microsoft Service Configuration Editor<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://3.bp.blogspot.com/-Sox5Gcx3Wgg/UC3ZcZ6aVZI/AAAAAAAAEsQ/jEoZx20XX7c/s1600/image012-764945.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5777512979001660818" src="http://3.bp.blogspot.com/-Sox5Gcx3Wgg/UC3ZcZ6aVZI/AAAAAAAAEsQ/jEoZx20XX7c/s320/image012-764945.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>NetTCPBinding Before and After <o:p></o:p></b></div>
<table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse;"><tbody>
<tr><td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; border-right: windowtext 1pt solid; border-top: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal">
<b><span style="color: red;">Before</span><o:p></o:p></b></div>
</td><td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; border-right: windowtext 1pt solid; border-top: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal">
<b><span style="color: #00b050;">After</span><o:p></o:p></b></div>
</td></tr>
<tr><td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; border-right: windowtext 1pt solid; border-top: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal">
<a href="http://2.bp.blogspot.com/-dutxeVgGGnw/UC3Zc8f3ckI/AAAAAAAAEsc/IUGZmibLDrA/s1600/image025-767004.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5777512988285563458" src="http://2.bp.blogspot.com/-dutxeVgGGnw/UC3Zc8f3ckI/AAAAAAAAEsc/IUGZmibLDrA/s320/image025-767004.jpg" /></a><b><o:p></o:p></b></div>
</td><td style="border-bottom: windowtext 1pt solid; border-left: medium none; border-right: windowtext 1pt solid; border-top: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal">
<a href="http://3.bp.blogspot.com/-pXNVWDTbbTA/UC3ZdSR66LI/AAAAAAAAEso/8BmdOnrcjfk/s1600/image026-768948.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5777512994132650162" src="http://3.bp.blogspot.com/-pXNVWDTbbTA/UC3ZdSR66LI/AAAAAAAAEso/8BmdOnrcjfk/s320/image026-768948.jpg" /></a><b><o:p></o:p></b></div>
</td></tr>
</tbody></table>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
After you increase appropriate Client-side and/or Server-side binding Timeout value settings for sending/receiving of messages you can publish bigger volumes of data into Microsoft Dynamics AX 2012 using Excel Add-in <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Result<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://3.bp.blogspot.com/-wqDPWimP32w/UC3ZdqG196I/AAAAAAAAEs0/7lKH2qZaxdM/s1600/image017-770632.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5777513000528639906" src="http://3.bp.blogspot.com/-wqDPWimP32w/UC3ZdqG196I/AAAAAAAAEs0/7lKH2qZaxdM/s320/image017-770632.png" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
In this particular case using Microsoft Dynamics AX 2012 Demo VM I published 3000 General journal lines (and 1 General journal header) using General journal Web Service and it took about 50 minutes (it's more than default timeouts). <b>Please set up appropriate Filter on Excel spreadsheet in advance to prevent the system from retrieving all General journal headers/lines for display upon completion of import because this data retrieval by itself may take more time than actual import.<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<a href="http://2.bp.blogspot.com/-12Rt7ahDdS0/UC3ZedHRasI/AAAAAAAAEtA/5Bsag9foCU0/s1600/image018-773178.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5777513014220647106" src="http://2.bp.blogspot.com/-12Rt7ahDdS0/UC3ZedHRasI/AAAAAAAAEtA/5Bsag9foCU0/s320/image018-773178.jpg" /></a> <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><span style="color: red;">Important</span>: Please note that Excel Add-in calls Web Service asynchronously which means that even if you receive exception in Excel Add-in and control is passed back to Excel Add-in with no indication about the result of import, the import process may still be going on background in Worker thread and you will see the result of import after a period of time (in my case it could be 50 minutes). You can also explicitly see these Worker threads on Online users form.<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://4.bp.blogspot.com/-BPpMAEL1U7c/UC3ZekP2atI/AAAAAAAAEtM/K8bOvpAz2sk/s1600/image019-774845.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5777513016135674578" src="http://4.bp.blogspot.com/-BPpMAEL1U7c/UC3ZekP2atI/AAAAAAAAEtM/K8bOvpAz2sk/s320/image019-774845.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Please note that if you enable Logging on Inbound Port you will explicitly see both Request and Response messages logged in History form, so you can also see exactly the time when import started and when it was completed.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Inbound port<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://4.bp.blogspot.com/-fF9M6uUigxM/UC3ZfaVP7sI/AAAAAAAAEtY/wuv0grZBUwo/s1600/image020-777063.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5777513030653832898" src="http://4.bp.blogspot.com/-fF9M6uUigxM/UC3ZfaVP7sI/AAAAAAAAEtY/wuv0grZBUwo/s320/image020-777063.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>History<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><a href="http://2.bp.blogspot.com/-oX8MMx_O-dg/UC3ZfsX8sBI/AAAAAAAAEtk/h8M0yTiDXk8/s1600/image021-778717.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5777513035496992786" src="http://2.bp.blogspot.com/-oX8MMx_O-dg/UC3ZfsX8sBI/AAAAAAAAEtk/h8M0yTiDXk8/s320/image021-778717.jpg" /></a><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b><span style="color: red;">Important</span>: </b>Please note<b> </b>that depending on Microsoft Dynamics AX 2012 build you use <b>KB2632761</b> may have to be installed in order for Excel Add-in to take into account Client-side Binding settings. <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<span style="color: #1f497d;"><a href="http://1.bp.blogspot.com/-viEMGYYjyw0/UC3ZgJKtdkI/AAAAAAAAEtw/GvA02eRtCv4/s1600/image022-780151.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5777513043226097218" src="http://1.bp.blogspot.com/-viEMGYYjyw0/UC3ZgJKtdkI/AAAAAAAAEtw/GvA02eRtCv4/s320/image022-780151.jpg" /></a></span><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
Please find more information on Chris' blog here:<b> </b><a href="http://blogs.msdn.com/b/chrisgarty/archive/2012/02/24/dynamics-ax-2012-excel-add-in-timeout-issues.aspx">http://blogs.msdn.com/b/chrisgarty/archive/2012/02/24/dynamics-ax-2012-excel-add-in-timeout-issues.aspx</a><b><o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Tags</b>: Dynamics ERP, Dynamics AX 2012, Excel, Dynamics AX 2012 Excel Add-in, Data Import, Data Conversion, Data Migration, Application Integration Framework, Issue, Problem, Solution, Resolution. <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Note</b>: This document is intended for information purposes only, presented as it is with no warranties from the author. This document may be updated with more content to better outline the issues and describe the solutions.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<b>Author</b>: <a href="mailto:%20alexani@microsoft.com">Alex Anikiev</a>, PhD, MCP<o:p></o:p></div>
</div>
Alex Anikievhttp://www.blogger.com/profile/13438665643699572584noreply@blogger.com5tag:blogger.com,1999:blog-7090402456402630247.post-31347277828715201632012-05-23T22:27:00.001-07:002012-05-23T22:30:28.520-07:00Dynamics AX 2012 Excel Add-in – Issues and Solutions (Index was outside the bounds of the array)<div class="WordSection1">
<div style="border-bottom: #4f81bd 1pt solid; border-left: medium none; border-right: medium none; border-top: medium none; mso-element: para-border-div; padding-bottom: 4pt; padding-left: 0in; padding-right: 0in; padding-top: 0in;">
<div align="center" class="MsoTitleCxSpFirst" style="text-align: center;">
<strong>Dynamics AX 2012 Excel Add-in – </strong></div>
<div align="center" class="MsoTitleCxSpLast" style="text-align: center;">
<strong>Issues and Solutions (Index was outside the bounds of the array)</strong></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>Purpose:</b> The purpose of this document is to outline some issues you may encounter when using Dynamics AX 2012 Excel Add-in for import of data and provide solutions to resolve them.</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
</div>
<br />
<br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>Issue:</b> 'Index was outside the bounds of the array'.</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
</div>
<br />
<br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>Reason:</b> This issue occurs because some mandatory fields are not specified for particular business entity. As the result validation of request XML will fail and exception will be thrown in Classes\AifWcfInterceptor\AfterReceiveRequest (CIL: AifWcfInterceptor.AfterReceiveRequest.xpp). However this exception will not be handled properly in external calling code (Dynamics AX 2012 Excel Add-in) and instead of meaningful "Invalid document schema" error message the user will see misleading "Index was outside the bounds of the array" error message. Please note that you can see the real error message in Event Viewer and/or Exceptions form assuming that Logging is enabled for appropriate Inbound port. In this example I will focus on Budget entries import using Budget Transactions Service AIF Web Service. </div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
</div>
<br />
<br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>Dynamics AX Error</b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b><a href="http://2.bp.blogspot.com/-y_L11UiouG4/T73G20szkXI/AAAAAAAAEjI/eTa3JxvVCG8/s1600/image001-774946.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5745967344756429170" src="http://2.bp.blogspot.com/-y_L11UiouG4/T73G20szkXI/AAAAAAAAEjI/eTa3JxvVCG8/s320/image001-774946.jpg" /></a></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b></b><br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>Solution:</b> Please specify all mandatory fields for particular business entity you are trying to import before you Publish. In this example initially I didn't specify LedgerDimension field on BudgetTransactionLine table that is a part of Budget Transactions Service AIF Web Service data set which caused 'Index was outside the bounds of the array' error. After I properly specified all mandatory fields on business entities being imported the import process is successful.</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b></b><br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>Document data sources</b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://4.bp.blogspot.com/-GfL8-SZys2Y/T73G3E8UM-I/AAAAAAAAEjU/qmLcmwszNAs/s1600/image002-776413.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5745967349116449762" src="http://4.bp.blogspot.com/-GfL8-SZys2Y/T73G3E8UM-I/AAAAAAAAEjU/qmLcmwszNAs/s320/image002-776413.png" /></a></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
</div>
<br />
<br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
Please note that <b>BudgetTransactionsService</b> AIF Web Service is activated as Document data source</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
</div>
<br />
<br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>Inbound port</b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://1.bp.blogspot.com/-9Y-ExQ86J6M/T73G3XWc-CI/AAAAAAAAEjg/6Vw_OFs3RZE/s1600/image003-777428.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5745967354057914402" src="http://1.bp.blogspot.com/-9Y-ExQ86J6M/T73G3XWc-CI/AAAAAAAAEjg/6Vw_OFs3RZE/s320/image003-777428.jpg" /></a></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
</div>
<br />
<br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
Please note that Logging mode is <b>'All document versions' </b>which is required for troubleshooting. Also it's important to mention that <b>BudgetTransactionsService</b> AIF Web Service operations (<b>create</b>, update, delete, read, etc) were exposed through <b>OfficeAddins</b> Enhanced Inbound port which was successfully activated. Alternatively you can activate <b>BudgetServices</b> Services Group which also contains <b>BudgetTransactionsService</b> AIF Web Service.</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
</div>
<br />
<br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>Select Data</b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://2.bp.blogspot.com/-HI5b13_9A8Q/T73G3yO_AII/AAAAAAAAEjo/8LrwZHiTuJQ/s1600/image004-779409.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5745967361274347650" src="http://2.bp.blogspot.com/-HI5b13_9A8Q/T73G3yO_AII/AAAAAAAAEjo/8LrwZHiTuJQ/s320/image004-779409.jpg" /></a></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
</div>
<br />
<br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>Data (Header – left and Line – right)</b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b><a href="http://3.bp.blogspot.com/-hXY4vJXuDsw/T73G4NB3FBI/AAAAAAAAEj0/1d-qiwUX8lE/s1600/image005-780180.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5745967368467059730" src="http://3.bp.blogspot.com/-hXY4vJXuDsw/T73G4NB3FBI/AAAAAAAAEj0/1d-qiwUX8lE/s320/image005-780180.jpg" /></a></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b></b><br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
Please note that I specified the very minimum number of fields for BudgetTransactionHeader and BudgerTransactionLine tables looking at <b><span style="color: red;">Red</span></b><span style="color: red;"> </span>asterisk icon (Mandatory field) or <b><span style="color: #ffc000;">Yellow</span></b><span style="color: #ffc000;"> </span>Key icon (Foreign Key) next to the respective field in the Field Chooser</div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-bottom: medium none; border-collapse: collapse; border-left: medium none; border-right: medium none; border-top: medium none;"><tbody>
<tr><td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; border-right: windowtext 1pt solid; border-top: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
BudgetTransactionHeader</div>
</td><td style="border-bottom: windowtext 1pt solid; border-left: medium none; border-right: windowtext 1pt solid; border-top: windowtext 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
BudgetTransactionLine</div>
</td></tr>
<tr><td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; border-right: windowtext 1pt solid; border-top: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://4.bp.blogspot.com/-su84CG4eVpE/T73G4bv_4fI/AAAAAAAAEkA/RrHU2Xnl7Ho/s1600/image006-781434.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5745967372418671090" src="http://4.bp.blogspot.com/-su84CG4eVpE/T73G4bv_4fI/AAAAAAAAEkA/RrHU2Xnl7Ho/s320/image006-781434.png" /></a></div>
</td><td style="border-bottom: windowtext 1pt solid; border-left: medium none; border-right: windowtext 1pt solid; border-top: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 239.4pt;" valign="top" width="319"><div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://2.bp.blogspot.com/-w5tB-fQLIxg/T73G4rUMfXI/AAAAAAAAEkQ/h-cUVl9rq7g/s1600/image007-782465.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5745967376597024114" src="http://2.bp.blogspot.com/-w5tB-fQLIxg/T73G4rUMfXI/AAAAAAAAEkQ/h-cUVl9rq7g/s320/image007-782465.png" /></a></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://2.bp.blogspot.com/-oD4jEkuNEQQ/T73G4yFbGUI/AAAAAAAAEkc/WgilBBZT2To/s1600/image008-783664.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5745967378414115138" src="http://2.bp.blogspot.com/-oD4jEkuNEQQ/T73G4yFbGUI/AAAAAAAAEkc/WgilBBZT2To/s320/image008-783664.png" /></a></div>
</td></tr>
</tbody></table>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
</div>
<br />
<br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
Please note that <b>LedgerDimension</b> field has its own <b>Dimension</b> icon (not marked with <b><span style="color: red;">Red</span></b><span style="color: red;"> </span>asterisk), however <b>LedgerDimension</b> is also mandatory field in <b>BudgetTransactionLine</b> table</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://2.bp.blogspot.com/-AiPqArSidcU/T73G5dphtII/AAAAAAAAEks/_gO-w3dtzhE/s1600/image009-785668.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5745967390108267650" src="http://2.bp.blogspot.com/-AiPqArSidcU/T73G5dphtII/AAAAAAAAEks/_gO-w3dtzhE/s320/image009-785668.jpg" /></a></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
</div>
<br />
<br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>Publish</b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b><a href="http://3.bp.blogspot.com/-yevkl7Hx0DM/T73G6G2zVHI/AAAAAAAAEk0/Nbfxi-uO5dA/s1600/image010-787895.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5745967401169802354" src="http://3.bp.blogspot.com/-yevkl7Hx0DM/T73G6G2zVHI/AAAAAAAAEk0/Nbfxi-uO5dA/s320/image010-787895.jpg" /></a></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
</div>
<br />
<br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>Event Viewer</b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://4.bp.blogspot.com/-aUNdGdvnwgk/T73G6dFrXfI/AAAAAAAAElA/B5-PAzX-dAk/s1600/image011-788997.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5745967407137775090" src="http://4.bp.blogspot.com/-aUNdGdvnwgk/T73G6dFrXfI/AAAAAAAAElA/B5-PAzX-dAk/s320/image011-788997.jpg" /></a></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
If you take a look at error message logged in Event Viewer you will see the following error message "<b><span style="color: red;">Object Server 01: An error has occurred in the services framework. Method: AifMessageInspector::AfterReceiveRequest. Error: System.ServiceModel.FaultException`1[Microsoft.Dynamics.Ax.Services.AifFault]: Invalid document schema. The following error was returned: The element 'BudgetTransLine' in namespace 'http://schemas.microsoft.com/dynamics/2008/01/documents/BudgetTransaction' has invalid child element 'Price' in namespace 'http://schemas.microsoft.com/dynamics/2008/01/documents/BudgetTransaction'. List of possible elements expected: 'LedgerDimension' in namespace 'http://schemas.microsoft.com/dynamics/2008/01/documents/BudgetTransaction'. (Fault Detail is equal to Microsoft.Dynamics.Ax.Services.AifFault)</span></b>" which describes the real issue with document schema.</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
</div>
<br />
<br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>Exceptions form</b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://4.bp.blogspot.com/-ZTIenTC-TrI/T73G6rK-JRI/AAAAAAAAElM/7A6jYvBy13Y/s1600/image012-790414.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5745967410918073618" src="http://4.bp.blogspot.com/-ZTIenTC-TrI/T73G6rK-JRI/AAAAAAAAElM/7A6jYvBy13Y/s320/image012-790414.jpg" /></a></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
Same thing can be seen in Exceptions form in Dynamics AX 2012 which shows the same error message '<b><span style="color: red;">Invalid document schema. The following error was returned: The element 'BudgetTransLine' in namespace 'http://schemas.microsoft.com/dynamics/2008/01/documents/BudgetTransaction' has invalid child element 'Price' in namespace 'http://schemas.microsoft.com/dynamics/2008/01/documents/BudgetTransaction'. List of possible elements expected: 'LedgerDimension' in namespace 'http://schemas.microsoft.com/dynamics/2008/01/documents/BudgetTransaction'</span></b>' as well as request XML message in History form in Dynamics AX 2012</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://4.bp.blogspot.com/-L7alERhLBco/T73G67fdf_I/AAAAAAAAElY/PrQTmMwLJlc/s1600/image013-791427.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5745967415298981874" src="http://4.bp.blogspot.com/-L7alERhLBco/T73G67fdf_I/AAAAAAAAElY/PrQTmMwLJlc/s320/image013-791427.jpg" /></a></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
</div>
<br />
<br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
To resolve this issue I'll specify <b>LedgerDimension</b> field for Budget entry line</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://4.bp.blogspot.com/-4UNpLiGvliU/T73G9kV2XqI/AAAAAAAAElk/7RQpjKNPSVU/s1600/image014-792164.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5745967460624260770" src="http://4.bp.blogspot.com/-4UNpLiGvliU/T73G9kV2XqI/AAAAAAAAElk/7RQpjKNPSVU/s320/image014-792164.jpg" /></a> </div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
I also specified more fields for Budget entry header and line for informational purposes</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
</div>
<br />
<br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>Publish</b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://3.bp.blogspot.com/-y064XqxK3Go/T73G91_EBSI/AAAAAAAAElw/VnxHjUJ_XrY/s1600/image015-703104.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5745967465360524578" src="http://3.bp.blogspot.com/-y064XqxK3Go/T73G91_EBSI/AAAAAAAAElw/VnxHjUJ_XrY/s320/image015-703104.jpg" /></a></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
This time import process is successful</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
</div>
<br />
<br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>Result</b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://1.bp.blogspot.com/-6fzP8PysNps/T73G-LEVAnI/AAAAAAAAEl8/koZrfspy_bE/s1600/image016-704154.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5745967471019754098" src="http://1.bp.blogspot.com/-6fzP8PysNps/T73G-LEVAnI/AAAAAAAAEl8/koZrfspy_bE/s320/image016-704154.jpg" /></a></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b></b><br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>Tags:</b> Dynamics ERP, Dynamics AX 2012, Excel, Dynamics AX 2012 Excel Add-in, Data Import, Data Conversion, Data Migration, Application Integration Framework, Issue, Problem, Solution, Resolution. </div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
</div>
<br />
<br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>Note:</b> This document is intended for information purposes only, presented as it is with no warranties from the author. This document may be updated with more content to better outline the issues and describe the solutions.</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
</div>
<br />
<br />
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>Author:</b> <a href="mailto:%20ani.kiev@live.com">Alex Anikiev</a>, PhD, MCP</div>
</div>
</div>
</div>
</div>
</div>Alex Anikievhttp://www.blogger.com/profile/13438665643699572584noreply@blogger.com4tag:blogger.com,1999:blog-7090402456402630247.post-69877387835786451222012-05-01T19:07:00.000-07:002012-05-01T19:14:01.790-07:00Dynamics AX 2012 Excel Add-in – Issues and Solutions (Cannot have 0 columns)<div class="WordSection1">
<div align="center" class="MsoTitleCxSpFirst" style="text-align: center;">
<strong>Dynamics AX 2012 Excel Add-in – Issues and Solutions (Cannot have 0 columns)</strong></div>
<div align="center" class="MsoTitleCxSpFirst" style="text-align: center;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>Purpose:</b> The purpose of this document is to outline some issues you may encounter when using Dynamics AX 2012 Excel Add-in for import of data and provide solutions to resolve them.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>Issue:</b> 'Cannot have 0 columns'.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>Reason:</b> This issue occurs because some tables in Microsoft Dynamics AX 2012 don't have any fields for specific functional purpose or for the purposes of table inheritance just being another logical level in the hierarchy. In the case if such table with no columns will be related to the main table you will see <b>'Cannot have 0 columns'</b> error even despite the fact that Replacement key may be specified on the table.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br />
Dynamics AX Error<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://2.bp.blogspot.com/-GANfNztKpeA/T6CXCSGqxoI/AAAAAAAAEYs/j43c20vmSnA/s1600/image044-789546.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5737751990745351810" src="http://2.bp.blogspot.com/-GANfNztKpeA/T6CXCSGqxoI/AAAAAAAAEYs/j43c20vmSnA/s320/image044-789546.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>Solution:</b> Please create fictitious (fake) field(s) in the tables related to the main table which have no columns. For example, you may encounter 'Cannot have 0 columns' error when doing Purchase orders data import because <b>Tax1099BoxDetail</b> table and <b>PurchCommitmentLine_PSN</b> table have no columns and they are linked to <b>PurchLine</b> table by Surrogate key. In order to resolve this issue I'll add fake 'ID' field (String) to <b>Tax1099BoxDetail</b> table and <b>PurchCommitmentLine_PSN</b> table so each table will now have at least one field. <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>PurchLine</b> table is linked to <b>Tax1099BoxDetail</b> table by Surrogate key<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://4.bp.blogspot.com/-AM_M90EkW2c/T6CXCq5HIFI/AAAAAAAAEY4/fij3oEtX8TQ/s1600/image045-790694.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5737751997399375954" src="http://4.bp.blogspot.com/-AM_M90EkW2c/T6CXCq5HIFI/AAAAAAAAEY4/fij3oEtX8TQ/s320/image045-790694.jpg" /></a> <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>PurchLine</b> table is linked to <b>PurchCommitmentLine_PSN</b> table by Surrogate key<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://1.bp.blogspot.com/-qrP6nLfXGVY/T6CXCxAz0vI/AAAAAAAAEZE/y6YMVDwj2Vc/s1600/image046-791668.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5737751999042278130" src="http://1.bp.blogspot.com/-qrP6nLfXGVY/T6CXCxAz0vI/AAAAAAAAEZE/y6YMVDwj2Vc/s320/image046-791668.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
You can find all tables related to <b>PurchLine</b> table by looking at <b>Relations</b> node at table level as depicted above, or at EDT (Extended data type) level for EDTs used on <b>PurchLine</b> table fields. <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
When you try to add <b>PurchTable</b> table and <b>PurchLine</b> table to Excel Add-in you will see the following error<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://3.bp.blogspot.com/-OKPq9I86lto/T6CXDY0TgaI/AAAAAAAAEZQ/LlodZqk9Km0/s1600/image047-792912.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5737752009727246754" src="http://3.bp.blogspot.com/-OKPq9I86lto/T6CXDY0TgaI/AAAAAAAAEZQ/LlodZqk9Km0/s320/image047-792912.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
In order to resolve this you will have to add Replacement keys to the following tables<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>ReasonTableRef</b> table Replacement key<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://4.bp.blogspot.com/-_Y6KfZmkZls/T6CXDZf0tZI/AAAAAAAAEZc/rF4WRApx1zk/s1600/image048-793715.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5737752009909777810" src="http://4.bp.blogspot.com/-_Y6KfZmkZls/T6CXDZf0tZI/AAAAAAAAEZc/rF4WRApx1zk/s320/image048-793715.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>AgreementHeader</b> table Replacement key<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://2.bp.blogspot.com/-ENQSOxsBtUU/T6CXDshtcwI/AAAAAAAAEZo/k_ByeYzlcaw/s1600/image049-794713.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5737752015017964290" src="http://2.bp.blogspot.com/-ENQSOxsBtUU/T6CXDshtcwI/AAAAAAAAEZo/k_ByeYzlcaw/s320/image049-794713.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>SourceDocumentHeader</b> table Replacement key<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://1.bp.blogspot.com/-jm8biy9vvCg/T6CXD-_z85I/AAAAAAAAEZ0/Qebp8zsSHr0/s1600/image050-795726.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5737752019976057746" src="http://1.bp.blogspot.com/-jm8biy9vvCg/T6CXD-_z85I/AAAAAAAAEZ0/Qebp8zsSHr0/s320/image050-795726.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>SourceDocumentLine</b> table Replacement key<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://2.bp.blogspot.com/-V3WEh6ojknc/T6CXEFEbl-I/AAAAAAAAEaA/BkkXhIn-GzE/s1600/image051-796888.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5737752021606045666" src="http://2.bp.blogspot.com/-V3WEh6ojknc/T6CXEFEbl-I/AAAAAAAAEaA/BkkXhIn-GzE/s320/image051-796888.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
When you will try to add <b>PurchTable</b> table and <b>PurchLine</b> table again you will see the following error<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://2.bp.blogspot.com/-ngvQ5Z8lZms/T6CXEe4elLI/AAAAAAAAEaM/e7N4ZRJ4DoE/s1600/image052-797731.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5737752028535231666" src="http://2.bp.blogspot.com/-ngvQ5Z8lZms/T6CXEe4elLI/AAAAAAAAEaM/e7N4ZRJ4DoE/s320/image052-797731.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
In order to resolve this you will have to add Replacement keys to the following tables<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>Tax1099BoxDetail</b> table Replacement key<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://2.bp.blogspot.com/-U2gomduvgdA/T6CXEiPp3xI/AAAAAAAAEaY/JutY0-V2YSc/s1600/image053-798572.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5737752029437746962" src="http://2.bp.blogspot.com/-U2gomduvgdA/T6CXEiPp3xI/AAAAAAAAEaY/JutY0-V2YSc/s320/image053-798572.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b><span style="color: red;">Important:</span></b> Please note that <b>Tax1099BoxDetail</b> table has no fields<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>PurchCommitmentLine_PSN</b> table Replacement key<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://4.bp.blogspot.com/-GMoc9NSbX3Q/T6CXGe1AKHI/AAAAAAAAEak/weagvFFkR9I/s1600/image054-799568.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5737752062880393330" src="http://4.bp.blogspot.com/-GMoc9NSbX3Q/T6CXGe1AKHI/AAAAAAAAEak/weagvFFkR9I/s320/image054-799568.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b><span style="color: red;">Important:</span></b><span style="color: red;"> </span>Please note that <b>PurchCommitmentLine_PSN</b> table has no fields<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
When you try to Publish selected for <b>PurchLine</b> table you will see the following error<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://2.bp.blogspot.com/-UpzyjsAzzxc/T6CXGnTF5DI/AAAAAAAAEaw/nS34kxh9s70/s1600/image055-706347.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5737752065154081842" src="http://2.bp.blogspot.com/-UpzyjsAzzxc/T6CXGnTF5DI/AAAAAAAAEaw/nS34kxh9s70/s320/image055-706347.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
This is because <b>Tax1099DetailBox</b> table and <b>PurchCommitmentLine_PSN</b> table have no columns and they are linked to PurchLine table by Surrogate key<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
In order to resolve this you will have to add fictitious (fake) field(s) to <b>Tax1099DetailBox</b> table and <b>PurchCommitmentLine_PSN</b> table so they have at least one field. In this case I added 'ID' field (String) to <b>Tax1099DetailBox</b> table and <b>PurchCommitmentLine_PSN</b> table. I didn't plan to introduce any data into <b>Tax1099DetailBox</b> table and <b>PurchCommitmentLine_PSN</b> table, so I also added 'ID' field to the Replacement key with the assumption that this key will be unique.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>Tax1099DetailBox </b>table new 'ID' field (String)<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://3.bp.blogspot.com/-0OKLvzGqVLk/T6CXG9qJOPI/AAAAAAAAEa8/HknhtNO5pSU/s1600/image056-707048.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5737752071156349170" src="http://3.bp.blogspot.com/-0OKLvzGqVLk/T6CXG9qJOPI/AAAAAAAAEa8/HknhtNO5pSU/s320/image056-707048.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>PurchCommitmentLine_PSN</b> table new 'ID' field (String)<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://4.bp.blogspot.com/-uyWXbumo87s/T6CXHGe9qUI/AAAAAAAAEbI/w1DIqVvEvIM/s1600/image057-708232.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5737752073525373250" src="http://4.bp.blogspot.com/-uyWXbumo87s/T6CXHGe9qUI/AAAAAAAAEbI/w1DIqVvEvIM/s320/image057-708232.jpg" /></a> <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
Now if you do Publish selected for <b>PurchLine</b> table you will have expected result<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<a href="http://1.bp.blogspot.com/-DrGyQkqqwIA/T6CXHfcB-1I/AAAAAAAAEbU/EDX-QenUKUQ/s1600/image058-709252.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5737752080223959890" src="http://1.bp.blogspot.com/-DrGyQkqqwIA/T6CXHfcB-1I/AAAAAAAAEbU/EDX-QenUKUQ/s320/image058-709252.jpg" /></a><o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>You can apply the same logic when resolving this error for different type of data import using Excel Add-in<o:p></o:p></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
It's recommended to remove these data model modifications once you complete data import activities<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
Please make sure to refresh Caches after you change the data model and restart Excel before publishing data. It's recommended to restart AOS to make sure that the latest data model changes will be taken into account in Excel Add-in <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>Tags:</b> Dynamics ERP, Dynamics AX 2012, Excel, Dynamics AX 2012 Excel Add-in, Data Import, Data Conversion, Data Migration, Application Integration Framework, Issue, Problem, Solution, Resolution. <o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>Note:</b> This document is intended for information purposes only, presented as it is with no warranties from the author. This document may be updated with more content to better outline the issues and describe the solutions.<o:p></o:p></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">
<b>Author</b>: <a href="mailto:%20ani.kiev@live.com">Alex Anikiev</a>, PhD, MCP<o:p></o:p></div>
</div>Alex Anikievhttp://www.blogger.com/profile/13438665643699572584noreply@blogger.com2tag:blogger.com,1999:blog-7090402456402630247.post-23879029929990068962012-02-23T07:24:00.004-08:002012-02-23T07:36:37.187-08:00Dynamics AX 2012 Excel Add-in - Tracking Dimensions<div class="WordSection1"> <div style="border-width: medium medium 1pt; border-style: none none solid; border-color: currentColor currentColor rgb(79, 129, 189); padding: 0in 0in 4pt; mso-element: para-border-div;"> <p style="text-align: center;" class="MsoTitleCxSpFirst" align="left"><strong>Dynamics AX 2012 Excel Add-in – Tracking Dimensions<?xml:namespace prefix = o /><o:p></o:p></strong></p> </div> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Purpose:</b> The purpose of this document is to illustrate how to work with Tracking Dimensions in Dynamics AX 2012 Excel Add-in.<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Challenge</b>: Data model changes in Dynamics AX related to high normalization and introduction of surrogate keys made import of data more complex. Additionally there are number of differences between Excel and AX Rich Client from UI standpoint when it comes to handling Inventory dimensions. AX Rich Client is obviously more dynamic comparing to Excel. AX Rich Client has a number of specialized classes to support Inventory dimensions related operations and UI. <span style="color:red;"> </span><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Solution</b>: Dynamics AX 2012 ships with the number of AIF Web Service which can be used in integration scenarios. However not all of them can be used in Excel at the moment for import of data. In order to manipulate with Tracking Dimensions using Excel the appropriate tables can be used. In my example I’ll import required Tracking Dimensions, then import Purchase Orders information and specify Tracking Dimensions related to Purchase Order line. <o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Data Model</b>:<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <table style="border: currentColor; border-collapse: collapse;" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td style="background: rgb(217, 217, 217); padding: 0in 5.4pt; border: 1pt solid windowtext; width: 210.4pt;" valign="top" width="281"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Table Name<o:p></o:p></b></p> </td> <td style="background: rgb(217, 217, 217); border-width: 1pt 1pt 1pt medium; border-style: solid solid solid none; border-color: windowtext windowtext windowtext currentColor; padding: 0in 5.4pt; width: 268.4pt;" valign="top" width="358"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Table Description<o:p></o:p></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 210.4pt;" valign="top" width="281"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> InventBatch<o:p></o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; width: 268.4pt;color:currentColor;" valign="top" width="358" > <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <span style="color:black;">The InventBatch table contains information about batches.<o:p></o:p></span></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 210.4pt;" valign="top" width="281"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> InventSerial<o:p></o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; width: 268.4pt;color:currentColor;" valign="top" width="358" > <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <span style="color:black;">The InventSerial table contains information about the serial numbers of items.<o:p></o:p></span></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 210.4pt;" valign="top" width="281"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> InventDim<o:p></o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; width: 268.4pt;color:currentColor;" valign="top" width="358" > <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <span style="color:black;">The InventDim table contains values for inventory dimensions.<o:p></o:p></span></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 210.4pt;" valign="top" width="281"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> InventSum<o:p></o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; width: 268.4pt;color:currentColor;" valign="top" width="358" > <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <span style="color:black;">The InventSum table contains information about the present and expected on-hand stock of items.<o:p></o:p></span></p> </td> </tr> </tbody> </table> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Data Model Diagram</b>:<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Inventory Dimensions <o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"><img border="0" alt="image" src="http://pp2.s3.amazonaws.com/6fb813dcafa54529/5adc7f41909645b0a4a05686654c85db.png" width="500" height="300" /></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><o:p> </o:p></b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Red</b> area highlights tables forming Product Dimensions data model<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Green</b> area highlights tables forming Storage Dimensions data model<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Blue</b> area highlights tables forming Tracking Dimensions data model<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><o:p> </o:p></b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Tracking Dimensions<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"><o:p><img border="0" alt="image" src="http://pp2.s3.amazonaws.com/6fb813dcafa54529/1a1b2b671bb74145ae2f66f310cbdc50.jpg" width="398" height="273" /></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><o:p> </o:p></b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> In Rich Client when Inventory Dimensions are specified, for example, on Sales order line or Purchase order line the system will automatically create InventDim table record and allocate InventDimId value if specified combination of inventory dimensions doesn’t exist in InventDim table yet, otherwise existing InventDimId which corresponds to the specified combination will be re-used. This means that the system will not create InventDim table record for the combination which is not yet used. If you create Sales order line or Purchase order line programmatically using X++ you would use Tables\InventDim\findOrCreate method to assign proper InventDimId to SalesLine table buffer or PurchLine table buffer. <o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> In Excel Add-in there’s no dedicated control related to InventDimId EDT (InventDimId field) yet to enable automatic creation of InventDim table record based on Inventory Dimensions - “segments”. I would anticipate that we have something similar to Excel Add-in segmented control for DimensionDynamicAccount EDT (LedgerDimension field).<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <table style="border: currentColor; border-collapse: collapse;" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td style="padding: 0in 5.4pt; border: 1pt solid windowtext; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> InventDimId field lookup<o:p></o:p></p> </td> <td style="border-width: 1pt 1pt 1pt medium; border-style: solid solid solid none; border-color: windowtext windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> LedgerDimension field lookup<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <img border="0" alt="image" src="http://pp2.s3.amazonaws.com/6fb813dcafa54529/e5c8e1971ab54f879e28807367da3866.jpg" width="350" height="239" /><o:p></o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <img border="0" alt="image" src="http://pp2.s3.amazonaws.com/6fb813dcafa54529/e41b62ece42546828561a514210b2de0.jpg" width="496" height="223" /><o:p></o:p></p> </td> </tr> </tbody> </table> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> If you modify AutoLookup field group in InventDim table to include {InventDimId, ConfigId, InventSizeId, InventColorId, InventSiteId, InventLocationId, WMSLocationId, WMSPalletId, InventBatchId, InventSerialId} fields then you can get full list of Inventory Dimensions displayed on Excel Add-in lookup form, however you will still have to specify existing InventDimId before you can create Sales order line or Purchase order line for specific combination of Inventory Dimensions.<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://4.bp.blogspot.com/-8gLCjsN-MDU/T0ZaS5-AG-I/AAAAAAAADfY/imoomoaAb3I/s1600/image009-799548.jpg"><img id="BLOGGER_PHOTO_ID_5712352458211072994" border="0" alt="" src="http://4.bp.blogspot.com/-8gLCjsN-MDU/T0ZaS5-AG-I/AAAAAAAADfY/imoomoaAb3I/s320/image009-799548.jpg" /></a> <o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> In order to resolve this problem appropriate combinations of Inventory Dimensions will have to be created upfront and then Excel VLOOKUP function can be used to pull out the particular InventDimId and apply it to specific Sales order line or Purchase order line.<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Excel Add-in can be used to create combinations of Inventory Dimensions in InventDim table.<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Alternatively you can write X++ job that will programmatically create desired combinations of Inventory Dimensions for you. Please see the example of X++ job below<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://2.bp.blogspot.com/-U51ULf7MheY/T0ZaTO-Zt2I/AAAAAAAADfk/oi4WNRXV1zw/s1600/image010-700712.jpg"><img id="BLOGGER_PHOTO_ID_5712352463849895778" border="0" alt="" src="http://2.bp.blogspot.com/-U51ULf7MheY/T0ZaTO-Zt2I/AAAAAAAADfk/oi4WNRXV1zw/s320/image010-700712.jpg" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Tracking Dimensions</b> in Dynamics AX 2012 are Batch number and Serial number.<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Please also note that Batch number and/or Serial number may be automatically assigned by the system based on Batch number group and/or Serial number group setup. <o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://4.bp.blogspot.com/-rwFkkgFwCY0/T0ZaTtzRKOI/AAAAAAAADfs/uXOjdALghso/s1600/image011-702068.jpg"><img id="BLOGGER_PHOTO_ID_5712352472124696802" border="0" alt="" src="http://4.bp.blogspot.com/-rwFkkgFwCY0/T0ZaTtzRKOI/AAAAAAAADfs/uXOjdALghso/s320/image011-702068.jpg" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> For example, you can set up the system to automatically assign Batch number on receipt inventory transaction upon physical update as shown above. The structure of Batch number or Serial number itself can also be defined and it may consist of {Date, Reference No., Lot ID, Number sequence No.}. <o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> For the purpose of this walkthrough I created new released product <b>“ALEX-ITEM”</b> with the following inventory dimensions activated {Site, Warehouse, Batch number, Serial number}<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://4.bp.blogspot.com/-JbocrCl0Rm0/T0ZaT2D0sqI/AAAAAAAADf8/6j7zi6J5Y2U/s1600/image012-703092.jpg"><img id="BLOGGER_PHOTO_ID_5712352474341618338" border="0" alt="" src="http://4.bp.blogspot.com/-JbocrCl0Rm0/T0ZaT2D0sqI/AAAAAAAADf8/6j7zi6J5Y2U/s320/image012-703092.jpg" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Tracking Dimensions Walkthrough</b>: <o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Connection<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://1.bp.blogspot.com/-B01XSbfi5ZA/T0ZaUG1kE3I/AAAAAAAADgE/1yA_g0nUbk4/s1600/image013-704447.png"><img id="BLOGGER_PHOTO_ID_5712352478845211506" border="0" alt="" src="http://1.bp.blogspot.com/-B01XSbfi5ZA/T0ZaUG1kE3I/AAAAAAAADgE/1yA_g0nUbk4/s320/image013-704447.png" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Add Tables<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://4.bp.blogspot.com/-w2anTmiRhxc/T0ZaUVDeEeI/AAAAAAAADgU/i6sl_JFKjOQ/s1600/image014-705348.jpg"><img id="BLOGGER_PHOTO_ID_5712352482661634530" border="0" alt="" src="http://4.bp.blogspot.com/-w2anTmiRhxc/T0ZaUVDeEeI/AAAAAAAADgU/i6sl_JFKjOQ/s320/image014-705348.jpg" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Field Chooser<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://2.bp.blogspot.com/-shw3oKYQhag/T0ZaU7veAkI/AAAAAAAADgg/8ycyV4AA_kY/s1600/image015-707919.jpg"><img id="BLOGGER_PHOTO_ID_5712352493046727234" border="0" alt="" src="http://2.bp.blogspot.com/-shw3oKYQhag/T0ZaU7veAkI/AAAAAAAADgg/8ycyV4AA_kY/s320/image015-707919.jpg" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> InventSite<o:p></o:p></p> <table style="border: currentColor; border-collapse: collapse;" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td style="background: rgb(166, 166, 166); padding: 0in 5.4pt; border: 1pt solid windowtext; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Name<o:p></o:p></b></p> </td> <td style="background: rgb(166, 166, 166); border-width: 1pt 1pt 1pt medium; border-style: solid solid solid none; border-color: windowtext windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Site<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Name<o:p></o:p></p> </td> </tr> </tbody> </table> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://1.bp.blogspot.com/-aZTe-MwymtE/T0ZaVSV_LHI/AAAAAAAADgs/MQc2cR1eNz8/s1600/image016-709269.png"><img id="BLOGGER_PHOTO_ID_5712352499113864306" border="0" alt="" src="http://1.bp.blogspot.com/-aZTe-MwymtE/T0ZaVSV_LHI/AAAAAAAADgs/MQc2cR1eNz8/s320/image016-709269.png" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> SiteReqPolicy<o:p></o:p></p> <table style="border: currentColor; border-collapse: collapse;" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td style="background: rgb(166, 166, 166); padding: 0in 5.4pt; border: 1pt solid windowtext; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Name<o:p></o:p></b></p> </td> <td style="background: rgb(166, 166, 166); border-width: 1pt 1pt 1pt medium; border-style: solid solid solid none; border-color: windowtext windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Site<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Use transfer journals for movements within site<o:p></o:p></p> </td> </tr> </tbody> </table> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://2.bp.blogspot.com/-WHSJgGZjIJI/T0ZaVrOz46I/AAAAAAAADg8/HuyiPU7P5Ww/s1600/image017-710033.png"><img id="BLOGGER_PHOTO_ID_5712352505794651042" border="0" alt="" src="http://2.bp.blogspot.com/-WHSJgGZjIJI/T0ZaVrOz46I/AAAAAAAADg8/HuyiPU7P5Ww/s320/image017-710033.png" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> InventLocation<o:p></o:p></p> <table style="border: currentColor; border-collapse: collapse;" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td style="background: rgb(166, 166, 166); padding: 0in 5.4pt; border: 1pt solid windowtext; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Name<o:p></o:p></b></p> </td> <td style="background: rgb(166, 166, 166); border-width: 1pt 1pt 1pt medium; border-style: solid solid solid none; border-color: windowtext windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Site <o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Warehouse<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Name<o:p></o:p></p> </td> </tr> </tbody> </table> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://2.bp.blogspot.com/-D7NvOcKiZTA/T0ZaV7ROnXI/AAAAAAAADhE/VI4hTGFymKc/s1600/image018-711601.png"><img id="BLOGGER_PHOTO_ID_5712352510099758450" border="0" alt="" src="http://2.bp.blogspot.com/-D7NvOcKiZTA/T0ZaV7ROnXI/AAAAAAAADhE/VI4hTGFymKc/s320/image018-711601.png" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> InventBatch<o:p></o:p></p> <table style="border: currentColor; border-collapse: collapse;" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td style="background: rgb(166, 166, 166); padding: 0in 5.4pt; border: 1pt solid windowtext; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Name<o:p></o:p></b></p> </td> <td style="background: rgb(166, 166, 166); border-width: 1pt 1pt 1pt medium; border-style: solid solid solid none; border-color: windowtext windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Batch number<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Item number<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Manufacturing date<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Expiration date<o:p></o:p></p> </td> </tr> </tbody> </table> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><span style="color:red;"><o:p> </o:p></span></b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><span style="color:red;"><a href="http://1.bp.blogspot.com/-VsbRjn2l5To/T0ZaWLj0gjI/AAAAAAAADhM/kIA2kYPr0sE/s1600/image019-712415.png"><img id="BLOGGER_PHOTO_ID_5712352514472706610" border="0" alt="" src="http://1.bp.blogspot.com/-VsbRjn2l5To/T0ZaWLj0gjI/AAAAAAAADhM/kIA2kYPr0sE/s320/image019-712415.png" /></a></span><span style="color:red;"><o:p></o:p></span></b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><span style="color:red;"><o:p> </o:p></span></b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> InventSerial<o:p></o:p></p> <table style="border: currentColor; border-collapse: collapse;" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td style="background: rgb(166, 166, 166); padding: 0in 5.4pt; border: 1pt solid windowtext; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Name<o:p></o:p></b></p> </td> <td style="background: rgb(166, 166, 166); border-width: 1pt 1pt 1pt medium; border-style: solid solid solid none; border-color: windowtext windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Item number<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Serial number<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Manufacturing date<o:p></o:p></p> </td> </tr> </tbody> </table> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><span style="color:red;"><o:p> </o:p></span></b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://1.bp.blogspot.com/-PYccgVyhNM0/T0ZaWbVHi9I/AAAAAAAADhc/Xqo1KJRP_Dc/s1600/image020-713062.png"><img id="BLOGGER_PHOTO_ID_5712352518706006994" border="0" alt="" src="http://1.bp.blogspot.com/-PYccgVyhNM0/T0ZaWbVHi9I/AAAAAAAADhc/Xqo1KJRP_Dc/s320/image020-713062.png" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Sequence:<o:p></o:p></b></p> <p style="line-height: normal; text-indent: -0.25in; margin-bottom: 0pt; mso-add-space: auto; mso-list: l1 level1 lfo1;" class="MsoListParagraphCxSpFirst"> <span style="mso-list: Ignore;">1.<span> </span></span>InventSite – Publish Selected<o:p></o:p></p> <p style="line-height: normal; text-indent: -0.25in; margin-bottom: 0pt; mso-add-space: auto; mso-list: l1 level1 lfo1;" class="MsoListParagraphCxSpMiddle"> <span style="mso-list: Ignore;">2.<span> </span></span>SiteReqPolicy – Publish Selected<o:p></o:p></p> <p style="line-height: normal; text-indent: -0.25in; margin-bottom: 0pt; mso-add-space: auto; mso-list: l1 level1 lfo1;" class="MsoListParagraphCxSpMiddle"> <span style="mso-list: Ignore;">3.<span> </span></span>InventLocation – Publish Selected<o:p></o:p></p> <p style="line-height: normal; text-indent: -0.25in; margin-bottom: 0pt; mso-add-space: auto; mso-list: l1 level1 lfo1;" class="MsoListParagraphCxSpMiddle"> <span style="mso-list: Ignore;">4.<span> </span></span>InventBatch – Publish Selected<o:p></o:p></p> <p style="line-height: normal; text-indent: -0.25in; margin-bottom: 0pt; mso-add-space: auto; mso-list: l1 level1 lfo1;" class="MsoListParagraphCxSpMiddle"> <span style="mso-list: Ignore;">5.<span> </span></span>InventSerial – Publish Selected<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt; mso-add-space: auto;" class="MsoListParagraphCxSpLast"> <b><o:p> </o:p></b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Result<o:p></o:p></b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Dynamics AX – Site<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://1.bp.blogspot.com/-0vGGNbMZYtY/T0ZaWqwmk3I/AAAAAAAADho/MGyTb0M_dJI/s1600/image021-714611.png"><img id="BLOGGER_PHOTO_ID_5712352522847818610" border="0" alt="" src="http://1.bp.blogspot.com/-0vGGNbMZYtY/T0ZaWqwmk3I/AAAAAAAADho/MGyTb0M_dJI/s320/image021-714611.png" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Dynamics AX – Warehouse<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://4.bp.blogspot.com/-bt03-oJynwg/T0ZaW9NM1aI/AAAAAAAADh0/DwrS_M7QCvc/s1600/image022-715701.png"><img id="BLOGGER_PHOTO_ID_5712352527799604642" border="0" alt="" src="http://4.bp.blogspot.com/-bt03-oJynwg/T0ZaW9NM1aI/AAAAAAAADh0/DwrS_M7QCvc/s320/image022-715701.png" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Dynamics AX – Batch number<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://1.bp.blogspot.com/-ZMgXurGt2Gw/T0ZaXEDIpwI/AAAAAAAADiA/K-7q1NS4Xr8/s1600/image023-716932.png"><img id="BLOGGER_PHOTO_ID_5712352529636435714" border="0" alt="" src="http://1.bp.blogspot.com/-ZMgXurGt2Gw/T0ZaXEDIpwI/AAAAAAAADiA/K-7q1NS4Xr8/s320/image023-716932.png" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Dynamics AX – Serial number<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://4.bp.blogspot.com/-4AejrkRtFwo/T0ZaX4KgtAI/AAAAAAAADiI/mkBTAqjoMis/s1600/image024-719235.png"><img id="BLOGGER_PHOTO_ID_5712352543626015746" border="0" alt="" src="http://4.bp.blogspot.com/-4AejrkRtFwo/T0ZaX4KgtAI/AAAAAAAADiI/mkBTAqjoMis/s320/image024-719235.png" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Add Tables<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <img style="width: 410px; height: 388px;" border="0" alt="image" src="http://pp2.s3.amazonaws.com/6fb813dcafa54529/76de3d1c52c940ce80c84a1579809ef6.jpg" width="500" height="428" /></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Dynamics AX – Error<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://1.bp.blogspot.com/-m8ZN-3QJZXo/T0ZaYjD6SJI/AAAAAAAADik/9iK2O3kUXZE/s1600/image026-722337.jpg"><img id="BLOGGER_PHOTO_ID_5712352555141056658" border="0" alt="" src="http://1.bp.blogspot.com/-m8ZN-3QJZXo/T0ZaYjD6SJI/AAAAAAAADik/9iK2O3kUXZE/s320/image026-722337.jpg" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://1.bp.blogspot.com/-BXjOrTMkEPI/T0ZaZFQM3CI/AAAAAAAADiw/iIcMMjtdrPM/s1600/image027-724404.jpg"><img id="BLOGGER_PHOTO_ID_5712352564319411234" border="0" alt="" src="http://1.bp.blogspot.com/-BXjOrTMkEPI/T0ZaZFQM3CI/AAAAAAAADiw/iIcMMjtdrPM/s320/image027-724404.jpg" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Resolution:<o:p></o:p></p> <p style="line-height: normal; text-indent: -0.25in; margin-bottom: 0pt; mso-add-space: auto; mso-list: l2 level1 lfo2;" class="MsoListParagraphCxSpFirst"> <span style="mso-list: Ignore;">1.<span> </span></span>Add replacement key {AgreementClassification, <b>RecId</b>} in AgreementHeader table<o:p></o:p></p> <p style="line-height: normal; text-indent: -0.25in; margin-bottom: 0pt; mso-add-space: auto; mso-list: l2 level1 lfo2;" class="MsoListParagraphCxSpMiddle"> <span style="mso-list: Ignore;">2.<span> </span></span>Add replacement key {<b>ImportId</b>} in Tax1099RecId table<o:p></o:p></p> <p style="line-height: normal; text-indent: -0.25in; margin-bottom: 0pt; mso-add-space: auto; mso-list: l2 level1 lfo2;" class="MsoListParagraphCxSpLast"> <span style="mso-list: Ignore;">3.<span> </span></span>Add replacement key {<b>ImportId</b>} in PurchCommitmentLine_PSN table<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Please note that <b>ImportId</b> is custom string field<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Field Chooser<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://4.bp.blogspot.com/-WClZQeioIG4/T0ZaZl2BUqI/AAAAAAAADi8/JQcTuex6nEU/s1600/image028-726258.jpg"><img id="BLOGGER_PHOTO_ID_5712352573067973282" border="0" alt="" src="http://4.bp.blogspot.com/-WClZQeioIG4/T0ZaZl2BUqI/AAAAAAAADi8/JQcTuex6nEU/s320/image028-726258.jpg" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> InventDim<o:p></o:p></p> <table style="border: currentColor; border-collapse: collapse;" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td style="background: rgb(166, 166, 166); padding: 0in 5.4pt; border: 1pt solid windowtext; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Name<o:p></o:p></b></p> </td> <td style="background: rgb(166, 166, 166); border-width: 1pt 1pt 1pt medium; border-style: solid solid solid none; border-color: windowtext windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><unbound><o:p></o:p></b></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><u>Combination<o:p></o:p></u></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> InventDim.InventDimId<o:p></o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Dimension No.<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> InventDim.InventSiteId<o:p></o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Site<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> InventDim.InventLocationId<o:p></o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Warehouse<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> InventDim.InventBatchId<o:p></o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Batch number<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> InventDim.InventSerialId<o:p></o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Serial number<o:p></o:p></p> </td> </tr> </tbody> </table> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Please note that I added unbound <b><u>Combination</u></b> field into Ax_InventDim table<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://2.bp.blogspot.com/-QhpY-5Uc_Hs/T0ZaZ76-3sI/AAAAAAAADjE/WyutdmsyvaU/s1600/image029-727674.jpg"><img id="BLOGGER_PHOTO_ID_5712352578994364098" border="0" alt="" src="http://2.bp.blogspot.com/-QhpY-5Uc_Hs/T0ZaZ76-3sI/AAAAAAAADjE/WyutdmsyvaU/s320/image029-727674.jpg" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><u>Combination</u></b> field is simple concatenation of 4 strings {Site, Warehouse, Batch number, Serial number} with “” delimiter in the middle. This field will be used in VLOOKUP function during the import of Purchase Order lines in order to put correct InventDimId value in PurchLine.InventDimId field. <o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://2.bp.blogspot.com/-QyPdQkBzLbo/T0ZaaHn9mvI/AAAAAAAADjU/vsA7xMUCJ9U/s1600/image030-728240.jpg"><img id="BLOGGER_PHOTO_ID_5712352582135814898" border="0" alt="" src="http://2.bp.blogspot.com/-QyPdQkBzLbo/T0ZaaHn9mvI/AAAAAAAADjU/vsA7xMUCJ9U/s320/image030-728240.jpg" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Usually when you are doing Data Import you either don’t have <b>InventDimId</b> easily accessible or you do by opening Table Browser or another Excel tab with InventDim table data, and ultimately anyways you’ll have to copy and paste InventDimId value into, for example, PurchLine.InventDimId field.<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> In fact you will always have an information about what Site, Warehouse, Batch number and Serial number (in my example) this Purchase Order line should be associated to even not having InventDimId value.<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> That’s why I’m going introduce similar <b><u>Combination</u></b> field in Ax_PurchLine table to compare it against <b><u>Combination</u></b> field in Ax_InventDim table and automatically put required InventDimId value in PurchLine.InventDimId without a need to manually do copy and paste. <o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Publish Selected – InventDim<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://4.bp.blogspot.com/-lrN7p-APA4k/T0ZaadfWFeI/AAAAAAAADjg/HEDvj1ygoA8/s1600/image031-729092.jpg"><img id="BLOGGER_PHOTO_ID_5712352588005250530" border="0" alt="" src="http://4.bp.blogspot.com/-lrN7p-APA4k/T0ZaadfWFeI/AAAAAAAADjg/HEDvj1ygoA8/s320/image031-729092.jpg" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Result<o:p></o:p></b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Dynamics AX – Table Browser<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><a href="http://1.bp.blogspot.com/--KR8C-x6UqQ/T0ZaaoOe5HI/AAAAAAAADjs/VDTvxDb_RM4/s1600/image032-730140.jpg"><img id="BLOGGER_PHOTO_ID_5712352590887314546" border="0" alt="" src="http://1.bp.blogspot.com/--KR8C-x6UqQ/T0ZaaoOe5HI/AAAAAAAADjs/VDTvxDb_RM4/s320/image032-730140.jpg" /></a><o:p></o:p></b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Purchase order ID number sequence<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://4.bp.blogspot.com/-vChm4UzSOns/T0ZabIcbGNI/AAAAAAAADj4/XQ0sPKIuYQg/s1600/image033-732279.jpg"><img id="BLOGGER_PHOTO_ID_5712352599535720658" border="0" alt="" src="http://4.bp.blogspot.com/-vChm4UzSOns/T0ZabIcbGNI/AAAAAAAADj4/XQ0sPKIuYQg/s320/image033-732279.jpg" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> PurchTable<o:p></o:p></p> <table style="border: currentColor; border-collapse: collapse;" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td style="background: rgb(166, 166, 166); padding: 0in 5.4pt; border: 1pt solid windowtext; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Name<o:p></o:p></b></p> </td> <td style="background: rgb(166, 166, 166); border-width: 1pt 1pt 1pt medium; border-style: solid solid solid none; border-color: windowtext windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Currency<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Invoice account<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Language<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Purchase order<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Vendor account<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Vendor group<o:p></o:p></p> </td> </tr> </tbody> </table> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://2.bp.blogspot.com/-upeFX24o95o/T0ZabUUEusI/AAAAAAAADkI/lAaRg6lS5xE/s1600/image034-733195.jpg"><img id="BLOGGER_PHOTO_ID_5712352602721925826" border="0" alt="" src="http://2.bp.blogspot.com/-upeFX24o95o/T0ZabUUEusI/AAAAAAAADkI/lAaRg6lS5xE/s320/image034-733195.jpg" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> PurchLine<o:p></o:p></p> <table style="border: currentColor; border-collapse: collapse;" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td style="background: rgb(166, 166, 166); padding: 0in 5.4pt; border: 1pt solid windowtext; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Name<o:p></o:p></b></p> </td> <td style="background: rgb(166, 166, 166); border-width: 1pt 1pt 1pt medium; border-style: solid solid solid none; border-color: windowtext windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><unbound><o:p></o:p></b></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><u>Combination<o:p></o:p></u></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Currency <o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Group<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Lot ID<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Purchase order<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Vendor account<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Item number<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Quantity<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Unit<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Unit price<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Net amount<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> PurchLine.InventDimId<o:p></o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Dimension No.<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><unbound><o:p></o:p></b></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><u>Site<o:p></o:p></u></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><unbound><o:p></o:p></b></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><u>Warehouse<o:p></o:p></u></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><unbound><o:p></o:p></b></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><u>Batch number<o:p></o:p></u></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><unbound><o:p></o:p></b></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><u>Serial number<o:p></o:p></u></b></p> </td> </tr> </tbody> </table> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://3.bp.blogspot.com/-vkRxGfGO6X4/T0ZabxfPjoI/AAAAAAAADkU/tpPjYYG1T08/s1600/image035-735809.jpg"><img id="BLOGGER_PHOTO_ID_5712352610553400962" border="0" alt="" src="http://3.bp.blogspot.com/-vkRxGfGO6X4/T0ZabxfPjoI/AAAAAAAADkU/tpPjYYG1T08/s320/image035-735809.jpg" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://4.bp.blogspot.com/-dTRuy3KF4DM/T0ZacK3zEhI/AAAAAAAADkg/kaTRZ1iCQ4E/s1600/image036-736759.jpg"><img id="BLOGGER_PHOTO_ID_5712352617367278098" border="0" alt="" src="http://4.bp.blogspot.com/-dTRuy3KF4DM/T0ZacK3zEhI/AAAAAAAADkg/kaTRZ1iCQ4E/s320/image036-736759.jpg" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Please note that I added similar unbound <b><u>Combination</u></b> field into Ax_PurchLine table. The difference here is that <b><u>Site</u></b> and <b><u>Warehouse</u></b> fields in Ax_PurchLine table are also unbound. Again, usually you have the information about Site, Warehouse, Batch number and Serial number (in my example) particular Purch Order line should be associated to, but you don’t have InventDimId value itself. This becomes critical when you have a lot of combinations of Inventory Dimensions to be introduced into the system as a part of Data Import which will support Purch Order lines.<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Similarly <b><u>Combination</u></b> field is simple concatenation of 2 strings {Site, Warehouse} with “” delimiter in the middle and it will be used in comparison against Combination field in Ax_InventDim table in order to put correct InventDimId value into PurchLine.InventDimId field. <o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://4.bp.blogspot.com/-5jjUiMHlfXU/T0ZacpllmOI/AAAAAAAADks/yfRR_nNE_Y4/s1600/image037-738329.jpg"><img id="BLOGGER_PHOTO_ID_5712352625612396770" border="0" alt="" src="http://4.bp.blogspot.com/-5jjUiMHlfXU/T0ZacpllmOI/AAAAAAAADks/yfRR_nNE_Y4/s320/image037-738329.jpg" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Publish Selected – Purchase Line<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://1.bp.blogspot.com/-28ku-qG7WdA/T0Zad6zZO5I/AAAAAAAADk4/wQc-Y8-f-Wc/s1600/image038-743103.jpg"><img id="BLOGGER_PHOTO_ID_5712352647413578642" border="0" alt="" src="http://1.bp.blogspot.com/-28ku-qG7WdA/T0Zad6zZO5I/AAAAAAAADk4/wQc-Y8-f-Wc/s320/image038-743103.jpg" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Please note that bound InventDimId field in PurchLine table has a formula associated that uses VLOOKUP function. This is how we compare Combination fields in Ax_InventDim and Ax_PurchLine tables to find out about correct InventDimId value to be used in PurchLine.InventDimId field.<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://2.bp.blogspot.com/-eBNgrzWEIGM/T0Zaek8PnSI/AAAAAAAADlA/_Bzwz-3vCh0/s1600/image039-746013.png"><img id="BLOGGER_PHOTO_ID_5712352658724986146" border="0" alt="" src="http://2.bp.blogspot.com/-eBNgrzWEIGM/T0Zaek8PnSI/AAAAAAAADlA/_Bzwz-3vCh0/s320/image039-746013.png" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> By other words, I’m looking for the value from Combination field from Ax_PurchLine table (1<sup>st</sup> parameter) in Ax_InventDim table (2<sup>nd</sup> parameter). If exact match (4<sup>th</sup> parameter) was found then the value in 2<sup>nd</sup> column (3<sup>rd</sup> parameter) will be returned as the result. <o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Please note that by default the category in InventDimId field is Text which has to be changed to General to be able to apply the formula.<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://2.bp.blogspot.com/-Qp4hs2xK-6k/T0ZaeinHvZI/AAAAAAAADlQ/iqYF1DLLdBg/s1600/image040-746793.jpg"><img id="BLOGGER_PHOTO_ID_5712352658099518866" border="0" alt="" src="http://2.bp.blogspot.com/-Qp4hs2xK-6k/T0ZaeinHvZI/AAAAAAAADlQ/iqYF1DLLdBg/s320/image040-746793.jpg" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Please note that there’re number of prerequisites in order to apply VLOOKUP formula correctly.<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Important:<o:p></o:p></b></p> <p style="line-height: normal; text-indent: -0.25in; margin-bottom: 0pt; mso-add-space: auto; mso-list: l0 level1 lfo3;" class="MsoListParagraphCxSpFirst"> <span style="mso-list: Ignore;">1.<span> </span></span><b><u>Combination</u></b> field has to be left-most field in Ax_PurchLine table<o:p></o:p></p> <p style="line-height: normal; text-indent: -0.25in; margin-bottom: 0pt; mso-add-space: auto; mso-list: l0 level1 lfo3;" class="MsoListParagraphCxSpMiddle"> <span style="mso-list: Ignore;">2.<span> </span></span>No duplicate values are allowed in <b><u>Combination</u></b> field in Ax_InventDim table because we are looking for the exact match<o:p></o:p></p> <p style="line-height: normal; text-indent: -0.25in; margin-bottom: 0pt; mso-add-space: auto; mso-list: l0 level1 lfo3;" class="MsoListParagraphCxSpLast"> <span style="mso-list: Ignore;">3.<span> </span></span>You can use static named ranges, absolute cells coordinates or table name(s) in Excel to effectively define <b>table_array</b> value (2nd parameter in VLOOKUP function)<b><span style="color:red;"> </span></b><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> You may define Filter criteria to fetch only certain InventDim table records into Ax_InventDim table in Excel. Consequently it may happen that there’s no match found in Ax_InventDim table, so Excel will put #NA value into the cell. In order to substitute #NA (Not Available) to something more meaningful you can change VLOOKUP formula to be<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>=IF(ISNA(VLOOKUP([Combination],Ax_InventDim,2,FALSE)),"AllBlank",VLOOKUP([Combination],Ax_InventDim,2,FALSE))<o:p></o:p></b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Please note that “AllBlank” represents the record in InventDim table which has no Inventory Dimensions defined<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://2.bp.blogspot.com/-RnyY8kt7Sek/T0Zaex5mgSI/AAAAAAAADlc/JhrNvZSq8xU/s1600/image041-747891.jpg"><img id="BLOGGER_PHOTO_ID_5712352662203564322" border="0" alt="" src="http://2.bp.blogspot.com/-RnyY8kt7Sek/T0Zaex5mgSI/AAAAAAAADlc/JhrNvZSq8xU/s320/image041-747891.jpg" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> After Purchase Order line(s) information gets published the system will reread the information and display the results to you, consequently you will have a value displayed in InventDimId field in PurchLine table instead of VLOOKUP formula.<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Result</b>: <o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Dynamics AX – Purchase Order <o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><a href="http://1.bp.blogspot.com/-WH4GoflmFPw/T0ZafI2EX6I/AAAAAAAADlo/ij5wLFD4AiM/s1600/image042-748746.jpg"><img id="BLOGGER_PHOTO_ID_5712352668362760098" border="0" alt="" src="http://1.bp.blogspot.com/-WH4GoflmFPw/T0ZafI2EX6I/AAAAAAAADlo/ij5wLFD4AiM/s320/image042-748746.jpg" /></a> <o:p></o:p></b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><o:p> </o:p></b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Dynamics AX – Purchase Order Invoice<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://4.bp.blogspot.com/-IwccVvJG8M8/T0Zafk4pXrI/AAAAAAAADl0/ikGUumWhFeY/s1600/image043-750040.jpg"><img id="BLOGGER_PHOTO_ID_5712352675889766066" border="0" alt="" src="http://4.bp.blogspot.com/-IwccVvJG8M8/T0Zafk4pXrI/AAAAAAAADl0/ikGUumWhFeY/s320/image043-750040.jpg" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><o:p> </o:p></b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>SQL Trace: <o:p></o:p></b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><o:p> </o:p></b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Summary</b>: For the purposes of small or medium data migration (data conversion) where performance is not a concern Excel can be used for import of data into Dynamics AX 2012. Although there’s no AIF Web Service to import Inventory Dimensions combinations (into InventDim table) upfront, appropriate tables can be used instead. Excel template can be created and used for import of data.<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Author</b>: <a href="mailto:%20ani.kiev@gmail.com">Alex Anikiev</a>, PhD, MCP<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Tags:</b> Dynamics ERP,<b> </b>Dynamics AX 2012, Excel, Dynamics AX 2012 Excel Add-in, Data Import, Data Conversion, Data Migration, Application Integration Framework, Inventory Dimensions, Storage Dimensions, Tracking Dimensions. <o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><o:p> </o:p></b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Note:</b> This document is intended for information purposes only, presented as it is with no warranties from the author. This document may be updated with more content to better outline the concepts and describe the examples. It’s recommended that all Data Model changes introduced as a part of this demonstration will be removed once you complete data import exercise. <o:p></o:p></p> <p class="MsoNormal"><o:p> </o:p></p> </div>Alex Anikievhttp://www.blogger.com/profile/13438665643699572584noreply@blogger.com1tag:blogger.com,1999:blog-7090402456402630247.post-5275745511873533402012-02-13T23:22:00.001-08:002012-02-13T23:26:00.113-08:00Dynamics AX 2012 Excel Add-in - Vendor transactions import<div class="WordSection1"> <p class="MsoTitleCxSpFirst" align="center" style="text-align: left;"><b>Microsoft Dynamics AX 2012 Excel Add-in – Vendor transactions Import</b></p><p class="MsoTitleCxSpLast" align="center" style="text-align:center"><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Purpose:</b> The purpose of this document is to illustrate how to use Microsoft Dynamics AX 2012 Excel Add-in for import of vendor transactions with required level of detail.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Challenge</b>: Data model changes in Microsoft Dynamics related to high normalization and introduction of surrogate keys made some imports more complex. In fact the data model forming General Journal was not dramatically changed and import principle remains the same – populate the journal and then post the journal. Numerous fields are available on General Journal line level in Rich client to achieve required level of detail during import. <b>In order to import vendor transactions with required level of detail using Excel Add-in some additional work may be required. </b><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Solution</b>: Microsoft Dynamics AX 2012 ships with General Journal AIF Web Service (LedgerGeneralJournalService) which can be used in integration scenarios. Also General Journal AIF Web Service can be used in Excel for import of vendor transactions. However General Journal AIF Web Service may not expose all fields which may be required for import such as Invoice, etc. <b>In this walkthrough in order to import vendor transactions using Excel I’m going to modify General Journal AIF Web Service (LedgerGeneralJournalService)</b>, alternatively the appropriate tables may be used instead. Please note that I’ll make use of Main account field to bring Vendor account information over to Microsoft Dynamics AX 2012, so no additional work will be required to align vendor account comparing to similar walkthrough where I import customer transactions using raw tables. <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Assumption</b>: The assumption is that appropriate reference data such as vendors, etc. was created in advance.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Data Model</b>:<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style="border-collapse:collapse"> <tbody> <tr> <td width="335" valign="top" style="width:200.85pt;border:solid windowtext 1.0pt;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Table Name<o:p></o:p></b></p> </td> <td width="463" valign="top" style="width:277.95pt;border:solid windowtext 1.0pt;border-left:none;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Table Description<o:p></o:p></b></p> </td> </tr> <tr> <td width="335" valign="top" style="width:200.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> LedgerJournalTable<o:p></o:p></p> </td> <td width="463" valign="top" style="width:277.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> The LedgerJournalTable table contains all the defaulting and state information pertaining to a single journal. The transaction details of a journal are managed in the LedgerJournalTrans table.<o:p></o:p></p> </td> </tr> <tr> <td width="335" valign="top" style="width:200.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <span style="color:black">LedgerJournalTrans</span><o:p></o:p></p> </td> <td width="463" valign="top" style="width:277.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The LedgerJournalTrans table contains the transaction detail information that pertains to a single journal. The individual transaction lines are also referred to as voucher lines. The journal is a record in the LedgerJournalTable table.<o:p></o:p></span></p> </td> </tr> </tbody> </table> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Data Model Diagram</b>:<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://3.bp.blogspot.com/-JwmomYnkSnY/TzoL3NKe2LI/AAAAAAAADY4/TzpI7F7wWZk/s1600/image001-787938.png"><img src="http://3.bp.blogspot.com/-JwmomYnkSnY/TzoL3NKe2LI/AAAAAAAADY4/TzpI7F7wWZk/s320/image001-787938.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5708888520699861170" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Walkthrough</b>: <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> AxdLedgerGeneralJournal Query<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> General Journal AIF Web Service doesn’t expose all fields which may be required for import such as Invoice, etc.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-5TZ_acoOITY/TzoL3S6rE1I/AAAAAAAADZI/ryDitqvJwuY/s1600/image037-789299.png"><img src="http://1.bp.blogspot.com/-5TZ_acoOITY/TzoL3S6rE1I/AAAAAAAADZI/ryDitqvJwuY/s320/image037-789299.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5708888522244166482" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> In order to get access to more fields for vendor transactions import when using General Journal AIF Web Service AxdLedgerGeneralJournal Query will have to be modified appropriately<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> That’s why I added Invoice field into the list of fields for LedgerJournalTrans data source<o:p></o:p></p> <table class="MsoTableGrid" border="0" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none"> <tbody> <tr> <td width="437" valign="top" style="width:261.9pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b><a href="http://1.bp.blogspot.com/-muHIliD8PQA/TzoL4dWXQyI/AAAAAAAADZQ/_077n6MCOSo/s1600/image002-793035.jpg"><img src="http://1.bp.blogspot.com/-muHIliD8PQA/TzoL4dWXQyI/AAAAAAAADZQ/_077n6MCOSo/s320/image002-793035.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708888542224532258" /></a></b><o:p></o:p></p> </td> <td width="362" valign="top" style="width:216.9pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter"> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0"> <v:f eqn="sum @0 1 0"> <v:f eqn="sum 0 0 @1"> <v:f eqn="prod @2 1 2"> <v:f eqn="prod @3 21600 pixelWidth"> <v:f eqn="prod @3 21600 pixelHeight"> <v:f eqn="sum @0 0 1"> <v:f eqn="prod @6 1 2"> <v:f eqn="prod @7 21600 pixelWidth"> <v:f eqn="sum @8 21600 0"> <v:f eqn="prod @7 21600 pixelHeight"> <v:f eqn="sum @10 21600 0"> </v:formulas> <v:path extrusionok="f" gradientshapeok="t" connecttype="rect"> <o:lock ext="edit" aspectratio="t"> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style="'width:207.6pt;height:309pt'" ole=""> <v:imagedata src="cid:image040.png@01CCEABE.D9E6F720" title=""> </v:shape><![endif]--><!--[if !vml]--><a href="http://1.bp.blogspot.com/-G_kSGbJ7kik/TzoL468VszI/AAAAAAAADZc/P82vohvtfyk/s1600/image003-794948.jpg"><img src="http://1.bp.blogspot.com/-G_kSGbJ7kik/TzoL468VszI/AAAAAAAADZc/P82vohvtfyk/s320/image003-794948.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708888550168441650" /></a><!--[endif]--><!--[if gte mso 9]><xml> <o:oleobject type="Embed" progid="PBrush" shapeid="_x0000_i1025" drawaspect="Content" objectid="_1390691081"> </o:OLEObject> </xml><![endif]--><o:p></o:p></p> </td> </tr> </tbody> </table> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Please note that Invoice field is already included in LedgerJournalTrans table and has appropriate support in AxLedgerJournalTrans AIF Proxy class<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-8pcJ3QKJOQI/TzoL5XfewLI/AAAAAAAADZo/2N6C75w6hFg/s1600/image004-797165.jpg"><img src="http://4.bp.blogspot.com/-8pcJ3QKJOQI/TzoL5XfewLI/AAAAAAAADZo/2N6C75w6hFg/s320/image004-797165.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708888557832028338" /></a> <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> So there’s no need to Update document service (LedgerGeneralJournalService) and regenerate AIF Proxy class(es). However in order to enable Invoice field to be used by General Journal AIF Web Service appropriate Service Group (LedgerServices) which contains LedgerGeneralJournalService AIF Web Service will have to be redeployed.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://3.bp.blogspot.com/-Ir4Q7Ut0vag/TzoL54nvlmI/AAAAAAAADZ0/U6-ZUQBtrX4/s1600/image005-799140.jpg"><img src="http://3.bp.blogspot.com/-Ir4Q7Ut0vag/TzoL54nvlmI/AAAAAAAADZ0/U6-ZUQBtrX4/s320/image005-799140.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708888566725056098" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Once LedgerServices Service Group is redeployed you will see the following infolog<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-EvVSjLcN03M/TzoL6UjidlI/AAAAAAAADaE/jiG7WszRJRE/s1600/image006-701262.jpg"><img src="http://4.bp.blogspot.com/-EvVSjLcN03M/TzoL6UjidlI/AAAAAAAADaE/jiG7WszRJRE/s320/image006-701262.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708888574223611474" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> You can also see LedgerServices Service Group activated in Inbound ports form in Administration > Setup > Application Integration Framework<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://3.bp.blogspot.com/-OqPvM_ywIVs/TzoL8YSpXsI/AAAAAAAADaM/qSngf_UXFag/s1600/image007-709456.jpg"><img src="http://3.bp.blogspot.com/-OqPvM_ywIVs/TzoL8YSpXsI/AAAAAAAADaM/qSngf_UXFag/s320/image007-709456.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708888609586241218" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Please note that if you will manually create Enhanced port, say LedgerServicesAlex<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-11_XNkzDH8o/TzoL90r6jFI/AAAAAAAADac/pgYtv646QW0/s1600/image008-715395.jpg"><img src="http://2.bp.blogspot.com/-11_XNkzDH8o/TzoL90r6jFI/AAAAAAAADac/pgYtv646QW0/s320/image008-715395.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708888634388286546" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> And then select “create” operation on LedgerGeneralJournalService AIF Web Service in Select service operations form<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-Dr0jPRI1Gy4/TzoL-6mdisI/AAAAAAAADao/r-38CpPBQ9A/s1600/image009-718773.jpg"><img src="http://1.bp.blogspot.com/-Dr0jPRI1Gy4/TzoL-6mdisI/AAAAAAAADao/r-38CpPBQ9A/s320/image009-718773.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708888653155896002" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Eventually you will be able to see Invoice field listed in Document data policies form <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-rmUnyp1tWiU/TzoMASezecI/AAAAAAAADa0/e8kHLVLoaYs/s1600/image054-725337.png"><img src="http://1.bp.blogspot.com/-rmUnyp1tWiU/TzoMASezecI/AAAAAAAADa0/e8kHLVLoaYs/s320/image054-725337.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5708888676746099138" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> This is a proof that Invoice field will now be available for use by General Journal AIF Web Service<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Connection<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-nNL4fuj63UI/TzoMAyJho0I/AAAAAAAADbA/eDOh8ZJc0OM/s1600/image055-727510.jpg"><img src="http://1.bp.blogspot.com/-nNL4fuj63UI/TzoMAyJho0I/AAAAAAAADbA/eDOh8ZJc0OM/s320/image055-727510.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708888685246784322" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Add Data<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b><span style="color:red"><a href="http://2.bp.blogspot.com/-Ef3GWvYSYrc/TzoMB-SSA3I/AAAAAAAADbQ/mIWqpM7KOOQ/s1600/image010-731148.jpg"><img src="http://2.bp.blogspot.com/-Ef3GWvYSYrc/TzoMB-SSA3I/AAAAAAAADbQ/mIWqpM7KOOQ/s320/image010-731148.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708888705684603762" /></a></span><span style="color:red"><o:p></o:p></span></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Field Chooser<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b><span style="color:red"><a href="http://2.bp.blogspot.com/-1RJac4byop8/TzoMCag8YaI/AAAAAAAADbY/7GgIID7vCn4/s1600/image058-733802.png"><img src="http://2.bp.blogspot.com/-1RJac4byop8/TzoMCag8YaI/AAAAAAAADbY/7GgIID7vCn4/s320/image058-733802.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5708888713262293410" /></a></span><span style="color:red"><o:p></o:p></span></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Accounting structure<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-jgiJqct2uh4/TzoMEU8iB5I/AAAAAAAADbo/hB_V78MyU9k/s1600/image059-741051.png"><img src="http://4.bp.blogspot.com/-jgiJqct2uh4/TzoMEU8iB5I/AAAAAAAADbo/hB_V78MyU9k/s320/image059-741051.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5708888746127132562" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> LedgerJournalTable<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style="border-collapse:collapse"> <tbody> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Field Name<o:p></o:p></b></p> </td> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-left:none;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Journal batch number<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Name<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Description<o:p></o:p></p> </td> </tr> </tbody> </table> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://3.bp.blogspot.com/-mB3oSUBkHz0/TzoMEwMjLuI/AAAAAAAADbw/QQdZhhzBmlg/s1600/image011-743885.jpg"><img src="http://3.bp.blogspot.com/-mB3oSUBkHz0/TzoMEwMjLuI/AAAAAAAADbw/QQdZhhzBmlg/s320/image011-743885.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708888753442074338" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> LedgerJournalTrans<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style="border-collapse:collapse"> <tbody> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Field Name<o:p></o:p></b></p> </td> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-left:none;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Journal batch number<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Voucher<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Date<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Company accounts<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Account type<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> LedgerDimension<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>LedgerDimension.Main Account<o:p></o:p></b></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> LedgerDimension.Department<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> DefaultDimension.Department<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Description<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Debit<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Credit<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Currency<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>LedgerJournalTrans.Invoice<o:p></o:p></b></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Invoice<o:p></o:p></b></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Offset company accounts<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Offset account type<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> OffsetLedgerDimension<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> OffsetLedgerDimension.Main Account<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> OffsetLedgerDimension.Department<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Offset-transaction text<o:p></o:p></p> </td> </tr> </tbody> </table> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoListParagraphCxSpFirst" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l1 level1 lfo4;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">1)<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]--><a href="http://1.bp.blogspot.com/-rAqWXT7V1lI/TzoMFLGU7tI/AAAAAAAADb8/qFLSDyS1O5c/s1600/image012-744659.jpg"><img src="http://1.bp.blogspot.com/-rAqWXT7V1lI/TzoMFLGU7tI/AAAAAAAADb8/qFLSDyS1O5c/s320/image012-744659.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708888760663731922" /></a><o:p></o:p></p> <p class="MsoListParagraphCxSpMiddle" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l1 level1 lfo4;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">2)<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]--><a href="http://1.bp.blogspot.com/-kzKhBwneho8/TzoMGxwheeI/AAAAAAAADcI/jwhkWV1MCkw/s1600/image013-750929.jpg"><img src="http://1.bp.blogspot.com/-kzKhBwneho8/TzoMGxwheeI/AAAAAAAADcI/jwhkWV1MCkw/s320/image013-750929.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708888788221131234" /></a><o:p></o:p></p> <p class="MsoListParagraphCxSpMiddle" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l1 level1 lfo4;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">3)<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]--><a href="http://3.bp.blogspot.com/--yvJza2au10/TzoMHDkGZFI/AAAAAAAADcU/YsLu2ZQX9U8/s1600/image014-752868.jpg"><img src="http://3.bp.blogspot.com/--yvJza2au10/TzoMHDkGZFI/AAAAAAAADcU/YsLu2ZQX9U8/s320/image014-752868.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708888793000862802" /></a><o:p></o:p></p> <p class="MsoListParagraphCxSpLast" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l1 level1 lfo4;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">4)<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]--><a href="http://2.bp.blogspot.com/-_vCHWnIBupQ/TzoMHt4ro0I/AAAAAAAADcg/6p2v5J6Bu8E/s1600/image015-754476.jpg"><img src="http://2.bp.blogspot.com/-_vCHWnIBupQ/TzoMHt4ro0I/AAAAAAAADcg/6p2v5J6Bu8E/s320/image015-754476.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708888804361478978" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Sequence</b>: <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoListParagraph" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l0 level1 lfo6;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">1.<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->GeneralJournalService – Publish All<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Result</b>: <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Dynamics AX – General Journal <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b><span style="color:red"><a href="http://3.bp.blogspot.com/-cnUdPQl1Qe8/TzoMIP86SzI/AAAAAAAADcs/O1KJhGgkKBI/s1600/image016-756310.jpg"><img src="http://3.bp.blogspot.com/-cnUdPQl1Qe8/TzoMIP86SzI/AAAAAAAADcs/O1KJhGgkKBI/s320/image016-756310.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708888813506022194" /></a></span></b><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Dynamics AX – General Journal lines<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b><span style="color:red"><a href="http://3.bp.blogspot.com/-DWCJful21Ik/TzoMJ3tL-gI/AAAAAAAADc4/93r72mF2JiQ/s1600/image017-762981.jpg"><img src="http://3.bp.blogspot.com/-DWCJful21Ik/TzoMJ3tL-gI/AAAAAAAADc4/93r72mF2JiQ/s320/image017-762981.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708888841357359618" /></a></span><span style="color:red"><o:p></o:p></span></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Please note that Invoice field is properly propagated on Invoice tab<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-u61edMrHTjM/TzoMLZXkoUI/AAAAAAAADdE/rfPAvUhCEuw/s1600/image018-769225.jpg"><img src="http://2.bp.blogspot.com/-u61edMrHTjM/TzoMLZXkoUI/AAAAAAAADdE/rfPAvUhCEuw/s320/image018-769225.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708888867573375298" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Dynamics AX – General Ledger Posting<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b><a href="http://2.bp.blogspot.com/-9sP4v2CA030/TzoML8PCY6I/AAAAAAAADdQ/anjXlf-d4Cw/s1600/image076-771066.png"><img src="http://2.bp.blogspot.com/-9sP4v2CA030/TzoML8PCY6I/AAAAAAAADdQ/anjXlf-d4Cw/s320/image076-771066.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5708888876932817826" /></a><o:p></o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b><o:p> </o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> It’s important to mention that I used Main account field to bring over Vendor account information to Microsoft Dynamics AX 2012 without any customizations. This is possible because AxdLedgerGeneralJournal document class has the logic to assign appropriate LedgerDimension value based on value specified in Main account field and actual Account type defined (in our case it’s Vendor) in afterDeserializeEntity method as shown below<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-0b1fio4rcrE/TzoMMM883AI/AAAAAAAADdg/Jzu0-kJ0zaI/s1600/image019-772715.jpg"><img src="http://1.bp.blogspot.com/-0b1fio4rcrE/TzoMMM883AI/AAAAAAAADdg/Jzu0-kJ0zaI/s320/image019-772715.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708888881420360706" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b><o:p> </o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b><o:p> </o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>SQL Trace: <o:p></o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b><o:p> </o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Summary</b>: For the purposes of small or medium data migration (data conversion) where performance is not a concern Excel can be used for import of vendor transactions into Microsoft Dynamics AX 2012. General Journal AIF Web Service (LedgerGeneralJournalService) can be used in Excel for import of vendor transactions. However General Journal AIF Web Service (LedgerGeneralJournalService) doesn’t expose all fields which may be required for import. <b>In this case General Journal AIF Web Service (LedgerGeneralJournalService) Query may be customized to accommodate for more fields, or raw tables may be used instead.</b> Excel template can be created and used for import of vendor transactions.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>In this document I modified General Journal AIF Web Service (LedgerGeneralJournalService) to import vendor transactions with required level of detail. In another similar walkthrough dedicated to import of customer transactions with required level of detail I’ll use raw tables approach to illustrate the mechanics of the process better. Raw tables approach is much more complex than AIF Web Service modification approach for the user. <o:p></o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Author</b>: <a href="mailto:%20ani.kiev@gmail.com">Alex Anikiev</a>, PhD, MCP<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Tags:</b> Dynamics ERP,<b> </b>Dynamics AX 2012, Excel, Dynamics AX 2012 Excel Add-in, Data Import, Data Conversion, Data Migration, Application Integration Framework, Vendor transactions. <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b><o:p> </o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Note:</b> This document is intended for information purposes only, presented as it is with no warranties from the author. This document may be updated with more content to better outline the concepts and describe the examples. It’s recommended that all Data Model changes introduced as a part of this demonstration will be removed once you complete data import exercise.<o:p></o:p></p> </div>Alex Anikievhttp://www.blogger.com/profile/13438665643699572584noreply@blogger.com14tag:blogger.com,1999:blog-7090402456402630247.post-18321514070318990382012-02-12T21:33:00.000-08:002012-02-12T21:38:48.552-08:00Dynamics AX 2012 Excel Add-in - Customer transactions import<div class="WordSection1"> <div style="mso-element:para-border-div;border:none;border-bottom:solid #4F81BD 1.0pt;padding:0in 0in 4.0pt 0in"> <p class="MsoTitleCxSpFirst" align="center" style="text-align: left;"><b>Microsoft Dynamics AX 2012 Excel Add-in – Customer transactions Import</b></p><p class="MsoTitleCxSpLast" align="center" style="text-align:center"><o:p></o:p></p> </div> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Purpose:</b> The purpose of this document is to illustrate how to use Microsoft Dynamics AX 2012 Excel Add-in for import of customer transactions with required level of detail.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Challenge</b>: Data model changes in Microsoft Dynamics related to high normalization and introduction of surrogate keys made some imports more complex. In fact the data model forming General Journal was not dramatically changed and import principle remains the same – populate the journal and then post the journal. Numerous fields are available on General Journal line level in Rich client to achieve required level of detail during import. <b>In order to import customer transactions with required level of detail using Excel Add-in some additional work may be required. </b><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Solution</b>: Microsoft Dynamics AX 2012 ships with General Journal AIF Web Service (LedgerGeneralJournalService) which can be used in integration scenarios. Also General Journal AIF Web Service can be used in Excel for import of customer transactions. However General Journal AIF Web Service may not expose all fields which may be required for import such as Invoice, etc. In this walkthrough in order to import customer transactions using Excel the appropriate tables will be used instead. Some additional work will be done after initial import to align customer account. <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Assumption</b>: The assumption is that appropriate reference data such as customers, etc. was created in advance.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Data Model</b>:<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none"> <tbody> <tr> <td width="335" valign="top" style="width:200.85pt;border:solid windowtext 1.0pt;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Table Name<o:p></o:p></b></p> </td> <td width="463" valign="top" style="width:277.95pt;border:solid windowtext 1.0pt;border-left:none;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Table Description<o:p></o:p></b></p> </td> </tr> <tr> <td width="335" valign="top" style="width:200.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> LedgerJournalTable<o:p></o:p></p> </td> <td width="463" valign="top" style="width:277.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> The LedgerJournalTable table contains all the defaulting and state information pertaining to a single journal. The transaction details of a journal are managed in the LedgerJournalTrans table.<o:p></o:p></p> </td> </tr> <tr> <td width="335" valign="top" style="width:200.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <span style="color:black">LedgerJournalTrans</span><o:p></o:p></p> </td> <td width="463" valign="top" style="width:277.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The LedgerJournalTrans table contains the transaction detail information that pertains to a single journal. The individual transaction lines are also referred to as voucher lines. The journal is a record in the LedgerJournalTable table.<o:p></o:p></span></p> </td> </tr> </tbody> </table> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Data Model Diagram</b>:<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter"> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0"> <v:f eqn="sum @0 1 0"> <v:f eqn="sum 0 0 @1"> <v:f eqn="prod @2 1 2"> <v:f eqn="prod @3 21600 pixelWidth"> <v:f eqn="prod @3 21600 pixelHeight"> <v:f eqn="sum @0 0 1"> <v:f eqn="prod @6 1 2"> <v:f eqn="prod @7 21600 pixelWidth"> <v:f eqn="sum @8 21600 0"> <v:f eqn="prod @7 21600 pixelHeight"> <v:f eqn="sum @10 21600 0"> </v:formulas> <v:path extrusionok="f" gradientshapeok="t" connecttype="rect"> <o:lock ext="edit" aspectratio="t"> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style="'width:183.6pt;height:159.6pt'" ole=""> <v:imagedata src="cid:image001.emz@01CCE9E4.B5FCCA40" title=""> </v:shape><![endif]--><!--[if !vml]--><a href="http://1.bp.blogspot.com/-EKsuhK7YPEQ/TzihH5ej74I/AAAAAAAADRQ/ozV2N45hZWo/s1600/image002-727297.png"><img src="http://1.bp.blogspot.com/-EKsuhK7YPEQ/TzihH5ej74I/AAAAAAAADRQ/ozV2N45hZWo/s320/image002-727297.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489684752265090" /></a><!--[endif]--><!--[if gte mso 9]><xml> <o:oleobject type="Embed" progid="Visio.Drawing.11" shapeid="_x0000_i1025" drawaspect="Content" objectid="_1390597333"> </o:OLEObject> </xml><![endif]--><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Walkthrough</b>: <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> AxdLedgerGeneralJournal Query<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> General Journal AIF Web Service doesn’t expose all fields which may be required for import such as Invoice, etc.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://3.bp.blogspot.com/-RyroE4C4uug/TzihIbuLOcI/AAAAAAAADRc/OMx6ku6CHCI/s1600/image003-729500.png"><img src="http://3.bp.blogspot.com/-RyroE4C4uug/TzihIbuLOcI/AAAAAAAADRc/OMx6ku6CHCI/s320/image003-729500.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489693944560066" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> In order to bring Customer account information over to AX I introduced CustAccount field into LedgerJournalTrans table as shown below<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://3.bp.blogspot.com/-vh0WNX5u3mY/TzihI0adMwI/AAAAAAAADRo/yY2gzeDIzD4/s1600/image004-730965.png"><img src="http://3.bp.blogspot.com/-vh0WNX5u3mY/TzihI0adMwI/AAAAAAAADRo/yY2gzeDIzD4/s320/image004-730965.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489700572738306" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> CustAccount field is based on CustAccount EDT which in its turn has relation to CustTable table<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://3.bp.blogspot.com/-TKZ4Y8M5eSo/TzihJIhg8wI/AAAAAAAADR0/ibcO3kPXqNM/s1600/image005-732116.png"><img src="http://3.bp.blogspot.com/-TKZ4Y8M5eSo/TzihJIhg8wI/AAAAAAAADR0/ibcO3kPXqNM/s320/image005-732116.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489705971053314" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> After mentioned customizations will be introduced you will have to regenerate AIF Proxy classes in order to reflect changes in the data model. I used LedgerGeneralJournalService AIF Web Service because it has LedgerJournalTable and LedgerJournalTrans tables as data sources, this is exactly the tables I need AIF Proxy classes to be regenerated for.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Update document service<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-_kgqWEkzUEs/TzihJV5Jx7I/AAAAAAAADSE/1XZLJzj2k9w/s1600/image006-733338.png"><img src="http://1.bp.blogspot.com/-_kgqWEkzUEs/TzihJV5Jx7I/AAAAAAAADSE/1XZLJzj2k9w/s320/image006-733338.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489709559859122" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> After you complete steps required to Update document service as it’s described in “Import Data” walkthrough you will need to generate incremental CIL.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Generate Incremental CIL<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-hb59_TlsgQU/TzihJ99XYZI/AAAAAAAADSM/KGFXipfiBDU/s1600/image007-735310.jpg"><img src="http://1.bp.blogspot.com/-hb59_TlsgQU/TzihJ99XYZI/AAAAAAAADSM/KGFXipfiBDU/s320/image007-735310.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489720314945938" /></a> <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Connection<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-tVqvwAfg33E/TzihKCJSYOI/AAAAAAAADSY/kmdRiIGjaY8/s1600/image008-736585.jpg"><img src="http://1.bp.blogspot.com/-tVqvwAfg33E/TzihKCJSYOI/AAAAAAAADSY/kmdRiIGjaY8/s320/image008-736585.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489721438691554" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Add Tables<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-Tb4kaWHv1vA/TzihKopAHgI/AAAAAAAADSo/DJCz--PjVRU/s1600/image009-738346.png"><img src="http://1.bp.blogspot.com/-Tb4kaWHv1vA/TzihKopAHgI/AAAAAAAADSo/DJCz--PjVRU/s320/image009-738346.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489731772259842" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Dynamics AX Error<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-gTpVww9qayA/TzihLMCVeBI/AAAAAAAADSw/jWlgWvIwBZo/s1600/image010-740469.png"><img src="http://4.bp.blogspot.com/-gTpVww9qayA/TzihLMCVeBI/AAAAAAAADSw/jWlgWvIwBZo/s320/image010-740469.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489741273757714" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-AoIthLWfIVM/TzihLhNTLYI/AAAAAAAADTA/dlD4BsGfIsY/s1600/image011-742012.png"><img src="http://4.bp.blogspot.com/-AoIthLWfIVM/TzihLhNTLYI/AAAAAAAADTA/dlD4BsGfIsY/s320/image011-742012.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489746956889474" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Solution:<o:p></o:p></p> <p class="MsoListParagraphCxSpFirst" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l2 level1 lfo1;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->Add replacement key to VendTrans table {Field, <b>RecId</b>}<o:p></o:p></p> <p class="MsoListParagraphCxSpMiddle" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l2 level1 lfo1;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->Add replacement key to CustTrans table {Field, <b>RecId</b>}<o:p></o:p></p> <p class="MsoListParagraphCxSpMiddle" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l2 level1 lfo1;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->Add replacement key to LedgerJournalTrans table {Field, <b> RecId</b>}<o:p></o:p></p> <p class="MsoListParagraphCxSpMiddle" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l2 level1 lfo1;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->Add replacement key to ReasonTableRef table {Field, <b>RecId</b>}<o:p></o:p></p> <p class="MsoListParagraphCxSpMiddle" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l2 level1 lfo1;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->Add replacement key to VendBankAccount table {Field, <b>RecId</b>}<o:p></o:p></p> <p class="MsoListParagraphCxSpMiddle" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l2 level1 lfo1;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->Add replacement key to CustBankAccount table {Field, <b>RecId</b>}<o:p></o:p></p> <p class="MsoListParagraphCxSpMiddle" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l2 level1 lfo1;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->Add replacement key to BudgetSource table {Field, <b>RecId</b>}<o:p></o:p></p> <p class="MsoListParagraphCxSpLast" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l2 level1 lfo1;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->Add replacement key to BudgetTransactionLine table {Field, <b>RecId</b>}<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Field Chooser<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-iM5NeQczGTM/TzihMFERcAI/AAAAAAAADTI/YKGEKlu187A/s1600/image012-744624.png"><img src="http://4.bp.blogspot.com/-iM5NeQczGTM/TzihMFERcAI/AAAAAAAADTI/YKGEKlu187A/s320/image012-744624.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489756582703106" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Accounting structure<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-Lu4NtqYTAh0/TzihMTgqZFI/AAAAAAAADTY/aqQRm2wGAhc/s1600/image013-745800.png"><img src="http://2.bp.blogspot.com/-Lu4NtqYTAh0/TzihMTgqZFI/AAAAAAAADTY/aqQRm2wGAhc/s320/image013-745800.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489760459875410" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Dynamics AX Error<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> When you unpress Field Chooser button you may see “The number of joins in the statement is X. This exceeds the maximum of 26. …” error <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-Iy48txRilJY/TzihNIhegBI/AAAAAAAADTg/HlL4hFFtKR8/s1600/image014-748519.png"><img src="http://1.bp.blogspot.com/-Iy48txRilJY/TzihNIhegBI/AAAAAAAADTg/HlL4hFFtKR8/s320/image014-748519.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489774690369554" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> This error occurs because of numerous relations specified on LedgerJournalTrans and LedgerJournalTable tables. As opposite to AIF Web Service where the data set is strictly defined by the Query, in the case when raw tables are being used the system is building composite data set based on relations specified on tables/EDT level <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> In order to bypass this error you will have to change “Maximum buffer size (KB)” setting in Dynamics AX Server Configuration Utility and restart AX AOS<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Dynamics AX Server Configuration Utility<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-svVXU2C5hDE/TzihNXxOtBI/AAAAAAAADTs/ezWsaheaGKM/s1600/image015-749471.jpg"><img src="http://2.bp.blogspot.com/-svVXU2C5hDE/TzihNXxOtBI/AAAAAAAADTs/ezWsaheaGKM/s320/image015-749471.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489778782974994" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> LedgerJournalTable<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none"> <tbody> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Field Name<o:p></o:p></b></p> </td> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-left:none;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Journal batch number<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Name<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Description<o:p></o:p></p> </td> </tr> </tbody> </table> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-5aei3hmecAA/TzihNnP7tKI/AAAAAAAADT8/AnTTtU43Li4/s1600/image016-750746.jpg"><img src="http://4.bp.blogspot.com/-5aei3hmecAA/TzihNnP7tKI/AAAAAAAADT8/AnTTtU43Li4/s320/image016-750746.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489782938285218" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> LedgerJournalTrans<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none"> <tbody> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Field Name<o:p></o:p></b></p> </td> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-left:none;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Journal batch number<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Voucher<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Date<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Company accounts<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Account type<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>LedgerJournalTrans.CustAccount <custom><o:p></o:p></b></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Customer account<o:p></o:p></b></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> DefaultDimension.Department<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Description<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Debit<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Credit<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Currency<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>LedgerJournalTrans.Invoice<o:p></o:p></b></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Invoice<o:p></o:p></b></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Offset company accounts<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Offset account type<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> OffsetLedgerDimension<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> OffsetLedgerDimension.Main Account<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> OffsetLedgerDimension.Department<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Offset-transaction text<o:p></o:p></p> </td> </tr> </tbody> </table> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoListParagraphCxSpFirst" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l1 level1 lfo2;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">1)<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]--><a href="http://4.bp.blogspot.com/-Vf-BJCFQkZE/TzihOSzkxKI/AAAAAAAADUE/D455LVlSndo/s1600/image017-753037.jpg"><img src="http://4.bp.blogspot.com/-Vf-BJCFQkZE/TzihOSzkxKI/AAAAAAAADUE/D455LVlSndo/s320/image017-753037.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489794630501538" /></a><o:p></o:p></p> <p class="MsoListParagraphCxSpMiddle" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l1 level1 lfo2;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">2)<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]--><a href="http://2.bp.blogspot.com/-Rm5rEysWqo4/TzihOUWK2lI/AAAAAAAADUQ/6xcbXex1Rnw/s1600/image018-753855.jpg"><img src="http://2.bp.blogspot.com/-Rm5rEysWqo4/TzihOUWK2lI/AAAAAAAADUQ/6xcbXex1Rnw/s320/image018-753855.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489795044039250" /></a><o:p></o:p></p> <p class="MsoListParagraphCxSpLast" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l1 level1 lfo2;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">3)<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]--><a href="http://3.bp.blogspot.com/-Z-T69Fjy_14/TzihPDagVzI/AAAAAAAADUc/Vil4tSZhENE/s1600/image019-755849.png"><img src="http://3.bp.blogspot.com/-Z-T69Fjy_14/TzihPDagVzI/AAAAAAAADUc/Vil4tSZhENE/s320/image019-755849.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489807678691122" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Please note that I added<b> Invoice </b>field<b> </b>which is not included in General Journal AIF Web Service data set by default. Also to manipulate with Customer account I added custom <b>CustAccount</b> field, after initial import this field will be used in X++ Job to populate LedgerDimension field in LedgerJournalTrans table based on Customer account specified. In my previous walkthroughs I used different approach which doesn’t require the customization of AX data model (the structure of LedgerJournalTrans table) when I used Description field to bring Customer account info over to AX. <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> When you will try to publish LedgerJournalTrans table data you will see “Method AxdBase.getDimensionId must be overridden” error<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Dynamics AX Error<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-yPK8jFuTcF8/TzihPQfdJpI/AAAAAAAADUk/FOvlBI_WbpM/s1600/image020-756973.png"><img src="http://1.bp.blogspot.com/-yPK8jFuTcF8/TzihPQfdJpI/AAAAAAAADUk/FOvlBI_WbpM/s320/image020-756973.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489811189114514" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> This error occurs because there’s no behavior defined in Generic document AIF document class (AxdGenericDocument) which is used when you work with raw tables as it relates to LedgerDimension field(s) processing.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-tUjU3wbbWFY/TzihPp8k1xI/AAAAAAAADU0/auHZvwptmAk/s1600/image021-757937.png"><img src="http://1.bp.blogspot.com/-tUjU3wbbWFY/TzihPp8k1xI/AAAAAAAADU0/auHZvwptmAk/s320/image021-757937.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489818022139666" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Please note that General Journal AIF document class does have this behavior defined, that’s why it can handle LedgerDimension field(s) fine.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-YnzE8hO4fsQ/TzihQNkqX0I/AAAAAAAADVA/llUdthANdIk/s1600/image022-759967.png"><img src="http://1.bp.blogspot.com/-YnzE8hO4fsQ/TzihQNkqX0I/AAAAAAAADVA/llUdthANdIk/s320/image022-759967.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489827585515330" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Actually the actual LedgerDimension field(s) handling happens during deserialization in AxdLedgerGeneralJournal class, here in getDimensionId method the values get stored for future processing. <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Solution: <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> The next logical step is to override getDimensionId method in AxdGenericDocument class assuming that we just want to import customer transactions for now<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-yZfgsGoKwZ8/TzihQTfSknI/AAAAAAAADVQ/TNyKVDsK8ZE/s1600/image023-761591.png"><img src="http://2.bp.blogspot.com/-yZfgsGoKwZ8/TzihQTfSknI/AAAAAAAADVQ/TNyKVDsK8ZE/s320/image023-761591.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489829173596786" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> However with this code (stub) we can bypass the error but not populate LedgerDimension field(s) values appropriately. In order to populate LedgerDimension field(s) values I modified this method to look like the following<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-lCt8IGCGwkk/TzihRKSXV6I/AAAAAAAADVY/-gFdvhoL3zw/s1600/image024-763959.jpg"><img src="http://2.bp.blogspot.com/-lCt8IGCGwkk/TzihRKSXV6I/AAAAAAAADVY/-gFdvhoL3zw/s320/image024-763959.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489843883333538" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> This will take care of populating Offset account on General Journal line level properly when using raw tables. Please note that Customer account field will be populated separately and then X++ job will be used to populate appropriate LedgerDimension value which corresponds to particular Customer account. <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> X++ Job<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-T_rx9ghIMro/TzihRAWDieI/AAAAAAAADVo/GAx2c41O9to/s1600/image025-764675.jpg"><img src="http://2.bp.blogspot.com/-T_rx9ghIMro/TzihRAWDieI/AAAAAAAADVo/GAx2c41O9to/s320/image025-764675.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489841214458338" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Sequence</b>: <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoListParagraphCxSpFirst" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l0 level1 lfo3;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">1.<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->LedgerJournalTable – Publish Selected<o:p></o:p></p> <p class="MsoListParagraphCxSpLast" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l0 level1 lfo3;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">2.<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->LedgerJournalTrans – Publish Selected<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Result</b>: <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Dynamics AX – General Journal <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-CKir4E50cmI/TzihRuWo54I/AAAAAAAADVw/2QBVNS6jbP8/s1600/image026-766874.png"><img src="http://1.bp.blogspot.com/-CKir4E50cmI/TzihRuWo54I/AAAAAAAADVw/2QBVNS6jbP8/s320/image026-766874.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489853564938114" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Dynamics AX – Execute X++ Job<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-TsSQkmRCUNI/TzihTcep0nI/AAAAAAAADV4/cdqaGkTGVyA/s1600/image027-773501.jpg"><img src="http://1.bp.blogspot.com/-TsSQkmRCUNI/TzihTcep0nI/AAAAAAAADV4/cdqaGkTGVyA/s320/image027-773501.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489883126452850" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Dynamics AX – General Journal lines<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b><a href="http://2.bp.blogspot.com/-L2Ju1Cea454/TzihTlq9xWI/AAAAAAAADWI/aBQJjBjEPbg/s1600/image028-774185.jpg"><img src="http://2.bp.blogspot.com/-L2Ju1Cea454/TzihTlq9xWI/AAAAAAAADWI/aBQJjBjEPbg/s320/image028-774185.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489885594010978" /></a><o:p></o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Dynamics AX – General Ledger Posting<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://3.bp.blogspot.com/-2UGxFdO0JXY/TzihUMnsFZI/AAAAAAAADWc/dPZHqgXpbPg/s1600/image029-776471.png"><img src="http://3.bp.blogspot.com/-2UGxFdO0JXY/TzihUMnsFZI/AAAAAAAADWc/dPZHqgXpbPg/s320/image029-776471.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489896049251730" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Alternatives:<o:p></o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Alternatively General Journal AIF Web Service (LedgerGeneralJournalService) Query may be modified to accommodate for more fields required for import such as Invoice, etc. This approach is much easier to implement by the user. <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b><a href="http://1.bp.blogspot.com/-HVq8I_pAt7A/TzihVxnn5sI/AAAAAAAADWo/IQu0L4Mzlcw/s1600/image030-783135.png"><img src="http://1.bp.blogspot.com/-HVq8I_pAt7A/TzihVxnn5sI/AAAAAAAADWo/IQu0L4Mzlcw/s320/image030-783135.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489923160958658" /></a><o:p></o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> After you customize the Query document service must be updated using Update document service function in Developer workspace and then incremental CIL must be generated.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> As an alternative to introduction of brand new field CustAccount to bring over Customer account information to AX you can make use LedgerDimension.MainAccount field.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> LedgerJournalTrans <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://3.bp.blogspot.com/-VGYPLK0LGnw/TzihWDYMiXI/AAAAAAAADW0/p7NFEPrIW5k/s1600/image031-784248.jpg"><img src="http://3.bp.blogspot.com/-VGYPLK0LGnw/TzihWDYMiXI/AAAAAAAADW0/p7NFEPrIW5k/s320/image031-784248.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489927928088946" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-5k84x4D7LrU/TzihWuwUl4I/AAAAAAAADXE/rqwsdSK5xxA/s1600/image032-785993.jpg"><img src="http://1.bp.blogspot.com/-5k84x4D7LrU/TzihWuwUl4I/AAAAAAAADXE/rqwsdSK5xxA/s320/image032-785993.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489939572004738" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-bQ6lDS5soEk/TzihXI2Wj6I/AAAAAAAADXM/ewbKSXJLGfY/s1600/image033-788216.jpg"><img src="http://1.bp.blogspot.com/-bQ6lDS5soEk/TzihXI2Wj6I/AAAAAAAADXM/ewbKSXJLGfY/s320/image033-788216.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489946576621474" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> This trick will require the customization of AxdGenericDocument AIF document class in order to handle special behavior associated with LedgerDimension field(s) (LedgerDimension, OffsetLedgerDimension) as shown below<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-GNlbhVeP754/TzihXUEu3iI/AAAAAAAADXc/-lPzbHRctqM/s1600/image034-789034.jpg"><img src="http://2.bp.blogspot.com/-GNlbhVeP754/TzihXUEu3iI/AAAAAAAADXc/-lPzbHRctqM/s320/image034-789034.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5708489949589724706" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Here I assume that in Account field I specify Customer account and in Offset account field I specify Ledger account (Clearing account).<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b><o:p> </o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Using these ideas to facilitate import effort the same result will be achieved! The difference is in the amount of customizations introduced in order to import the data.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b><o:p> </o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>SQL Trace: <o:p></o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b><o:p> </o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Summary</b>: For the purposes of small or medium data migration (data conversion) where performance is not a concern Excel can be used for import of customer transactions into Microsoft Dynamics AX 2012. General Journal AIF Web Service (LedgerGeneralJournalService) can be used in Excel for import of customer transactions. However General Journal AIF Web Service (LedgerGeneralJournalService) doesn’t expose all fields which may be required for import. <b>In this case General Journal AIF Web Service (LedgerGeneralJournalService) Query may be customized to accommodate for more fields, or raw tables may be used instead.</b> Excel template can be created and used for import of customer transactions.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>In this document raw tables approach was implemented to import customer transactions with required level of detail to demonstrate the mechanics of the process. In another similar walkthrough dedicated to import of vendor transactions with required level of detail I’ll focus on General Journal AIF Web Service modification approach which is much easier to implement for the user. <o:p></o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Author</b>: <a href="mailto:%20ani.kiev@gmail.com">Alex Anikiev</a>, PhD, MCP<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Tags:</b> Dynamics ERP,<b> </b>Dynamics AX 2012, Excel, Dynamics AX 2012 Excel Add-in, Data Import, Data Conversion, Data Migration, Application Integration Framework, Customer transactions. <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b><o:p> </o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Note:</b> This document is intended for information purposes only, presented as it is with no warranties from the author. This document may be updated with more content to better outline the concepts and describe the examples. <b>Please remove all Data Model changes introduced as a part of this demonstration once you complete data import exercise.</b> <o:p></o:p></p> </div>Alex Anikievhttp://www.blogger.com/profile/13438665643699572584noreply@blogger.com3tag:blogger.com,1999:blog-7090402456402630247.post-40822592947346156312012-02-08T18:48:00.001-08:002012-02-08T19:02:39.891-08:00Dynamics AX 2012 Excel Add-in - Storage Dimensions<div class="WordSection1"><p style="border-width: medium medium 1pt; border-style: none none solid; border-color: currentColor currentColor rgb(79, 129, 189); padding: 0in 0in 4pt; text-align: center; mso-element: para-border-div;" class="MsoTitleCxSpFirst" align="left">Dynamics AX 2012 Excel Add-in - Storage Dimensions</p><p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"><b>Purpose:</b> The purpose of this document is to illustrate how to work with Storage Dimensions in Dynamics AX 2012 Excel Add-in.</p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Challenge</b>: Data model changes in Dynamics AX related to high normalization and introduction of surrogate keys made import of data more complex. Additionally there are number of differences between Excel and AX Rich Client from UI standpoint when it comes to handling Inventory dimensions. AX Rich Client is obviously more dynamic comparing to Excel. AX Rich Client has a number of specialized classes to support Inventory dimensions related operations and UI. <span style="color:red;"> </span></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Solution</b>: Dynamics AX 2012 ships with the number of AIF Web Service which can be used in integration scenarios. However not all of them can be used in Excel at the moment for import of data. In order to manipulate with Storage Dimensions using Excel the appropriate tables can be used. In my example I’ll import required Storage Dimensions, then import Sales Orders information and specify Storage Dimensions related to Sales Order line. </p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Data Model</b>:<?xml:namespace prefix = o /><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <table style="border: currentColor; border-collapse: collapse;" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td style="background: rgb(217, 217, 217); padding: 0in 5.4pt; border: 1pt solid windowtext; width: 210.4pt;" valign="top" width="281"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Table Name<o:p></o:p></b></p> </td> <td style="background: rgb(217, 217, 217); border-width: 1pt 1pt 1pt medium; border-style: solid solid solid none; border-color: windowtext windowtext windowtext currentColor; padding: 0in 5.4pt; width: 268.4pt;" valign="top" width="358"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Table Description<o:p></o:p></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 210.4pt;" valign="top" width="281"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> InventSite<o:p></o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; width: 268.4pt;color:currentColor;" valign="top" width="358" > <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <span style="color:black;">The InventSite table contains information about sites.<o:p></o:p></span></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 210.4pt;" valign="top" width="281"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> InventLocation<o:p></o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; width: 268.4pt;color:currentColor;" valign="top" width="358" > <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <span style="color:black;">The InventLocation table contains information about warehouses.<o:p></o:p></span></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 210.4pt;" valign="top" width="281"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> WMSLocation<o:p></o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; width: 268.4pt;color:currentColor;" valign="top" width="358" > <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <span style="color:black;">The WMSLocation table contains information about locations.<o:p></o:p></span></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 210.4pt;" valign="top" width="281"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> WMSPallet<o:p></o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; width: 268.4pt;color:currentColor;" valign="top" width="358" > <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <span style="color:black;">The WMSPallet table contains information about pallets.<o:p></o:p></span></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 210.4pt;" valign="top" width="281"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> InventDim<o:p></o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; width: 268.4pt;color:currentColor;" valign="top" width="358" > <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <span style="color:black;">The InventDim table contains values for inventory dimensions.<o:p></o:p></span></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 210.4pt;" valign="top" width="281"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> InventSum<o:p></o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; width: 268.4pt;color:currentColor;" valign="top" width="358" > <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <span style="color:black;">The InventSum table contains information about the present and expected on-hand stock of items.<o:p></o:p></span></p> </td> </tr> </tbody> </table> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"><b>Data Model Diagram</b>:<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal">Inventory Dimensions <o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"><img border="0" alt="image" src="http://pp2.s3.amazonaws.com/6fb813dcafa54529/fedb0955007f4e30bb72a14fdab5a6b7.png" width="500" height="300" /></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Red</b> area highlights tables forming Product Dimensions data model<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Green</b> area highlights tables forming Storage Dimensions data model<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Blue</b> area highlights tables forming Tracking Dimensions data model<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><o:p> </o:p></b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Storage Dimensions</p><p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"><img border="0" alt="image" src="http://pp2.s3.amazonaws.com/6fb813dcafa54529/67071dc5e21d4cdb8f0c0a41b538e442.png" width="404" height="312" /></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> In Rich Client when Inventory Dimensions are specified, for example, on Sales order line or Purchase order line the system will automatically create InventDim table record and allocate InventDimId value if specified combination of inventory dimensions doesn’t exist in InventDim table yet, otherwise existing InventDimId which corresponds to the specified combination will be re-used. This means that the system will not create InventDim table record for the combination which is not yet used. If you create Sales order line or Purchase order line programmatically using X++ you would use Tables\InventDim\findOrCreate method to assign proper InventDimId to SalesLine table buffer or PurchLine table buffer. </p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> In Excel Add-in there’s no dedicated control related to InventDimId EDT (InventDimId field) yet to enable automatic creation of InventDim table record based on Inventory Dimensions - “segments”. I would anticipate that we have something similar to Excel Add-in segmented control for DimensionDynamicAccount EDT (LedgerDimension field).<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <table style="border: currentColor; border-collapse: collapse;" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td style="padding: 0in 5.4pt; border: 1pt solid windowtext; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> InventDimId field lookup<o:p></o:p></p> </td> <td style="border-width: 1pt 1pt 1pt medium; border-style: solid solid solid none; border-color: windowtext windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> LedgerDimension field lookup<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <img border="0" alt="image" src="http://pp2.s3.amazonaws.com/6fb813dcafa54529/d3b4ec1fa8e8445382d31915ae2d4819.jpg" width="350" height="239" /><o:p></o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <img border="0" alt="image" src="http://pp2.s3.amazonaws.com/6fb813dcafa54529/d123db9660d3437da78e466f73b36843.jpg" width="496" height="223" /><o:p></o:p></p> </td> </tr> </tbody> </table> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal">If you modify AutoLookup field group in InventDim table to include {InventDimId, ConfigId, InventSizeId, InventColorId, InventSiteId, InventLocationId, WMSLocationId, WMSPalletId, InventBatchId, InventSerialId} fields then you can get full list of Inventory Dimensions displayed on Excel Add-in lookup form, however you will still have to specify existing InventDimId before you can create Sales order line or Purchase order line for specific combination of Inventory Dimensions.</p><p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p><a href="http://1.bp.blogspot.com/-KpHJANZyiFo/TzM0CZA6cwI/AAAAAAAADLA/SqqwnNtqMrI/s1600/image009-721455.jpg"><img id="BLOGGER_PHOTO_ID_5706962368487650050" border="0" alt="" src="http://1.bp.blogspot.com/-KpHJANZyiFo/TzM0CZA6cwI/AAAAAAAADLA/SqqwnNtqMrI/s320/image009-721455.jpg" /></a> <o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal">In order to resolve this problem appropriate combinations of Inventory Dimensions will have to be created upfront and then Excel VLOOKUP function can be used to pull out the particular InventDimId and apply it to specific Sales order line or Purchase order line.</p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Excel Add-in can be used to create combinations of Inventory Dimensions in InventDim table.<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Alternatively you can write X++ job that will programmatically create desired combinations of Inventory Dimensions for you. Please see the example of X++ job below<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://3.bp.blogspot.com/-qgc6zGwDsZo/TzM0CoCfdKI/AAAAAAAADLM/vORjQNOxamw/s1600/image010-722139.jpg"><img id="BLOGGER_PHOTO_ID_5706962372520801442" border="0" alt="" src="http://3.bp.blogspot.com/-qgc6zGwDsZo/TzM0CoCfdKI/AAAAAAAADLM/vORjQNOxamw/s320/image010-722139.jpg" /></a></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Storage Dimensions</b> in Dynamics AX 2012 are Site, Warehouse, Location and Pallet.</p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Storage Dimensions Walkthrough</b>: </p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Connection<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://2.bp.blogspot.com/-BMOin0Dgvjc/TzM0Czxl6MI/AAAAAAAADLc/AQQjfKUGtEU/s1600/image011-723484.png"><img id="BLOGGER_PHOTO_ID_5706962375671146690" border="0" alt="" src="http://2.bp.blogspot.com/-BMOin0Dgvjc/TzM0Czxl6MI/AAAAAAAADLc/AQQjfKUGtEU/s320/image011-723484.png" /></a></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Add Tables<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://4.bp.blogspot.com/-BdomCaV1IGE/TzM0DeGV1II/AAAAAAAADLk/qXZhD14r-DA/s1600/image012-725290.jpg"><img id="BLOGGER_PHOTO_ID_5706962387032462466" border="0" alt="" src="http://4.bp.blogspot.com/-BdomCaV1IGE/TzM0DeGV1II/AAAAAAAADLk/qXZhD14r-DA/s320/image012-725290.jpg" /></a></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Field Chooser<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://1.bp.blogspot.com/-7zCr1zUAnn8/TzM0DqoVSpI/AAAAAAAADLw/jLmrVJ7wtzk/s1600/image013-726117.jpg"><img id="BLOGGER_PHOTO_ID_5706962390396258962" border="0" alt="" src="http://1.bp.blogspot.com/-7zCr1zUAnn8/TzM0DqoVSpI/AAAAAAAADLw/jLmrVJ7wtzk/s320/image013-726117.jpg" /></a></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> InventSite<o:p></o:p></p> <table style="border: currentColor; border-collapse: collapse;" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td style="background: rgb(166, 166, 166); padding: 0in 5.4pt; border: 1pt solid windowtext; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Name<o:p></o:p></b></p> </td> <td style="background: rgb(166, 166, 166); border-width: 1pt 1pt 1pt medium; border-style: solid solid solid none; border-color: windowtext windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Site<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Name<o:p></o:p></p> </td> </tr> </tbody> </table> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"><a href="http://2.bp.blogspot.com/-Yu1VUzAD-Z0/TzM0D2rNysI/AAAAAAAADL8/9snsRZCv3aQ/s1600/image014-727535.png"><img id="BLOGGER_PHOTO_ID_5706962393629575874" border="0" alt="" src="http://2.bp.blogspot.com/-Yu1VUzAD-Z0/TzM0D2rNysI/AAAAAAAADL8/9snsRZCv3aQ/s320/image014-727535.png" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal">SiteReqPolicy<o:p></o:p></p> <table style="border: currentColor; border-collapse: collapse;" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td style="background: rgb(166, 166, 166); padding: 0in 5.4pt; border: 1pt solid windowtext; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Name<o:p></o:p></b></p> </td> <td style="background: rgb(166, 166, 166); border-width: 1pt 1pt 1pt medium; border-style: solid solid solid none; border-color: windowtext windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Site<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Use transfer journals for movements within site<o:p></o:p></p> </td> </tr> </tbody> </table> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"><a href="http://1.bp.blogspot.com/-KsSyq4dUgo8/TzM0ELErb2I/AAAAAAAADMI/jM5oPgOtLjc/s1600/image015-728686.png"><img id="BLOGGER_PHOTO_ID_5706962399105085282" border="0" alt="" src="http://1.bp.blogspot.com/-KsSyq4dUgo8/TzM0ELErb2I/AAAAAAAADMI/jM5oPgOtLjc/s320/image015-728686.png" /></a></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> InventLocation<o:p></o:p></p> <table style="border: currentColor; border-collapse: collapse;" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td style="background: rgb(166, 166, 166); padding: 0in 5.4pt; border: 1pt solid windowtext; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Name<o:p></o:p></b></p> </td> <td style="background: rgb(166, 166, 166); border-width: 1pt 1pt 1pt medium; border-style: solid solid solid none; border-color: windowtext windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Site <o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Warehouse<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Name<o:p></o:p></p> </td> </tr> </tbody> </table> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"><a href="http://4.bp.blogspot.com/-Fet_2W0kUjg/TzM0EjAscOI/AAAAAAAADMU/zCGuf3Pz3N4/s1600/image016-730308.png"><img id="BLOGGER_PHOTO_ID_5706962405530824930" border="0" alt="" src="http://4.bp.blogspot.com/-Fet_2W0kUjg/TzM0EjAscOI/AAAAAAAADMU/zCGuf3Pz3N4/s320/image016-730308.png" /></a></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Result</b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Dynamics AX – Site<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://2.bp.blogspot.com/-hEaAM1AAO9w/TzM0E7m9gPI/AAAAAAAADMg/VJQmFXrxfMI/s1600/image017-731395.png"><img id="BLOGGER_PHOTO_ID_5706962412133777650" border="0" alt="" src="http://2.bp.blogspot.com/-hEaAM1AAO9w/TzM0E7m9gPI/AAAAAAAADMg/VJQmFXrxfMI/s320/image017-731395.png" /></a></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Dynamics AX – Warehouse<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://1.bp.blogspot.com/-1G3vDkXzuYY/TzM0FM1zNLI/AAAAAAAADMo/cUikZ2tpP0M/s1600/image018-732752.png"><img id="BLOGGER_PHOTO_ID_5706962416759420082" border="0" alt="" src="http://1.bp.blogspot.com/-1G3vDkXzuYY/TzM0FM1zNLI/AAAAAAAADMo/cUikZ2tpP0M/s320/image018-732752.png" /></a></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Add Tables<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><a href="http://4.bp.blogspot.com/-cnI0p6378rU/TzM0Fv30haI/AAAAAAAADM0/VVV-aD8u5UE/s1600/image019-734841.png"><img id="BLOGGER_PHOTO_ID_5706962426163135906" border="0" alt="" src="http://4.bp.blogspot.com/-cnI0p6378rU/TzM0Fv30haI/AAAAAAAADM0/VVV-aD8u5UE/s320/image019-734841.png" /></a></b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Field Chooser<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://2.bp.blogspot.com/-0YIcwqXdo8I/TzM0GB-c7gI/AAAAAAAADNE/O3OTqEwZ1OE/s1600/image020-736238.jpg"><img id="BLOGGER_PHOTO_ID_5706962431022788098" border="0" alt="" src="http://2.bp.blogspot.com/-0YIcwqXdo8I/TzM0GB-c7gI/AAAAAAAADNE/O3OTqEwZ1OE/s320/image020-736238.jpg" /></a></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> InventDim<o:p></o:p></p> <table style="border: currentColor; border-collapse: collapse;" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td style="background: rgb(166, 166, 166); padding: 0in 5.4pt; border: 1pt solid windowtext; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Name<o:p></o:p></b></p> </td> <td style="background: rgb(166, 166, 166); border-width: 1pt 1pt 1pt medium; border-style: solid solid solid none; border-color: windowtext windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><unbound><o:p></o:p></b></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><u>Combination<o:p></o:p></u></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> InventDim.InventDimId<o:p></o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Dimension No.<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> InventDim.InventSiteId<o:p></o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Site<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> InventDim.InventLocationId<o:p></o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Warehouse<o:p></o:p></p> </td> </tr> </tbody> </table> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal">Please note that I added unbound <b><u>Combination</u></b> field into Ax_InventDim table<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <?xml:namespace prefix = v /><v:shape style="width: 274.5pt; height: 29.25pt;" id="_x0000_i1029" ole="" type="#_x0000_t75"> <v:imagedata title="" src="cid:image021.png@01CCE6AB.4D3F9370"> </v:imagedata></v:shape><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><u>Combination</u></b> field is simple concatenation of 2 strings {Site, Warehouse} with “” delimiter in the middle. This field will be used in VLOOKUP function during the import of Sales Order lines in order to put correct InventDimId value in SalesLine.InventDimId field.</p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://1.bp.blogspot.com/-rZ503z5vqu0/TzM0GyCcR0I/AAAAAAAADNY/Vyythx_hQfY/s1600/image023-739129.png"><img id="BLOGGER_PHOTO_ID_5706962443924424514" border="0" alt="" src="http://1.bp.blogspot.com/-rZ503z5vqu0/TzM0GyCcR0I/AAAAAAAADNY/Vyythx_hQfY/s320/image023-739129.png" /></a></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Usually when you are doing Data Import you either don’t have <b>InventDimId</b> easily accessible or you do by opening Table Browser or another Excel tab with InventDim table data, and ultimately anyways you’ll have to copy and paste InventDimId value into, for example, SalesLine.InventDimId field.<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> In fact you will always have an information about what Site and Warehouse (in my example) this Sales Order line should belong to even not having InventDimId value.<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> That’s why I’m going introduce similar <b><u>Combination</u></b> field in Ax_SalesLine table to compare it against <b><u>Combination</u></b> field in Ax_InventDim table and automatically put required InventDimId value in SalesLine.InventDimId without a need to manually do copy and paste. </p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Publish Selected – InventDim<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://1.bp.blogspot.com/-iMm8yL83jHo/TzM0GwTIB_I/AAAAAAAADNo/XpbzSRC5wp4/s1600/image024-739908.jpg"><img id="BLOGGER_PHOTO_ID_5706962443457529842" border="0" alt="" src="http://1.bp.blogspot.com/-iMm8yL83jHo/TzM0GwTIB_I/AAAAAAAADNo/XpbzSRC5wp4/s320/image024-739908.jpg" /></a></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Result</b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Dynamics AX – Table Browser<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><a href="http://3.bp.blogspot.com/-2MgFqBggen8/TzM0HdgQsRI/AAAAAAAADN0/mX3sFuPENR0/s1600/image025-741331.jpg"><img id="BLOGGER_PHOTO_ID_5706962455592218898" border="0" alt="" src="http://3.bp.blogspot.com/-2MgFqBggen8/TzM0HdgQsRI/AAAAAAAADN0/mX3sFuPENR0/s320/image025-741331.jpg" /></a></b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Sales order ID number sequence<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://4.bp.blogspot.com/-XZh6btiE4Fc/TzM0HlR8AwI/AAAAAAAADOA/bOMY6ODaIsk/s1600/image026-742729.jpg"><img id="BLOGGER_PHOTO_ID_5706962457679627010" border="0" alt="" src="http://4.bp.blogspot.com/-XZh6btiE4Fc/TzM0HlR8AwI/AAAAAAAADOA/bOMY6ODaIsk/s320/image026-742729.jpg" /></a></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> SalesTable<o:p></o:p></p> <table style="border: currentColor; border-collapse: collapse;" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td style="background: rgb(166, 166, 166); padding: 0in 5.4pt; border: 1pt solid windowtext; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Name<o:p></o:p></b></p> </td> <td style="background: rgb(166, 166, 166); border-width: 1pt 1pt 1pt medium; border-style: solid solid solid none; border-color: windowtext windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Currency<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Customer account<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Customer group<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Invoice account<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Language<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Requested ship date<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Sales order<o:p></o:p></p> </td> </tr> </tbody> </table> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"><a href="http://1.bp.blogspot.com/-FbZJ10ZHf8w/TzM0IMDnd1I/AAAAAAAADOQ/idaADpO9bVA/s1600/image027-743935.jpg"><img id="BLOGGER_PHOTO_ID_5706962468088543058" border="0" alt="" src="http://1.bp.blogspot.com/-FbZJ10ZHf8w/TzM0IMDnd1I/AAAAAAAADOQ/idaADpO9bVA/s320/image027-743935.jpg" /></a></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> SalesLine<o:p></o:p></p> <table style="border: currentColor; border-collapse: collapse;" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td style="background: rgb(166, 166, 166); padding: 0in 5.4pt; border: 1pt solid windowtext; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Name<o:p></o:p></b></p> </td> <td style="background: rgb(166, 166, 166); border-width: 1pt 1pt 1pt medium; border-style: solid solid solid none; border-color: windowtext windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><unbound><o:p></o:p></b></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><u>Combination<o:p></o:p></u></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Currency <o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Customer<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Group<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Requested ship date<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Sales order<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Item number<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Quantity<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Unit<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Unit price<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Net amount<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> SalesLine.InventDimId<o:p></o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Dimension No.<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><unbound><o:p></o:p></b></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><u>Site<o:p></o:p></u></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><unbound><o:p></o:p></b></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt;" valign="top" width="319"> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><u>Warehouse<o:p></o:p></u></b></p> </td> </tr> </tbody> </table> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"><a href="http://2.bp.blogspot.com/-9wbJMCiNabk/TzM0IZSroVI/AAAAAAAADOY/q23TmC67cj4/s1600/image028-745775.jpg"><img id="BLOGGER_PHOTO_ID_5706962471641391442" border="0" alt="" src="http://2.bp.blogspot.com/-9wbJMCiNabk/TzM0IZSroVI/AAAAAAAADOY/q23TmC67cj4/s320/image028-745775.jpg" /></a><o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"><a href="http://4.bp.blogspot.com/-tpGzkxXkKkU/TzM0IvsIDZI/AAAAAAAADOk/WxxY5i4tB3w/s1600/image029-746744.jpg"><img id="BLOGGER_PHOTO_ID_5706962477653691794" border="0" alt="" src="http://4.bp.blogspot.com/-tpGzkxXkKkU/TzM0IvsIDZI/AAAAAAAADOk/WxxY5i4tB3w/s320/image029-746744.jpg" /></a></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Please note that I added similar unbound <b><u>Combination</u></b> field into Ax_SalesLine table. The difference here is that <b><u>Site</u></b> and <b><u>Warehouse</u></b> fields in Ax_SalesLine table are also unbound. Again, usually you have the information about Site and Warehouse (in my example) particular Sales Order line should belong, but you don’t have InventDimId value itself. This becomes critical when you have a lot of combinations of Inventory Dimensions to be introduced into the system as a part of Data Import which will support Sales Order lines.</p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Similarly <b><u>Combination</u></b> field is simple concatenation of 2 strings {Site, Warehouse} with “” delimiter in the middle and it will be used in comparison against Combination field in Ax_InventDim table in order to put correct InventDimId value into SalesLine.InventDimId field. </p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://4.bp.blogspot.com/-LlOS_DYhANM/TzM0I6vL4vI/AAAAAAAADO0/1F8wc71wgac/s1600/image030-747843.png"><img id="BLOGGER_PHOTO_ID_5706962480619315954" border="0" alt="" src="http://4.bp.blogspot.com/-LlOS_DYhANM/TzM0I6vL4vI/AAAAAAAADO0/1F8wc71wgac/s320/image030-747843.png" /></a></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Publish Selected – Sales Line<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://1.bp.blogspot.com/-Zwvcz1Fg3Ok/TzM0JVUWaOI/AAAAAAAADO8/EVL47WmUJnI/s1600/image031-749519.jpg"><img id="BLOGGER_PHOTO_ID_5706962487754516706" border="0" alt="" src="http://1.bp.blogspot.com/-Zwvcz1Fg3Ok/TzM0JVUWaOI/AAAAAAAADO8/EVL47WmUJnI/s320/image031-749519.jpg" /></a></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Please note that bound InventDimId field in SalesLine table has a formula associated that uses VLOOKUP function. This is how we compare Combination fields in Ax_InventDim and Ax_SalesLine tables to find out about correct InventDimId value to be used in SalesLine.InventDimId field.</p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://2.bp.blogspot.com/-6S6GKtcusZY/TzM0JvsOPUI/AAAAAAAADPM/DRchNrKeB_w/s1600/image032-750398.png"><img id="BLOGGER_PHOTO_ID_5706962494833966402" border="0" alt="" src="http://2.bp.blogspot.com/-6S6GKtcusZY/TzM0JvsOPUI/AAAAAAAADPM/DRchNrKeB_w/s320/image032-750398.png" /></a></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> By other words, I’m looking for the value from Combination field from Ax_SalesLine table (1<sup>st</sup> parameter) in Ax_InventDim table (2<sup>nd</sup> parameter). If exact match (4<sup>th</sup> parameter) was found then the value in 2<sup>nd</sup> column (3<sup>rd</sup> parameter) will be returned as the result. </p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Please note that by default the category in InventDimId field is Text which has to be changed to General to be able to apply the formula.<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://3.bp.blogspot.com/-FVW3ehTbGnE/TzM0KOoV6EI/AAAAAAAADPU/hTKuQBFdwh4/s1600/image033-752139.jpg"><img id="BLOGGER_PHOTO_ID_5706962503139190850" border="0" alt="" src="http://3.bp.blogspot.com/-FVW3ehTbGnE/TzM0KOoV6EI/AAAAAAAADPU/hTKuQBFdwh4/s320/image033-752139.jpg" /></a></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Please note that there’re number of prerequisites in order to apply VLOOKUP formula correctly.<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Important:<o:p></o:p></b></p> <p style="line-height: normal; text-indent: -0.25in; margin-bottom: 0pt; mso-add-space: auto; mso-list: l0 level1 lfo1;" class="MsoListParagraphCxSpFirst"> <span style="mso-list: Ignore;">1.<span> </span></span><b><u>Combination</u></b> field has to be left-most field in Ax_SalesLine table<o:p></o:p></p> <p style="line-height: normal; text-indent: -0.25in; margin-bottom: 0pt; mso-add-space: auto; mso-list: l0 level1 lfo1;" class="MsoListParagraphCxSpMiddle"> <span style="mso-list: Ignore;">2.<span> </span></span>No duplicate values are allowed in <b><u>Combination</u></b> field in Ax_InventDim table because we are looking for the exact match<o:p></o:p></p> <p style="line-height: normal; text-indent: -0.25in; margin-bottom: 0pt; mso-add-space: auto; mso-list: l0 level1 lfo1;" class="MsoListParagraphCxSpLast"> <span style="mso-list: Ignore;">3.<span> </span></span>You can use static named ranges, absolute cells coordinates or table name(s) in Excel to effectively define <b>table_array</b> value (2nd parameter in VLOOKUP function)<b><span style="color:red;"> </span></b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> You may define Filter criteria to fetch only certain InventDim table records into Ax_InventDim table in Excel. Consequently it may happen that there’s no match found in Ax_InventDim table, so Excel will put #NA value into the cell. In order to substitute #NA (Not Available) to something more meaningful you can change VLOOKUP formula to be<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>=IF(ISNA(VLOOKUP([Combination],Ax_InventDim,2,FALSE)),"AllBlank",VLOOKUP([Combination],Ax_InventDim,2,FALSE))</b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Please note that “AllBlank” represents the record in InventDim table which has no Inventory Dimensions defined<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://4.bp.blogspot.com/-Axv6b0joB2k/TzM0KCpC-_I/AAAAAAAADPg/6up93R1zJDc/s1600/image034-752925.jpg"><img id="BLOGGER_PHOTO_ID_5706962499920919538" border="0" alt="" src="http://4.bp.blogspot.com/-Axv6b0joB2k/TzM0KCpC-_I/AAAAAAAADPg/6up93R1zJDc/s320/image034-752925.jpg" /></a></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> After Sales Order line(s) information gets published the system will reread the information and display the results to you, consequently you will have a value displayed in InventDimId field in SalesLine table instead of VLOOKUP formula.</p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Result</b>: </p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Dynamics AX – Sales Order <o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b><a href="http://4.bp.blogspot.com/-5IObUUre0f0/TzM0KtQApRI/AAAAAAAADPs/5L5KjUYXnCs/s1600/image035-753984.jpg"><img id="BLOGGER_PHOTO_ID_5706962511358633234" border="0" alt="" src="http://4.bp.blogspot.com/-5IObUUre0f0/TzM0KtQApRI/AAAAAAAADPs/5L5KjUYXnCs/s320/image035-753984.jpg" /></a></b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> Dynamics AX – Sales Order Invoice<o:p></o:p></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <a href="http://1.bp.blogspot.com/-wIK9ssu0EiE/TzM0K4r83II/AAAAAAAADP4/wCb7s48sNcU/s1600/image036-755146.jpg"><img id="BLOGGER_PHOTO_ID_5706962514428615810" border="0" alt="" src="http://1.bp.blogspot.com/-wIK9ssu0EiE/TzM0K4r83II/AAAAAAAADP4/wCb7s48sNcU/s320/image036-755146.jpg" /></a></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>SQL Trace: </b></p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Summary</b>: For the purposes of small or medium data migration (data conversion) where performance is not a concern Excel can be used for import of data into Dynamics AX 2012. Although there’s no AIF Web Service to import Inventory Dimensions combinations (into InventDim table) upfront, appropriate tables can be used instead. Excel template can be created and used for import of data.</p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Author</b>: <a href="mailto:%20ani.kiev@gmail.com">Alex Anikiev</a>, PhD, MCP</p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Tags:</b> Dynamics ERP,<b> </b>Dynamics AX 2012, Excel, Dynamics AX 2012 Excel Add-in, Data Import, Data Conversion, Data Migration, Application Integration Framework, Inventory Dimensions, Storage Dimensions. </p> <p style="line-height: normal; margin-bottom: 0pt;" class="MsoNormal"> <b>Note:</b> This document is intended for information purposes only, presented as it is with no warranties from the author. This document may be updated with more content to better outline the concepts and describe the examples. It’s recommended that all Data Model changes introduced as a part of this demonstration will be removed once you complete data import exercise.</p> </div>Alex Anikievhttp://www.blogger.com/profile/13438665643699572584noreply@blogger.com2tag:blogger.com,1999:blog-7090402456402630247.post-68514405688457031062012-01-31T22:37:00.000-08:002012-01-31T22:42:25.558-08:00Dynamics AX 2012 Excel Add-in - Add Data<div class="WordSection1"> <p class="MsoTitleCxSpFirst" align="center" style="text-align: left;"><b>Dynamics AX 2012 <span style="text-align: center; ">Excel Add-in – Add Data</span></b></p><p class="MsoTitleCxSpLast" align="center" style="text-align:center"><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Purpose:</b> The purpose of this document is to illustrate how to enable AIF Web Service for Dynamics AX 2012 Excel Add-in.</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Task</b>: In order to enable AIF Web Service for Dynamics AX 2012 Excel Add-in 2 main prerequisites have to be met: AIF Web Service has to be deployed as a part of Service Group and AIF Web Service has to be added to Document Data Sources. This document describes the sequence of steps on how to enable existing (standard) or brand-new (custom) AIF Web Service for Dynamics AX 2012 Excel Add-in. <span style="color:red"> </span></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Data Model</b>:<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style="border-collapse:collapse"> <tbody> <tr> <td width="351" valign="top" style="width:210.4pt;border:solid windowtext 1.0pt;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Table Name<o:p></o:p></b></p> </td> <td width="447" valign="top" style="width:268.4pt;border:solid windowtext 1.0pt;border-left:none;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Table Description<o:p></o:p></b></p> </td> </tr> <tr> <td width="351" valign="top" style="width:210.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> AlexTable<o:p></o:p></p> </td> <td width="447" valign="top" style="width:268.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">Sample table <o:p></o:p></span></p> </td> </tr> </tbody> </table> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Data Model Diagram</b>:</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Sample Data Model<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-kF5V3cicBFY/Tyjd5gcUP4I/AAAAAAAAC-Q/zn9Sms4wsSg/s1600/image028-710515.png"><img src="http://1.bp.blogspot.com/-kF5V3cicBFY/Tyjd5gcUP4I/AAAAAAAAC-Q/zn9Sms4wsSg/s320/image028-710515.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5704052908095717250" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Walkthrough</b>:</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Existing (standard) AIF Web Service<o:p></o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> In this demonstration I will enable existing VendVendTableService (Vendor) AIF Web Service for Dynamics AX 2012 Excel Add-in</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> At the beginning VendVendTableService AIF Web Service is not available in Excel Add-in<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://3.bp.blogspot.com/-9C-gEeA05bQ/Tyjd54MJlvI/AAAAAAAAC-Y/DY4UM30INYg/s1600/image003-711273.jpg"><img src="http://3.bp.blogspot.com/-9C-gEeA05bQ/Tyjd54MJlvI/AAAAAAAAC-Y/DY4UM30INYg/s320/image003-711273.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5704052914470360818" /></a></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> In order to deploy VendVendTableService AIF Web Service I will add it to AccountsPayableServices Service Group which is currently not deployed<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-5M5xBu3niwk/Tyjd6BGWKEI/AAAAAAAAC-o/qYVmJUqSfI8/s1600/image004-712301.png"><img src="http://1.bp.blogspot.com/-5M5xBu3niwk/Tyjd6BGWKEI/AAAAAAAAC-o/qYVmJUqSfI8/s320/image004-712301.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5704052916861937730" /></a></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> I added VendVendTableService AIF Web Service to AccountsPayableService Service Group in AOT and then deployed Service Group<o:p></o:p></p> <table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style="border-collapse:collapse"> <tbody> <tr> <td width="399" valign="top" style="width:239.4pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-3sv_wss1u24/Tyjd6cm8iPI/AAAAAAAAC-0/PaEovyFlu5U/s1600/image005-713826.png"><img src="http://4.bp.blogspot.com/-3sv_wss1u24/Tyjd6cm8iPI/AAAAAAAAC-0/PaEovyFlu5U/s320/image005-713826.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5704052924246427890" /></a><o:p></o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-HBXDhxarKMo/Tyjd6ta3GUI/AAAAAAAAC_A/F85f8ZTySVw/s1600/image006-714879.png"><img src="http://4.bp.blogspot.com/-HBXDhxarKMo/Tyjd6ta3GUI/AAAAAAAAC_A/F85f8ZTySVw/s320/image006-714879.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5704052928759142722" /></a></p></td></tr></tbody></table> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> After Service Group is deployed you will see the following infolog<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://3.bp.blogspot.com/-JVfetjBuGOs/Tyjd7HlU0DI/AAAAAAAAC_M/gt9ZfRuMPbc/s1600/image007-716339.jpg"><img src="http://3.bp.blogspot.com/-JVfetjBuGOs/Tyjd7HlU0DI/AAAAAAAAC_M/gt9ZfRuMPbc/s320/image007-716339.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5704052935782354994" /></a></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Now Service Group will be activated in Inbound ports form in Administration > Setup > AIF<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-aoTswG8YrkM/Tyjd7XfoKKI/AAAAAAAAC_Y/PKjDasrcQxw/s1600/image008-717436.png"><img src="http://4.bp.blogspot.com/-aoTswG8YrkM/Tyjd7XfoKKI/AAAAAAAAC_Y/PKjDasrcQxw/s320/image008-717436.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5704052940053424290" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Please note that you can see WSDL in Web Browser as shown below<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-mEUkvV6mLrk/Tyjd7wx05ZI/AAAAAAAAC_k/4kEtmW78lmc/s1600/image009-718981.jpg"><img src="http://2.bp.blogspot.com/-mEUkvV6mLrk/Tyjd7wx05ZI/AAAAAAAAC_k/4kEtmW78lmc/s320/image009-718981.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5704052946840642962" /></a></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Finally VendVendTableService AIF Web Service has to be added to Document Data Sources form<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-GhMfEXYTfSk/Tyjd8DwSu9I/AAAAAAAAC_4/FOcfM5fW2BA/s1600/image010-720042.png"><img src="http://1.bp.blogspot.com/-GhMfEXYTfSk/Tyjd8DwSu9I/AAAAAAAAC_4/FOcfM5fW2BA/s320/image010-720042.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5704052951934483410" /></a></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Result:<o:p></o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> VendVendTableService AIF Web Service is now available in Excel Add-in<b><o:p></o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-ODbSXPvzX3s/Tyjd9HdCzjI/AAAAAAAADAA/L8o8-wlwKJM/s1600/image011-724121.jpg"><img src="http://1.bp.blogspot.com/-ODbSXPvzX3s/Tyjd9HdCzjI/AAAAAAAADAA/L8o8-wlwKJM/s320/image011-724121.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5704052970107358770" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Brand-new (custom) AIF Web Service<o:p></o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> In this demonstration I will create custom AlexQueryService AIF Web Service</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Project <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-QjY0ku5nB3I/Tyjd9CGdm1I/AAAAAAAADAQ/rPK256WCWJA/s1600/image012-724914.jpg"><img src="http://4.bp.blogspot.com/-QjY0ku5nB3I/Tyjd9CGdm1I/AAAAAAAADAQ/rPK256WCWJA/s320/image012-724914.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5704052968670468946" /></a></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Create Document Service<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Welcome<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <span style="font-size:22.0pt"><a href="http://4.bp.blogspot.com/-9Ou4K5vvx5o/Tyjd9qMvxWI/AAAAAAAADAc/v3plzT2Vbxc/s1600/image013-726293.jpg"><img src="http://4.bp.blogspot.com/-9Ou4K5vvx5o/Tyjd9qMvxWI/AAAAAAAADAc/v3plzT2Vbxc/s320/image013-726293.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5704052979434243426" /></a></span></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Select document parameters<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <span style="font-size:22.0pt"><a href="http://1.bp.blogspot.com/-TKTg4QKhrLc/Tyjd93pj5yI/AAAAAAAADAs/YapfS7UbTYA/s1600/image014-727433.jpg"><img src="http://1.bp.blogspot.com/-TKTg4QKhrLc/Tyjd93pj5yI/AAAAAAAADAs/YapfS7UbTYA/s320/image014-727433.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5704052983044761378" /></a></span></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Select code generation parameters<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <span style="font-size:22.0pt"><a href="http://1.bp.blogspot.com/-MA_1ReUvGCA/Tyjd-U9VeEI/AAAAAAAADA0/cntAYiSVvRg/s1600/image015-729142.jpg"><img src="http://1.bp.blogspot.com/-MA_1ReUvGCA/Tyjd-U9VeEI/AAAAAAAADA0/cntAYiSVvRg/s320/image015-729142.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5704052990912329794" /></a></span></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Generate code<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <span style="font-size:22.0pt"><a href="http://3.bp.blogspot.com/-bnmSdc9_R4Y/Tyjd-aL72AI/AAAAAAAADBA/uU8MqFD3QWU/s1600/image016-729803.jpg"><img src="http://3.bp.blogspot.com/-bnmSdc9_R4Y/Tyjd-aL72AI/AAAAAAAADBA/uU8MqFD3QWU/s320/image016-729803.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5704052992315742210" /></a></span></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Completed<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <span style="font-size:22.0pt"><a href="http://1.bp.blogspot.com/-Ed6COausiKc/Tyjd-0WH6GI/AAAAAAAADBI/HY_pr5QE9sA/s1600/image017-731021.jpg"><img src="http://1.bp.blogspot.com/-Ed6COausiKc/Tyjd-0WH6GI/AAAAAAAADBI/HY_pr5QE9sA/s320/image017-731021.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5704052999337797730" /></a></span></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>AxdAlexQuery Project<o:p></o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <span style="font-size:22.0pt"><a href="http://4.bp.blogspot.com/-TQHjKikox7g/Tyjd-zMK-UI/AAAAAAAADBU/JYkm8M-ZDVE/s1600/image018-731703.jpg"><img src="http://4.bp.blogspot.com/-TQHjKikox7g/Tyjd-zMK-UI/AAAAAAAADBU/JYkm8M-ZDVE/s320/image018-731703.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5704052999027620162" /></a></span></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Generate incremental CIL<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-vdovOoKCOkQ/Tyjd_YmYVtI/AAAAAAAADBk/tgC0IiH2db4/s1600/image019-733056.jpg"><img src="http://4.bp.blogspot.com/-vdovOoKCOkQ/Tyjd_YmYVtI/AAAAAAAADBk/tgC0IiH2db4/s320/image019-733056.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5704053009069659858" /></a></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> AIF Web Service<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <span style="font-size:22.0pt"><a href="http://4.bp.blogspot.com/-jNGQhl6pIGs/Tyjd_rnn3_I/AAAAAAAADBw/41IsanMRjPg/s1600/image020-734315.png"><img src="http://4.bp.blogspot.com/-jNGQhl6pIGs/Tyjd_rnn3_I/AAAAAAAADBw/41IsanMRjPg/s320/image020-734315.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5704053014175145970" /></a></span><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Add AIF Web Service to Service Group<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <span style="font-size:22.0pt"><a href="http://2.bp.blogspot.com/-rYkWnmaRJpc/Tyjd_wGgw6I/AAAAAAAADB8/Wd9p1pPB28Y/s1600/image021-735419.jpg"><img src="http://2.bp.blogspot.com/-rYkWnmaRJpc/Tyjd_wGgw6I/AAAAAAAADB8/Wd9p1pPB28Y/s320/image021-735419.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5704053015378445218" /></a></span><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Deploy Service Group<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <span style="font-size:22.0pt"><a href="http://4.bp.blogspot.com/-q9O-Xea0b_A/TyjeAAmdd8I/AAAAAAAADCI/C7XEntHaeiY/s1600/image022-736560.jpg"><img src="http://4.bp.blogspot.com/-q9O-Xea0b_A/TyjeAAmdd8I/AAAAAAAADCI/C7XEntHaeiY/s320/image022-736560.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5704053019807414210" /></a></span><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> After Service Group is deployed you will see the following infolog<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <span style="font-size:22.0pt"><a href="http://2.bp.blogspot.com/-E3PiqiDRa8Q/TyjeAXou2xI/AAAAAAAADCU/em1KU74X4nM/s1600/image023-737629.jpg"><img src="http://2.bp.blogspot.com/-E3PiqiDRa8Q/TyjeAXou2xI/AAAAAAAADCU/em1KU74X4nM/s320/image023-737629.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5704053025990957842" /></a></span></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> AlexServiceGroup will now be activated in Inbound ports form<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <span style="font-size:22.0pt"><a href="http://3.bp.blogspot.com/-K4u8rL77k9U/TyjeAh8SyDI/AAAAAAAADCg/Cq56x0pe4Xo/s1600/image024-738841.png"><img src="http://3.bp.blogspot.com/-K4u8rL77k9U/TyjeAh8SyDI/AAAAAAAADCg/Cq56x0pe4Xo/s320/image024-738841.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5704053028757358642" /></a></span><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Also you can see WSDL in Web Browser<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <span style="font-size:22.0pt"><a href="http://1.bp.blogspot.com/-3gm_QOZ0k0A/TyjeBAPqBpI/AAAAAAAADCs/WcHvecR4EL8/s1600/image025-740262.jpg"><img src="http://1.bp.blogspot.com/-3gm_QOZ0k0A/TyjeBAPqBpI/AAAAAAAADCs/WcHvecR4EL8/s320/image025-740262.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5704053036891637394" /></a></span><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Finally you will have to add AIF Web Service in Document data sources form<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <span style="font-size:22.0pt"><a href="http://1.bp.blogspot.com/-tYcD-lwJZpE/TyjeBcMpdvI/AAAAAAAADC4/NM7edRLvjw4/s1600/image026-741489.png"><img src="http://1.bp.blogspot.com/-tYcD-lwJZpE/TyjeBcMpdvI/AAAAAAAADC4/NM7edRLvjw4/s320/image026-741489.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5704053044395210482" /></a></span><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Result</b>: <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> AlexQueryService AIF Web Service is now available in Excel Add-in<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <span style="font-size:22.0pt"><a href="http://4.bp.blogspot.com/-C_biZ5Pbz5c/TyjeBxg-xuI/AAAAAAAADDE/RAPXa47KKDg/s1600/image027-743021.jpg"><img src="http://4.bp.blogspot.com/-C_biZ5Pbz5c/TyjeBxg-xuI/AAAAAAAADDE/RAPXa47KKDg/s320/image027-743021.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5704053050117637858" /></a></span><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Summary</b>: In order to enable AIF Web Service for Dynamics AX 2012 Excel Add-in 2 main prerequisites have to be met: AIF Web Service has to be deployed as a part of Service Group from AOT or from Inbound ports form in Administration > Setup > AIF and AIF Web Service has to be added to Document Data Sources on Document data sources form in Organization administration > Setup > Document management. You can add your AIF Web Service to newly created custom Service Group for deployment, or you can add your AIF Web Service to existing Service Group and redeploy it.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Author</b>: <a href="mailto:%20ani.kiev@gmail.com">Alex Anikiev</a>, PhD, MCP</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Tags:</b> Dynamics ERP,<b> </b>Dynamics AX 2012, Excel, Dynamics AX 2012 Excel Add-in, Data Import, Data Conversion, Data Migration, Application Integration Framework, Web Service, Add Data. </p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Note:</b> This document is intended for information purposes only, presented as it is with no warranties from the author. This document may be updated with more content to better outline the concepts and describe the examples. </p> </div>Alex Anikievhttp://www.blogger.com/profile/13438665643699572584noreply@blogger.com4tag:blogger.com,1999:blog-7090402456402630247.post-26199246727569771102012-01-29T23:03:00.001-08:002012-01-29T23:08:17.012-08:00Dynamics AX 2012 Sales Agreements Import using Excel Add-in<div class="WordSection1"> <div style="mso-element:para-border-div;border:none;border-bottom:solid #4F81BD 1.0pt;padding:0in 0in 4.0pt 0in"> <p class="MsoTitleCxSpFirst" align="center" style="text-align: left;"><b>Microsoft Dynamics AX 2012 <span style="text-align: center; ">Excel Add-in – Sales agreements Import</span></b></p><p class="MsoTitleCxSpLast" align="center" style="text-align:center"><o:p></o:p></p> </div> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Purpose:</b> The purpose of this document is to illustrate how to use Microsoft Dynamics AX 2012 Excel Add-in for import of sales agreements.</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Challenge</b>: Data model changes in Microsoft Dynamics related to high normalization and introduction of surrogate keys made some imports more complex. Moreover Sales Blanket orders functionality was completely redesigned and in Microsoft Dynamics AX 2012 it’s called Sales Agreements now.</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Solution</b>: Microsoft Dynamics AX 2012 ships with a number of AIF Web Service which can be used in integration scenarios. However there’s no AIF Web Service out-of-the-box that can be used in Excel at the moment for import of sales agreements.<span style="color:red"> </span>In order to import a sales agreement using Excel the appropriate tables will be used.</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Assumption</b>: The assumption is that appropriate reference data such as customers, etc. was created in advance.</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Data Model</b>:<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none"> <tbody> <tr> <td width="348" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Table Name<o:p></o:p></b></p> </td> <td width="450" valign="top" style="width:269.95pt;border:solid windowtext 1.0pt;border-left:none;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Table Description<o:p></o:p></b></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementClassification<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementClassification table contains the agreement classifications.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementClassificationTranslation<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementClassificationTranslation table contains the translations for the agreement classifications.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementHeader<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementHeader table contains each of the purchase and sales agreements.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementHeaderDefault<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementHeaderDefault table contains the release order defaulting policies.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementHeaderDefaultHistory<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementHeaderDefaultHistory table contains a snapshot of the release order defaulting policies.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementHeaderHistory<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementHeaderHistory table is a base table for the sales and purchase agreement header history tables.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementLine<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementLine table stores information about the purchase agreement details.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementLineDefault<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementLineDefault table contains the line release order defaulting policies.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementLineDefaultHistory<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementLineDefaultHistory table contains a snapshot of line release order defaulting policies.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementLineHistory<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementLineHistory table contains a snapshot of the agreement lines.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementLineQuantityCommitment<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementLineQuantityCommitment table contains each of the agreement lines of the quantity type.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementLineQuantityCommitmentHistory<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementLineQuantityCommitmentHistory table contains a snapshot of agreement quantity lines.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementLineReference<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementLineReference table contains the relation between intercompany sales agreement lines and intercompany purchase agreement lines.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementLineReleasedLine<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementLineReleasedLine table contains released agreement lines.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementLineReleasedLineHistory<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementLineReleasedLineHistory table contains a snapshot of released agreement lines.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementLineVolumeCommitment<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementLineVolumeCommitment table contains each of the agreement lines of the volume type.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementLineVolumeCommitmentHistory<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementLineVolumeCommitmentHistory table contains a snapshot of agreement volume lines.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementReference<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementReference table contains the relation between intercompany sales agreement headers and intercompany purchase agreement headers.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementReleaseHeaderMatch<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementReleaseHeaderMatch table contains matchings between agreements and orders.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">SalesAgreementHeader<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The SalesAgreementHeader table contains all of the sales agreement header specific information.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">SalesAgreementHeaderDefault<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The SalesAgreementHeaderDefault table contains the release sales order defaulting policies.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">SalesAgreementHeaderDefaultHistory<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The SalesAgreementHeaderDefaultHistory table contains a snapshot of release sales order defaulting policies.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">SalesAgreementHeaderHistory<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The SalesAgreementHeaderHistory table contains a snapshot of sales agreement headers.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">SalesTable<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The SalesTable table contains all sales order headers regardless of whether they have been posted.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">SalesLine<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The SalesLine table contains all sales order lines regardless of whether they have been posted.</span></p></td></tr></tbody></table> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Data Model Diagram</b>:<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Agreements<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter"> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0"> <v:f eqn="sum @0 1 0"> <v:f eqn="sum 0 0 @1"> <v:f eqn="prod @2 1 2"> <v:f eqn="prod @3 21600 pixelWidth"> <v:f eqn="prod @3 21600 pixelHeight"> <v:f eqn="sum @0 0 1"> <v:f eqn="prod @6 1 2"> <v:f eqn="prod @7 21600 pixelWidth"> <v:f eqn="sum @8 21600 0"> <v:f eqn="prod @7 21600 pixelHeight"> <v:f eqn="sum @10 21600 0"> </v:formulas> <v:path extrusionok="f" gradientshapeok="t" connecttype="rect"> <o:lock ext="edit" aspectratio="t"> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style="'width:465pt;height:647.4pt'" ole=""> <v:imagedata src="cid:image001.emz@01CCDEF3.4E872280" title=""> </v:shape><![endif]--><!--[if !vml]--><a href="http://4.bp.blogspot.com/-kPQwJhegVp0/TyZAw_6ohbI/AAAAAAAAC0o/ddP8eTKnvpw/s1600/image002-711183.png"><img src="http://4.bp.blogspot.com/-kPQwJhegVp0/TyZAw_6ohbI/AAAAAAAAC0o/ddP8eTKnvpw/s320/image002-711183.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317188646569394" /></a><!--[endif]--><!--[if gte mso 9]><xml> <o:oleobject type="Embed" progid="Visio.Drawing.11" shapeid="_x0000_i1025" drawaspect="Content" objectid="_1389394144"> </o:OLEObject> </xml><![endif]--><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Red</b> area highlights tables forming Agreements – Headers data model <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Green</b> area highlights tables forming Agreements – Lines data model<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Yellow</b> area highlights tables forming Sales Agreements data model<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Release orders<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <!--[if gte vml 1]><v:shape id="_x0000_i1026" type="#_x0000_t75" style="'width:276pt;height:194.4pt'" ole=""> <v:imagedata src="cid:image003.emz@01CCDEF3.4E872280" title=""> </v:shape><![endif]--><!--[if !vml]--><a href="http://3.bp.blogspot.com/-ip55DoMCnN8/TyZAxPBGRHI/AAAAAAAAC0w/InkBD62JcQs/s1600/image004-712315.png"><img src="http://3.bp.blogspot.com/-ip55DoMCnN8/TyZAxPBGRHI/AAAAAAAAC0w/InkBD62JcQs/s320/image004-712315.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317192700216434" /></a></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>VSD: </b><a href="https://docs.google.com/open?id=0B3rbAZy5q2ExNGNiYzEwODctY2Y4ZC00OGFlLWJiNjMtNDMxMGFjNzc4Nzk2">https://docs.google.com/open?id=0B3rbAZy5q2ExNGNiYzEwODctY2Y4ZC00OGFlLWJiNjMtNDMxMGFjNzc4Nzk2</a><b><o:p></o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b><o:p> </o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Walkthrough</b>:</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Connection<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-ZEGvWEuBl0w/TyZAxFfrS7I/AAAAAAAAC1E/tSTOvFK4cdQ/s1600/image005-712860.jpg"><img src="http://4.bp.blogspot.com/-ZEGvWEuBl0w/TyZAxFfrS7I/AAAAAAAAC1E/tSTOvFK4cdQ/s320/image005-712860.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317190144117682" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Add Tables<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-FmeQ4j364I8/TyZAxjA3YBI/AAAAAAAAC1M/CRDTmrVDCI0/s1600/image006-714668.jpg"><img src="http://2.bp.blogspot.com/-FmeQ4j364I8/TyZAxjA3YBI/AAAAAAAAC1M/CRDTmrVDCI0/s320/image006-714668.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317198067949586" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Dynamics AX Error<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://3.bp.blogspot.com/-bo4JmObMYXE/TyZAxxITSUI/AAAAAAAAC1Y/M-jSwG0M1KM/s1600/image007-715458.jpg"><img src="http://3.bp.blogspot.com/-bo4JmObMYXE/TyZAxxITSUI/AAAAAAAAC1Y/M-jSwG0M1KM/s320/image007-715458.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317201857235266" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Solution:<o:p></o:p></p> <p class="MsoListParagraph" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l1 level1 lfo1;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->Add replacement key to AgreementHeader table<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-NzLI-2jJcYE/TyZAyf0Al1I/AAAAAAAAC1w/Sju6UBJnWVw/s1600/image008-716818.jpg"><img src="http://2.bp.blogspot.com/-NzLI-2jJcYE/TyZAyf0Al1I/AAAAAAAAC1w/Sju6UBJnWVw/s320/image008-716818.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317214388590418" /></a></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-l3NoXMMCKPM/TyZA0Bbg0WI/AAAAAAAAC14/eKtP0gy725E/s1600/image009-724176.jpg"><img src="http://1.bp.blogspot.com/-l3NoXMMCKPM/TyZA0Bbg0WI/AAAAAAAAC14/eKtP0gy725E/s320/image009-724176.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317240592519522" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> I decided to re-use existing DocumentTitle field as Replacement key without introduction of brand new field (Temporary key) and regeneration of AIF Proxy classes here. That’s why I re-populated DocumentTitle field for all existing records using RecID and assigned Index1 = {DocumentTitle} as Replacement key to AgreementHeader table.</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-0aL8SB3vqbs/TyZA0YnvBYI/AAAAAAAAC2E/lhpBKB_Xee8/s1600/image010-725039.png"><img src="http://1.bp.blogspot.com/-0aL8SB3vqbs/TyZA0YnvBYI/AAAAAAAAC2E/lhpBKB_Xee8/s320/image010-725039.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317246817797506" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Field Chooser<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-oNxUlPWCZmM/TyZA0iFKJiI/AAAAAAAAC2Q/dBVVvuUeifI/s1600/image011-726299.jpg"><img src="http://1.bp.blogspot.com/-oNxUlPWCZmM/TyZA0iFKJiI/AAAAAAAAC2Q/dBVVvuUeifI/s320/image011-726299.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317249357129250" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> SalesAgreementHeader<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none"> <tbody> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Field Name<o:p></o:p></b></p> </td> <td width="437" valign="top" style="width:261.9pt;border:solid windowtext 1.0pt;border-left:none;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Agreement classification.AgreementRelationType<o:p></o:p></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Agreement classification.Name<o:p></o:p></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Currency<o:p></o:p></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Customer account<o:p></o:p></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> InstanceRelationType<o:p></o:p></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Sales agreement ID<o:p></o:p></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> IsDeleted<o:p></o:p></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Customer account.CustomerDataAreaId<o:p></o:p></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Document title<o:p></o:p></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Legal entities.DataArea<o:p></o:p></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Legal entities.Name<o:p></o:p></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Party ID<o:p></o:p></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Legal entities.Party ID<o:p></o:p></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Legal entities.Party type</p></td></tr></tbody></table> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-x3-pSWfxoc8/TyZA02mJcTI/AAAAAAAAC2Y/CHhjsz4UW6U/s1600/image012-727306.png"><img src="http://1.bp.blogspot.com/-x3-pSWfxoc8/TyZA02mJcTI/AAAAAAAAC2Y/CHhjsz4UW6U/s320/image012-727306.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317254864204082" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-SHJJKODwQ0U/TyZA0-agZAI/AAAAAAAAC2o/2YlSObebvdU/s1600/image013-727856.jpg"><img src="http://4.bp.blogspot.com/-SHJJKODwQ0U/TyZA0-agZAI/AAAAAAAAC2o/2YlSObebvdU/s320/image013-727856.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317256962860034" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-nPRlHVCO8q0/TyZA1XwErWI/AAAAAAAAC2w/rYIuhoLBRAc/s1600/image014-729374.jpg"><img src="http://2.bp.blogspot.com/-nPRlHVCO8q0/TyZA1XwErWI/AAAAAAAAC2w/rYIuhoLBRAc/s320/image014-729374.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317263764204898" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> AgreementLine</p><p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"><br /></p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none"> <tbody> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Field Name<o:p></o:p></b></p> </td> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-left:none;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Dimension No..InventDimDataAreaId<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Dimension No.<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Item number<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Item number.ItemDataAreaId<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Agreement header record ID.InstanceRelationType<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Agreement header record ID.Document title<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Effective date<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Expiration date<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> InstanceRelationType<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Line number<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Quantity<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Unit<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Unit price<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> IsDeleted</p></td></tr></tbody></table> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-H28tpDLRH2M/TyZA1raZa-I/AAAAAAAAC3A/8OX_91zm4TA/s1600/image015-730145.jpg"><img src="http://4.bp.blogspot.com/-H28tpDLRH2M/TyZA1raZa-I/AAAAAAAAC3A/8OX_91zm4TA/s320/image015-730145.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317269041998818" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://3.bp.blogspot.com/-FgRl46bv1yQ/TyZA1yHrD6I/AAAAAAAAC3Q/s2NlmUpCFkw/s1600/image016-731836.jpg"><img src="http://3.bp.blogspot.com/-FgRl46bv1yQ/TyZA1yHrD6I/AAAAAAAAC3Q/s2NlmUpCFkw/s320/image016-731836.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317270842511266" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-D6j0NQf_XxA/TyZA2dWsb7I/AAAAAAAAC3Y/oFLoJ0rmZXM/s1600/image017-733386.jpg"><img src="http://2.bp.blogspot.com/-D6j0NQf_XxA/TyZA2dWsb7I/AAAAAAAAC3Y/oFLoJ0rmZXM/s320/image017-733386.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317282448240562" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> InventDim</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-E7BQAaFIuxE/TyZA2nNZDgI/AAAAAAAAC3k/5lEjj0p5NdM/s1600/image018-734266.jpg"><img src="http://4.bp.blogspot.com/-E7BQAaFIuxE/TyZA2nNZDgI/AAAAAAAAC3k/5lEjj0p5NdM/s320/image018-734266.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317285093576194" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Excel VLookup function may be used to find appropriate InventDimId automatically based on criteria<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Sequence</b>:</p> <p class="MsoListParagraphCxSpFirst" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l0 level1 lfo2;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">1.<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->SalesAgreementHeader - Publish Selected<o:p></o:p></p> <p class="MsoListParagraphCxSpLast" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l0 level1 lfo2;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">2.<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->AgreementLine – Publish Selected <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Result</b>:</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Dynamics AX – Sales Agreement <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-oix1de6uyjc/TyZA3EEFcmI/AAAAAAAAC3w/YyKF3k-DEFU/s1600/image019-736085.jpg"><img src="http://2.bp.blogspot.com/-oix1de6uyjc/TyZA3EEFcmI/AAAAAAAAC3w/YyKF3k-DEFU/s320/image019-736085.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317292839170658" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Dynamics AX – Release Order<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-VR6ECRVyyVI/TyZA3XtOlvI/AAAAAAAAC4A/C4nrq-CNphk/s1600/image020-737377.jpg"><img src="http://4.bp.blogspot.com/-VR6ECRVyyVI/TyZA3XtOlvI/AAAAAAAAC4A/C4nrq-CNphk/s320/image020-737377.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317298112009970" /></a><b><o:p></o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b><o:p> </o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>SQL Trace:</b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Summary</b>: For the purposes of small or medium data migration (data conversion) where performance is not a concern Excel can be used for import of sales agreements into Microsoft Dynamics AX 2012. Although there’s no AIF Web Service out-of-the-box that can be used at the moment in Excel for import of sales agreements, appropriate tables can be used instead. Excel template can be created and used for import of sales agreements.</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Author</b>: <a href="mailto:%20ani.kiev@gmail.com">Alex Anikiev</a>, PhD, MCP<o:p></o:p></p> </div>Alex Anikievhttp://www.blogger.com/profile/13438665643699572584noreply@blogger.com3tag:blogger.com,1999:blog-7090402456402630247.post-59018877454633004562012-01-29T23:02:00.001-08:002012-01-29T23:08:42.017-08:00Dynamics AX 2012 Purchase Agreements Import using Excel Add-in<div class="WordSection1"> <div style="mso-element:para-border-div;border:none;border-bottom:solid #4F81BD 1.0pt;padding:0in 0in 4.0pt 0in"> <p class="MsoTitleCxSpFirst" align="center" style="text-align: left;"><b>Microsoft Dynamics AX 2012 <span style="text-align: center; ">Excel Add-in – Purchase agreements Import</span></b></p><p class="MsoTitleCxSpLast" align="center" style="text-align:center"><o:p></o:p></p> </div> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Purpose:</b> The purpose of this document is to illustrate how to use Microsoft Dynamics AX 2012 Excel Add-in for import of purchase agreements.</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Challenge</b>: Data model changes in Microsoft Dynamics related to high normalization and introduction of surrogate keys made some imports more complex. Moreover Purchase Blanket orders functionality was completely redesigned and in Microsoft Dynamics AX 2012 it’s called Purchase Agreements now.</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Solution</b>: Microsoft Dynamics AX 2012 ships with a number of AIF Web Service which can be used in integration scenarios. However there’s no AIF Web Service out-of-the-box that can be used in Excel at the moment for import of purchase agreements.<span style="color:red"> </span>In order to import a purchase agreement using Excel the appropriate tables will be used.</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Assumption</b>: The assumption is that appropriate reference data such as customers, etc. was created in advance.</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Data Model</b>:</p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none"> <tbody> <tr> <td width="348" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Table Name<o:p></o:p></b></p> </td> <td width="450" valign="top" style="width:269.95pt;border:solid windowtext 1.0pt;border-left:none;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Table Description<o:p></o:p></b></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementClassification<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementClassification table contains the agreement classifications.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementClassificationTranslation<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementClassificationTranslation table contains the translations for the agreement classifications.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementHeader<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementHeader table contains each of the purchase and sales agreements.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementHeaderDefault<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementHeaderDefault table contains the release order defaulting policies.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementHeaderDefaultHistory<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementHeaderDefaultHistory table contains a snapshot of the release order defaulting policies.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementHeaderHistory<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementHeaderHistory table is a base table for the sales and purchase agreement header history tables.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementLine<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementLine table stores information about the purchase agreement details.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementLineDefault<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementLineDefault table contains the line release order defaulting policies.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementLineDefaultHistory<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementLineDefaultHistory table contains a snapshot of line release order defaulting policies.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementLineHistory<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementLineHistory table contains a snapshot of the agreement lines.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementLineQuantityCommitment<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementLineQuantityCommitment table contains each of the agreement lines of the quantity type.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementLineQuantityCommitmentHistory<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementLineQuantityCommitmentHistory table contains a snapshot of agreement quantity lines.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementLineReference<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementLineReference table contains the relation between intercompany sales agreement lines and intercompany purchase agreement lines.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementLineReleasedLine<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementLineReleasedLine table contains released agreement lines.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementLineReleasedLineHistory<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementLineReleasedLineHistory table contains a snapshot of released agreement lines.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementLineVolumeCommitment<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementLineVolumeCommitment table contains each of the agreement lines of the volume type.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementLineVolumeCommitmentHistory<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementLineVolumeCommitmentHistory table contains a snapshot of agreement volume lines.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementReference<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementReference table contains the relation between intercompany sales agreement headers and intercompany purchase agreement headers.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">AgreementReleaseHeaderMatch<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The AgreementReleaseHeaderMatch table contains matchings between agreements and orders.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">PurchAgreementHeader<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The PurchAgreementHeader table contains purchase agreement headers.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">PurchAgreementHeaderDefault<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The PurchAgreementHeaderDefault table contains the release purchase order defaulting policies.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">PurchAgreementHeaderDefaultHistory<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The PurchAgreementHeaderDefaultHistory table contains a snapshot of the release purchase order defaulting policies.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">PurchAgreementHeaderHistory<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The PurchAgreementHeaderHistory table contains a snapshot of the purchase agreement header record.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">PurchTable<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The PurchTable table contains all the purchase order headers regardless of whether they have been posted.<o:p></o:p></span></p> </td> </tr> <tr style="height:15.0pt"> <td width="348" nowrap="" valign="top" style="width:208.85pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">PurchLine<o:p></o:p></span></p> </td> <td width="450" nowrap="" valign="top" style="width:269.95pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:15.0pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">The PurchLine table contains all purchase order lines regardless whether they have been posted or not.</span></p></td></tr></tbody></table> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Data Model Diagram</b>:<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Agreements<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter"> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0"> <v:f eqn="sum @0 1 0"> <v:f eqn="sum 0 0 @1"> <v:f eqn="prod @2 1 2"> <v:f eqn="prod @3 21600 pixelWidth"> <v:f eqn="prod @3 21600 pixelHeight"> <v:f eqn="sum @0 0 1"> <v:f eqn="prod @6 1 2"> <v:f eqn="prod @7 21600 pixelWidth"> <v:f eqn="sum @8 21600 0"> <v:f eqn="prod @7 21600 pixelHeight"> <v:f eqn="sum @10 21600 0"> </v:formulas> <v:path extrusionok="f" gradientshapeok="t" connecttype="rect"> <o:lock ext="edit" aspectratio="t"> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style="'width:465pt;height:647.4pt'" ole=""> <v:imagedata src="cid:image001.emz@01CCDEF3.34F4CF20" title=""> </v:shape><![endif]--><!--[if !vml]--><a href="http://4.bp.blogspot.com/-dLho4vQ4EDQ/TyZAmSSmOHI/AAAAAAAACxE/I_LXCSzdlj4/s1600/image002-769029.png"><img src="http://4.bp.blogspot.com/-dLho4vQ4EDQ/TyZAmSSmOHI/AAAAAAAACxE/I_LXCSzdlj4/s320/image002-769029.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317004600359026" /></a><!--[endif]--><!--[if gte mso 9]><xml> <o:oleobject type="Embed" progid="Visio.Drawing.11" shapeid="_x0000_i1025" drawaspect="Content" objectid="_1389394097"> </o:OLEObject> </xml><![endif]--><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Red</b> area highlights tables forming Agreements – Headers data model <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Green</b> area highlights tables forming Agreements – Lines data model<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Blue</b> area highlights tables forming Purchase Agreements data model<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Release orders<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <!--[if gte vml 1]><v:shape id="_x0000_i1026" type="#_x0000_t75" style="'width:268.8pt;height:202.2pt'" ole=""> <v:imagedata src="cid:image003.emz@01CCDEF3.34F4CF20" title=""> </v:shape><![endif]--><!--[if !vml]--><a href="http://3.bp.blogspot.com/-KdxnEzJKECA/TyZAmgkcL5I/AAAAAAAACxQ/y44v9XHkIL4/s1600/image004-770173.png"><img src="http://3.bp.blogspot.com/-KdxnEzJKECA/TyZAmgkcL5I/AAAAAAAACxQ/y44v9XHkIL4/s320/image004-770173.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317008433295250" /></a><!--[endif]--><!--[if gte mso 9]><xml> <o:oleobject type="Embed" progid="Visio.Drawing.11" shapeid="_x0000_i1026" drawaspect="Content" objectid="_1389394098"> </o:OLEObject> </xml><![endif]--><b><o:p></o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b><o:p> </o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>VSD: </b><a href="https://docs.google.com/open?id=0B3rbAZy5q2ExNGNiYzEwODctY2Y4ZC00OGFlLWJiNjMtNDMxMGFjNzc4Nzk2">https://docs.google.com/open?id=0B3rbAZy5q2ExNGNiYzEwODctY2Y4ZC00OGFlLWJiNjMtNDMxMGFjNzc4Nzk2</a><b><o:p></o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b><o:p> </o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Walkthrough</b>:</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Connection<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-liUWd2Xl38k/TyZAm_-UlkI/AAAAAAAACxY/ZjC139NjrDc/s1600/image005-771287.jpg"><img src="http://4.bp.blogspot.com/-liUWd2Xl38k/TyZAm_-UlkI/AAAAAAAACxY/ZjC139NjrDc/s320/image005-771287.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317016863348290" /></a></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Add Tables<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-pshcPDSIh04/TyZAm4a1TgI/AAAAAAAACxo/8Uq7Opq5rmE/s1600/image006-771911.jpg"><img src="http://1.bp.blogspot.com/-pshcPDSIh04/TyZAm4a1TgI/AAAAAAAACxo/8Uq7Opq5rmE/s320/image006-771911.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317014835449346" /></a></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Dynamics AX Error<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://3.bp.blogspot.com/-TmveTE6Ua2g/TyZAorcY19I/AAAAAAAACx0/IahOB2HVS0A/s1600/image007-778355.jpg"><img src="http://3.bp.blogspot.com/-TmveTE6Ua2g/TyZAorcY19I/AAAAAAAACx0/IahOB2HVS0A/s320/image007-778355.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317045712050130" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Solution:<o:p></o:p></p> <p class="MsoListParagraph" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l1 level1 lfo1;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->Add replacement key to AgreementHeader table</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-K68ri2ztFZU/TyZAo0rse1I/AAAAAAAACyA/wFzfCFT1aOU/s1600/image008-779239.jpg"><img src="http://4.bp.blogspot.com/-K68ri2ztFZU/TyZAo0rse1I/AAAAAAAACyA/wFzfCFT1aOU/s320/image008-779239.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317048192170834" /></a></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://3.bp.blogspot.com/-d0_JiBgu6EU/TyZApa_djkI/AAAAAAAACyI/jaA_Gu8vWdM/s1600/image009-781067.jpg"><img src="http://3.bp.blogspot.com/-d0_JiBgu6EU/TyZApa_djkI/AAAAAAAACyI/jaA_Gu8vWdM/s320/image009-781067.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317058475626050" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> I decided to re-use existing DocumentTitle field as Replacement key without introduction of brand new field (Temporary key) and regeneration of AIF Proxy classes here. That’s why I re-populated DocumentTitle field for all existing records using RecID and assigned Index1 = {DocumentTitle} as Replacement key to AgreementHeader table.</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://3.bp.blogspot.com/-_1M9RRv3cqk/TyZApfvhK_I/AAAAAAAACyY/SBD63Ef-_lw/s1600/image010-781744.png"><img src="http://3.bp.blogspot.com/-_1M9RRv3cqk/TyZApfvhK_I/AAAAAAAACyY/SBD63Ef-_lw/s320/image010-781744.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317059750931442" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Field Chooser<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-UQung1xpHFY/TyZAp2-iNeI/AAAAAAAACyo/Y5uKiW5N3Oc/s1600/image011-783193.jpg"><img src="http://2.bp.blogspot.com/-UQung1xpHFY/TyZAp2-iNeI/AAAAAAAACyo/Y5uKiW5N3Oc/s320/image011-783193.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317065987929570" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> PurchAgreementHeader</p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none"> <tbody> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Field Name<o:p></o:p></b></p> </td> <td width="437" valign="top" style="width:261.9pt;border:solid windowtext 1.0pt;border-left:none;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Agreement classification.AgreementRelationType<o:p></o:p></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Agreement classification.Name<o:p></o:p></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Currency<o:p></o:p></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Vendor account<o:p></o:p></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> InstanceRelationType<o:p></o:p></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Purchase agreement ID<o:p></o:p></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> IsDeleted<o:p></o:p></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Vendor account.VendorDataAreaId<o:p></o:p></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Document title<o:p></o:p></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Legal entities.DataArea<o:p></o:p></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Legal entities.Name<o:p></o:p></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Party ID<o:p></o:p></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Legal entities.Party ID<o:p></o:p></p> </td> </tr> <tr> <td width="362" valign="top" style="width:216.9pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="437" valign="top" style="width:261.9pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Legal entities.Party type</p></td></tr></tbody></table> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-uZofJmInWJU/TyZAqE1UmLI/AAAAAAAACyw/tS2h7DEQms0/s1600/image012-784841.jpg"><img src="http://1.bp.blogspot.com/-uZofJmInWJU/TyZAqE1UmLI/AAAAAAAACyw/tS2h7DEQms0/s320/image012-784841.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317069707385010" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-jks8pOUqAgY/TyZAqdLvAqI/AAAAAAAACy4/FeMLbvIc_eE/s1600/image013-785381.jpg"><img src="http://1.bp.blogspot.com/-jks8pOUqAgY/TyZAqdLvAqI/AAAAAAAACy4/FeMLbvIc_eE/s320/image013-785381.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317076243841698" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-wQ-rFYCoIYM/TyZAqsa6CbI/AAAAAAAACzE/fE2txff05sA/s1600/image014-786168.jpg"><img src="http://1.bp.blogspot.com/-wQ-rFYCoIYM/TyZAqsa6CbI/AAAAAAAACzE/fE2txff05sA/s320/image014-786168.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317080334010802" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-AeM5twem5Z0/TyZAq3nBrjI/AAAAAAAACzQ/e2WnewdgLtA/s1600/image015-787078.jpg"><img src="http://1.bp.blogspot.com/-AeM5twem5Z0/TyZAq3nBrjI/AAAAAAAACzQ/e2WnewdgLtA/s320/image015-787078.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317083337633330" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> AgreementLine</p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none"> <tbody> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Field Name<o:p></o:p></b></p> </td> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-left:none;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Dimension No..InventDimDataAreaId<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Dimension No.<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Item number<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Item number.ItemDataAreaId<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Agreement header record ID.InstanceRelationType<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Agreement header record ID.Document title<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Effective date<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Expiration date<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> InstanceRelationType<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Line number<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Quantity<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Unit<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Unit price<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> IsDeleted</p></td></tr></tbody></table> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://3.bp.blogspot.com/-_lsa4e7OI9s/TyZAqzs756I/AAAAAAAACzg/opKPUBkRYDs/s1600/image016-787856.jpg"><img src="http://3.bp.blogspot.com/-_lsa4e7OI9s/TyZAqzs756I/AAAAAAAACzg/opKPUBkRYDs/s320/image016-787856.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317082288678818" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-gNnQc_Vq5xo/TyZArg0TOiI/AAAAAAAACzs/L08JVpucj9E/s1600/image017-790116.jpg"><img src="http://2.bp.blogspot.com/-gNnQc_Vq5xo/TyZArg0TOiI/AAAAAAAACzs/L08JVpucj9E/s320/image017-790116.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317094399162914" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-dDu6OK8WLXk/TyZAr9_4aiI/AAAAAAAACz4/wcRFJjaLdew/s1600/image018-791191.jpg"><img src="http://4.bp.blogspot.com/-dDu6OK8WLXk/TyZAr9_4aiI/AAAAAAAACz4/wcRFJjaLdew/s320/image018-791191.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317102232365602" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> InventDim</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-nJPiRLlscI8/TyZAsK7XZXI/AAAAAAAAC0E/whMopUqRfNg/s1600/image019-792103.jpg"><img src="http://4.bp.blogspot.com/-nJPiRLlscI8/TyZAsK7XZXI/AAAAAAAAC0E/whMopUqRfNg/s320/image019-792103.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317105703085426" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Excel VLookup function may be used to find appropriate InventDimId automatically based on criteria<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Sequence</b>:</p> <p class="MsoListParagraphCxSpFirst" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l0 level1 lfo2;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">1.<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->PurchAgreementHeader - Publish Selected<o:p></o:p></p> <p class="MsoListParagraphCxSpLast" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l0 level1 lfo2;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">2.<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->AgreementLine – Publish Selected <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Result</b>:</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Dynamics AX – Purchase Agreement <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://3.bp.blogspot.com/-KN2bMAtnclY/TyZAsT8l3QI/AAAAAAAAC0Q/-CjAyBzo5k4/s1600/image020-793007.png"><img src="http://3.bp.blogspot.com/-KN2bMAtnclY/TyZAsT8l3QI/AAAAAAAAC0Q/-CjAyBzo5k4/s320/image020-793007.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317108124146946" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Dynamics AX – Release Order<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b><a href="http://1.bp.blogspot.com/-bJRt41ID3bM/TyZAsilSnkI/AAAAAAAAC0c/n4pswIRK6tY/s1600/image021-794542.jpg"><img src="http://1.bp.blogspot.com/-bJRt41ID3bM/TyZAsilSnkI/AAAAAAAAC0c/n4pswIRK6tY/s320/image021-794542.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5703317112052948546" /></a><o:p></o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b><o:p> </o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>SQL Trace:</b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Summary</b>: For the purposes of small or medium data migration (data conversion) where performance is not a concern Excel can be used for import of purchase agreements into Microsoft Dynamics AX 2012. Although there’s no AIF Web Service out-of-the-box that can be used at the moment in Excel for import of purchase agreements, appropriate tables can be used instead. Excel template can be created and used for import of purchase agreements.</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Author</b>: <a href="mailto:%20ani.kiev@gmail.com">Alex Anikiev</a>, PhD, MCP<o:p></o:p></p> </div>Alex Anikievhttp://www.blogger.com/profile/13438665643699572584noreply@blogger.com9tag:blogger.com,1999:blog-7090402456402630247.post-59885760492861271482012-01-26T22:14:00.001-08:002012-01-26T22:23:13.736-08:00Dynamics AX 2012 Excel Add-in - Replacement Keys<div class="WordSection1"> <div style="mso-element:para-border-div;border:none;border-bottom:solid #4F81BD 1.0pt;padding:0in 0in 4.0pt 0in"> <p class="MsoTitleCxSpFirst" align="center" style="text-align: left;"><b>Dynamics AX 2012 <span style="text-align: center; ">Excel Add-in – Replacement Keys</span></b></p><p class="MsoTitleCxSpLast" align="center" style="text-align:center"><o:p></o:p></p> </div> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Purpose:</b> The purpose of this document is to illustrate options how to change Dynamics AX 2012 Data Model by adding appropriate Replacement keys to make Excel Add-in working to import the data.</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Challenge</b>: Data model changes in Dynamics AX related to high normalization and introduction of surrogate keys made import of data more complex. Currently Excel Add-in has a number of limitations as it relates to the Data Model. In order to allow Excel Add-in to interpret Surrogate key relations between tables correctly the specification of Replacement key (Natural key) is required. <span style="color:red"> </span></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Solution</b>: Dynamics AX 2012 ships with close to 4500 tables. Some tables were designed and implemented for previous releases; some of them were designed and implemented for the current release. “New” tables leverage inheritance, Surrogate keys and relations based on Surrogate keys when “old” tables still have Natural keys and relations based on Natural keys. Please also note that for all newly created tables relations between tables in Dynamics AX 2012 should be specified on table level, at the same time some relations are still specified on “old” EDT’s in the system. <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> The example of “new” tables would be AgreementHeader and AgreementLine tables. AgreementLine table is linked with AgreementHeader table by Foreign key which is Surrogate key based. <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> The example of “old” tables would be LedgerJournalTable and LedgerJournalTrans tables. LedgerJournalTable table has Primary key based on JournalNum field (Natural key) and this JournalNum field is used to link LedgerJournalTable and LedgerJournalTrans tables together. That’s why in this case there’s no need to tweak the Data Model to make Excel Add-in working. <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p><b>Data Model</b>:</p><p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none"> <tbody> <tr> <td width="351" valign="top" style="width:210.4pt;border:solid windowtext 1.0pt;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Table Name<o:p></o:p></b></p> </td> <td width="447" valign="top" style="width:268.4pt;border:solid windowtext 1.0pt;border-left:none;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Table Description<o:p></o:p></b></p> </td> </tr> <tr> <td width="351" valign="top" style="width:210.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> AlexTable<o:p></o:p></p> </td> <td width="447" valign="top" style="width:268.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">Sample header table<o:p></o:p></span></p> </td> </tr> <tr> <td width="351" valign="top" style="width:210.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> AlexLine<o:p></o:p></p> </td> <td width="447" valign="top" style="width:268.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> <span style="color:black">Sample lines table</span></p></td></tr></tbody></table> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Data Model Diagram</b>:</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Sample Data Model<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter"> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0"> <v:f eqn="sum @0 1 0"> <v:f eqn="sum 0 0 @1"> <v:f eqn="prod @2 1 2"> <v:f eqn="prod @3 21600 pixelWidth"> <v:f eqn="prod @3 21600 pixelHeight"> <v:f eqn="sum @0 0 1"> <v:f eqn="prod @6 1 2"> <v:f eqn="prod @7 21600 pixelWidth"> <v:f eqn="sum @8 21600 0"> <v:f eqn="prod @7 21600 pixelHeight"> <v:f eqn="sum @10 21600 0"> </v:formulas> <v:path extrusionok="f" gradientshapeok="t" connecttype="rect"> <o:lock ext="edit" aspectratio="t"> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style="'width:163.2pt;height:143.4pt'" ole=""> <v:imagedata src="cid:image001.emz@01CCDC90.DCC6D000" title=""> </v:shape><![endif]--><!--[if !vml]--><a href="http://3.bp.blogspot.com/-K9H78tIvvgo/TyJAw04_X4I/AAAAAAAACo4/m6ggG7A01FU/s1600/image002-766934.png"><img src="http://3.bp.blogspot.com/-K9H78tIvvgo/TyJAw04_X4I/AAAAAAAACo4/m6ggG7A01FU/s320/image002-766934.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191285780045698" /></a><!--[endif]--><!--[if gte mso 9]><xml> <o:oleobject type="Embed" progid="Visio.Drawing.11" shapeid="_x0000_i1025" drawaspect="Content" objectid="_1389131958"> </o:OLEObject> </xml><![endif]--><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Walkthrough</b>:</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Connection<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-e2V0BzeBo9Y/TyJAw0lt0kI/AAAAAAAACpA/1UXqny7H5ss/s1600/image003-767485.jpg"><img src="http://1.bp.blogspot.com/-e2V0BzeBo9Y/TyJAw0lt0kI/AAAAAAAACpA/1UXqny7H5ss/s320/image003-767485.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191285699203650" /></a></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Add Tables<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://3.bp.blogspot.com/-eHNCYAhgSxg/TyJAw1XHIjI/AAAAAAAACpQ/iPO09D3EhYo/s1600/image004-767851.jpg"><img src="http://3.bp.blogspot.com/-eHNCYAhgSxg/TyJAw1XHIjI/AAAAAAAACpQ/iPO09D3EhYo/s320/image004-767851.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191285906383410" /></a></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Dynamics AX Error<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-I3S1N5XV49k/TyJAxJBgkTI/AAAAAAAACpc/KPTdo2BLbeg/s1600/image005-768701.jpg"><img src="http://1.bp.blogspot.com/-I3S1N5XV49k/TyJAxJBgkTI/AAAAAAAACpc/KPTdo2BLbeg/s320/image005-768701.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191291184484658" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Header AlexTable table</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Solution – Option 1 (this is what I implemented in this example): Use existing field(s) which will form unique Natural key<o:p></o:p></b></p> <p class="MsoListParagraphCxSpFirst" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l1 level1 lfo1;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->Add Replacement key to AlexTable table</p> <p class="MsoListParagraphCxSpMiddle" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-gylQQ6xBtV0/TyJAxedvQsI/AAAAAAAACpo/ePDmzg71t3E/s1600/image006-769355.jpg"><img src="http://1.bp.blogspot.com/-gylQQ6xBtV0/TyJAxedvQsI/AAAAAAAACpo/ePDmzg71t3E/s320/image006-769355.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191296940032706" /></a><o:p></o:p></p> <p class="MsoListParagraphCxSpMiddle" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-3a67b8T85Rs/TyJAxfz0YgI/AAAAAAAACpw/_Lx2oWeCPLo/s1600/image007-769965.jpg"><img src="http://2.bp.blogspot.com/-3a67b8T85Rs/TyJAxfz0YgI/AAAAAAAACpw/_Lx2oWeCPLo/s320/image007-769965.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191297301078530" /></a></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Solution – Option 2: Introduce brand new field(s) which will form unique Natural key <o:p></o:p></b></p> <p class="MsoListParagraph" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l1 level1 lfo1;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]--><b>Add Replacement key to AlexTable table<o:p></o:p></b></p> <p class="MsoNormal" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:0in;margin-left:.5in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-IX2_kqmEa0o/TyJAxiEjGnI/AAAAAAAACp8/h35tmDfr1LQ/s1600/image008-770407.jpg"><img src="http://2.bp.blogspot.com/-IX2_kqmEa0o/TyJAxiEjGnI/AAAAAAAACp8/h35tmDfr1LQ/s320/image008-770407.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191297908120178" /></a><o:p></o:p></p> <p class="MsoNormal" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:0in;margin-left:.5in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Dynamics AX Error</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-C2R76dy8Pjc/TyJAx7v6vgI/AAAAAAAACqI/5rZOTceZZAI/s1600/image009-771048.jpg"><img src="http://2.bp.blogspot.com/-C2R76dy8Pjc/TyJAx7v6vgI/AAAAAAAACqI/5rZOTceZZAI/s320/image009-771048.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191304800910850" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Lines AlexLine table</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Solution – Option 1: Use existing field(s) which will form unique Natural key<o:p></o:p></b></p> <p class="MsoListParagraphCxSpFirst" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l1 level1 lfo1;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]--><b>Add Replacement key to AlexLine table<o:p></o:p></b></p> <p class="MsoListParagraphCxSpMiddle" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-ncnsgKBZgeo/TyJAx7tkBxI/AAAAAAAACqU/SxCk_2TG9b4/s1600/image010-771592.jpg"><img src="http://4.bp.blogspot.com/-ncnsgKBZgeo/TyJAx7tkBxI/AAAAAAAACqU/SxCk_2TG9b4/s320/image010-771592.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191304791033618" /></a></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Solution – Option 2: Introduce brand new field(s) which will form unique Natural key <o:p></o:p></b></p> <p class="MsoListParagraphCxSpFirst" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l1 level1 lfo1;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]--><b>Add Replacement key to AlexLine table<o:p></o:p></b></p> <p class="MsoListParagraphCxSpLast" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;line-height:normal;text-autospace:none"> <b><span style="color:#00B050"><a href="http://4.bp.blogspot.com/-lO-sHasIaws/TyJAyBn_5YI/AAAAAAAACqc/EWr8fWvHFgc/s1600/image011-772211.jpg"><img src="http://4.bp.blogspot.com/-lO-sHasIaws/TyJAyBn_5YI/AAAAAAAACqc/EWr8fWvHFgc/s320/image011-772211.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191306378306946" /></a></span><span style="color:#00B050"><o:p></o:p></span></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p><b>Solution – Option 3 (this is what I implemented in this example): Create unique Replacement key based on one of the existing fields and RecId field</b></p> <p class="MsoListParagraphCxSpFirst" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l1 level1 lfo1;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]--><b>Add Replacement key to AlexLine table<o:p></o:p></b></p> <p class="MsoListParagraphCxSpMiddle" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-L4GWPt0tUiY/TyJAyANf-lI/AAAAAAAACqw/yFDGX1_0DXU/s1600/image012-772488.jpg"><img src="http://4.bp.blogspot.com/-L4GWPt0tUiY/TyJAyANf-lI/AAAAAAAACqw/yFDGX1_0DXU/s320/image012-772488.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191305998727762" /></a><o:p></o:p></p> <p class="MsoListParagraphCxSpMiddle" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoListParagraphCxSpLast" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-Rm-HTXok4oU/TyJAyRpO-OI/AAAAAAAACq8/ZN8Yv-OPgII/s1600/image013-773536.png"><img src="http://4.bp.blogspot.com/-Rm-HTXok4oU/TyJAyRpO-OI/AAAAAAAACq8/ZN8Yv-OPgII/s320/image013-773536.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191310678456546" /></a></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> The easiest option is Solution – Option 3 using one of existing fields and RecID field.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> If your Replacement key would contain only RecId this would not be different from Surrogate key, RecId adds uniqueness to the index and if RecID is complimented with another non-RecID field then we have unique non-Surrogate key. However sometimes your table which requires Replacement key assignment may not even have fields other than system fields such as RecID or CreatedBy, ModifiedBy, etc. This may happen with tables participating in table inheritance. In this case new field may be added to the table. Then you can implement Solution – Option 2 with brand new field – ImportID in my examples. Please note that your unique index will be based on this field which means that you will have to populate this field with unique values for all existing records if any. The easiest way is to write X++ job and populate this new field (String) based on RecId values in the same table. Going forward unique values for that field will have to be provided in Excel Add-in interface explicitly.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://3.bp.blogspot.com/-eTh_PFN4Ers/TyJAyjac53I/AAAAAAAACrE/OsQ9SiAr-p8/s1600/image014-774157.png"><img src="http://3.bp.blogspot.com/-eTh_PFN4Ers/TyJAyjac53I/AAAAAAAACrE/OsQ9SiAr-p8/s320/image014-774157.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191315448293234" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Solution – Option 1 will work only if you already have existing field or combination of fields in the table which could be your Primary key. However this approach is not universal because all depends on the purpose of particular fields in the table. <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Project<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-5jpNIOOG6v0/TyJAykORL7I/AAAAAAAACrU/BzPCxcYmvwI/s1600/image015-774765.jpg"><img src="http://4.bp.blogspot.com/-5jpNIOOG6v0/TyJAykORL7I/AAAAAAAACrU/BzPCxcYmvwI/s320/image015-774765.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191315665629106" /></a></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> AlexTable table<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-KT_Nz5FdI3Q/TyJAy3Fuc8I/AAAAAAAACrc/JyyLzhKj4f0/s1600/image016-775790.jpg"><img src="http://2.bp.blogspot.com/-KT_Nz5FdI3Q/TyJAy3Fuc8I/AAAAAAAACrc/JyyLzhKj4f0/s320/image016-775790.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191320730072002" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p>AlexLine table</p><p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-rWDcfYFyYEE/TyJAzJ7l3bI/AAAAAAAACrk/CQkEWjnqgsU/s1600/image017-776129.png"><img src="http://2.bp.blogspot.com/-rWDcfYFyYEE/TyJAzJ7l3bI/AAAAAAAACrk/CQkEWjnqgsU/s320/image017-776129.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191325787839922" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p>Once Replacement key is added on AlexTable table Excel Add-in will be able to interpret Surrogate key relation between AlexTable and AlexLine tables using Natural key (Replacement key).</p><p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none">Query</p><p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://3.bp.blogspot.com/-wRNxH2dBq9M/TyJAzFZ6LlI/AAAAAAAACr0/Hzs1xwsZPHs/s1600/image018-776602.jpg"><img src="http://3.bp.blogspot.com/-wRNxH2dBq9M/TyJAzFZ6LlI/AAAAAAAACr0/Hzs1xwsZPHs/s320/image018-776602.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191324572823122" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p>Generate AIF Proxy classes</p><p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p>Select Document Parameters</p><p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-Dwi-MBGqMAs/TyJAzbu2yrI/AAAAAAAACsI/V_WbB_pON3k/s1600/image019-777512.jpg"><img src="http://4.bp.blogspot.com/-Dwi-MBGqMAs/TyJAzbu2yrI/AAAAAAAACsI/V_WbB_pON3k/s320/image019-777512.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191330566261426" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Select Code Generation Parameters<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-Yg3OCboeoOA/TyJAzpGTUDI/AAAAAAAACsQ/waFeko-LnVo/s1600/image020-778608.jpg"><img src="http://2.bp.blogspot.com/-Yg3OCboeoOA/TyJAzpGTUDI/AAAAAAAACsQ/waFeko-LnVo/s320/image020-778608.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191334154260530" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p>Completed</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-PIAVxYD4x-s/TyJAz_2xAvI/AAAAAAAACsY/npr2v3974ME/s1600/image021-778986.jpg"><img src="http://1.bp.blogspot.com/-PIAVxYD4x-s/TyJAz_2xAvI/AAAAAAAACsY/npr2v3974ME/s320/image021-778986.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191340263113458" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p>Project <b>AxdAlex</b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-WmIbLl8PeCs/TyJAz9j6lNI/AAAAAAAACso/xtOLCvmGsSA/s1600/image022-779314.jpg"><img src="http://2.bp.blogspot.com/-WmIbLl8PeCs/TyJAz9j6lNI/AAAAAAAACso/xtOLCvmGsSA/s320/image022-779314.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191339647177938" /></a></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Generate Incremental CIL<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-3ZZCK6fUKko/TyJA0GIl1cI/AAAAAAAACsw/4sp5LS36hIc/s1600/image023-780286.jpg"><img src="http://2.bp.blogspot.com/-3ZZCK6fUKko/TyJA0GIl1cI/AAAAAAAACsw/4sp5LS36hIc/s320/image023-780286.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191341948491202" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> If you encounter this error<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-CoNBQ66xJCI/TyJA0PCExPI/AAAAAAAACs8/rPzoRqy94fc/s1600/image024-780722.jpg"><img src="http://1.bp.blogspot.com/-CoNBQ66xJCI/TyJA0PCExPI/AAAAAAAACs8/rPzoRqy94fc/s320/image024-780722.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191344337077490" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> please delete cache* methods<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://3.bp.blogspot.com/-2QJy1ZYu08s/TyJA0cMtZOI/AAAAAAAACtE/T9WicLhJ1DU/s1600/image025-781215.jpg"><img src="http://3.bp.blogspot.com/-2QJy1ZYu08s/TyJA0cMtZOI/AAAAAAAACtE/T9WicLhJ1DU/s320/image025-781215.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191347871343842" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Field Chooser</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> This is how Field Chooser will look like if you use Index1 = <b>{ID}</b> as Replacement key in header AlexTable table. Please note that ID field in AlexTable table is used for Replacement Key <-> Surrogate Key translation </p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://1.bp.blogspot.com/-IOPqjcJAPqE/TyJA0RZDReI/AAAAAAAACtQ/z9vpGGj6LdI/s1600/image026-781631.jpg"><img src="http://1.bp.blogspot.com/-IOPqjcJAPqE/TyJA0RZDReI/AAAAAAAACtQ/z9vpGGj6LdI/s320/image026-781631.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191344970319330" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p>This is how Field Chooser will look like if you use Index1 = <b>{FieldA, FieldB}</b> as Replacement key in header AlexTable table. Please note that the combination of fields FieldA and FieldB in AlexTable table is used for Replacement Key <-> Surrogate Key translation</p><p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-lZ4WETA5hzE/TyJA0nmzn7I/AAAAAAAACtc/eZUzBwtsS1Q/s1600/image027-782163.jpg"><img src="http://2.bp.blogspot.com/-lZ4WETA5hzE/TyJA0nmzn7I/AAAAAAAACtc/eZUzBwtsS1Q/s320/image027-782163.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191350933594034" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p>This is how Field Chooser will look like if you use Index1 = <b>{ImportID}</b> as Replacement key in header AlexTable table. Please note that ImportID field in AlexTable table is used for Replacement Key <-> Surrogate Key translation </p><p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-4VE-xz7iC0o/TyJA0uhdnCI/AAAAAAAACts/zkYnX0kLVBE/s1600/image028-782712.jpg"><img src="http://4.bp.blogspot.com/-4VE-xz7iC0o/TyJA0uhdnCI/AAAAAAAACts/zkYnX0kLVBE/s320/image028-782712.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191352790228002" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none">This is how Field Chooser will look like if you use Index1 = <b>{FieldA, RecID}</b> as Replacement key in header AlexTable table. Please note that FieldA field in AlexTable table is supposed to be used for Replacement Key <-> Surrogate Key translation</p><p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-YUbOOuAUFNQ/TyJA0yLKzRI/AAAAAAAACt4/JnFfPRT9gDc/s1600/image029-783476.jpg"><img src="http://2.bp.blogspot.com/-YUbOOuAUFNQ/TyJA0yLKzRI/AAAAAAAACt4/JnFfPRT9gDc/s320/image029-783476.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191353770462482" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p>However if Replacement key for header AlexTable table contains RecID then you will get an exception when you try to import lines into AlexLine table.</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-S8fUG4tkze0/TyJA1M1FikI/AAAAAAAACuE/aqAiEuk5Dfk/s1600/image030-784049.jpg"><img src="http://2.bp.blogspot.com/-S8fUG4tkze0/TyJA1M1FikI/AAAAAAAACuE/aqAiEuk5Dfk/s320/image030-784049.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191360925600322" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"><b>Conclusion: </b>All Replacement key Options including [existing field(s) + RecID] are applicable for lines (derived) AlexLine table. And all Replacement key Options excluding [existing field(s) + RecID] are applicable for header (main) AlexTable table.</p><p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> AlexTable<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none"> <tbody> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Field Name<o:p></o:p></b></p> </td> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-left:none;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> ID<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> A<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> B</p></td></tr></tbody></table> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://4.bp.blogspot.com/-srN5mQS2-tQ/TyJA1P9n5CI/AAAAAAAACuU/5cRkYwc8zfk/s1600/image031-784572.jpg"><img src="http://4.bp.blogspot.com/-srN5mQS2-tQ/TyJA1P9n5CI/AAAAAAAACuU/5cRkYwc8zfk/s320/image031-784572.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191361766712354" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> AlexLine<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none"> <tbody> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Field Name<o:p></o:p></b></p> </td> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-left:none;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> AlexTable.ID<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> C<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> D</p></td></tr></tbody></table> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://3.bp.blogspot.com/-iyU33L56kK8/TyJA1VXhOzI/AAAAAAAACug/5G9_SLUmyUg/s1600/image032-785731.jpg"><img src="http://3.bp.blogspot.com/-iyU33L56kK8/TyJA1VXhOzI/AAAAAAAACug/5G9_SLUmyUg/s320/image032-785731.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191363217505074" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Sequence</b>:</p> <p class="MsoListParagraphCxSpFirst" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l0 level1 lfo2;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">1.<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->AlexTable – Publish Selected<o:p></o:p></p> <p class="MsoListParagraphCxSpLast" style="margin-bottom:0in;margin-bottom:.0001pt;mso-add-space:auto;text-indent:-.25in;line-height:normal;mso-list:l0 level1 lfo2;text-autospace:none"> <!--[if !supportLists]--><span style="mso-list:Ignore">2.<span style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->AlexLine – Publish Selected<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Result</b>:</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Dynamics AX – Table Browser</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> AlexTable<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://3.bp.blogspot.com/-6mB0E74pTHo/TyJA1nNEmeI/AAAAAAAACuo/CGEwFO_hFXw/s1600/image033-786174.jpg"><img src="http://3.bp.blogspot.com/-6mB0E74pTHo/TyJA1nNEmeI/AAAAAAAACuo/CGEwFO_hFXw/s320/image033-786174.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191368005523938" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p>AlexLine</p><p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://3.bp.blogspot.com/-JbY7WqzEoWk/TyJA1haA-yI/AAAAAAAACu4/E-WJeNjEsq8/s1600/image034-786548.jpg"><img src="http://3.bp.blogspot.com/-JbY7WqzEoWk/TyJA1haA-yI/AAAAAAAACu4/E-WJeNjEsq8/s320/image034-786548.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5702191366449199906" /></a><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>SQL Trace: <o:p></o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b><o:p> </o:p></b><b>Limitations:</b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;text-indent:.3in;line-height:normal;text-autospace:none"> <b>Document Services</b><b><o:p></o:p></b></p> <p class="MsoNormal" style="mso-margin-top-alt:0in;margin-right:.1in;margin-bottom:6.0pt;margin-left:.3in;line-height:13.5pt;background:white"> Document Services are based on a query that defines their structure. Only certain query structures are supported. The following are the restrictions on queries that form the basis of document services. Services which violate these rules may be added to the document data sources form by the administrator, but will result in errors when accessed in the add-in. For this reason it is important that developers and administrators test services for use with the add-in prior to adding them to this form.<o:p></o:p></p> <p class="MsoNormal" style="mso-margin-top-alt:3.0pt;margin-right:0in;margin-bottom:6.0pt;margin-left:.5in;text-indent:-.25in;line-height:normal;background:white"> ·<span style="font-size:7.0pt;font-family:"Times New Roman","serif";color:#333333"> </span><b>Replacement Keys:</b><span style="font-size:12.0pt;font-family:"Cambria","serif";color:#333333"> </span>The root level of the document service (the parent data source) must have unique indexes other than Rec-ID. This may be in the form of a non-RecID Primary Index or a Replacement Key.<span style="font-size:9.0pt;font-family:"Segoe UI","sans-serif";color:#333333"><o:p></o:p></span></p> <p class="MsoNormal" style="mso-margin-top-alt:3.0pt;margin-right:0in;margin-bottom:6.0pt;margin-left:.5in;text-indent:-.25in;line-height:normal;background:white"> ·<span style="font-size:7.0pt;font-family:"Times New Roman","serif";color:#333333"> </span><b>Related Replacement Keys:</b><span style="font-size:12.0pt;font-family:"Cambria","serif";color:#333333"> </span>Each field within the service which is a RecID-based foreign key must relate to a table that has a replacement key specified.<span style="font-size:9.0pt;font-family:"Segoe UI","sans-serif";color:#333333"><o:p></o:p></span></p> <p class="MsoNormal" style="mso-margin-top-alt:3.0pt;margin-right:0in;margin-bottom:6.0pt;margin-left:.5in;text-indent:-.25in;line-height:normal;background:white"> ·<span style="font-size:7.0pt;font-family:"Times New Roman","serif";color:#333333"> </span><b>Relationship Direction:</b><span style="font-size:12.0pt;font-family:"Cambria","serif";color:#333333"> </span>When parent-child relationships exist in the underlying query associated with the service, only relationships originating on the child element, and pointing to the parent may be used. For example, in the CustCustomerService, the CustTable parent data source holds a foreign key to the DirParty child data source. This pattern is not supported in the Excel Add-in.<span style="font-size:9.0pt;font-family:"Segoe UI","sans-serif";color:#333333"><o:p></o:p></span></p> <p class="MsoNormal" style="mso-margin-top-alt:3.0pt;margin-right:0in;margin-bottom:6.0pt;margin-left:.5in;text-indent:-.25in;line-height:normal;background:white"> ·<span style="font-size:7.0pt;font-family:"Times New Roman","serif";color:#333333"> </span><b>Query and Service consistency:</b><span style="font-size:12.0pt;font-family:"Cambria","serif";color:#333333"> </span>Document services are based on an underlying query which defines the data contract used in the service at the time that the service is generated. The Excel Add-in uses this query definition to perform read operations when refreshing data into the workbook. Because of this, any overrides to the read method, or extension of the schema beyond what is in the underlying query will not be reflected in the service.<span style="font-size:9.0pt;font-family:"Segoe UI","sans-serif";color:#333333"><o:p></o:p></span></p> <p class="MsoNormal" style="mso-margin-top-alt:3.0pt;margin-right:0in;margin-bottom:6.0pt;margin-left:.5in;text-indent:-.25in;line-height:normal;background:white"> ·<span style="font-size:7.0pt;font-family:"Times New Roman","serif";color:#333333"> </span><b>View</b><b><span style="font-size:12.0pt;font-family:"Cambria","serif";color:#333333"> </span></b><b>Support:</b><span style="font-size:12.0pt;font-family:"Cambria","serif";color:#333333"> </span>Views may be used within document services to provide an easier to use data model for end users. However, the PrepareForXXXExtended methods must be implemented to properly handle information sent to the service within the views. Views may only be used as the “leaf” level node in the underlying query. For instance if there is a query “Parent, child, grandchild”, then only the grandchild node can be a view.<span style="font-size:9.0pt;font-family:"Segoe UI","sans-serif";color:#333333"><o:p></o:p></span></p> <p class="MsoNormal" style="mso-margin-top-alt:0in;margin-right:.1in;margin-bottom:6.0pt;margin-left:.3in;line-height:13.5pt;background:white"> Only the following services shipped in Microsoft Dynamics AX 2012 are supported without modification in the Excel Add-in. Additional services meeting the above requirements can be constructed in order to extend the scenarios where excel can be used to update, create, and delete business data in Dynamics AX.<o:p></o:p></p> <p class="MsoNormal" style="mso-margin-top-alt:0in;margin-right:.1in;margin-bottom:6.0pt;margin-left:.3in;line-height:13.5pt;background:white"> ·<span style="font-size:7.0pt;font-family:"Times New Roman","serif";color:#333333"> </span>BudgetTransaction<span style="font-size:7.0pt;font-family:"Times New Roman","serif";color:#333333"><o:p></o:p></span></p> <p class="MsoNormal" style="mso-margin-top-alt:0in;margin-right:.1in;margin-bottom:6.0pt;margin-left:.3in;line-height:13.5pt;background:white"> · EMSMeterReading<o:p></o:p></p> <p class="MsoNormal" style="mso-margin-top-alt:0in;margin-right:.1in;margin-bottom:6.0pt;margin-left:.3in;line-height:13.5pt;background:white"> · EMSSubstanceFlow<o:p></o:p></p> <p class="MsoNormal" style="mso-margin-top-alt:0in;margin-right:.1in;margin-bottom:6.0pt;margin-left:.3in;line-height:13.5pt;background:white"> · GeneralJournal<o:p></o:p></p> <p class="MsoNormal" style="mso-margin-top-alt:0in;margin-right:.1in;margin-bottom:6.0pt;margin-left:.3in;line-height:13.5pt;background:white"> · ProductionPickingList<o:p></o:p></p> <p class="MsoNormal" style="mso-margin-top-alt:0in;margin-right:.1in;margin-bottom:6.0pt;margin-left:.3in;line-height:13.5pt;background:white"> · ProjectHourJournals<o:p></o:p></p> <p class="MsoNormal" style="mso-margin-top-alt:0in;margin-right:.1in;margin-bottom:6.0pt;margin-left:.3in;line-height:13.5pt;background:white"> · SysImportBusSector<o:p></o:p></p> <p class="MsoNormal" style="mso-margin-top-alt:0in;margin-right:.1in;margin-bottom:6.0pt;margin-left:.3in;line-height:13.5pt;background:white"> · VendGroup<o:p></o:p></p> <p class="MsoNormal" style="mso-margin-top-alt:0in;margin-right:.1in;margin-bottom:6.0pt;margin-left:.3in;line-height:13.5pt;background:white"> · VendRequestSignup<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;text-indent:.3in;line-height:normal;text-autospace:none"> <a name="_Toc303586573"><b><o:p> </o:p></b></a></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;text-indent:.3in;line-height:normal;text-autospace:none"> <b>Supported tables</b><b><o:p></o:p></b></p> <p class="MsoNormal" style="mso-margin-top-alt:0in;margin-right:.1in;margin-bottom:6.0pt;margin-left:.3in;line-height:13.5pt;background:white"> Not all tables presented in the “Add tables” dialog may be used with the Excel add-in, rather only those which meet the following requirements:<o:p></o:p></p> <p class="MsoNormal" style="mso-margin-top-alt:3.0pt;margin-right:0in;margin-bottom:6.0pt;margin-left:.5in;text-indent:-.25in;line-height:normal;background:white"> ·<span style="font-size:7.0pt;font-family:"Times New Roman","serif";color:#333333"> </span><b>Visible Identity:</b><span style="font-size:12.0pt;font-family:"Cambria","serif";color:#333333"> </span>There must be a unique index on the table which does not contain RecID as a component. This may be either the “Replacement Key”, or the “Primary Index”<span style="font-size:9.0pt;font-family:"Segoe UI","sans-serif";color:#333333"><o:p></o:p></span></p> <p class="MsoNormal" style="mso-margin-top-alt:3.0pt;margin-right:0in;margin-bottom:6.0pt;margin-left:.5in;text-indent:-.25in;line-height:normal;background:white"> ·<span style="font-size:7.0pt;font-family:"Times New Roman","serif";color:#333333"> </span><b>Valid References:</b><span style="font-size:12.0pt;font-family:"Cambria","serif";color:#333333"> </span>All relations in the relations collection for the table that refer to other tables via Rec-Id must be related to tables that have a “Replacement Key” specified.<span style="font-size:9.0pt;font-family:"Segoe UI","sans-serif";color:#333333"><o:p></o:p></span></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b><o:p> </o:p></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Summary</b>: In order to make Excel Add-in working to import the data the specification of Replacement key is required. Excel Add-in uses Replacement key to interpret Surrogate key based relations between tables. There’s multiple options how to change the Data Model and introduce Replacement key to the table: use existing field(s) which will form unique Natural key, introduce brand new field(s) which will form unique Natural key or create unique Replacement key based on one of the existing fields and RecID field. <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"><b>Author</b>: <a href="mailto:%20ani.kiev@gmail.com">Alex Anikiev</a>, PhD, MCP</p><p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"><b>Tags:</b> Dynamics ERP,<b> </b>Dynamics AX 2012, Excel, Dynamics AX 2012 Excel Add-in, Data Import, Data Conversion, Data Migration, Application Integration Framework, Table Inheritance, Surrogate Key, Natural Key, Replacement Key. </p><p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"><b>Note:</b> This document is intended for information purposes only, presented as it is with no warranties from the author. This document may be updated with more content to better outline the concepts and describe the examples. It’s recommended that all Data Model changes introduced as a part of this demonstration will be removed once you complete data import exercise. </p><p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"><o:p></o:p></p> <p class="MsoNormal"><o:p> </o:p></p> </div>Alex Anikievhttp://www.blogger.com/profile/13438665643699572584noreply@blogger.com8tag:blogger.com,1999:blog-7090402456402630247.post-61349589333868348372012-01-24T19:32:00.001-08:002012-01-24T19:36:10.979-08:00Dynamics AX 2012 Excel Add-in - Issues and Solutions<div class="WordSection1"> <div style="mso-element:para-border-div;border:none;border-bottom:solid #4F81BD 1.0pt;padding:0in 0in 4.0pt 0in"> <p class="MsoTitleCxSpFirst" align="center" style="text-align: left;"><b>Dynamics AX 2012 <span style="text-align: center; ">Excel Add-in – Issues and Solutions</span></b></p><p class="MsoTitleCxSpLast" align="center" style="text-align:center"><o:p></o:p></p> </div> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Purpose:</b> The purpose of this document is to outline some issues you may encounter when using Dynamics AX 2012 Excel Add-in for import of data and provide solutions to resolve them.</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Issue</b>: “This operation is not supported for a relative URI”.</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Reason:</b> This issue occurs because AppFabric Service Bus endpoint is not configured. AppFabric Service Bus endpoints are similar to WCF endpoints. The only difference is that specific binding are used to communicate with relay service. The ‘sb’ represents the scheme used to communicate with the AppFabric Service Bus. The scheme can be either ‘http’ or ‘sb’ depending on the binding you are using. Endpoints can be configured in application configuration files or programmatically. Alternatively you can delete the endpoint if you don’t use it. <span style="color:red"> </span></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Dynamics AX Error</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b><a href="http://3.bp.blogspot.com/-v_MgPxRiDcI/Tx93zA31XiI/AAAAAAAACn4/9DQ91wnZb0c/s1600/image001-748617.jpg"><img src="http://3.bp.blogspot.com/-v_MgPxRiDcI/Tx93zA31XiI/AAAAAAAACn4/9DQ91wnZb0c/s320/image001-748617.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5701407371565555234" /></a></b></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Solution</b>: Please delete or configure ‘sb’ endpoint. ‘sb’ endpoint has no address defined which is treated by Dynamics AX Excel Add-in as relative URI. Below I show how to delete ‘sb’ endpoint.</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Microsoft Dynamics AX Configuration Utility<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-SlujI_dmmN0/Tx93zShPJQI/AAAAAAAACoA/QCg2enH011Y/s1600/image002-749413.jpg"><img src="http://2.bp.blogspot.com/-SlujI_dmmN0/Tx93zShPJQI/AAAAAAAACoA/QCg2enH011Y/s320/image002-749413.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5701407376302613762" /></a></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Opening Microsoft Service Configuration Editor dialog<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-EKLt6HfcO1M/Tx93zi_G_nI/AAAAAAAACoU/kNviRI1jE5c/s1600/image003-750170.jpg"><img src="http://2.bp.blogspot.com/-EKLt6HfcO1M/Tx93zi_G_nI/AAAAAAAACoU/kNviRI1jE5c/s320/image003-750170.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5701407380722876018" /></a></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> WCF Configuration Editor<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://3.bp.blogspot.com/-VYR0qp3k4AE/Tx93zyceX9I/AAAAAAAACoc/ba2dioRNnJc/s1600/image004-751873.png"><img src="http://3.bp.blogspot.com/-VYR0qp3k4AE/Tx93zyceX9I/AAAAAAAACoc/ba2dioRNnJc/s320/image004-751873.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5701407384872574930" /></a></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Save Changes to WCF Configuration <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <a href="http://2.bp.blogspot.com/-7Xs2U6IIZy0/Tx930YkrXeI/AAAAAAAACoo/obwsJGnccTQ/s1600/image005-753096.png"><img src="http://2.bp.blogspot.com/-7Xs2U6IIZy0/Tx930YkrXeI/AAAAAAAACoo/obwsJGnccTQ/s320/image005-753096.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5701407395107528162" /></a></p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> Restart Excel</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Author</b>: <a href="mailto:%20ani.kiev@gmail.com">Alex Anikiev</a>, PhD, MCP</p> <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal;text-autospace:none"> <b>Tags:</b> Dynamics ERP,<b> </b>Dynamics AX 2012, Excel, Dynamics AX 2012 Excel Add-in, Data Import, Data Conversion, Data Migration, Application Integration Framework, Issue, Problem, Solution, Resolution. </p> <p class="MsoNormal"><b>Note:</b> This document is intended for information purposes only, presented as it is with no warranties from the author. This document may be updated with more content to better outline the issues and describe the solutions.<o:p></o:p></p> </div>Alex Anikievhttp://www.blogger.com/profile/13438665643699572584noreply@blogger.com5tag:blogger.com,1999:blog-7090402456402630247.post-80221961605766543922012-01-17T10:57:00.000-08:002012-01-17T19:45:07.304-08:00Dynamics AX 2012 Data Import using Excel Add-in<div style="border-width: medium medium 1pt; border-style: none none solid; border-color: currentColor currentColor rgb(79, 129, 189); padding: 0in 0in 4pt; mso-element: para-border-div;color:accent1;" > <p style="text-align: left;" class="MsoTitleCxSpFirst" align="center"><b>Dynamics AX 2012 <span style="text-align: center;">Excel Add-in – Data Import</span></b></p><p style="text-align: center;" class="MsoTitleCxSpLast" align="center"><?xml:namespace prefix = o /><o:p></o:p></p> </div> <p style="margin-bottom: 0pt;" class="MsoNormal"><b>Purpose:</b> The purpose of this document is to illustrate how to use Dynamics AX 2012 Excel Add-in for import of data.</p> <p style="margin-bottom: 0pt;" class="MsoNormal"><b>Challenge</b>: Data model changes in Dynamics AX related to high normalization and introduction of surrogate keys made import of data more complex. Additionally there are number of differences between Excel and AX Rich Client from UI standpoint when it comes to defaulting logic, use of number sequences, segmented controls and complex UI logic. AX Rich Client is obviously more dynamic comparing to Excel. However a lot of post-processing is usually done behind the scenes by means of AIF Proxy classes when the information is published into Dynamics AX. <span style="color:red;"> </span><o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><b>Solution</b>: Dynamics AX 2012 ships with the number of AIF Web Service which can be used in integration scenarios. However not all of them can be used in Excel at the moment for import of data. In order to import data using Excel the appropriate tables can be used instead. <o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><b>Data Model</b>:<o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <table style="border: currentColor; border-collapse: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"> <tbody><tr> <td style="background: rgb(217, 217, 217); padding: 0in 5.4pt; border: 1pt solid windowtext; width: 210.4pt; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 217;" valign="top" width="351"> <p style="margin-bottom: 0pt;" class="MsoNormal"><b>Table Name<o:p></o:p></b></p> </td> <td style="background: rgb(217, 217, 217); border-width: 1pt 1pt 1pt medium; border-style: solid solid solid none; border-color: windowtext windowtext windowtext currentColor; padding: 0in 5.4pt; width: 268.4pt; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-border-left-alt: solid windowtext .5pt;" valign="top" width="447"> <p style="margin-bottom: 0pt;" class="MsoNormal"><b>Table Description<o:p></o:p></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 210.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="351"> <p style="margin-bottom: 0pt;" class="MsoNormal">AlexParent<o:p></o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 268.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="447"> <p style="margin-bottom: 0pt;" class="MsoNormal">Sample table<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 210.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="351"> <p style="margin-bottom: 0pt;" class="MsoNormal">AlexTable<o:p></o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 268.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="447"> <p style="margin-bottom: 0pt;" class="MsoNormal">Sample header table which extends from sample table <o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 210.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="351"> <p style="margin-bottom: 0pt;" class="MsoNormal">AlexLine<o:p></o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 268.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="447"> <p style="margin-bottom: 0pt;" class="MsoNormal">Sample lines table<o:p></o:p></p> </td> </tr> </tbody></table> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><b>Data Model Diagram</b>:<o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal">Sample Data Model<o:p></o:p></p><p style="margin-bottom: 0pt;" class="MsoNormal"><img border="0" alt="image" src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/58ec933b2a1d401482dc33187bc8f71a.png" width="219" height="321" /> </p> <p style="margin-bottom: 0pt;" class="MsoNormal"><?xml:namespace prefix = v /><v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" preferrelative="t" spt="75" coordsize="21600,21600"> <v:stroke joinstyle="miter"> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0"> <v:f eqn="sum @0 1 0"> <v:f eqn="sum 0 0 @1"> <v:f eqn="prod @2 1 2"> <v:f eqn="prod @3 21600 pixelWidth"> <v:f eqn="prod @3 21600 pixelHeight"> <v:f eqn="sum @0 0 1"> <v:f eqn="prod @6 1 2"> <v:f eqn="prod @7 21600 pixelWidth"> <v:f eqn="sum @8 21600 0"> <v:f eqn="prod @7 21600 pixelHeight"> <v:f eqn="sum @10 21600 0"> </v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:formulas> <v:path connecttype="rect" gradientshapeok="t" extrusionok="f"> <o:lock aspectratio="t" ext="edit"> </o:lock></v:path></v:stroke></v:shapetype><v:shape style="width: 163.2pt; height: 240pt;" id="_x0000_i1025" ole="" type="#_x0000_t75"> <v:imagedata title="" src="file:///C:\Users\ALEX\AppData\Local\Temp\msohtmlclip1\01\clip_image001.emz"> </v:imagedata></v:shape><o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><b>Walkthrough</b>: <o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal">Connection<o:p></o:p></p><p style="margin-bottom: 0pt;" class="MsoNormal"><img border="0" alt="image" src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/363de9d59b5147f1a3add329d226a9b4.jpg" width="500" height="167" /> </p> <p style="margin-bottom: 0pt;" class="MsoNormal"><v:shape style="width: 408.6pt; height: 137.4pt; visibility: visible; mso-wrap-style: square;" id="Picture_x0020_1" type="#_x0000_t75" spid="_x0000_i1046"> <v:imagedata title="" src="file:///C:\Users\ALEX\AppData\Local\Temp\msohtmlclip1\01\clip_image002.png"> </v:imagedata></v:shape><o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal">Add Tables<o:p></o:p></p><p style="margin-bottom: 0pt;" class="MsoNormal"><img border="0" alt="image" src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/c8df3ee9d2a24511b9fab30ed4effa89.jpg" width="500" height="401" /> </p> <p style="margin-bottom: 0pt;" class="MsoNormal"><v:shape style="width: 450.6pt; height: 362.4pt; visibility: visible; mso-wrap-style: square;" id="Picture_x0020_38" type="#_x0000_t75" spid="_x0000_i1045"> <v:imagedata title="" src="file:///C:\Users\ALEX\AppData\Local\Temp\msohtmlclip1\01\clip_image003.png"> </v:imagedata></v:shape><o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal">Dynamics AX Error<o:p></o:p></p><p style="margin-bottom: 0pt;" class="MsoNormal"><img border="0" alt="image" src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/ae4d03d104a14e5a9166908b0f2e6429.jpg" width="469" height="170" /> </p><p style="margin-bottom: 0pt;" class="MsoNormal"><img border="0" alt="image" src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/4e275a7342f64001a7535fb41f8e8dcd.jpg" width="476" height="157" /></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><v:shape style="width: 351.6pt; height: 127.8pt; visibility: visible; mso-wrap-style: square;" id="Picture_x0020_9" type="#_x0000_t75" spid="_x0000_i1044"> <v:imagedata title="" src="file:///C:\Users\ALEX\AppData\Local\Temp\msohtmlclip1\01\clip_image004.png"> </v:imagedata></v:shape><o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><v:shape style="width: 357pt; height: 117.6pt; visibility: visible; mso-wrap-style: square;" id="Picture_x0020_12" type="#_x0000_t75" spid="_x0000_i1043"> <v:imagedata title="" src="file:///C:\Users\ALEX\AppData\Local\Temp\msohtmlclip1\01\clip_image005.png"> </v:imagedata></v:shape><o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal">Solution<o:p></o:p></p> <p style="text-indent: -0.25in; margin-bottom: 0pt;" class="MsoListParagraphCxSpFirst"><!--[if !supportLists]-->-<span> </span><!--[endif]-->Add replacement key to AlexParent table<o:p></o:p></p> <p style="text-indent: -0.25in; margin-bottom: 0pt;" class="MsoListParagraphCxSpMiddle"><!--[if !supportLists]-->-<span> </span><!--[endif]-->Add replacement key to AlexTable table<o:p></o:p></p> <p style="text-indent: -0.25in; margin-bottom: 0pt;" class="MsoListParagraphCxSpLast"><!--[if !supportLists]-->-<span> </span><!--[endif]-->Add replacement key to AlexLine table<o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal">Project<o:p></o:p></p><p style="margin-bottom: 0pt;" class="MsoNormal"><img border="0" alt="image" src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/9bb3f6ae67d145fe8f2a509b1fe0559c.jpg" width="307" height="325" /> </p> <p style="margin-bottom: 0pt;" class="MsoNormal"><v:shape style="width: 230.4pt; height: 243.6pt; visibility: visible; mso-wrap-style: square;" id="Picture_x0020_33" type="#_x0000_t75" spid="_x0000_i1042"> <v:imagedata title="" src="file:///C:\Users\ALEX\AppData\Local\Temp\msohtmlclip1\01\clip_image006.png"> </v:imagedata></v:shape><o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal">AlexParent table<o:p></o:p></p><p style="margin-bottom: 0pt;" class="MsoNormal"><img border="0" alt="image" src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/91e1c0c2ad8541079a016574d29acd8e.jpg" width="500" height="389" /> </p> <p style="margin-bottom: 0pt;" class="MsoNormal"><v:shape style="width: 404.4pt; height: 315pt; visibility: visible; mso-wrap-style: square;" id="Picture_x0020_34" type="#_x0000_t75" spid="_x0000_i1041"> <v:imagedata title="" src="file:///C:\Users\ALEX\AppData\Local\Temp\msohtmlclip1\01\clip_image007.png"> </v:imagedata></v:shape><o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal">AlexTable table<o:p></o:p></p><p style="margin-bottom: 0pt;" class="MsoNormal"><img border="0" alt="image" src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/8f6d5ea07fd04c56b4760dba362202de.jpg" width="500" height="389" /> </p> <p style="margin-bottom: 0pt;" class="MsoNormal"><v:shape style="width: 387pt; height: 301.2pt; visibility: visible; mso-wrap-style: square;" id="Picture_x0020_35" type="#_x0000_t75" spid="_x0000_i1040"> <v:imagedata title="" src="file:///C:\Users\ALEX\AppData\Local\Temp\msohtmlclip1\01\clip_image008.png"> </v:imagedata></v:shape><o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal">AlexLine table<o:p></o:p></p><p style="margin-bottom: 0pt;" class="MsoNormal"><img border="0" alt="image" src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/503819b4303a4d23bb0e8c0ff7bb4acc.jpg" width="500" height="392" /> </p> <p style="margin-bottom: 0pt;" class="MsoNormal"><v:shape style="width: 401.4pt; height: 315pt; visibility: visible; mso-wrap-style: square;" id="Picture_x0020_36" type="#_x0000_t75" spid="_x0000_i1039"> <v:imagedata title="" src="file:///C:\Users\ALEX\AppData\Local\Temp\msohtmlclip1\01\clip_image009.png"> </v:imagedata></v:shape><o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal">Once Replacement key is added on AlexTable table Excel Add-in will be able to interpret Surrogate key relation between AlexTable table and AlexLine table using Natural key (Replacement key).<o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal">Table/Field Properties<o:p></o:p></p><p style="margin-bottom: 0pt;" class="MsoNormal"><img border="0" alt="image" src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/693f42e52c20416d905b9d1794adf94d.jpg" width="500" height="385" /> </p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><v:shape style="width: 413.4pt; height: 319.2pt; visibility: visible; mso-wrap-style: square;" id="Picture_x0020_37" type="#_x0000_t75" spid="_x0000_i1038"> <v:imagedata title="" src="file:///C:\Users\ALEX\AppData\Local\Temp\msohtmlclip1\01\clip_image010.png"> </v:imagedata></v:shape><o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal">Query<o:p></o:p></p><p style="margin-bottom: 0pt;" class="MsoNormal"><img border="0" alt="image" src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/a5b63c715f8f4ad1ad2b56e7fc61013c.jpg" width="393" height="417" /> </p> <p style="margin-bottom: 0pt;" class="MsoNormal"><v:shape style="width: 294.6pt; height: 313.2pt; visibility: visible; mso-wrap-style: square;" id="Picture_x0020_24" type="#_x0000_t75" spid="_x0000_i1037"> <v:imagedata title="" src="file:///C:\Users\ALEX\AppData\Local\Temp\msohtmlclip1\01\clip_image011.png"> </v:imagedata></v:shape><o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal">Generate AIF Proxy classes<o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal">Select Document Parameters</p><p style="margin-bottom: 0pt;" class="MsoNormal"><img border="0" alt="image" src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/2fcb24a94e11428cb194b2607cf8d8ed.jpg" width="454" height="369" /> </p><p></p> <p style="margin-bottom: 0pt;" class="MsoNormal">Select Code Generation Parameters<o:p></o:p></p><p style="margin-bottom: 0pt;" class="MsoNormal"><img border="0" alt="image" src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/eb26b1d24e3e49f9a980026edf426e1a.jpg" width="448" height="363" /> </p> <p style="margin-bottom: 0pt;" class="MsoNormal"><v:shape style="width: 336pt; height: 272.4pt; visibility: visible; mso-wrap-style: square;" id="Picture_x0020_21" type="#_x0000_t75" spid="_x0000_i1035"> <v:imagedata title="" src="file:///C:\Users\ALEX\AppData\Local\Temp\msohtmlclip1\01\clip_image013.png"> </v:imagedata></v:shape><o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal">Completed<o:p></o:p></p><p style="margin-bottom: 0pt;" class="MsoNormal"><img border="0" alt="image" src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/831052ed82ad4558a305f6fc2d40dcab.jpg" width="448" height="363" /> </p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><v:shape style="width: 336pt; height: 271.8pt; visibility: visible; mso-wrap-style: square;" id="Picture_x0020_22" type="#_x0000_t75" spid="_x0000_i1034"> <v:imagedata title="" src="file:///C:\Users\ALEX\AppData\Local\Temp\msohtmlclip1\01\clip_image014.png"> </v:imagedata></v:shape><o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal">Project <b>AxdAlex</b><o:p></o:p></p><p style="margin-bottom: 0pt;" class="MsoNormal"><img border="0" alt="image" src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/6cd3de2c5afc45cbaa8d26c718a3989f.jpg" width="369" height="346" /> </p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><v:shape style="width: 276.6pt; height: 259.8pt; visibility: visible; mso-wrap-style: square;" id="Picture_x0020_23" type="#_x0000_t75" spid="_x0000_i1033"> <v:imagedata title="" src="file:///C:\Users\ALEX\AppData\Local\Temp\msohtmlclip1\01\clip_image015.png"> </v:imagedata></v:shape><o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal">Generate Incremental CIL<o:p></o:p></p><p style="margin-bottom: 0pt;" class="MsoNormal"><img border="0" alt="image" src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/8b076832440d4838a632ef28401fd33a.jpg" width="239" height="80" /> </p> <p style="margin-bottom: 0pt;" class="MsoNormal"><v:shape style="width: 179.4pt; height: 60pt; visibility: visible; mso-wrap-style: square;" id="Picture_x0020_2" type="#_x0000_t75" spid="_x0000_i1032"> <v:imagedata title="" src="file:///C:\Users\ALEX\AppData\Local\Temp\msohtmlclip1\01\clip_image016.png"> </v:imagedata></v:shape><o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal">Field Chooser <o:p></o:p></p><p style="margin-bottom: 0pt;" class="MsoNormal">Excel Add-in takes into account table inheritance</p><p style="margin-bottom: 0pt;" class="MsoNormal"><o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal">Also please note that ID field in AlexTable table (and ParentID field in AlexParent table) is used for Replacement Key <-> Surrogate Key translation <o:p></o:p></p><p style="margin-bottom: 0pt;" class="MsoNormal"><img border="0" alt="image" src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/caec15a1778b4a4aae0df13481b40f44.jpg" width="500" height="346" /> </p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><v:shape style="width: 468pt; height: 324pt; visibility: visible; mso-wrap-style: square;" id="Picture_x0020_39" type="#_x0000_t75" spid="_x0000_i1031"> <v:imagedata title="" src="file:///C:\Users\ALEX\AppData\Local\Temp\msohtmlclip1\01\clip_image017.png"> </v:imagedata></v:shape><o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal">AlexTable<o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <table style="border: currentColor; border-collapse: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"> <tbody><tr> <td style="background: rgb(217, 217, 217); padding: 0in 5.4pt; border: 1pt solid windowtext; width: 239.4pt; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 217;" valign="top" width="399"> <p style="margin-bottom: 0pt;" class="MsoNormal"><b>Field Name<o:p></o:p></b></p> </td> <td style="background: rgb(217, 217, 217); border-width: 1pt 1pt 1pt medium; border-style: solid solid solid none; border-color: windowtext windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-border-left-alt: solid windowtext .5pt;" valign="top" width="399"> <p style="margin-bottom: 0pt;" class="MsoNormal"><b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="399"> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="399"> <p style="margin-bottom: 0pt;" class="MsoNormal">InstanceRelationType<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="399"> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="399"> <p style="margin-bottom: 0pt;" class="MsoNormal">ParentID<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="399"> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="399"> <p style="margin-bottom: 0pt;" class="MsoNormal">ID<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="399"> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="399"> <p style="margin-bottom: 0pt;" class="MsoNormal">A<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="399"> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="399"> <p style="margin-bottom: 0pt;" class="MsoNormal">B<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="399"> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="399"> <p style="margin-bottom: 0pt;" class="MsoNormal">C<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="399"> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="399"> <p style="margin-bottom: 0pt;" class="MsoNormal">D<o:p></o:p></p> </td> </tr> </tbody></table> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><v:shape style="width: 414.6pt; height: 41.4pt; visibility: visible; mso-wrap-style: square;" id="Picture_x0020_17" type="#_x0000_t75" spid="_x0000_i1030"> <v:imagedata title="" src="file:///C:\Users\ALEX\AppData\Local\Temp\msohtmlclip1\01\clip_image018.png"> </v:imagedata></v:shape><o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><img border="0" alt="image" src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/6dd459b802bf43398bb04eb35b6ff6de.jpg" width="500" height="49" /> </p><p style="margin-bottom: 0pt;" class="MsoNormal">AlexLine<o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <table style="border: currentColor; border-collapse: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt;" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"> <tbody><tr> <td style="background: rgb(217, 217, 217); padding: 0in 5.4pt; border: 1pt solid windowtext; width: 239.4pt; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 217;" valign="top" width="399"> <p style="margin-bottom: 0pt;" class="MsoNormal"><b>Field Name<o:p></o:p></b></p> </td> <td style="background: rgb(217, 217, 217); border-width: 1pt 1pt 1pt medium; border-style: solid solid solid none; border-color: windowtext windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: background1; mso-background-themeshade: 217; mso-border-left-alt: solid windowtext .5pt;" valign="top" width="399"> <p style="margin-bottom: 0pt;" class="MsoNormal"><b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="399"> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="399"> <p style="margin-bottom: 0pt;" class="MsoNormal">AlexTable.ParentID<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="399"> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="399"> <p style="margin-bottom: 0pt;" class="MsoNormal">AlexTable.ID<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="399"> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="399"> <p style="margin-bottom: 0pt;" class="MsoNormal">E<o:p></o:p></p> </td> </tr> <tr> <td style="border-width: medium 1pt 1pt; border-style: none solid solid; border-color: currentColor windowtext windowtext; padding: 0in 5.4pt; width: 239.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="399"> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> </td> <td style="border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: currentColor windowtext windowtext currentColor; padding: 0in 5.4pt; width: 239.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt;" valign="top" width="399"> <p style="margin-bottom: 0pt;" class="MsoNormal">F<o:p></o:p></p> </td> </tr> </tbody></table> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><v:shape style="width: 287.4pt; height: 41.4pt; visibility: visible; mso-wrap-style: square;" id="Picture_x0020_28" type="#_x0000_t75" spid="_x0000_i1029"> <v:imagedata title="" src="file:///C:\Users\ALEX\AppData\Local\Temp\msohtmlclip1\01\clip_image019.png"> </v:imagedata></v:shape><o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><img border="0" alt="image" src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/386f7130433340748679cce058869a81.jpg" width="383" height="55" /> </p><p style="margin-bottom: 0pt;" class="MsoNormal"><b>Sequence</b>: <o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="text-indent: -0.25in; margin-bottom: 0pt;" class="MsoListParagraphCxSpFirst"><!--[if !supportLists]-->1.<span> </span><!--[endif]-->AlexTable – Publish Selected<o:p></o:p></p> <p style="text-indent: -0.25in; margin-bottom: 0pt;" class="MsoListParagraphCxSpLast"><!--[if !supportLists]-->2.<span> </span><!--[endif]-->AlexLine – Publish Selected<o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><b>Result</b>: <o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal">Dynamics AX – Table Browser<o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal">AlexParent<o:p></o:p></p><p style="margin-bottom: 0pt;" class="MsoNormal"><img border="0" alt="image" src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/14e731b28c9c49aab9f8f92cc2a4caf3.jpg" width="500" height="197" /> </p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><v:shape style="width: 461.4pt; height: 182.4pt; visibility: visible; mso-wrap-style: square;" id="Picture_x0020_31" type="#_x0000_t75" spid="_x0000_i1028"> <v:imagedata title="" src="file:///C:\Users\ALEX\AppData\Local\Temp\msohtmlclip1\01\clip_image020.png"> </v:imagedata></v:shape><o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal">AlexTable<o:p></o:p></p><p style="margin-bottom: 0pt;" class="MsoNormal"><img border="0" alt="image" src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/4c87577967e3442a91cdfacdde8bf96d.jpg" width="500" height="140" /> </p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><v:shape style="width: 468pt; height: 131.4pt; visibility: visible; mso-wrap-style: square;" id="Picture_x0020_32" type="#_x0000_t75" spid="_x0000_i1027"> <v:imagedata title="" src="file:///C:\Users\ALEX\AppData\Local\Temp\msohtmlclip1\01\clip_image021.png"> </v:imagedata></v:shape><o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal">AlexLine<o:p></o:p></p><p style="margin-bottom: 0pt;" class="MsoNormal"><img border="0" alt="image" src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/a7ee83f7cc2740f7a6fdd80a5dc29524.jpg" width="500" height="197" /> </p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><v:shape style="width: 461.4pt; height: 182.4pt; visibility: visible; mso-wrap-style: square;" id="Picture_x0020_30" type="#_x0000_t75" spid="_x0000_i1026"> <v:imagedata title="" src="file:///C:\Users\ALEX\AppData\Local\Temp\msohtmlclip1\01\clip_image022.png"> </v:imagedata></v:shape><o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><b>SQL Trace: <o:p></o:p></b></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><b><o:p> </o:p></b></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><b>Summary</b>: For the purposes of small or medium data migration (data conversion) where performance is not a concern Excel can be used for import of data into Dynamics AX 2012. Although some of AIF Web Services can’t be used at the moment in Excel for import of data, appropriate tables can be used instead. Excel template can be created and used for import of data.<o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><b>Author</b>: <a href="mailto:%20ani.kiev@gmail.com">Alex Anikiev</a>, PhD, MCP<o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><o:p> </o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><b>Tags:</b> Dynamics ERP,<b> </b>Dynamics AX 2012, Excel, Dynamics AX 2012 Excel Add-in, Data Import, Data Conversion, Data Migration, Application Integration Framework, Table Inheritance, Surrogate Key, Natural Key, Replacement Key. <o:p></o:p></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><b><o:p> </o:p></b></p> <p style="margin-bottom: 0pt;" class="MsoNormal"><b>Note:</b> This document is intended for information purposes only, presented as it is with no warranties from the author. This document may be updated with more content to better outline the concepts and describe the examples. It’s recommended that all Data Model changes introduced as a part of this demonstration will be removed once you complete data import exercise. <o:p></o:p></p>Alex Anikievhttp://www.blogger.com/profile/13438665643699572584noreply@blogger.com12tag:blogger.com,1999:blog-7090402456402630247.post-43602441766733978362012-01-17T08:07:00.003-08:002012-01-17T14:48:21.137-08:00Dynamics AX 2012 Purchase orders Import using Excel Add-in<b style="text-align: center; ">Dynamics AX 2012 E</b><b style="text-align: center; ">xcel Add-in – Purchase orders Import</b><div><div style="border-top-style: none; border-right-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; border-bottom-style: solid; border-bottom-color: rgb(79, 129, 189); border-bottom-width: 1pt; padding-top: 0in; padding-right: 0in; padding-bottom: 4pt; padding-left: 0in; "><br /><b><br /></b></div><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b><br /></b></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Purpose:</b> The purpose of this document is to illustrate how to use Microsoft Dynamics AX 2012 Excel Add-in for import of purchase orders.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Challenge</b>: Data model changes in Microsoft Dynamics related to high normalization and introduction of surrogate keys made some imports more complex. In fact the data model forming Purchase Orders was not dramatically changed and import principle remains the same – populate the header and related lines. However some information which is usually automatically generated in Microsoft Dynamics AX 2012 Rich Client by means of number sequences such as purchase order ID will have to be provided. <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Solution</b>:<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Assumption</b>: The assumption is that appropriate reference data such as vendors, etc. was created in advance.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Data Model</b>:<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt; mso-yfti-tbllook:1184;mso-padding-alt:0in 5.4pt 0in 5.4pt"> <tbody><tr> <td width="335" valign="top" style="width:200.85pt;border:solid windowtext 1.0pt; mso-border-alt:solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor: background1;mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Table Name<o:p></o:p></b></p> </td> <td width="463" valign="top" style="width:277.95pt;border:solid windowtext 1.0pt; border-left:none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt: solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor:background1; mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Table Description<o:p></o:p></b></p> </td> </tr> <tr> <td width="335" valign="top" style="width:200.85pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">PurchTable<o:p></o:p></p> </td> <td width="463" valign="top" style="width:277.95pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">The PurchTable table contains all the purchase order headers regardless of whether they have been posted.<o:p></o:p></p> </td> </tr> <tr> <td width="335" valign="top" style="width:200.85pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">PurchLine<o:p></o:p></p> </td> <td width="463" valign="top" style="width:277.95pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">The PurchLine table contains all purchase order lines regardless whether they have been posted or not.<o:p></o:p></p> </td> </tr> </tbody></table> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Data Model Diagram</b>:<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/50e4dd5c87474a8393c44e2e0c70f181.png" alt="image" width="228" height="200" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Walkthrough</b>: <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Connection<o:p></o:p></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><img src="http://pp2.s3.amazonaws.com/41e660af252446e5/ae5504df94814c018334c381a72c22fb.jpg" alt="image" width="500" height="167" border="0" /> </p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Error</p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p></o:p></p> <img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/f6e6696d9c19435bae5551e5c2b2a525.jpg" alt="image" width="480" height="184" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/214149ec9a31427ab077b90e7300f9a5.jpg" alt="image" width="483" height="214" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Add Tables<o:p></o:p></p> <img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/cf32b9a3cc7241628c0e930a1cab0c20.jpg" alt="image" width="500" height="343" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Field Chooser<o:p></o:p></p> <img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/06dbcea08cf84b379bbb47b55e85d0af.jpg" alt="image" width="500" height="310" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Purchase order ID number sequence<o:p></o:p></p> <img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/67746396c3c843e18b9cf6cd3a702d52.jpg" alt="image" width="500" height="370" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">PurchTable<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt; mso-yfti-tbllook:1184;mso-padding-alt:0in 5.4pt 0in 5.4pt"> <tbody><tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; mso-border-alt:solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor: background1;mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Field Name<o:p></o:p></b></p> </td> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-left:none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt: solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor:background1; mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Currency<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Invoice account<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Language<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Purchase order<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Vendor account<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Vendor group<o:p></o:p></p> </td> </tr> </tbody></table> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/a827423be2dc46df809761ad933da28c.jpg" alt="image" width="500" height="43" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">PurchLine<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt; mso-yfti-tbllook:1184;mso-padding-alt:0in 5.4pt 0in 5.4pt"> <tbody><tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; mso-border-alt:solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor: background1;mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Field Name<o:p></o:p></b></p> </td> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-left:none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt: solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor:background1; mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Currency<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Group<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Lot ID<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Purchase order<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Vendor account<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Item number<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Quantity<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Unit price<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Net amount<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Dimension No.<o:p></o:p></p> </td> </tr> </tbody></table> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/02bba4cfae9145d98cd84a693b5883a0.jpg" alt="image" width="500" height="31" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">InventDim<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/a7cfb20dc9f8418ebe6b4e52ceb2f3a5.jpg" alt="image" width="500" height="121" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Excel VLookup function may be used to find appropriate InventDimId automatically based on criteria<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Sequence</b>: <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoListParagraphCxSpFirst" style="margin-bottom: 0.0001pt; text-indent: -0.25in; "><!--[if !supportLists]-->1.<span style="font:7.0pt "Times New Roman""> </span><!--[endif]-->SalesTable - Publish Selected<o:p></o:p></p> <p class="MsoListParagraphCxSpLast" style="margin-bottom: 0.0001pt; text-indent: -0.25in; "><!--[if !supportLists]-->2.<span style="font:7.0pt "Times New Roman""> </span><!--[endif]-->SalesLine – Publish Selected <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Result</b>: <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Dynamics AX – Purchase Order <o:p></o:p></p> <img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/5be57e0e608f4339b233063767a5e22d.jpg" alt="image" width="500" height="399" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Dynamics AX – Purchase Order Invoice<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/526a6089d5ac487bb65438530a4d6f71.jpg" alt="image" width="500" height="279" border="0" /> </p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b><o:p> </o:p></b></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>SQL Trace:</b></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b><o:p> </o:p></b></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Summary</b>:<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Author</b>: <a href="mailto:%20ani.kiev@gmail.com">Alex Anikiev</a>, PhD, MCP</p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Tags:</b> Dynamics ERP,<b> </b>Dynamics AX 2012, Excel, Dynamics AX 2012 Excel Add-in, Data Import, Data Conversion, Data Migration, Application Integration Framework, Purchase orders.<o:p></o:p></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b><o:p></o:p></b></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Note:</b> This document is intended for information purposes only, presented as it is with no warranties from the author. This document may be updated with more content to better outline the concepts and describe the examples. It’s recommended that all Data Model changes introduced as a part of this demonstration will be removed once you complete data import exercise.</p><p></p><p></p></div>Alex Anikievhttp://www.blogger.com/profile/13438665643699572584noreply@blogger.com14tag:blogger.com,1999:blog-7090402456402630247.post-8783022158639406112012-01-17T08:07:00.001-08:002012-01-17T14:45:45.422-08:00Dynamics AX 2012 Free text invoices Import using Excel Add-in<b style="text-align: center; ">Dynamics AX 2012 E</b><b style="text-align: center; ">xcel Add-in – Free text invoices Import</b><div><div style="border-top-style: none; border-right-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; border-bottom-style: solid; border-bottom-color: rgb(79, 129, 189); border-bottom-width: 1pt; padding-top: 0in; padding-right: 0in; padding-bottom: 4pt; padding-left: 0in; "><br /><b><br /></b></div><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b><br /></b></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Purpose:</b> The purpose of this document is to illustrate how to use Microsoft Dynamics AX 2012 Excel Add-in for import of free text invoices.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Challenge</b>: Data model changes in Microsoft Dynamics related to high normalization and introduction of surrogate keys made some imports more complex. The data model forming Free text invoices was not dramatically changed and import principle remains the same – populate the header and related lines. In fact the link between the header and lines in build based on RecID which adds complexity. <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Solution</b>: Microsoft Dynamics AX 2012 ships with Free Text Invoice AIF Web Service (CustFreeTextInvoiceService) which can be used in integration scenarios. However Free Text Invoice AIF Web Service can’t be used in Excel at the moment for import of free text invoices. In order to import a free text invoices using Excel the appropriate tables will be used.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Assumption</b>: The assumption is that appropriate reference data such as customers, etc. was created in advance.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Data Model</b>:<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt; mso-yfti-tbllook:1184;mso-padding-alt:0in 5.4pt 0in 5.4pt"> <tbody><tr> <td width="335" valign="top" style="width:200.85pt;border:solid windowtext 1.0pt; mso-border-alt:solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor: background1;mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Table Name<o:p></o:p></b></p> </td> <td width="463" valign="top" style="width:277.95pt;border:solid windowtext 1.0pt; border-left:none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt: solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor:background1; mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Table Description<o:p></o:p></b></p> </td> </tr> <tr> <td width="335" valign="top" style="width:200.85pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">CustInvoiceTable<o:p></o:p></p> </td> <td width="463" valign="top" style="width:277.95pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">The CustInvoiceTable table contains free text invoices.<o:p></o:p></p> </td> </tr> <tr> <td width="335" valign="top" style="width:200.85pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">CustInvoiceLine<o:p></o:p></p> </td> <td width="463" valign="top" style="width:277.95pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">The CustInvoiceLine table contains line items for an accounts receivable free text invoice.<o:p></o:p></p> </td> </tr> </tbody></table> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Data Model Diagram</b>:<o:p></o:p></p> <img src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/48a31b54a8434aa5ae38f4d0fc616b1a.png" alt="image" width="259" height="207" border="0" /><br /><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Walkthrough</b>: <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Connection<o:p></o:p></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><img src="http://pp2.s3.amazonaws.com/41e660af252446e5/ae5504df94814c018334c381a72c22fb.jpg" alt="image" width="500" height="167" border="0" /> </p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Add Data</p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p></o:p></p> <img src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/e76c5039c3c24ce3a6bd4a91b63c50f9.jpg" alt="image" width="500" height="343" border="0" /><br /><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Error<o:p></o:p></p> <img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/28f2b8c63f824ee8aa546681fca8e9c4.jpg" alt="image" width="473" height="500" border="0" /><br /><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Solution<o:p></o:p></p> <p class="MsoListParagraphCxSpFirst" style="margin-bottom: 0.0001pt; text-indent: -0.25in; "><!--[if !supportLists]-->-<span style="font:7.0pt "Times New Roman""> </span><!--[endif]-->Add replacement key to CustInvoiceTable table<o:p></o:p></p> <p class="MsoListParagraphCxSpLast" style="margin-bottom: 0.0001pt; text-indent: -0.25in; "><!--[if !supportLists]-->-<span style="font:7.0pt "Times New Roman""> </span><!--[endif]-->Add replacement key to CustInvoiceLine table<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Error<o:p></o:p></p> <img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/22b25847e2d040e48c1c56b446e61214.jpg" alt="image" width="480" height="157" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/20247de913b649df9c96bc33a117431d.jpg" alt="image" width="476" height="230" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Data Model Changes<o:p></o:p></p> <img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/1cc949b95ea64c0d998db00b83985c56.jpg" alt="image" width="351" height="319" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Temporary Key (Import ID)<o:p></o:p></p> <img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/9234e1e072f742de9a833142a8e8378c.jpg" alt="image" width="375" height="375" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">ImportID is custom String field that is introduced to overcome the problem with Surrogate key based relations between tables in Excel add-in. Index1 is as I call it “Temporary Key” used during data conversion (data migration) process only. This Temporary key will be assigned to the header table as Non Surrogate Replacement key. <o:p></o:p></p> <img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/2a059c78d6bf42b597d4710ef954721e.jpg" alt="image" width="500" height="294" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Lines table will still have relation to header table based on Surrogate key. <o:p></o:p></p> <img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/e6ce6945e79d40abb62a1ac6bf9c43bb.jpg" alt="image" width="500" height="174" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">But because header table has Natural Replacement key Excel add-in will be able to translate Surrogate key based relation into Natural Key relation as design time (data entry) and vice versa, Natural Key relation to Surrogate key relation, during run time (publishing). <o:p></o:p></p> <img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/38067029f4df41cb92de466ccfec4ba9.jpg" alt="image" width="445" height="409" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Proxy AIF classes<o:p></o:p></p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt; mso-yfti-tbllook:1184;mso-padding-alt:0in 5.4pt 0in 5.4pt"> <tbody><tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; mso-border-alt:solid windowtext .5pt;background:#F2F2F2;mso-background-themecolor: background1;mso-background-themeshade:242;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Table<o:p></o:p></b></p> </td> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-left:none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt: solid windowtext .5pt;background:#F2F2F2;mso-background-themecolor:background1; mso-background-themeshade:242;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Class<o:p></o:p></b></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">CustInvoiceTable<o:p></o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">AxCustInvoiceTable<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">CustInvoiceLine<o:p></o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">AxCustInvoiceLine<o:p></o:p></p> </td> </tr> </tbody></table> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">In order to regenerate Proxy AIF classes involved into Free text invoices import I used AIF Free Text Invoice Web Service (CustFreeTextInvoiceService) Update document service function available through Tools > AIF > Update document service in Development Workspace.<o:p></o:p></p> <img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/9bcc42d41101404c9b927f5aa9552cb5.jpg" alt="image" width="409" height="350" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">As the result appropriate AIF Proxy classes will be updated or created to support the translation ImportID - RecID.<br /><img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/7756d0d83d054de898cb7fc3b5bbccb3.jpg" alt="image" width="351" height="249" border="0" /> <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "> <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Generate Incremental CIL<o:p></o:p></p> <img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/3601943d602e4904bfa369c3f6c31cc7.jpg" alt="image" width="239" height="80" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Add Tables<o:p></o:p></p> <img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/efb6be0dc9be49c1b285e1ee19a6ec04.jpg" alt="image" width="500" height="407" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Field Chooser<o:p></o:p></p> <img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/a158ab1add254a2a83657f159197812c.jpg" alt="image" width="500" height="342" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">CustInvoiceTable<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt; mso-yfti-tbllook:1184;mso-padding-alt:0in 5.4pt 0in 5.4pt"> <tbody><tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; mso-border-alt:solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor: background1;mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Field Name<o:p></o:p></b></p> </td> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-left:none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt: solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor:background1; mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Currency<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Customer account<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Date<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Group<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Import ID<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Invoice account<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Language<o:p></o:p></p> </td> </tr> </tbody></table> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/2763c1d5de5944199ac37deaeaebe179.jpg" alt="image" width="500" height="39" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">CustInvoiceLine<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt; mso-yfti-tbllook:1184;mso-padding-alt:0in 5.4pt 0in 5.4pt"> <tbody><tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; mso-border-alt:solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor: background1;mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Field Name<o:p></o:p></b></p> </td> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-left:none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt: solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor:background1; mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Field Description<o:p></o:p></b></p> </td> </tr> <tr style="mso-yfti-irow:1;height:12.1pt"> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt;height:12.1pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt;height:12.1pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Customer free text invoice.Import ID<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Description<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">LedgerDimension.Main account<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Quantity<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Unit price<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Amount<o:p></o:p></p> </td> </tr> </tbody></table> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/49853e94e04642d78062d9736c47047b.jpg" alt="image" width="500" height="32" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Sequence</b>: <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoListParagraphCxSpFirst" style="margin-bottom: 0.0001pt; text-indent: -0.25in; "><!--[if !supportLists]-->1.<span style="font:7.0pt "Times New Roman""> </span><!--[endif]-->CustInvoiceTable - Publish Selected<o:p></o:p></p> <p class="MsoListParagraphCxSpLast" style="margin-bottom: 0.0001pt; text-indent: -0.25in; "><!--[if !supportLists]-->2.<span style="font:7.0pt "Times New Roman""> </span><!--[endif]-->CustInvoiceLine – Publish Selected <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Result</b>: <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Dynamics AX – Free text invoice <o:p></o:p></p> <img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/e7d925a3658545b1a369a78bf3def3c7.jpg" alt="image" width="500" height="411" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Dynamics AX – Free text invoice (Invoice)<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><img src="http://pp2.s3.amazonaws.com/7c65b333500d4c78/f601bdbc2ada46b187cd6bbc3b7149f2.jpg" alt="image" width="500" height="278" border="0" /> </p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b><o:p> </o:p></b></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>SQL Trace:</b></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b><o:p> </o:p></b></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Summary</b>: For the purposes of small or medium data migration (data conversion) where performance is not a concern Excel can be used for import of free text invoices into Microsoft Dynamics AX 2012. Although Free Text Invoice AIF Web Service (CustFreeTextInvoiceService) can’t be used at the moment in Excel for import of free text invoices, appropriate tables can be used instead. Excel template can be created and used for import of free text invoices.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Author</b>: <a href="mailto:%20ani.kiev@gmail.com">Alex Anikiev</a>, PhD, MCP</p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Tags:</b> Dynamics ERP,<b> </b>Dynamics AX 2012, Excel, Dynamics AX 2012 Excel Add-in, Data Import, Data Conversion, Data Migration, Application Integration Framework, Free text invoices.<o:p></o:p></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b><o:p></o:p></b></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Note:</b> This document is intended for information purposes only, presented as it is with no warranties from the author. This document may be updated with more content to better outline the concepts and describe the examples. It’s recommended that all Data Model changes introduced as a part of this demonstration will be removed once you complete data import exercise.</p><p></p><p></p></div>Alex Anikievhttp://www.blogger.com/profile/13438665643699572584noreply@blogger.com0tag:blogger.com,1999:blog-7090402456402630247.post-55487545311235579382012-01-17T08:06:00.003-08:002012-01-17T14:37:17.692-08:00Dynamics AX 2012 Sales orders Import using Excel Add-in<b style="text-align: center; ">Dynamics AX 2012 E</b><b style="text-align: center; ">xcel Add-in – Sales orders Import</b><div><div style="border-top-style: none; border-right-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; border-bottom-style: solid; border-bottom-color: rgb(79, 129, 189); border-bottom-width: 1pt; padding-top: 0in; padding-right: 0in; padding-bottom: 4pt; padding-left: 0in; "><br /><b><br /></b></div><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b><br /></b></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Purpose:</b> The purpose of this document is to illustrate how to use Microsoft Dynamics AX 2012 Excel Add-in for import of sales orders.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Challenge</b>: Data model changes in Microsoft Dynamics related to high normalization and introduction of surrogate keys made some imports more complex. In fact the data model forming Sales Orders was not dramatically changed and import principle remains the same – populate the header and related lines. However some information which is usually automatically generated in Microsoft Dynamics AX 2012 Rich Client by means of number sequences such as sales order ID will have to be provided. <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Solution</b>: Microsoft Dynamics AX 2012 ships with Sales Orders AIF Web Service (SalesSalesOrderService) which can be used in integration scenarios. However Sales Order AIF Web Service can’t be used in Excel at the moment for import of sales orders. In order to import a sales order using Excel the appropriate tables will be used.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Assumption</b>: The assumption is that appropriate reference data such as customers, etc. was created in advance.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Data Model</b>:<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt; mso-yfti-tbllook:1184;mso-padding-alt:0in 5.4pt 0in 5.4pt"> <tbody><tr> <td width="335" valign="top" style="width:200.85pt;border:solid windowtext 1.0pt; mso-border-alt:solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor: background1;mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Table Name<o:p></o:p></b></p> </td> <td width="463" valign="top" style="width:277.95pt;border:solid windowtext 1.0pt; border-left:none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt: solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor:background1; mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Table Description<o:p></o:p></b></p> </td> </tr> <tr> <td width="335" valign="top" style="width:200.85pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">SalesTable<o:p></o:p></p> </td> <td width="463" valign="top" style="width:277.95pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">The SalesTable table contains all sales order headers regardless of whether they have been posted.<o:p></o:p></p> </td> </tr> <tr> <td width="335" valign="top" style="width:200.85pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">SalesLine<o:p></o:p></p> </td> <td width="463" valign="top" style="width:277.95pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">The SalesLine table contains all sales order lines regardless of whether they have been posted.<o:p></o:p></p> </td> </tr> </tbody></table> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Data Model Diagram</b>:<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <img src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/2246a2a089c6475ab5eec2beb463b34c.png" alt="image" width="229" height="200" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Walkthrough</b>: <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Connection<o:p></o:p></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><img src="http://pp2.s3.amazonaws.com/41e660af252446e5/ae5504df94814c018334c381a72c22fb.jpg" alt="image" width="500" height="167" border="0" /> </p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Add Data</p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Error<o:p></o:p></p> <img src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/1ee71d8ee5bd4031bfbf93f9cdca5458.jpg" alt="image" width="500" height="463" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Solution<o:p></o:p></p> <p class="MsoListParagraphCxSpFirst" style="margin-bottom: 0.0001pt; text-indent: -0.25in; "><!--[if !supportLists]-->-<span style="font:7.0pt "Times New Roman""> </span><!--[endif]-->Add replacement key to CreditCardCust table<o:p></o:p></p> <p class="MsoListParagraphCxSpMiddle" style="margin-bottom: 0.0001pt; text-indent: -0.25in; "><!--[if !supportLists]-->-<span style="font:7.0pt "Times New Roman""> </span><!--[endif]-->Add replacement key to AgreementHeader table<o:p></o:p></p> <p class="MsoListParagraphCxSpMiddle" style="margin-bottom: 0.0001pt; text-indent: -0.25in; "><!--[if !supportLists]-->-<span style="font:7.0pt "Times New Roman""> </span><!--[endif]-->Add replacement key to SourceDocumentHeader table<o:p></o:p></p> <p class="MsoListParagraphCxSpMiddle" style="margin-bottom: 0.0001pt; text-indent: -0.25in; "><!--[if !supportLists]-->-<span style="font:7.0pt "Times New Roman""> </span><!--[endif]-->Add replacement key to DocuValue table<o:p></o:p></p> <p class="MsoListParagraphCxSpMiddle" style="margin-bottom: 0.0001pt; text-indent: -0.25in; "><!--[if !supportLists]-->-<span style="font:7.0pt "Times New Roman""> </span><!--[endif]-->Add replacement key to CustInvoiceLineIdRef table<o:p></o:p></p> <p class="MsoListParagraphCxSpMiddle" style="margin-bottom: 0.0001pt; text-indent: -0.25in; "><!--[if !supportLists]-->-<span style="font:7.0pt "Times New Roman""> </span><!--[endif]-->Add replacement key to MarkupTrans table<o:p></o:p></p> <p class="MsoListParagraphCxSpMiddle" style="margin-bottom: 0.0001pt; text-indent: -0.25in; "><!--[if !supportLists]-->-<span style="font:7.0pt "Times New Roman""> </span><!--[endif]-->Add replacement key to CustInvoiceLineTemplate table<o:p></o:p></p> <p class="MsoListParagraphCxSpLast" style="margin-bottom: 0.0001pt; text-indent: -0.25in; "><!--[if !supportLists]-->-<span style="font:7.0pt "Times New Roman""> </span><!--[endif]-->Add replacement key to BankLC table<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Error<o:p></o:p></p> <img src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/4314cd9076fc453d99dcc6eb8bb3dd5f.jpg" alt="image" width="402" height="158" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">No Solution yet<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Add Tables<o:p></o:p></p> <img src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/70c0219d1dc84d21b52e4430193dadca.jpg" alt="image" width="500" height="343" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Field Chooser<o:p></o:p></p> <img src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/fe3a41c9b0914b28b12de1f285a5c38a.jpg" alt="image" width="500" height="327" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Sales order ID number sequence<o:p></o:p></p> <img src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/3a1846f145c849639a4c60a81d1dc9e0.jpg" alt="image" width="500" height="310" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">SalesTable<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt; mso-yfti-tbllook:1184;mso-padding-alt:0in 5.4pt 0in 5.4pt"> <tbody><tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; mso-border-alt:solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor: background1;mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Field Name<o:p></o:p></b></p> </td> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-left:none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt: solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor:background1; mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Currency<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Customer account<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Customer group<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Invoice account<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Language<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Requested ship date<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Sales order<o:p></o:p></p> </td> </tr> </tbody></table> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <img src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/058276928b904fe38a7e35d996a01a19.jpg" alt="image" width="500" height="32" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">SalesLine<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt; mso-yfti-tbllook:1184;mso-padding-alt:0in 5.4pt 0in 5.4pt"> <tbody><tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; mso-border-alt:solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor: background1;mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Field Name<o:p></o:p></b></p> </td> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-left:none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt: solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor:background1; mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Sales order<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Currency<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Customer<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Group<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Requested ship date<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Source document line.Reference table ID<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Item number<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Quantity<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Unit price<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Net amount<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Dimension No.<o:p></o:p></p> </td> </tr> </tbody></table> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <img src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/79976fb5ffb84c9598a60101fc6d3eac.jpg" alt="image" width="500" height="22" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">InventDim<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <img src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/fb85c9da0ed3435190808cad69467b1d.jpg" alt="image" width="500" height="121" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Excel VLookup function may be used to find appropriate InventDimId automatically based on criteria<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Sequence</b>: <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoListParagraphCxSpFirst" style="margin-bottom: 0.0001pt; text-indent: -0.25in; "><!--[if !supportLists]-->1.<span style="font:7.0pt "Times New Roman""> </span><!--[endif]-->SalesTable - Publish Selected<o:p></o:p></p> <p class="MsoListParagraphCxSpLast" style="margin-bottom: 0.0001pt; text-indent: -0.25in; "><!--[if !supportLists]-->2.<span style="font:7.0pt "Times New Roman""> </span><!--[endif]-->SalesLine – Publish Selected <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Result</b>: <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Dynamics AX – Sales Order <o:p></o:p></p> <img src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/c1df28597e054a3e8519e009f83006d8.jpg" alt="image" width="500" height="431" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Dynamics AX – Sales Order Invoice<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><img src="http://pp2.s3.amazonaws.com/b8a5dbd4b1d3405e/3eb1c87fd1b14fd196965b5e770e6336.jpg" alt="image" width="500" height="249" border="0" /> </p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b><o:p> </o:p></b></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>SQL Trace:</b></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b><o:p> </o:p></b></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Summary</b>: For the purposes of small or medium data migration (data conversion) where performance is not a concern Excel can be used for import of sales orders into Microsoft Dynamics AX 2012. Although Sales Order AIF Web Service (SalesSalesOrderService) can’t be used at the moment in Excel for import of sales orders, appropriate tables can be used instead. Excel template can be created and used for import of sales orders.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Author</b>: <a href="mailto:%20ani.kiev@gmail.com">Alex Anikiev</a>, PhD, MCP</p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Tags:</b> Dynamics ERP,<b> </b>Dynamics AX 2012, Excel, Dynamics AX 2012 Excel Add-in, Data Import, Data Conversion, Data Migration, Application Integration Framework, Sales orders.</p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p></o:p></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b><o:p></o:p></b></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Note:</b> This document is intended for information purposes only, presented as it is with no warranties from the author. This document may be updated with more content to better outline the concepts and describe the examples. It’s recommended that all Data Model changes introduced as a part of this demonstration will be removed once you complete data import exercise.</p><p></p><p></p></div>Alex Anikievhttp://www.blogger.com/profile/13438665643699572584noreply@blogger.com3tag:blogger.com,1999:blog-7090402456402630247.post-66391212241760760482012-01-17T08:06:00.001-08:002012-01-17T11:11:26.659-08:00Dynamics AX 2012 Inventory transactions/on-hand Import using Excel Add-in<b style="text-align: center; ">Dynamics AX 2012 E</b><b style="text-align: center; ">xcel Add-in – Inventory transactions/on-hand Import</b><div><div style="border-top-style: none; border-right-style: none; border-left-style: none; border-width: initial; border-color: initial; border-image: initial; border-bottom-style: solid; border-bottom-color: rgb(79, 129, 189); border-bottom-width: 1pt; padding-top: 0in; padding-right: 0in; padding-bottom: 4pt; padding-left: 0in; "><br /><b><br /></b></div><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b><br /></b></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Purpose:</b> The purpose of this document is to illustrate how to use Microsoft Dynamics AX 2012 Excel Add-in for import of inventory transactions (on-hand).<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Challenge</b>: Data model changes in Microsoft Dynamics related to high normalization and introduction of surrogate keys made some imports more complex. In fact the data model forming Inventory Journal was not dramatically changed and import principle remains the same – populate the journal and then post the journal. However surrogate key link was introduced to some tables related to Inventory Journal transactions table.<span style="color:red"> </span><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Solution</b>: Microsoft Dynamics AX 2012 ships with lnventory Journal AIF Web Service (InventProfitLossJournalService) which can be used in integration scenarios. However Inventory Journal AIF Web Service can’t be used in Excel at the moment for import of inventory transactions. In order to import inventory transactions using Excel the appropriate tables will be used.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Assumption</b>: The assumption is that appropriate reference data such as released products (items), etc. was created in advance.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Data Model</b>:<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt; mso-yfti-tbllook:1184;mso-padding-alt:0in 5.4pt 0in 5.4pt"> <tbody><tr> <td width="335" valign="top" style="width:200.85pt;border:solid windowtext 1.0pt; mso-border-alt:solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor: background1;mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Table Name<o:p></o:p></b></p> </td> <td width="463" valign="top" style="width:277.95pt;border:solid windowtext 1.0pt; border-left:none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt: solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor:background1; mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Table Description<o:p></o:p></b></p> </td> </tr> <tr> <td width="335" valign="top" style="width:200.85pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">InventJournalTable<o:p></o:p></p> </td> <td width="463" valign="top" style="width:277.95pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">The InventJournalTable table contains information about inventory journals. The table holds information about how the journal is handled by the system.<o:p></o:p></p> </td> </tr> <tr> <td width="335" valign="top" style="width:200.85pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">InventJournalTrans<o:p></o:p></p> </td> <td width="463" valign="top" style="width:277.95pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">The InventJournalTrans table contains information about items and represents a line in an inventory journal. Each record has information related to a specific item and is related to a record in the InventJournalTable table, which is the journal header.<o:p></o:p></p> </td> </tr> </tbody></table> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Data Model Diagram</b>:<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <img src="http://pp2.s3.amazonaws.com/41e660af252446e5/b00a011b14b443938d5201ea7fbe4f8b.jpg" alt="image" width="500" height="281" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Walkthrough</b>: <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Connection<o:p></o:p></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><img src="http://pp2.s3.amazonaws.com/41e660af252446e5/ae5504df94814c018334c381a72c22fb.jpg" alt="image" width="500" height="167" border="0" /> </p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Add Data</p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><img src="http://pp2.s3.amazonaws.com/41e660af252446e5/d5fa11f6dbd34297b5bc8a697b2faa71.jpg" alt="image" width="500" height="238" border="0" /> </p><p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Dynamics AX – Error</p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><img src="http://pp2.s3.amazonaws.com/41e660af252446e5/7cea438bb9e747f38c206f90fe826345.jpg" alt="image" width="473" height="157" border="0" /> </p><p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Add Tables</p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><img src="http://pp2.s3.amazonaws.com/41e660af252446e5/aa951a02dea641a7bc989efec865701d.jpg" alt="image" width="500" height="331" border="0" /> </p><p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Field Chooser</p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><img src="http://pp2.s3.amazonaws.com/41e660af252446e5/55e43f46e6214d6fb250c2acc5a517d1.jpg" alt="image" width="500" height="312" border="0" /> </p><p class="MsoNormal" style="margin-bottom: 0.0001pt; ">InventJournalTable</p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt; mso-yfti-tbllook:1184;mso-padding-alt:0in 5.4pt 0in 5.4pt"> <tbody><tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; mso-border-alt:solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor: background1;mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Field Name<o:p></o:p></b></p> </td> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-left:none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt: solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor:background1; mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Journal<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Name<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Description<o:p></o:p></p> </td> </tr> </tbody></table> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <img src="http://pp2.s3.amazonaws.com/41e660af252446e5/8729d879d3c646ea93ac996aa2a86c7f.jpg" alt="image" width="288" height="50" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">InventJournalTrans<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt; mso-yfti-tbllook:1184;mso-padding-alt:0in 5.4pt 0in 5.4pt"> <tbody><tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; mso-border-alt:solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor: background1;mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Field Name<o:p></o:p></b></p> </td> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-left:none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt: solid windowtext .5pt;background:#D9D9D9;mso-background-themecolor:background1; mso-background-themeshade:217;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Field Description<o:p></o:p></b></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Date<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Item number<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Journal<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Line number<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Dimension No<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Quantity<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Cost price<o:p></o:p></p> </td> </tr> <tr> <td width="399" valign="top" style="width:239.4pt;border:solid windowtext 1.0pt; border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> </td> <td width="399" valign="top" style="width:239.4pt;border-top:none;border-left: none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt"> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Cost amount<o:p></o:p></p> </td> </tr> </tbody></table> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><img src="http://pp2.s3.amazonaws.com/41e660af252446e5/e05add4317564b27a25c259aac226b48.jpg" alt="image" width="500" height="34" border="0" /> </p><p class="MsoNormal" style="margin-bottom: 0.0001pt; ">InventDim</p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><img src="http://pp2.s3.amazonaws.com/41e660af252446e5/b3121761321942a5ab0c953234b821fd.jpg" alt="image" width="500" height="121" border="0" /> </p><p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Excel VLookup function may be used to find appropriate InventDimId automatically based on criteria</p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "> <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Sequence</b>: <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoListParagraphCxSpFirst" style="margin-bottom: 0.0001pt; text-indent: -0.25in; "><!--[if !supportLists]-->1.<span style="font:7.0pt "Times New Roman""> </span><!--[endif]-->InventJournalTable – Publish Selected<o:p></o:p></p> <p class="MsoListParagraphCxSpLast" style="margin-bottom: 0.0001pt; text-indent: -0.25in; "><!--[if !supportLists]-->2.<span style="font:7.0pt "Times New Roman""> </span><!--[endif]-->InventJournalTrans – Publish Selected <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Result</b>: <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Dynamics AX – Inventory Journal <o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><img src="http://pp2.s3.amazonaws.com/41e660af252446e5/2d708a1da2fb4f0ab8f50c5c4d1224e3.jpg" alt="image" width="500" height="264" border="0" /> </p><p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Dynamics AX – Inventory Journal lines</p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p></o:p></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><img src="http://pp2.s3.amazonaws.com/41e660af252446e5/6d55595195774d79a205f6b42d3b9b35.jpg" alt="image" width="500" height="225" border="0" /> </p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Dynamics AX – On-hand</p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p></o:p></p> <img src="http://pp2.s3.amazonaws.com/41e660af252446e5/fff5c2c1abf84b3796dbb6a5e59c8079.jpg" alt="image" width="381" height="500" border="0" /><br /> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; ">Dynamics AX – Posting<o:p></o:p></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><img src="http://pp2.s3.amazonaws.com/41e660af252446e5/03be3817f83641d7a0be28f9c468f5ae.jpg" alt="image" width="500" height="183" border="0" /></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>SQL Trace:</b></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b><o:p> </o:p></b></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Summary</b>: For the purposes of small or medium data migration (data conversion) where performance is not a concern Excel can be used for import of inventory transactions into Microsoft Dynamics AX 2012. Although Inventory Journal AIF Web Service (InventProfitLossJournalService) can’t be used at the moment in Excel for import of inventory transactions, appropriate tables can be used instead. Excel template can be created and used for import of inventory transactions.<o:p></o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><o:p> </o:p></p> <p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Author</b>: <a href="mailto:%20ani.kiev@gmail.com">Alex Anikiev</a>, PhD, MCP</p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Tags:</b> Dynamics ERP,<b> </b>Dynamics AX 2012, Excel, Dynamics AX 2012 Excel Add-in, Data Import, Data Conversion, Data Migration, Application Integration Framework, Inventory on-hand.<o:p></o:p></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b><o:p></o:p></b></p><p class="MsoNormal" style="margin-bottom: 0.0001pt; "><b>Note:</b> This document is intended for information purposes only, presented as it is with no warranties from the author. This document may be updated with more content to better outline the concepts and describe the examples. It’s recommended that all Data Model changes introduced as a part of this demonstration will be removed once you complete data import exercise.</p><p></p><p></p></div>Alex Anikievhttp://www.blogger.com/profile/13438665643699572584noreply@blogger.com14