<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Cnext's Blog</title>
	<atom:link href="http://blog.cnext.eu/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.cnext.eu</link>
	<description>Unifying Systems, People and Processes</description>
	<lastBuildDate>Mon, 10 Jan 2011 08:19:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.cnext.eu' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Cnext's Blog</title>
		<link>http://blog.cnext.eu</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.cnext.eu/osd.xml" title="Cnext&#039;s Blog" />
	<atom:link rel='hub' href='http://blog.cnext.eu/?pushpress=hub'/>
		<item>
		<title>Deploying a custom biztalk adapter with strong named assemblies</title>
		<link>http://blog.cnext.eu/2010/05/02/deploying-a-custom-biztalk-adapter-with-strong-named-assemblies/</link>
		<comments>http://blog.cnext.eu/2010/05/02/deploying-a-custom-biztalk-adapter-with-strong-named-assemblies/#comments</comments>
		<pubDate>Sun, 02 May 2010 18:13:03 +0000</pubDate>
		<dc:creator>Cnext</dc:creator>
				<category><![CDATA[BizTalk]]></category>

		<guid isPermaLink="false">http://blog.cnext.eu/?p=212</guid>
		<description><![CDATA[In a BizTalk environment it is sometimes necessary to create a custom adapter to implement functionality that is not available with the out-of-the-box adapters. This article will handle a small part in the process of implementing your custom adapter, the deployment part. Also, this article only applies to adapters that use strong named assemblies. Using [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.cnext.eu&amp;blog=7026719&amp;post=212&amp;subd=cnext&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In a BizTalk environment it is sometimes necessary to create a custom adapter to implement functionality that is not available with the out-of-the-box adapters. This article will handle a small part in the process of implementing your custom adapter, the deployment part.</p>
<p>Also, this article only applies to adapters that use strong named assemblies. Using strong named assemblies has advantages like unique names, versioning, security,… See this link: <a href="http://msdn.microsoft.com/en-us/library/wd40t7ad(VS.71).aspx">http://msdn.microsoft.com/en-us/library/wd40t7ad(VS.71).aspx</a></p>
<p>To install or update your custom adapter you need to do the following steps.</p>
<p><strong>Install the assemblies in the GAC.</strong></p>
<p>You can use a MSI installation for production. For development you can drag your newly built assemblies in the GAC where the BizTalk runtime resides.You do this for both the design-time and run-time assembly.</p>
<p><strong>Registry settings</strong></p>
<p>When the BizTalk administration console starts it will check the registry for the design-time settings (assemblypath,propertynamespace). Therefor it is important to restart your administration console each time you update these. You can generate a registry file (.reg) to insert/update the adapter registry settings using the <em>adapter registration wizard</em> (see this link: <a href="http://msdn.microsoft.com/en-us/library/aa578379(BTS.20).aspx">http://msdn.microsoft.com/en-us/library/aa578379(BTS.20).aspx</a>). Unfortunately some generated items are incorrect when using strong named assemblies. You can&#8217;t choose strong named assemblies when choosing the assemblies that represent your adapter with the Registration Wizard. This leads to values like these in the registry file: <em>&#8220;AdapterMgmtAssemblyPath&#8221;=&#8221;C:\\MyProject\\bin\\debug\\AdapterManagement.dll&#8221;</em>This is not the path for a strong named assembly. You can delete the values for the <em>AdapterMgmtAssemblyPath</em>, <em>OutboundAssemblyPath</em> and <em>InboundAssemblyPath</em>. Execute the registry file. You can verify the settings with the registry editor.</p>
<p><strong>Update Database table</strong></p>
<p>If you have not yet added your adapter to the available adapters yet, do this now. This is done by right clicking the adapters node in the administration console and choose new, adapter. Add your custom adapter. When adding your custom adapter, a record will be created in the adm_adapter table in the BizTalkMgmtDb. This record will be read when the runtime (host) starts, the host will load your adapter assembly based on the references in this table. It is not customary to change data in the BizTalk databases manually but we&#8217;ll make an exception just this once. Open the adm_adapter table in the BizTalkMgmtDb. Verify if strong named references to your runtime assembly is used. For example the inboundTypeName column should contain <em>MyCompany.BizTalk.FileReceiver, MyCompany.BizTalk.FileReceiverClass, Version=11.4.0.0, Culture=neutral, publicKeyToken=63168444d906e8f6</em></p>
<p><strong>Activate your adapter</strong></p>
<p>You activate the new version of your adapter by restarting all the host instances that use it. Watch out for changed properties. These should be filled in properly for each receive location or send port that uses your adapter.</p>
<br />Filed under: <a href='http://blog.cnext.eu/category/biztalk/'>BizTalk</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cnext.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cnext.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cnext.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cnext.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/cnext.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/cnext.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/cnext.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/cnext.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cnext.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cnext.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cnext.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cnext.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cnext.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cnext.wordpress.com/212/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.cnext.eu&amp;blog=7026719&amp;post=212&amp;subd=cnext&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.cnext.eu/2010/05/02/deploying-a-custom-biztalk-adapter-with-strong-named-assemblies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f620b4876d4bc7150323c37248b2c5de?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cnext</media:title>
		</media:content>
	</item>
		<item>
		<title>AS2 and context properties</title>
		<link>http://blog.cnext.eu/2010/05/02/as2-and-context-properties/</link>
		<comments>http://blog.cnext.eu/2010/05/02/as2-and-context-properties/#comments</comments>
		<pubDate>Sun, 02 May 2010 17:09:52 +0000</pubDate>
		<dc:creator>Cnext</dc:creator>
				<category><![CDATA[BizTalk]]></category>

		<guid isPermaLink="false">http://blog.cnext.eu/?p=187</guid>
		<description><![CDATA[In a previous post I wrote about an AS2 problem that I encountered after renaming the BizTalk Groupname. In this post I digg into another AS2 problem, this time related to context properties. Lately I have been asked to reconfigure an AS2 configuration to send messages with a predefined filename. This is easily done by [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.cnext.eu&amp;blog=7026719&amp;post=187&amp;subd=cnext&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In a previous post I wrote about an AS2 problem that I encountered after renaming the BizTalk Groupname.<br />
In this post I digg into another AS2 problem, this time related to context properties.</p>
<p>Lately I have been asked to reconfigure an AS2 configuration to send messages with a predefined filename. This is easily done by selecting <em>Transmit file name in MIME header</em>. This checkbox can be found under the AS2 properties of the sending party. As you can see in the printscreen there is a possibility to point to a context property of which the value will be used as filename.<br />
Simply put the context property shortname between two percent signs. If the context property wouldn&#8217;t exist you can choose to suspend the message.</p>
<p><img src="http://cnext.files.wordpress.com/2010/05/050210_1709_as2andconte13.jpg" alt="" /><br />
<span style="font-family:Times New Roman;font-size:12pt;"><br />
</span></p>
<p>After my first attempt to send a message <em>another</em> AS2 error showed up.</p>
<blockquote><p><span style="font-family:Segoe UI;font-size:9pt;"><br />
A message sent to adapter &#8220;HTTP&#8221; on send port &#8220;sp_As2ToACC&#8221; with URI &#8220;http://192.168.254.163:5081/BTSHTTPReceive.dll&#8221;<br />
&#8220;http://192.168.244.153:5081/BTSHTTPReceive.dll&#8221;<br />
&#8221; is suspended. Error details: There was a failure executing the send pipeline: &#8220;Microsoft.BizTalk.EdiInt.DefaultPipelines.AS2Send, Microsoft.BizTalk.Edi.EdiIntPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&#8243; Source: &#8220;AS2 encoder&#8221; Send Port: &#8220;sp_As2ToACC&#8221; URI: http://192.168.254.163:5081/BTSHTTPReceive.dll<br />
</span><span style="font-family:Segoe UI;font-size:9pt;"><br />
Reason: <strong>The type initializer for &#8216;Microsoft.BizTalk.AS2.Pipelines.BizTalkPropertyList&#8217; threw an exception.</strong></span><span style="font-family:Segoe UI;font-size:9pt;"><br />
MessageId: {451AC15C-7545-4487-8979-26E0511BCC3E}</span><span style="font-family:Segoe UI;font-size:9pt;"><br />
InstanceID: {B8823D47-30F9-4E29-8649-8A965ADA1AF4}<br />
</span></p></blockquote>
<p style="margin-left:1pt;">Following the errormessage something went wrong with the initialisation of the BizTalkPropertyList.<br />
This list can be found in the <em>BizTalkMgmt</em> database table <em>bt_DocumentSpec</em>.<br />
The AS2 encoder will query this table to look up the property configured for retrieving the filename.<br />
So what happened? If we open this table we see a lot of columns. But for the AS2 encoder only two seems to matter: <em>clr_namespace </em>and <em>schema_root_name</em>. The error mentioned above is caused when there are two or more property schemes deployed with the same value for these fields. In other words to avoid the AS2 encoder error, the concatenation of these fields must act as a primary key within this table. Also note that the duplicate property does not necessarely have a relation to the configured filename property. Lets have a closer look. Every BizTalk developer knows that every scheme must be made unique by its targetnamespace and rootname. This garantuees that BizTalk will process every message correctly. In the <em>bt_DocumentSpec</em> table this value is stored as &#8216;msgtype&#8217;. In this case we are talking about propertyschemes. So the msgtype field value is constructed by <em>targetnamespace#propertyname</em>. Because a scheme lives in a .Net BizTalk Assembly there is also another .NET namespace associated with the property. Right! <em>clr.namespace.schema_root_name</em>. Do remember that while this is not the fully qualified name of the property it is the value where the AS2 encoder will look for.</p>
<p style="margin-left:1pt;">For example, the two rows shown in the picture below will cause the error.</p>
<p style="margin-left:1pt;"><img src="http://cnext.files.wordpress.com/2010/05/050210_1709_as2andconte23.png" alt="" /><br />
<span style="font-family:Times New Roman;font-size:12pt;"><br />
</span></p>
<p style="margin-left:1pt;">I wrote a sql script to easily find duplicates in the <em>bt_DocumentSpec</em> table.</p>
<p style="margin-left:1pt;background:#ddd9c3;"><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">SELECT </span></span><span style="font-family:Courier New;font-size:10pt;">clr_namespace <span style="color:gray;">+ </span><span style="color:red;">&#8216;.&#8217; </span><span style="color:gray;">+</span> schema_root_name <span style="color:blue;">as</span> shortName<span style="color:gray;">, </span></span><span style="font-family:Courier New;font-size:10pt;"><span style="color:fuchsia;">COUNT</span><span style="color:gray;">(*)</span><br />
</span><span style="color:blue;font-family:Courier New;font-size:10pt;">FROM </span><span style="font-family:Courier New;font-size:10pt;">[dbo]<span style="color:gray;">.</span>[bt_DocumentSpec]</span><br />
<span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">WHERE</span> xsd_type <span style="color:gray;">&lt;&gt; </span><span style="color:red;">&#8221;</span><br />
</span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">GROUP </span><span style="color:blue;">BY</span> clr_namespace <span style="color:gray;">+ </span><span style="color:red;">&#8216;.&#8217; </span><span style="color:gray;">+</span> schema_root_name<br />
</span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">HAVING </span><span style="color:fuchsia;">COUNT</span><span style="color:gray;">(*) </span><span style="color:gray;">&gt;</span> 1<br />
</span></p>
<p style="margin-left:1pt;">If you find duplicate properties you have to rename the <em>clr_namespace.</em> Do this by opening the propertylist of the propertyschema you want to modify (from within visual studio). There you will find the .Net namespace. Try to keep this namespace unique for all your BizTalk projects.</p>
<p style="margin-left:1pt;"><img src="http://cnext.files.wordpress.com/2010/05/050210_1709_as2andconte33.png" alt="" /><br />
<span style="font-family:Times New Roman;font-size:12pt;"><br />
</span></p>
<p style="margin-left:1pt;"> </p>
<br />Filed under: <a href='http://blog.cnext.eu/category/biztalk/'>BizTalk</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cnext.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cnext.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cnext.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cnext.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/cnext.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/cnext.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/cnext.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/cnext.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cnext.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cnext.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cnext.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cnext.wordpress.com/187/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cnext.wordpress.com/187/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cnext.wordpress.com/187/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.cnext.eu&amp;blog=7026719&amp;post=187&amp;subd=cnext&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.cnext.eu/2010/05/02/as2-and-context-properties/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f620b4876d4bc7150323c37248b2c5de?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cnext</media:title>
		</media:content>

		<media:content url="http://cnext.files.wordpress.com/2010/05/050210_1709_as2andconte13.jpg" medium="image" />

		<media:content url="http://cnext.files.wordpress.com/2010/05/050210_1709_as2andconte23.png" medium="image" />

		<media:content url="http://cnext.files.wordpress.com/2010/05/050210_1709_as2andconte33.png" medium="image" />
	</item>
		<item>
		<title>Debugging an external assembly that’s called from within a BizTalk process</title>
		<link>http://blog.cnext.eu/2009/09/24/debugging-an-external-assembly-that%e2%80%99s-called-from-within-a-biztalk-process/</link>
		<comments>http://blog.cnext.eu/2009/09/24/debugging-an-external-assembly-that%e2%80%99s-called-from-within-a-biztalk-process/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 18:55:18 +0000</pubDate>
		<dc:creator>Cnext</dc:creator>
				<category><![CDATA[BizTalk]]></category>

		<guid isPermaLink="false">http://blog.cnext.eu/?p=173</guid>
		<description><![CDATA[External assemblies are being called from within BizTalk orchestrations in almost every BizTalk application. Knowing how to debug them is important. This guideline will show you how you can debug those external assemblies on your workstation or a remote box using a very simple sample application. Debugging external assemblies on a local box with one [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.cnext.eu&amp;blog=7026719&amp;post=173&amp;subd=cnext&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>External assemblies are being called from within BizTalk orchestrations in almost every BizTalk application.<br />
Knowing how to debug them is important. This guideline will show you how you can debug those external assemblies on<br />
your workstation or a remote box using a very simple sample application.
</p>
<p><strong>Debugging external assemblies on a local box with one BizTalk host instance sample application<br />
</strong></p>
<p>In the sample application an orchestration has been created that calls a method in an external C#.Net assembly.<br />
Both projects are built and deployed. The BizTalk project is deployed on the workstation by using the deploy solution function.<br />
The deploy solution can be used after setting the project deployment configuration properties. The external C#.Net assembly is<br />
installed into the GAC.
</p>
<p><strong>Debugging<br />
</strong></p>
<p>When your project is deployed and configured, be sure to restart the host instances that host the project you want to debug.<br />
In Visual Studio set breakpoints in your code. To debug you must attach to the process that is running the .Net code.<br />
This process will be the BizTalk host that runs the orchestration calling the .Net code.
</p>
<p><img align="left" src="http://cnext.files.wordpress.com/2009/09/092409_1855_debuggingan1.png">In Visual Studio, click the Debug menu and choose <em>Attach to Process</em>.
</p>
<p>The BTSNTSvc.exe process, which represents one host instance, is probably running under a different account than your personal account. Therefor you must activate the <em>Show processes from all users</em> checkbox.
</p>
<p>If you only have one host instance on the machine you are debugging on, choosing the right process is simple. Later on we will show you what to do when multiple host instances are present. Click attach after selecting the correct process. An error can occur specifying that Transact SQL debugging is not possible. Ignore this.
</p>
<p>Now activate your orchestration so that it will call the .Net code. Your breakpoint should be hit and you can debug like any other .Net code.
</p>
<p><strong></p>
<p>Remote debugging, multiple host instances<br />
</strong></p>
<p>It is not a common thing to do but if it is really necessary you can also debug code that is running on a remote box.
</p>
<p><strong><br />
PDB file<br />
</strong></p>
<p>A difference between debugging locally and remote is the availability of the PDB file that contains your debug symbols.<br />
These are necessary for your breakpoints to be hit. To make the PDB file available, you need to copy it in the GAC, together with your assembly.
</p>
<p>Copy your PDB file out of your external assembly project bin folder and copy it to the machine.<br />
Open a command window and type the following command:
</p>
<p><em><span style="color:#474b4e;">copy &lt;your_pdb_location&gt; c:\windows\assembly\gac_msil\&lt;your_dll&gt;\&lt;version&gt;__&lt;public_key&gt;</span><br />
		</em></p>
<p>When the BizTalk host restarts it will detect the PDB file and load the debug symbols. Later in this article you will be able to see if the symbols are indeed being loaded.
</p>
<p><strong>Remote debugging tool<br />
</strong></p>
<p>Now the Visual Studio running on your workstation needs to be able to communicate with the remote box to receive the debugging information. To do this, the <em>VS remote debugging monitor</em> needs to be running on the remote box. To activate the debug monitor you need to copy the contents of the C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\Remote Debugger\x86 folder to the remote box and run the msvsmon.exe process. If Visual Studio is installed on the remote box, msvsmon might already be available. This process allows Visual Studio to access the box and exchange debugging information. This is a security leak so only start this process when it is necessary.
</p>
<p><img src="http://cnext.files.wordpress.com/2009/09/092409_1855_debuggingan2.png">
	</p>
<p>When the debug monitor is running you can start to debug. Open the debug menu and choose attach to process.<br />
	In the qualifier field you enter the username under which the debug monitor is running followed by the computername, divided by an @.
</p>
</p>
</p>
<p><img src="http://cnext.files.wordpress.com/2009/09/092409_1855_debuggingan3.png"></p>
<p><strong>Determining which process to attach to</strong></p>
<p>Now you need to choose the right BTSNTSvc.exe process by determining the process ID.<br />
You can use the tasklist command to query the processes. Execute the following command in a command prompt on the remote box.
</p>
<p><em><span style="color:#474b4e;">tasklist /SVC /FI &#8220;IMAGENAME eq btsnt*&#8221;</span></em>
</p>
<p>A list of running BizTalk processes with their hostname and processID is shown.
</p>
<p><img src="http://cnext.files.wordpress.com/2009/09/092409_1855_debuggingan4.png"><strong><br />
		</strong></p>
<p><strong>Start debugging<br />
</strong></p>
<p>Start the orchestration on the specified server and you will be able to debug.<br />
On a multiserver environment you will have to stop the host instances on the servers where you are not attached to.<br />
It might be possible that your test instance will be run on the other server.
</p>
<p><strong>Troubleshooting<br />
</strong></p>
<p>If your breakpoint is not hit you can check if the debug symbols are loaded.<br />
In visual studio, press CTRL+ALT+U. The modules window opens for the process you attached to.<br />
Check if your external assembly is loaded and if the symbols are loaded.
</p>
<p><img src="http://cnext.files.wordpress.com/2009/09/092409_1855_debuggingan5.png"><strong><br /></strong></p>
<p>If the symbols are not loaded you can try to also place the PDB file into the folder where you installed the external assembly. Restart the host instance and attach again.</p>
<br />Posted in BizTalk  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cnext.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cnext.wordpress.com/173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cnext.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cnext.wordpress.com/173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/cnext.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/cnext.wordpress.com/173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/cnext.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/cnext.wordpress.com/173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cnext.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cnext.wordpress.com/173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cnext.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cnext.wordpress.com/173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cnext.wordpress.com/173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cnext.wordpress.com/173/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.cnext.eu&amp;blog=7026719&amp;post=173&amp;subd=cnext&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.cnext.eu/2009/09/24/debugging-an-external-assembly-that%e2%80%99s-called-from-within-a-biztalk-process/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f620b4876d4bc7150323c37248b2c5de?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cnext</media:title>
		</media:content>

		<media:content url="http://cnext.files.wordpress.com/2009/09/092409_1855_debuggingan1.png" medium="image" />

		<media:content url="http://cnext.files.wordpress.com/2009/09/092409_1855_debuggingan2.png" medium="image" />

		<media:content url="http://cnext.files.wordpress.com/2009/09/092409_1855_debuggingan3.png" medium="image" />

		<media:content url="http://cnext.files.wordpress.com/2009/09/092409_1855_debuggingan4.png" medium="image" />

		<media:content url="http://cnext.files.wordpress.com/2009/09/092409_1855_debuggingan5.png" medium="image" />
	</item>
		<item>
		<title>AS2 Configuration on BizTalk 2009 Group</title>
		<link>http://blog.cnext.eu/2009/08/02/as2-configuration-on-biztalk-2009-group/</link>
		<comments>http://blog.cnext.eu/2009/08/02/as2-configuration-on-biztalk-2009-group/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 17:10:42 +0000</pubDate>
		<dc:creator>Cnext</dc:creator>
				<category><![CDATA[BizTalk]]></category>

		<guid isPermaLink="false">http://blog.cnext.eu/?p=146</guid>
		<description><![CDATA[Last week I was working on an AS2 configuration on BizTalk 2009. The AS2 messages needed to be encrypted and signed. Previously I went through an AS2 configuration upon BizTalk 2006 and as I expected everything looked familiar to me. Setting up the encryption was an easy job. Nevertheless, the second requirement, message signing, wasn&#8217;t [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.cnext.eu&amp;blog=7026719&amp;post=146&amp;subd=cnext&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Last week I was working on an AS2 configuration on BizTalk 2009.<br />
The AS2 messages needed to be encrypted and signed.</p>
<p>Previously I went through an AS2 configuration upon BizTalk 2006 and as I expected everything looked familiar to me.<br />
Setting up the encryption was an easy job. Nevertheless, the second requirement, message signing, wasn&#8217;t as straightforward as I hoped.</p>
<p>After configuring and enabling a certificate to sign the messages, I received the following error:</p>
<p style="background:#ddd9c3;"><span style="color:#1f497d;">&#8220;</span>Error: The Signing Certificate has not been configured for AS2 party.&#8221;</p>
<p>I checked and double checked every known issue that i could bing. As there are…</p>
<ul>
<li>
<div>Install the certificate used for signing in the personal certificate store of the appropriate BizTalk host service account. <span style="font-family:Times New Roman;font-size:12pt;"><br />
</span></div>
<p>This installation has to be done while you are logged on with this service account. Otherwise the certificate will be imported in the wrong personal store.<span style="font-family:Times New Roman;font-size:12pt;"><br />
</span></li>
<li>
<div>Avoid enabling strong private key protection in the certificate during import in the personal store.<span style="font-family:Times New Roman;font-size:12pt;"><br />
</span></div>
<p>And be sure that the certificate has the private key included.</li>
<li>&#8230;<span style="font-family:Times New Roman;font-size:12pt;"><br />
</span></li>
</ul>
<p>None of these well known problems solved my error. Searching for new inspiration I repeated the installation on a clean standalone development machine. And yes, here I got more success! The signing and encryption both worked. After comparing the two installations I didn&#8217;t find any difference in the configuration of the necessary certificates. So if my AS2 configuration is the same then what makes the difference?</p>
<p>An SQL Trace brought the answer. I asked the dba to capture the SQL activity while BizTalk was trying to send an AS2 message. In the trace we found the following sql-statement:</p>
<p style="background:#ddd9c3;"><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">declare</span> @p3 <span style="color:blue;">nvarchar</span><span style="color:gray;">(</span>256<span style="color:gray;">)</span><br />
</span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">set</span> @p3<span style="color:gray;">=NULL</span><br />
</span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">declare</span> @p4 <span style="color:blue;">nvarchar</span><span style="color:gray;">(</span>256<span style="color:gray;">)</span><br />
</span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">set</span> @p4<span style="color:gray;">=</span><span style="color:red;">N&#8221;</span><br />
</span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">exec</span> admsvr_GetGroupSigningCert<span style="color:blue;"><br />
</span>@nvcGroupName<span style="color:gray;">=</span><span style="color:red;">N&#8217;BizTalk Group&#8217;</span><span style="color:gray;">,</span>@nvcHostName<span style="color:gray;">=</span><span style="color:red;">N&#8217;BizTalkServerApplication&#8217;</span><span style="color:gray;">,</span><br />
</span><span style="font-family:Courier New;font-size:10pt;">@nvcGroupSignCertName<span style="color:gray;">=</span>@p3 <span style="color:blue;">output</span><span style="color:gray;">,</span><br />
</span><span style="font-family:Courier New;font-size:10pt;">@nvcHostSignCertName<span style="color:gray;">=</span>@p4 <span style="color:blue;">output</span><br />
</span><span style="font-family:Courier New;font-size:10pt;"><span style="color:blue;">select</span> @p3<span style="color:gray;">,</span> @p4<br />
</span></p>
<p>This statement wouldn&#8217;t have looked wrong to me, if I wouldn&#8217;t have changed the name of the BizTalk group.<br />
Because most of the time I maintain different biztalkgroups from one BizTalk administration console.<br />
I rename the different BizTalk groups for easy recognition (Dev. group, Acc. Group and Prod. group).<br />
In the above statement we see that the default groupname &#8220;BizTalk Group&#8221; is still being used. Hence, no certificate<br />
can be found. On my clean development machine the installation succeeded because I didn&#8217;t changed the groupname.<br />
After renaming the groupname back to &#8220;BizTalk Group&#8221; the problem was solved.</p>
<p>This means that the AS2 pipeline component is using the default groupname &#8220;BizTalk Group&#8221; hardcoded to search for the signing certificate.<br />
And therefore you cannot rename the BizTalk groupname if you want to make use of AS2 with message signing enabled.</p>
<p><img src="http://cnext.files.wordpress.com/2009/08/as2-grouprename1.jpg" alt="" /></p>
<br />Posted in BizTalk  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cnext.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cnext.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cnext.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cnext.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/cnext.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/cnext.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/cnext.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/cnext.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cnext.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cnext.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cnext.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cnext.wordpress.com/146/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cnext.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cnext.wordpress.com/146/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.cnext.eu&amp;blog=7026719&amp;post=146&amp;subd=cnext&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.cnext.eu/2009/08/02/as2-configuration-on-biztalk-2009-group/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f620b4876d4bc7150323c37248b2c5de?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cnext</media:title>
		</media:content>

		<media:content url="http://cnext.files.wordpress.com/2009/08/as2-grouprename1.jpg" medium="image" />
	</item>
		<item>
		<title>Deploying websites/webservices in IIS 7.0</title>
		<link>http://blog.cnext.eu/2009/06/24/deploying-websiteswebservices-in-iis-7-0/</link>
		<comments>http://blog.cnext.eu/2009/06/24/deploying-websiteswebservices-in-iis-7-0/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 13:33:59 +0000</pubDate>
		<dc:creator>Cnext</dc:creator>
				<category><![CDATA[BizTalk]]></category>

		<guid isPermaLink="false">http://blog.cnext.eu/?p=127</guid>
		<description><![CDATA[BizTalk has out of the box abilities to expose itself as a web service (exposing as a schema / orchestration) or consume custom web services. The web service wizard is an easy way to setup the web services during development but what if you would like to deploy the web service. The most obvious way [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.cnext.eu&amp;blog=7026719&amp;post=127&amp;subd=cnext&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="font-family:Arial;">BizTalk has out of the box abilities to expose itself as a web service (exposing as a schema / orchestration) or consume custom web services. The web service wizard is an easy way to setup the web services during development but what if you would like to deploy the web service.<br />
</span></p>
<p><span style="font-family:Arial;">The most obvious way would be to add the virtual directory as a resource to the BizTalk application (for more info follow <a href="http://msdn.microsoft.com/en-us/library/aa577889.aspx">this</a> link). This way the website will be part of the MSI and will be deployed together with the BizTalk artifacts. An alternative solution would be to use <a href="http://www.iis.net/downloads/default.aspx?tabid=34&amp;g=6&amp;i=1603">MSDeploy</a> to deploy your web services. MSDeploy is part of the Web Deployment Tool and enables you to package an existing website (including content, configuration, certificates and databases). </span><span style="font-family:Arial;">MSDeploy contains both a command-line interface as a GUI.<br />
</span></p>
<p><span style="font-family:Arial;"><strong>Command-line interface example</strong></span></p>
<p><span style="font-family:Arial;">To package a website the following command should be executed:</span><br />
<span style="font-family:Arial;background:#d9d9d9;"><br />
Msdeploy.exe –verb:sync –source: iisApp=&#8221;Default Web Site\My Sample WebService&#8221; –dest:package=&#8221;M:\Projects\MySampleWebService.zip&#8221;<br />
</span></p>
<p><span style="font-family:Arial;">To import the package on the web server the following command should be executed:<br />
</span><span style="font-family:Arial;background:#d9d9d9;"><br />
Msdeploy.exe –verb:sync –source:package=&#8221;M:\Projects\MySampleWebService.zip&#8221; –dest:iisApp=&#8221;Default Web Site\My Sample WebService&#8221;<br />
</span></p>
<p><span style="font-family:Arial;"><strong>GUI interface example</strong></span></p>
<p><span style="font-family:Arial;">After installation of the Web Deployment Tool a new menu item is available in IIS. Right click the web site/virtual directory that you want to deploy and go to &#8220;Manage Packages&#8221;.<br />
</span></p>
<p><img class="aligncenter size-medium wp-image-133" title="msdeploy-screenshot" src="http://cnext.files.wordpress.com/2009/06/msdeploy-screenshot.jpg?w=300&#038;h=267" alt="msdeploy-screenshot" width="300" height="267" /></p>
<p style="text-align:center;"><span style="font-family:Arial;"><br />
</span></p>
<p><span style="font-family:Arial;">Select &#8220;<strong>Export Applicatio</strong>n&#8221; to package the web site/virtual directory to a zip file.<br />
</span></p>
<p style="text-align:center;"><img src="http://cnext.files.wordpress.com/2009/06/062409_1316_deployingwe22.png" alt="" /></p>
<p><span style="font-family:Arial;">To import a package on a web server select <strong>&#8220;Import Application</strong>&#8220;.<br />
</span></p>
<p style="text-align:center;"><img src="http://cnext.files.wordpress.com/2009/06/062409_1316_deployingwe32.png" alt="" /></p>
<div><span style="font-family:Arial;"><strong>Source (MsDeploy.Application) and destination (iisApp) are not compatible for given operation</strong></span></div>
<div><span style="font-family:Arial;"><strong><br />
</strong>In the RC version of the Web Deployment Tool this error can occur when a package that is exported through the GUI is imported back through the command-line interface. A work-around for this issue is not to mix the command-line interface with the gui interface. If you exported through the GUI then import the package through the GUI also.<br />
</span></div>
<p><span style="font-family:Arial;"><br />
</span></p>
<br />Posted in BizTalk  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cnext.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cnext.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cnext.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cnext.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/cnext.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/cnext.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/cnext.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/cnext.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cnext.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cnext.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cnext.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cnext.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cnext.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cnext.wordpress.com/127/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.cnext.eu&amp;blog=7026719&amp;post=127&amp;subd=cnext&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.cnext.eu/2009/06/24/deploying-websiteswebservices-in-iis-7-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f620b4876d4bc7150323c37248b2c5de?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cnext</media:title>
		</media:content>

		<media:content url="http://cnext.files.wordpress.com/2009/06/msdeploy-screenshot.jpg?w=300" medium="image">
			<media:title type="html">msdeploy-screenshot</media:title>
		</media:content>

		<media:content url="http://cnext.files.wordpress.com/2009/06/062409_1316_deployingwe22.png" medium="image" />

		<media:content url="http://cnext.files.wordpress.com/2009/06/062409_1316_deployingwe32.png" medium="image" />
	</item>
		<item>
		<title>BizTalk Security – Adding permissions to the BizTalk Operator role</title>
		<link>http://blog.cnext.eu/2009/06/16/biztalk-security-%e2%80%93-adding-permissions-to-the-biztalk-operator-role/</link>
		<comments>http://blog.cnext.eu/2009/06/16/biztalk-security-%e2%80%93-adding-permissions-to-the-biztalk-operator-role/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 07:08:09 +0000</pubDate>
		<dc:creator>Cnext</dc:creator>
				<category><![CDATA[BizTalk]]></category>

		<guid isPermaLink="false">http://blog.cnext.eu/?p=112</guid>
		<description><![CDATA[Every BizTalk administrator has probably already received complaints from BizTalk operators that operators can see the number of suspended messages but can&#8217;t view the message itself. Another common remark might be that the operators cannot use the Orchestration debugger. Debugging in production is not advised but with the debugger you can at least verify where [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.cnext.eu&amp;blog=7026719&amp;post=112&amp;subd=cnext&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Every BizTalk administrator has probably already received complaints from BizTalk operators that operators can see the number of suspended messages but can&#8217;t view the message itself. Another common remark might be that the operators cannot use the Orchestration debugger. Debugging in production is not advised but with the debugger you can at least verify where the orchestration has halted.</p>
<p>Off course, for organisations where IT operations needs to comply with security regulations like Sarbanes Oxley or other compliance rules, the Microsoft best practices for BizTalk security apply. These can be found <a href="http://go.microsoft.com/fwlink/?LinkId=110533">here</a>. When these compliance rules do not apply for your organisation and after checking with the security responsible you can tackle these problems.</p>
<p> <strong>The super operator<br />
</strong><br />
There is a way to make it possible for operators to view and save messages with the administration console and let them use the orchestration debugger. Most of the BizTalk security resides in SQL server. In the form of two roles: BTS_OPERATOR for the Operators and BTS_ADMIN_USERS for the BizTalk Administrators. These roles are defined at database level. They can be found in every BizTalk database.</p>
<p><img src="http://cnext.files.wordpress.com/2009/06/061609_0707_biztalksecu1.png" alt="" /></p>
<p>When configuring the BizTalk group these roles are created for operators and administrators with the relevant permissions (securables) on database objects. The Windows groups specified for operators and administrators in the BizTalk group configuration are given a SQL login and granted the accompanying role.Each role has its own securables. These securables are permissions on objects such as stored procedures and tables.</p>
<p>The BizTalk Administrators have a lot more of these securables. Here under you will find the steps to creating a super operator role that delivers extra permissions to operators, for example the permission to save messages.</p>
<p> <br />
<strong>1. Create a windows group for the super operator.<br />
</strong><br />
First we need to create a windows local group, if you do not use active directory accounts and groups, or an active directory group.<br />
Add the members who deserved the super operator rights. These members must already be member of the operator windows group.<br />
This because the super operator group is only an extension to the operator permissions.</p>
<p> <br />
<strong>2. Create the SQL login for the super operators.<br />
</strong></p>
<ul>
<li>Open the SQL management studio and connect to the SQL server that is hosting the BizTalk group databases.</li>
<li>Open the server security tab and create a new login by right clicking login and selecting new login.</li>
<li>In the login textbox you specify the group you created in step 1.</li>
<li>On the user mapping tab you check the checkbox for every BizTalk database.</li>
</ul>
<p>In this way a user is created for the group in every BizTalk database.</p>
<p><img src="http://cnext.files.wordpress.com/2009/06/061609_0707_biztalksecu2.png" alt="" /><strong><br />
</strong></p>
<p> <br />
 <strong>3. Create the super operator role.<br />
</strong><br />
A role must be created for the super operator in the necessary biztalk databases. In this scenario we only need to create a role in the BizTalkManagementDB and the BizTalkMessageBoxDB.<br />
For other scenarios it might be possible to create such a role in the BAM databases too.</p>
<ul>
<li>In the SQL management studio expand the Messagebox Database and right click on the roles node.</li>
<li>Select new database role.</li>
<li>Name this role BTS_SUPEROPERATOR. The owner can be DBO.</li>
<li>Add the group you created in step 1 to the role members.</li>
<li>Do the same in the BizTalkManagement database.</li>
</ul>
<p> <br />
 <strong>4. Adding the securables for saving/viewing messages permissions.<br />
</strong><br />
In the messagebox database doubleclick the super operator role. Open the tab securables and add the securables according to the screenshot following these steps:</p>
<ul>
<li>Click add.</li>
<li><strong>Select specific</strong> objects, click ok.</li>
<li>In<strong> object</strong> types check the stored procedures checkbox, click ok.</li>
<li>Click the browse button and put a check next to the stored procedures you see in the screenshot.</li>
<li>Select every securable one by one and grant the role the execute right.</li>
</ul>
<p> <img src="http://cnext.files.wordpress.com/2009/06/061609_0707_biztalksecu3.png" alt="" /><br />
 <img src="http://cnext.files.wordpress.com/2009/06/061609_0707_biztalksecu4.png" alt="" /><br />
 <img src="http://cnext.files.wordpress.com/2009/06/061609_0707_biztalksecu5.png" alt="" /></p>
<p>Now you need to add the securables to the role in the management database.<br />
Follow the steps above but this time add the securables seen in the next screenshot.</p>
<p>That&#8217;s it. With the new super operator group created we have an extra level of security. This can be really handy because there are only two roles out of the box. Now there are regular BizTalk operators, BizTalk super operators with save permissions and the BizTalk administrators.</p>
<p> <br />
<strong>5. Adding another permission, the Orchestration debugger.<br />
</strong><br />
To give the newly created BizTalk super operators this additional permission you just have to add some extra securables to the SQL super operator role. Add these securables to the super operator role in the <strong>BizTalkDTADb</strong>, and grant the execute right to the role for each securable:</p>
<p> <img src="http://cnext.files.wordpress.com/2009/06/061609_0707_biztalksecu6.png" alt="" /></p>
<p>We will continue to search for extra permissions to add to the super operator role. These permissions will be posted soon. If you have also found out which securables accompany certain rights or if you have any questions about this topic, feel free to comment them on this post.</p>
<br />Posted in BizTalk  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cnext.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cnext.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cnext.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cnext.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/cnext.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/cnext.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/cnext.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/cnext.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cnext.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cnext.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cnext.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cnext.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cnext.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cnext.wordpress.com/112/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.cnext.eu&amp;blog=7026719&amp;post=112&amp;subd=cnext&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.cnext.eu/2009/06/16/biztalk-security-%e2%80%93-adding-permissions-to-the-biztalk-operator-role/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f620b4876d4bc7150323c37248b2c5de?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cnext</media:title>
		</media:content>

		<media:content url="http://cnext.files.wordpress.com/2009/06/061609_0707_biztalksecu1.png" medium="image" />

		<media:content url="http://cnext.files.wordpress.com/2009/06/061609_0707_biztalksecu2.png" medium="image" />

		<media:content url="http://cnext.files.wordpress.com/2009/06/061609_0707_biztalksecu3.png" medium="image" />

		<media:content url="http://cnext.files.wordpress.com/2009/06/061609_0707_biztalksecu4.png" medium="image" />

		<media:content url="http://cnext.files.wordpress.com/2009/06/061609_0707_biztalksecu5.png" medium="image" />

		<media:content url="http://cnext.files.wordpress.com/2009/06/061609_0707_biztalksecu6.png" medium="image" />
	</item>
		<item>
		<title>WCF-Oracle adapter for BizTalk 2009</title>
		<link>http://blog.cnext.eu/2009/06/03/wcf-oracle-adapter-for-biztalk-2009/</link>
		<comments>http://blog.cnext.eu/2009/06/03/wcf-oracle-adapter-for-biztalk-2009/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 19:02:29 +0000</pubDate>
		<dc:creator>Cnext</dc:creator>
				<category><![CDATA[BizTalk]]></category>

		<guid isPermaLink="false">http://blog.cnext.eu/?p=62</guid>
		<description><![CDATA[This article will give a short and easy explanation on how to use the WCF-Oracle adapter to retrieve a result set from an Oracle database. The first thing we need to have on the Oracle database is a stored procedure that returns an object of the type ref-cursor. This article will give some examples on [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.cnext.eu&amp;blog=7026719&amp;post=62&amp;subd=cnext&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This article will give a short and easy explanation on how to use the WCF-Oracle adapter to retrieve a result set from an Oracle database.</p>
<p>The first thing we need to have on the Oracle database is a stored procedure that returns an object of the type ref-cursor.<br />
<a href="http://msdn.microsoft.com/en-us/library/cc185452.aspx">This</a> article will give some examples on how to program them. The second thing we need to do is to install an oracle client.<br />
This has to be done so we can add an oracle service that can connect to the database, this service will be used later on to retrieve the metadata.<br />
Installing the client will also add the necessary oracle drivers. In this example we added the service Oracleblog with the right settings for our database.</p>
<p><img src="http://cnext.files.wordpress.com/2009/06/060309_1900_wcforaclead1.png" alt="" /></p>
<p>Now we can start developing.<br />
The first step of the development is to generate the metadata and the request-response schemas.<br />
We start by creating a BizTalk project in Visual Studio. After having created the project, we right-click the project and choose &#8220;add generated item&#8221;. Now we choose &#8220;Consume Adapter Service&#8221; to start the wizard. This new wizard was added in Visual Studio by installing the WCF-Oracle adapter.</p>
<p><img src="http://cnext.files.wordpress.com/2009/06/060309_1900_wcforaclead2.png" alt="" /></p>
<p>In the wizard we first choose OracleDBBinding for &#8220;Select a binding&#8221; then we click &#8220;configure&#8221; to configure the database settings. The first thing we do is adding the name of the service we created in the oracleclient in the field DataSourceName on the pane URI. After this we can add the required credentials. Now making the connection by clicking &#8220;connect&#8221; will show all the databases available. We have to find the right stored procedure and add this to your BizTalk project. In our example we added the stored procedure P_SEARCH.</p>
<p><img src="http://cnext.files.wordpress.com/2009/06/060309_1900_wcforaclead3.png" alt="" /></p>
<p>Adding it to your project will give you two things:</p>
<p>The request-response schema<br />
The binding file for your send port</p>
<p>In this example two schemas are generated, this is because one schema is referring to the other. Both request and response schemas are created in the same XSD-file. Now we can create a simple orchestration in which we make a mapping to the request schema and create a request-response port so we can send the request and receive the file with the record set.</p>
<p>Now we deploy the project to add the orchestration to the BizTalk server. The next thing we do is creating the proper send-receive port for sending to the oracle database. We do this by importing the binding file that was generated with the schemas in to our BizTalk application. This will create the send-receive port with the correct action- and database settings. We now make a file receive and send port and bind this to our orchestration.</p>
<p>We are now ready to send the message.</p>
<br />Posted in BizTalk  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cnext.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cnext.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cnext.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cnext.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/cnext.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/cnext.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/cnext.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/cnext.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cnext.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cnext.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cnext.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cnext.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cnext.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cnext.wordpress.com/62/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.cnext.eu&amp;blog=7026719&amp;post=62&amp;subd=cnext&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.cnext.eu/2009/06/03/wcf-oracle-adapter-for-biztalk-2009/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f620b4876d4bc7150323c37248b2c5de?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cnext</media:title>
		</media:content>

		<media:content url="http://cnext.files.wordpress.com/2009/06/060309_1900_wcforaclead1.png" medium="image" />

		<media:content url="http://cnext.files.wordpress.com/2009/06/060309_1900_wcforaclead2.png" medium="image" />

		<media:content url="http://cnext.files.wordpress.com/2009/06/060309_1900_wcforaclead3.png" medium="image" />
	</item>
		<item>
		<title>BAM deployment and partitioned tables</title>
		<link>http://blog.cnext.eu/2009/04/13/bam-deployment-and-partitioned-tables/</link>
		<comments>http://blog.cnext.eu/2009/04/13/bam-deployment-and-partitioned-tables/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 11:26:14 +0000</pubDate>
		<dc:creator>Cnext</dc:creator>
				<category><![CDATA[BizTalk]]></category>

		<guid isPermaLink="false">http://blog.cnext.eu/?p=19</guid>
		<description><![CDATA[In this post I will give a brief overview of some problems that arise during deployment of BAM activity updates. In particular when partitioning is enabled for the activity the error below can occurre upon regeneration of the view that union the partitions. &#8220;All queries combined using a UNION, INTERSECT or EXCEPT operator must have [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.cnext.eu&amp;blog=7026719&amp;post=19&amp;subd=cnext&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In this post I will give a brief overview of some problems that arise during deployment of BAM activity updates. In particular when partitioning is enabled for the activity the error below can occurre upon regeneration of the view that union the partitions.</p>
<blockquote><p>&#8220;All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists&#8221;</p></blockquote>
<p> </p>
<p>When using BAM often the first deployment contains just a few data items and milestones. But when users become aware of the possibilities of this technology they want to build richer queries. Therefore I frequently need to add data items and milestones in my existing activity definitions. Of course business users don&#8217;t want to lose the existing BAM data. So I can almost never redeploy the activity definition which would delete all the data.<br />
Now the bm.exe tool provides me with an option to update an activity. In this case no data would be lost. But after playing around for a while with this &#8216;update-all&#8217; feature I discovered some problems. <br />
 <br />
Let me explain what happens if one would like to add a data item to an activity which is already deployed and for which a view is created.<br />
 <br />
In my test environment I called my activity &#8220;BAMdeployment&#8221; and my view &#8220;BAMdeploymentView&#8221;. After first deployment the activity contains one data item <em>StartData</em> and two milestones <em>Start</em> and <em>Stop</em>. In the second deployment I want to add a <em>StopData</em> item to the activity and view. First I modified my spreadsheet and then exported the updated definition file.<br />
 <br />
Because I don&#8217;t want to lose data, I used the update-all command. Seems straightforward but I got the following error.</p>
<p>  <img src="http://cnext.files.wordpress.com/2009/04/041309-1125-bamdeployme1.jpg?w=608&#038;h=303" alt="" width="608" height="303" /></p>
<p> <br />
After looking around on the net I found some posts about this error and the solution is to first remove the view before running the update-all command. So after removing the view, the update-all completed without errors. The new data item <em>StopData</em> became visible in my view. Fine! But not for long.<br />
 <br />
The tests I did till now were done on a small set of data. But in a real scenario I probably have already a lot of instances of my activity in the BAMPrimaryImport database. Hence BAM archiving/partitioning becomes an issue.<br />
 <br />
After deploying an activity an SSIS package is created for partitioning and archiving the data. <a href="http://msdn.microsoft.com/en-us/library/aa559133.aspx">Here</a> you can find the theory about this partitioning. Its all about performance.<br />
 <br />
When I tried to repeat the &#8216;update-all&#8217; deployment strategy on my activity but now with partitioned tables I ran again into trouble. I got a new error.</p>
<p> <img src="http://cnext.files.wordpress.com/2009/04/041309-1125-bamdeployme2.jpg?w=608&#038;h=302" alt="" width="608" height="302" /><br />
 <br />
Digging into this I ended up with a view in the BAMPrimaryImport database with the name <em>bam_BAMdeployment_CompletedInstances</em>. This view runs a UNION statement for every partitioned table. My custom view (the one defined in the spreadsheet) is afterwards build upon this one. This guarantee that all the data within my predefined activity window will be shown in the BAM portal.<br />
 <br />
Now the problem is that the partitioned tables are not updated with the new data item <em>StopData</em>. So the regeneration of the view <em>bam_BAMdeployment_CompletedInstances</em> fails. Only the first table <em>bam_BAMdeployment_Completed</em> has the new <em>StopData</em> column. While all the subsequent partitioning tables have not. <br />
 <br />
To fix this problem all new data items and milestones must be added manually in the partitioning tables. While there will never be more than 254 partitioned tables with every activity, this is definitely an exhausting and error prone job to do. So I wrote a script to help you a little bit. Just fill in the name of the activity and the new data item or milestone you want to add. Be sure that you use the same names as given in the definitionfile of the activity. The script will update every partitioning table. <br />
 </p>
<p>All at once, the right order of actions to take</p>
<p>1/ Update the activity in the spreadsheet and export the definitionfile.</p>
<p>2/ When partitioned tables exist use the script to add the new items.</p>
<p>3/ Remove the views defined for the activity.</p>
<p>4/ Execute the bm update-all command.</p>
<p><code><br />
-- Script to update the partition tables after adding a data item or milestone to the activity definition.</p>
<p>DECLARE    @activityName nvarchar(128)<br />
DECLARE    @column nvarchar(100)<br />
DECLARE    @columnType nvarchar(100)<br />
DECLARE    @instancePartition sysname</p>
<p>SET @activityName        = 'BAMdeployment'<br />
SET @column                = 'StopData'<br />
SET @columnType         = 'varchar(50)'<br />
BEGIN</p>
<p>IF NOT EXISTS(SELECT ActivityName FROM bam_Metadata_Activities<br />
                 WHERE ActivityName = @activityName)<br />
BEGIN<br />
RAISERROR (N'ActivityDoesNotExist', 16, 1)<br />
RETURN<br />
END<br />
   <br />
DECLARE partition_cursor CURSOR LOCAL FOR<br />
SELECT InstancesTable<br />
FROM [dbo].[bam_Metadata_Partitions]<br />
WHERE ActivityName = @activityName<br />
ORDER BY CreationTime ASC</p>
<p>OPEN partition_cursor<br />
FETCH NEXT FROM partition_cursor<br />
INTO @instancePartition<br />
WHILE @@fetch_status = 0<br />
BEGIN</p>
<p>EXEC ('ALTER TABLE ' + @instancePartition + ' ADD ' + @column + ' ' + @columnType)<br />
    <br />
FETCH NEXT FROM partition_cursor<br />
INTO @instancePartition<br />
END<br />
END<br />
GO<br />
</code></p>
<br />Posted in BizTalk  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cnext.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cnext.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cnext.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cnext.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/cnext.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/cnext.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/cnext.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/cnext.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cnext.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cnext.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cnext.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cnext.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cnext.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cnext.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.cnext.eu&amp;blog=7026719&amp;post=19&amp;subd=cnext&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.cnext.eu/2009/04/13/bam-deployment-and-partitioned-tables/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f620b4876d4bc7150323c37248b2c5de?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cnext</media:title>
		</media:content>

		<media:content url="http://cnext.files.wordpress.com/2009/04/041309-1125-bamdeployme1.jpg" medium="image" />

		<media:content url="http://cnext.files.wordpress.com/2009/04/041309-1125-bamdeployme2.jpg" medium="image" />
	</item>
		<item>
		<title>BAM deployment in BizTalk Server 2006</title>
		<link>http://blog.cnext.eu/2009/04/13/bam-deployment-in-biztalk-server-2006/</link>
		<comments>http://blog.cnext.eu/2009/04/13/bam-deployment-in-biztalk-server-2006/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 11:14:16 +0000</pubDate>
		<dc:creator>Cnext</dc:creator>
				<category><![CDATA[BizTalk]]></category>

		<guid isPermaLink="false">http://blog.cnext.eu/?p=12</guid>
		<description><![CDATA[Personally I found that BAM is one of the most useful features in Microsoft BizTalk Server 2006. It brings down the gap between business and IT. Unfortunally like most BizTalk architects/developers I struggled with deployment on my production environment. If you don&#8217;t need to keep the data for historical reasons or analysis then deployment of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.cnext.eu&amp;blog=7026719&amp;post=12&amp;subd=cnext&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Personally I found that BAM is one of the most useful features in Microsoft BizTalk Server 2006. It brings down the gap between business and IT. Unfortunally like most BizTalk architects/developers I struggled with deployment on my production environment. If you don&#8217;t need to keep the data for historical reasons or analysis then deployment of a BAM flow is easy and straight forward. You can just delete your flow and recreate it again. In case your customer requires you to keep your data then deployment becomes trickier.</p>
<p>For those scenario&#8217;s our team created the following check list:</p>
<div>
<table style="border-collapse:collapse;" border="0">
<col span="1"></col>
<col span="1"></col>
<col span="1"></col>
<col span="1"></col>
<col span="1"></col>
<col span="1"></col>
<col span="1"></col>
<tbody>
<tr style="background:#d9d9d9;">
<td style="padding-left:7px;padding-right:7px;border-top:solid black .5pt;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;"><strong>Type</strong></td>
<td style="padding-left:7px;padding-right:7px;border-top:solid black .5pt;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"><strong>Questions</strong></td>
<td style="padding-left:7px;padding-right:7px;border-top:solid black .5pt;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"><strong>Undeploy</strong></td>
<td style="padding-left:7px;padding-right:7px;border-top:solid black .5pt;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"><strong>Remove view</strong></td>
<td style="padding-left:7px;padding-right:7px;border-top:solid black .5pt;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"><strong>Update</strong></td>
<td style="padding-left:7px;padding-right:7px;border-top:solid black .5pt;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"><strong>Deploy</strong></td>
<td style="padding-left:7px;padding-right:7px;border-top:solid black .5pt;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"><strong>Data loss</strong></td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">Activity</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Add Activity</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">Activity</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Add Business Data field</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">Activity</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Add Business Milestone field</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">Activity</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Modify data type of Business Data field <sup>(a)</sup></td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">Y</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">Activity</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Delete Business Milestone field</td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">Y</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">Activity</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Delete Business Data field</td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">Y</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">Activity</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Delete Activity</td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">Y</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">View</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Add View</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">View</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Add Activity</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">View</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Add Business Milestone item</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">View</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Add Business Data item</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">View</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Add Alias</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">View</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Add Measurement</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">View</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Add Duration</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">View</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Add Group</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">View</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Add Dimension</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">View</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Modify Alias</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">View</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Modify Duration</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">View</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Modify Group <sup>(b)</sup></td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">Y</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">View</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Modify Dimension</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">View</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Modify Measurement</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">View</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Remove Group</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">View</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Remove Duration</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">View</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Remove Alias</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">View</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Remove Business Milestone item</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">View</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Remove Business Data item</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">View</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Remove Dimension</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">View</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Remove Measurement</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">View</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Remove Activity</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">View</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Remove View</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">Pivot</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Add Pivot Table <sup>(c)</sup></td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">Pivot</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Modify Pivot Table <sup>(c)</sup></td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">N</p>
</td>
</tr>
<tr>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:solid black .5pt;border-bottom:solid black .5pt;border-right:solid black .5pt;">Pivot</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">Remove Pivot Table</td>
<td style="background:#c2d69b;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">1</p>
</td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;"> </td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">2</p>
</td>
<td style="background:#ffc000;padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid black .5pt;border-right:solid black .5pt;">
<p style="text-align:center;">Y</p>
</td>
</tr>
</tbody>
</table>
</div>
<p style="margin-left:36pt;"> </p>
<ol>
<li><span style="font-size:8pt;">Change data type of a Business Data field is not possible. The field needs to be dropped and recreated again.<br />
</span></li>
<li><span style="font-size:8pt;">Change of a group is not possible. The group needs to be deleted and recreated<br />
</span></li>
<li>
<div><span style="font-size:8pt;">Update will not give an error but nothing will be changed<br />
</span></div>
<p> </li>
</ol>
<p>The headers of the check list reference the different actions that one can do with the bm.exe tool.</p>
<p>Some examples:</p>
<p><span style="text-decoration:underline;">Remove Business Data field from activity<br />
</span></p>
<p>In this example there are 2 definition files:</p>
<ul>
<li>SampleBAMDefinitionFile V1.1.1.1.xml: contains the current deployed BAM activity</li>
<li>SampleBAMDefinitionFile V1.1.1.2.xml: contains the new BAM activity without the Business Data field</li>
</ul>
<p>In order to update BAM the following commands should be executed:</p>
<p style="background:#d9d9d9;">bm.exe remove-all -DefinitionFile:&#8221;SampleBAMDefinitionFile V1.1.1.1.xml&#8221;<br />
bm.exe deploy-all -DefinitionFile:&#8221;SampleBAMDefinitionFile V1.1.1.2.xml&#8221;</p>
<p> </p>
<p><span style="text-decoration:underline;">Remove Business Milestone item<br />
</span></p>
<p>In this example there are 2 definition files:</p>
<ul>
<li>SampleBAMDefinitionFile V1.1.1.1.xml: contains the current deployed BAM activity</li>
<li>
<div>SampleBAMDefinitionFile V1.1.1.2.xml: contains the new BAM activity without the Business Data field</div>
<p> </li>
</ul>
<p>In order to remove the Business Milestone from the view only the following commands should be executed:</p>
<p style="background:#d9d9d9;">bm.exe remove-view –Name:SampleBAMView<br />
bm.exe update-all -DefinitionFile:&#8221;SampleBAMDefinitionFile V1.1.1.2.xml&#8221;</p>
<p>In case the Business Milestone needs to be removed from the activity then the above logic will not work. In this case the following commands should be executed:</p>
<p style="background:#d9d9d9;">bm.exe remove-all -DefinitionFile:&#8221;SampleBAMDefinitionFile V1.1.1.1.xml&#8221;<br />
bm.exe deploy-all -DefinitionFile:&#8221;SampleBAMDefinitionFile V1.1.1.2.xml&#8221;</p>
<br />Posted in BizTalk  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/cnext.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/cnext.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/cnext.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/cnext.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/cnext.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/cnext.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/cnext.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/cnext.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/cnext.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/cnext.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/cnext.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/cnext.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/cnext.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/cnext.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.cnext.eu&amp;blog=7026719&amp;post=12&amp;subd=cnext&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.cnext.eu/2009/04/13/bam-deployment-in-biztalk-server-2006/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f620b4876d4bc7150323c37248b2c5de?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Cnext</media:title>
		</media:content>
	</item>
	</channel>
</rss>
