<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Charlie Mott</title>
        <link>http://geekswithblogs.net/charliemott/Default.aspx</link>
        <description> </description>
        <language>en-GB</language>
        <copyright>charlie.mott</copyright>
        <managingEditor>charlie.mott@hotmail.co.uk</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>Charlie Mott</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/charliemott/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>BizTalk Map Documenter</title>
            <category>BizTalk 2006 R2</category>
            <link>http://geekswithblogs.net/charliemott/archive/2009/07/23/biztalk-map-documenter.aspx</link>
            <description>Article Source: http://geekswithblogs.net/charliemott&lt;br /&gt;
&lt;br /&gt;
The "HTML Generator StyleSheet for BizTalk Maps" originally posted by &lt;a href="http://www.hartsteve.com/2006/02/20/biztalk-map-documenter/"&gt;Steve Hart&lt;/a&gt; is now on CodePlex.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://biztalkmapdoc.codeplex.com"&gt;http://biztalkmapdoc.codeplex.com&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I have uploaded a new version that includes the following updates (not all of this was developed by me):&lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;output of label data.&lt;/li&gt;
    &lt;li&gt;output of constants used.&lt;/li&gt;
    &lt;li&gt;updated table layout.&lt;/li&gt;
    &lt;li&gt;separate tables for each BizTalk page.&lt;/li&gt;
&lt;/ul&gt;
I've also includes details of how this can be run in an MSBuild process.&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133669"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133669" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/charliemott/aggbug/133669.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>charlie.mott</dc:creator>
            <guid>http://geekswithblogs.net/charliemott/archive/2009/07/23/biztalk-map-documenter.aspx</guid>
            <pubDate>Thu, 23 Jul 2009 13:34:17 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/charliemott/comments/133669.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/charliemott/archive/2009/07/23/biztalk-map-documenter.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/charliemott/comments/commentRss/133669.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/charliemott/services/trackbacks/133669.aspx</trackback:ping>
        </item>
        <item>
            <title>Stub of Dynamics AX for BizTalk Development and BizUnit Testing</title>
            <category>BizTalk 2006 R2</category>
            <link>http://geekswithblogs.net/charliemott/archive/2009/05/13/stub-of-dynamics-ax-for-biztalk-development-and-bizunit-testing.aspx</link>
            <description>Article Source: http://geekswithblogs.net/charliemott&lt;br /&gt;
&lt;br /&gt;
This article describes our approach to testing BizTalk integration with Dynamics AX 2009.  It builds on the "Alternative Bindings" approach as described by &lt;a href="http://geekswithblogs.net/michaelstephenson/archive/2009/05/12/132052.aspx"&gt;Mike Stephenson&lt;/a&gt;.   &lt;br /&gt;
&lt;h2&gt;Alternative Bindings&lt;/h2&gt;
We are communicating asynchronous with Dynamics.  As such, in our developer / unit test bindings, we have replaced use of the AIF Adapter with the MSMQ Adapter.   If you are communicating synchronously, you could use the WCF Adapter.&lt;br /&gt;
&lt;h2&gt;Mimic the Dynamics AIF Adapter&lt;/h2&gt;
We also need to mimic the actions of the AIF Adapter.  To do this, we have used 2 test pipelines and a test schema in our developer bindings: &lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;We created a test implementation of the AX envelope schema (AxEnvelope.xsd).  This has the same namespace and structure as the actual AX schema.  The difference is that our test schema has all the Header fields as promoted properties.  &lt;/li&gt;
&lt;/ul&gt;
&lt;div style="margin-left: 40px;"&gt;&lt;img height="281" width="461" src="/images/geekswithblogs_net/charliemott/Stub of Dynamics AX for BizTalk Development and BizUnit Testing/AxEnvelopeSchema.PNG" alt="Test AX Envelope Schema with Promoted Properties" /&gt;&lt;/div&gt;
&lt;ul&gt;
    &lt;li&gt;On the send side, our send ports use our &lt;span style="font-style: italic;"&gt;MimicDynammicsAifAdapterSend &lt;/span&gt;pipeline.  This has an XML Assembler component.  This wraps the outbound messages in the AxEnvelope envelope.  With property demotion, the header fields are set from the context properties (as set in our orchestrations). This enables us to test these values in our BizUnit validation steps.&lt;br /&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
    &lt;li&gt;On the receive side, our &lt;span style="font-style: italic;"&gt;MimicDynamicsAifAdapterReceive &lt;/span&gt;pipeline has an XML Disassembler that strips off the envelope.  The header fields are prompted to the message context properties.  In particular, the MessageId envelope header field is required to be added to the message context so the response messages can be correlated to the message sent to Dynamics. The dissassember references the schemas: DynamicsAx5.Fault, DynamicsAx5.EntityKeyList, DynamicsAx5.EntityKey and all other message types we are expecting from Dynamics.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Stub Dynamics&lt;/h2&gt;
In order to mimic Dynamics sending a response to messages we send to Dynamics, we also built a custom BizUnit test step (AxSendResponseStep).  &lt;br /&gt;
&lt;br /&gt;
The response message can be a valid response (DynamicsAx5.EntityKeyList) or an invalid response (DynamicsAx5.Fault) as specified in the step parameters.  In the Dynamics response message, the MessageId is replaced with the same MessageId in the received message.  This ensures the Dynamics response messages can be correlated by BizTalk orchestrations.&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132080"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132080" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/charliemott/aggbug/132080.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>charlie.mott</dc:creator>
            <guid>http://geekswithblogs.net/charliemott/archive/2009/05/13/stub-of-dynamics-ax-for-biztalk-development-and-bizunit-testing.aspx</guid>
            <pubDate>Wed, 13 May 2009 14:26:40 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/charliemott/comments/132080.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/charliemott/archive/2009/05/13/stub-of-dynamics-ax-for-biztalk-development-and-bizunit-testing.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/charliemott/comments/commentRss/132080.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/charliemott/services/trackbacks/132080.aspx</trackback:ping>
        </item>
        <item>
            <title>Value vs. Id Cross Referencing in BizTalk</title>
            <category>BizTalk 2006 R2</category>
            <link>http://geekswithblogs.net/charliemott/archive/2009/04/20/value-vs.id-cross-referencing-in-biztalk.aspx</link>
            <description>&lt;p&gt;Article Source: http://geekswithblogs.net/charliemott&lt;/p&gt;
&lt;p&gt;Ever wondered what the differences are between "id" and "value" cross referencing in BizTalk?&lt;/p&gt;
&lt;h2&gt;Functional&lt;/h2&gt;
&lt;p&gt;The functional difference is documented &lt;a href="http://technet.microsoft.com/en-us/library/microsoft.biztalk.crossreferencing.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;... The cross reference ID methods can be used to establish and lookup the relationship between the IDs used by the two systems. ... the cross reference value methods can be used to translate the value used by one system to the value used by the other system.&lt;/blockquote&gt;
&lt;p&gt;Digging a bit under the covers to understand this reveals the following:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Id cross referencing supports one-to-one bi-directional mapping data.&lt;/strong&gt; In Id cross referencing, there is a one-to-one relationship of cross reference data between applications.  This is enforced by the database table constraints.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Value cross referencing supports one-way many-to-one mapping data.&lt;/strong&gt;  For example, Germany, France or Spain can all be mapped to Europe. The tables for Value cross referencing are similar to the Id tables apart from the constraints.  As a result, value cross referencing can only be guaranteed in a single direction.  For example, you cannot map Europe to a single country.&lt;/p&gt;
&lt;h2&gt;Technical&lt;/h2&gt;
&lt;p&gt;A technical difference is identified by &lt;a href="http://geekswithblogs.net/michaelstephenson/archive/2008/09/14/125162.aspx"&gt;Michael Stephenson&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;In ID cross referencing it will hit the database everytime....&lt;br /&gt;
VALUE cross referencing implements a simple cache....if you update data in the database you should restart each host instance that uses it before the changes will take effect.&lt;/blockquote&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131316"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=131316" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/charliemott/aggbug/131316.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>charlie.mott</dc:creator>
            <guid>http://geekswithblogs.net/charliemott/archive/2009/04/20/value-vs.id-cross-referencing-in-biztalk.aspx</guid>
            <pubDate>Mon, 20 Apr 2009 23:28:21 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/charliemott/comments/131316.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/charliemott/archive/2009/04/20/value-vs.id-cross-referencing-in-biztalk.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/charliemott/comments/commentRss/131316.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/charliemott/services/trackbacks/131316.aspx</trackback:ping>
        </item>
    </channel>
</rss>