﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-西煞魄工厂</title><link>http://www.cnblogs.com/xuzhong/</link><description>



  



























</description><language>zh-cn</language><lastBuildDate>Fri, 05 Sep 2008 07:34:12 GMT</lastBuildDate><pubDate>Fri, 05 Sep 2008 07:34:12 GMT</pubDate><ttl>60</ttl><item><title>[BTS]SSIS实现与SAP数据整合.</title><link>http://www.cnblogs.com/xuzhong/archive/2008/07/18/1246274.html</link><dc:creator>西煞魄工人</dc:creator><author>西煞魄工人</author><pubDate>Fri, 18 Jul 2008 10:25:00 GMT</pubDate><guid>http://www.cnblogs.com/xuzhong/archive/2008/07/18/1246274.html</guid><wfw:comment>http://www.cnblogs.com/xuzhong/comments/1246274.html</wfw:comment><comments>http://www.cnblogs.com/xuzhong/archive/2008/07/18/1246274.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cnblogs.com/xuzhong/comments/commentRss/1246274.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xuzhong/services/trackbacks/1246274.html</trackback:ping><description><![CDATA[<br />
<span style="font-size: 16pt; font-family: 微软雅黑"><strong>使用SSIS整合SAP数据</strong></span><br />
<br />
<br />
<h1>
    1.准备</h1>
<br />
<br />
<strong>业务需求</strong>：将SAP中的公司代码表，同步到OA中的公司代码表。<br />
<br />
<strong>技术方案</strong>：使用SSIS，实现数据整合。<br />
<br />
<strong>技术准备</strong>：安装Microsoft .NET Data Provider for mySAP Businese Suite<br />
<br />
<br />
<h1>
    2.实施</h1>
整体执行步骤<br />
<br />
<img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/SSIS_SAP_Sample/SSIS_SAP_001.jpg"  alt="" /><br />
<br />
<br />
<h2>
    2.1 创建临时表</h2>
<br />
<br />
<img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/SSIS_SAP_Sample/SSIS_SAP_002.jpg"  alt="" /><br />
<br />
<br />
<br />
<br />
<h2>
    2.2 从SAP获取数据</h2>
<p>
    整体效果图</p>
<img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/SSIS_SAP_Sample/SSIS_SAP_004.jpg"  alt="" /><br />
<br />
<h3>
    2.2.1 创建连接SAP的数据源</h3>
<br />
<img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/SSIS_SAP_Sample/SSIS_SAP_005.jpg"  alt="" /><br />
<br />
<br />
<h3>
    2.2.2 查询SAP中公司代码表</h3>
配置说明<br />
<br />
&nbsp;<br />
<img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/SSIS_SAP_Sample/SSIS_SAP_006.jpg"  alt="" /><br />
<br />
<br />
<h3>
    2.2.3 数据转换</h3>
<br />
<img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/SSIS_SAP_Sample/SSIS_SAP_007.jpg"  alt="" /><br />
<br />
<br />
<h3>
    2.2.4 目标公司代码表</h3>
<br />
<img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/SSIS_SAP_Sample/SSIS_SAP_008.jpg"  alt="" /><br />
<br />
<br />
<h2>
    2.3 清理数据格式<br />
    <br />
<img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/SSIS_SAP_Sample/SSIS_SAP_009.jpg"  alt="" /></h2>
<h2>
    &nbsp;</h2>
<h2>
    2.4 得到数据集</h2>
<h2>
    <br />
<img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/SSIS_SAP_Sample/SSIS_SAP_010.jpg"  alt="" /><br />
    &nbsp;</h2>
<h2>
    <br />
<img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/SSIS_SAP_Sample/SSIS_SAP_011.jpg"  alt="" />&nbsp;</h2>
<h2>
    &nbsp;</h2>
<h2>
    2.5 取每一条记录</h2>
主要是为了实现读取记录集中第一条数据，用对比的方式，与数据进行更新。<br />
<br />
<br />
<h3>
    2.5.1 设置Foreach的属性</h3>
<h3>
    <br />
<img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/SSIS_SAP_Sample/SSIS_SAP_012.jpg"  alt="" />&nbsp;</h3>
<h2>
    <br />
<img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/SSIS_SAP_Sample/SSIS_SAP_013.jpg"  alt="" />&nbsp;</h2>
<p>
    索引的概念，就想去读DataTable数据一样。</p>
<h2>
    &nbsp;</h2>
<h3>
    2.5.2 构建SQL语句</h3>
<h2>
    <br />
<img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/SSIS_SAP_Sample/SSIS_SAP_014.jpg"  alt="" />&nbsp;</h2>
<h2>
    <br />
<img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/SSIS_SAP_Sample/SSIS_SAP_015.jpg"  alt="" /><br />
    &nbsp;</h2>
<h2>
    2.5.3 执行SQL语句</h2>
<h2>
    <br />
<img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/SSIS_SAP_Sample/SSIS_SAP_016.jpg"  alt="" />&nbsp;</h2>
<h2>
    &nbsp;</h2>
<h2>
    2.6 删除临时表</h2>
<h2>
    <br />
<img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/SSIS_SAP_Sample/SSIS_SAP_017.jpg"  alt="" />&nbsp;</h2>
<h2>
    &nbsp;</h2>
<h1>
    3 执行结果</h1>
<p>
    <img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/SSIS_SAP_Sample/SSIS_SAP_018.jpg"  alt="" />&nbsp;</p>
<h1>
    4 总结</h1>
<p>
    在一些需要与SAP进行字典同步的应用中，使用SSIS还是不错的选择。毕竟只是数据的传输而已。这样也能节省大量的开发时间。</p>
<p>
    当然，如果是一些比较复杂的业务数据的交换过程，建议还是用BizTalk。</p>
<p>
    总之，对于不同的业务需求，选择适合的工作，是很重要的。</p>
<h2>
    <br />
    &nbsp;</h2><img src ="http://www.cnblogs.com/xuzhong/aggbug/1246274.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42101/" target="_blank">[新闻]淘宝网合并阿里妈妈 专家称阿里巴巴或有新战略</a>]]></description></item><item><title>[BTS]进行BizTalk Admin Tools时报错!</title><link>http://www.cnblogs.com/xuzhong/archive/2008/06/24/1229186.html</link><dc:creator>西煞魄工人</dc:creator><author>西煞魄工人</author><pubDate>Tue, 24 Jun 2008 13:03:00 GMT</pubDate><guid>http://www.cnblogs.com/xuzhong/archive/2008/06/24/1229186.html</guid><wfw:comment>http://www.cnblogs.com/xuzhong/comments/1229186.html</wfw:comment><comments>http://www.cnblogs.com/xuzhong/archive/2008/06/24/1229186.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/xuzhong/comments/commentRss/1229186.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xuzhong/services/trackbacks/1229186.html</trackback:ping><description><![CDATA[<br />
运行在测试机上的BizTalk Administrator Tools经常出现下面的错误：<br />
<br />
<br />
<hr />
<br />
<p><font face="Verdana">标题: BizTalk Server 2006 管理控制台<br />
------------------------------</font></p>
<p><font face="Verdana">此操作无法访问至少一个 MessageBox 数据库。某些结果可能会忽略。</font></p>
<p><font face="Verdana">要获取帮助，请单击: http://go.microsoft.com/fwlink/?LinkId=47400&amp;ProdName=Microsoft+BizTalk+Server+2006&amp;ProdVer=3.5.1602.0&amp;EvtSrc=Microsoft.BizTalk.Administration.SnapIn.Properties.Errors&amp;EvtID=ErrorWhenAccessingMsgBox</font></p>
<p><font face="Verdana">------------------------------<br />
其他信息:</font></p>
<p><font face="Verdana">Operation is not valid due to the current state of the object. (Microsoft.BizTalk.Administration.SnapIn)</font></p>
<p><font face="Verdana">------------------------------<br />
按钮:</font></p>
<p><font face="Verdana">确定<br />
------------------------------<br />
<br />
<br />
<br />
<hr />
<br />
<br />
找来找去，就是让重启动一下管理工具，自己就可以恢复。 <br />
<br />
<br />
</p>
<h4 class="BlogPostHeader" minmax_bound="true">BizTalk Server 2006 Administration Console </h4>
<div class="BlogPostContent" minmax_bound="true">
<p minmax_bound="true">I just tried opening the administrative console and out of nowhere got an error "root element is missing (c:\Documents and Settings\user1\Local Settings\Application Data\Microsoft Corporation\Microsoft BizTalk Server 2006\Microsoft.BizTalk.Administration.Snapin.dll.config)".</p>
<p minmax_bound="true">&nbsp;To resolve this issue, delete this file:</p>
<p minmax_bound="true">c:\Documents and Settings\user1\Local Settings\Application Data\Microsoft Corporation\Microsoft BizTalk Server 2006\Microsoft.BizTalk.Administration.Snapin.dll.config</p>
<p minmax_bound="true">The next time you start the BizTalk Server 2006 Administration Console, the Administration.Snapin.dll.config file will be auto created for you.</p>
</div>
<p><br />
除了上面的介绍，实在没什么可以参考的资料了！<br />
<br />
<br />
<br />
</font></p>
<img src ="http://www.cnblogs.com/xuzhong/aggbug/1229186.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42096/" target="_blank">[新闻]微软研究院发布 AutoCollage - 整理并融合照片</a>]]></description></item><item><title>[BTS]配置SOAP接收端口中出现的错误!</title><link>http://www.cnblogs.com/xuzhong/archive/2008/06/24/1229164.html</link><dc:creator>西煞魄工人</dc:creator><author>西煞魄工人</author><pubDate>Tue, 24 Jun 2008 11:58:00 GMT</pubDate><guid>http://www.cnblogs.com/xuzhong/archive/2008/06/24/1229164.html</guid><wfw:comment>http://www.cnblogs.com/xuzhong/comments/1229164.html</wfw:comment><comments>http://www.cnblogs.com/xuzhong/archive/2008/06/24/1229164.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/xuzhong/comments/commentRss/1229164.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xuzhong/services/trackbacks/1229164.html</trackback:ping><description><![CDATA[<p align="left"><br />
在没有安装"<font face="Verdana">BizTalk Web Services 发布向导</font>"工具的服务器上部署SOAP Port。<br />
<br />
<hr />
<p>&nbsp;</p>
<p><font face="Verdana">Event Type:&nbsp;Error<br />
Event Source:&nbsp;BizTalk Server 2006<br />
Event Category:&nbsp;BizTalk Server 2006 <br />
Event ID:&nbsp;5734<br />
Date:&nbsp;&nbsp;2008-6-24<br />
Time:&nbsp;&nbsp;19:45:53<br />
User:&nbsp;&nbsp;N/A<br />
Computer:&nbsp;GDEIAC-TEST09<br />
Description:<br />
消息引擎无法注册接收位置&#8220;/EIAC.EAI.ExpenseContract.WebService/WebService_EIAC_EAI_ExpenseContract_Orchestrations.asmx&#8221;的&#8220;SOAP&#8221;的适配器。请验证接收位置存在，且独立的适配器在可以访问 BizTalk 数据库的帐户下运行。</font></p>
<p><font face="Verdana"><br />
<hr />
<br />
</font>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;最好按下面的部署顺序进行。</p>
<ol>
    <li>开发环境下</li>
    <ol>
        <li>开发流程</li>
        <li>部署流程</li>
        <li>发布成WebService</li>
        <li>测试</li>
    </ol>
    <li>准生产or生产环境下</li>
    <ol>
        <li>IIS中创建App Pool，帐号用BizTalk Application Users中的用户。</li>
        <li>IIS中创建VisualDir，将1.3中的WebService拷备到些目录中。</li>
        <li>IIS中配置Read, Write , Script Running, 配置为2.2的AppPool。</li>
        <li>试着访问WebService的URL，确认可以Open。</li>
    </ol>
    <li>BizTalk Admin Tools</li>
    <ol>
        <li>部署BizTalk流程。</li>
        <li>配置Receive Location。这里输入的WebService路径为2.4中，可以访问的URL（去掉<a href="http://servername">http://servername</a>）。<br />
        <br />
        </li>
    </ol>
</ol>
<p>&nbsp;&nbsp; ok, 问题解决。<br />
</p>
<img src ="http://www.cnblogs.com/xuzhong/aggbug/1229164.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42096/" target="_blank">[新闻]微软研究院发布 AutoCollage - 整理并融合照片</a>]]></description></item><item><title>BizTalk MSN 群介绍</title><link>http://www.cnblogs.com/xuzhong/archive/2008/05/28/1209234.html</link><dc:creator>西煞魄工人</dc:creator><author>西煞魄工人</author><pubDate>Wed, 28 May 2008 06:57:00 GMT</pubDate><guid>http://www.cnblogs.com/xuzhong/archive/2008/05/28/1209234.html</guid><wfw:comment>http://www.cnblogs.com/xuzhong/comments/1209234.html</wfw:comment><comments>http://www.cnblogs.com/xuzhong/archive/2008/05/28/1209234.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/xuzhong/comments/commentRss/1209234.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xuzhong/services/trackbacks/1209234.html</trackback:ping><description><![CDATA[<span style="font-size: 18pt">&nbsp;&nbsp;&nbsp; 为了所有玩BizTalk的朋友聚在一起，隆重向大家介绍BizTalk Group (MSN群)。<br />
<br />
&nbsp;&nbsp;&nbsp; 这里集聚了很多朋友，同时欢迎您的加入！<br />
</span><br />
<img alt="BizTalk MSN Group" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/MSNGroupHelp/MSN_Help_01.JPG" border="0" /><br />
<br />
<br />
如果您想显示出上图右边的功能区，请点击如下图所示的&#8220;发送闪屏&#8221;。<br />
<br />
<br />
<img alt="BizTalk MSN Group" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/MSNGroupHelp/MSN_Help_02.JPG" border="0" /><br />
<br />
<br />
在功能区里，您可以修改自己在群里的昵称。<br />
<br />
<img alt="BizTalk MSN Group" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/MSNGroupHelp/MSN_Help_03.JPG" border="0" /><br />
<br />
在我们的群里，请按下面的规则为自己起一个好记的昵称。<br />
<br />
<span style="font-size: 24pt"><u>您所在的城市或国家</u><font style="color: red" face="Verdana">㊣</font><u>您的昵称<br />
</u></span><br />
<br />
<br />
<br />
当然，您也可以用一个比较方便的命令来实现修改昵称。<br />
如下面所示，在消息输入区中，输入"/nn ......"<br />
/nn 是用来修改昵称的命令。<br />
<br />
<img alt="BizTalk MSN Group" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/MSNGroupHelp/MSN_Help_04.JPG" border="0" /><br />
<br />
<img src ="http://www.cnblogs.com/xuzhong/aggbug/1209234.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42100/" target="_blank">[新闻]2008年9月5日科技博客精选</a>]]></description></item><item><title>[BTS]Java调用.net webservice</title><link>http://www.cnblogs.com/xuzhong/archive/2008/05/21/1203939.html</link><dc:creator>西煞魄工人</dc:creator><author>西煞魄工人</author><pubDate>Wed, 21 May 2008 04:26:00 GMT</pubDate><guid>http://www.cnblogs.com/xuzhong/archive/2008/05/21/1203939.html</guid><wfw:comment>http://www.cnblogs.com/xuzhong/comments/1203939.html</wfw:comment><comments>http://www.cnblogs.com/xuzhong/archive/2008/05/21/1203939.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/xuzhong/comments/commentRss/1203939.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xuzhong/services/trackbacks/1203939.html</trackback:ping><description><![CDATA[<br />
当前项目要求使用java调用.net webservice。<br />
<br />
在网上search不到太多相关的资源，只能自己慢慢试了。<br />
<br />
经过长达一周的联调，终于实现。<br />
<br />
Java Client<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.xml.namespace.QName;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.xml.rpc.ParameterMode;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.apache.axis.client.Call;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.apache.axis.client.Service;&nbsp;&nbsp;<br />
<br />
<br />
System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">测试SOAP开始</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<br />
Service&nbsp;service&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Service();<br />
Call&nbsp;call&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(Call)service.createCall();<br />
<br />
String&nbsp;input</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">Yes</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<br />
String&nbsp;endpoint</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">http://11.11.11.11/CAIE.EAI/UploadExpenseToConstract.asmx</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
call.setTargetEndpointAddress(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;java.net.URL(endpoint));<br />
call.setOperationName(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;QName(</span><span style="color: #000000">"</span><span style="color: #000000">http://CAIE.EAI.ExpenseConstract.WebServices</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">ReturnYourInput</span><span style="color: #000000">"</span><span style="color: #000000">));<br />
call.addParameter(</span><span style="color: #000000">"</span><span style="color: #000000">input</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;org.apache.axis.encoding.XMLType.XSD_STRING,ParameterMode.IN);<br />
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);<br />
call.setUseSOAPAction(</span><span style="color: #0000ff">true</span><span style="color: #000000">);<br />
call.setSOAPActionURI(</span><span style="color: #000000">"</span><span style="color: #000000">http://CAIE.EAI.ExpenseConstract.WebServices/ReturnYourInput</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
String&nbsp;res&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(String)&nbsp;call.invoke(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Object[]&nbsp;{input});<br />
System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">返回值＝</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">res);<br />
System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">测试SOAP结束</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;</span></div>
<br />
<br />
.Net WebService<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System;<br />
</span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Data;<br />
</span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Web;<br />
</span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Collections;<br />
</span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Web.Services;<br />
</span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Web.Services.Protocols;<br />
</span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Web.Services.Description;<br />
</span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.ComponentModel;<br />
<br />
</span><span style="color: #0000ff">namespace</span><span style="color: #000000">&nbsp;CAIE.EAI.ExpenseConstract.WebServices<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;summary&gt;</span><span style="color: #008000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;UploadExpenseToConstract&nbsp;的摘要说明<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;/summary&gt;</span><span style="color: #808080"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[WebService(Namespace&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">http://CAIE.EAI.ExpenseConstract.WebServices/</span><span style="color: #800000">"</span><span style="color: #000000">)]<br />
&nbsp;&nbsp;&nbsp;&nbsp;[WebServiceBinding(ConformsTo&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;WsiProfiles.BasicProfile1_1)]<br />
&nbsp;&nbsp;&nbsp;&nbsp;[ToolboxItem(</span><span style="color: #0000ff">false</span><span style="color: #000000">)]<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;UploadExpenseToConstract&nbsp;:&nbsp;System.Web.Services.WebService<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[WebMethod()]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[SoapRpcMethod(Use&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;SoapBindingUse.Literal,&nbsp;RequestNamespace&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">http://CAIE.EAI.ExpenseConstract.WebServices</span><span style="color: #800000">"</span><span style="color: #000000">,&nbsp;ResponseNamespace&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">http://CAIE.EAI.ExpenseConstract.WebServices</span><span style="color: #800000">"</span><span style="color: #000000">)]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;ReturnYourInput(</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;input)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;a&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;input;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.IO.File.AppendAllText(</span><span style="color: #800000">@"</span><span style="color: #800000">c:\temp.log</span><span style="color: #800000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">Input=</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;input&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">\r\n</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;a;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}</span></div>
<br />
Java 调用 .net 主要是为了后序的 Java 启动 BizTalk流程做准备。 
<img src ="http://www.cnblogs.com/xuzhong/aggbug/1203939.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42099/" target="_blank">[新闻]SNS网站风靡影响工作效率 公司下令封杀</a>]]></description></item><item><title>[ERROR]创建BAM视图时报错</title><link>http://www.cnblogs.com/xuzhong/archive/2008/05/14/1196530.html</link><dc:creator>西煞魄工人</dc:creator><author>西煞魄工人</author><pubDate>Wed, 14 May 2008 04:00:00 GMT</pubDate><guid>http://www.cnblogs.com/xuzhong/archive/2008/05/14/1196530.html</guid><wfw:comment>http://www.cnblogs.com/xuzhong/comments/1196530.html</wfw:comment><comments>http://www.cnblogs.com/xuzhong/archive/2008/05/14/1196530.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/xuzhong/comments/commentRss/1196530.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xuzhong/services/trackbacks/1196530.html</trackback:ping><description><![CDATA[<br />
这个咋整呢？<br />
<br />
<img height="730" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_ERROR/BAM_ERROR_001.jpg" width="1009" border="0" /><br />
<br />
<br />
<p><font face="Verdana">错误说明:<br />
OLE DB 错误: OLE DB 或 ODBC 错误 : 无法连接到数据源&#8220;[Microsoft][ODBC Excel Driver] 外部表不是预期的格式。;S1000&#8221;。。</font></p>
<p><font face="Verdana">错误源:<br />
Microsoft OLE DB Provider for Analysis Services 2005</font></p>
<br />
<br /><img src ="http://www.cnblogs.com/xuzhong/aggbug/1196530.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42098/" target="_blank">[新闻]《孢子》正式发布</a>]]></description></item><item><title>[BTS]6913,5410错误处理!</title><link>http://www.cnblogs.com/xuzhong/archive/2008/04/14/1153071.html</link><dc:creator>西煞魄工人</dc:creator><author>西煞魄工人</author><pubDate>Mon, 14 Apr 2008 09:26:00 GMT</pubDate><guid>http://www.cnblogs.com/xuzhong/archive/2008/04/14/1153071.html</guid><wfw:comment>http://www.cnblogs.com/xuzhong/comments/1153071.html</wfw:comment><comments>http://www.cnblogs.com/xuzhong/archive/2008/04/14/1153071.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/xuzhong/comments/commentRss/1153071.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xuzhong/services/trackbacks/1153071.html</trackback:ping><description><![CDATA[<br />
还有报障<br />
<br />
<hr />
<p><font face="Verdana">事件类型:&nbsp;错误<br />
事件来源:&nbsp;BizTalk Server 2006<br />
事件种类:&nbsp;BizTalk Server 2006 <br />
事件 ID:&nbsp;6913<br />
日期:&nbsp;&nbsp;2008-4-14<br />
事件:&nbsp;&nbsp;12:14:56<br />
用户:&nbsp;&nbsp;N/A<br />
计算机:&nbsp;GDEIAC-BIZ01<br />
描述:<br />
试图连接到服务器&#8220;GDEIAC-SQL01&#8221;上的&#8220;BizTalkMgmtDb&#8221;SQL Server 数据库失败。<br />
&nbsp;错误:&#8220;Login failed for user ''. The user is not associated with a trusted SQL Server connection.&#8221;</font></p>
<p><font face="Verdana">
<hr />
</font></p>
<p><font face="Verdana">事件类型:&nbsp;警告<br />
事件来源:&nbsp;BizTalk Server 2006<br />
事件种类:&nbsp;BizTalk Server 2006 <br />
事件 ID:&nbsp;5410<br />
日期:&nbsp;&nbsp;2008-4-14<br />
事件:&nbsp;&nbsp;12:14:57<br />
用户:&nbsp;&nbsp;N/A<br />
计算机:&nbsp;GDEIAC-BIZ01<br />
描述:<br />
出现错误，需要终止 BizTalk 服务。最常见的原因如下:<br />
&nbsp;1) 内存意外不足。<br />
&nbsp;或<br />
&nbsp;2) 无法连接到其中一个 BizTalk 数据库或该连接丢失。<br />
&nbsp;该服务将在 1 分钟内关闭并自动重新启动。如果该出错数据库仍然无法使用，将重复此过程。<br />
&nbsp;<br />
&nbsp;错误消息: Login failed for user ''. The user is not associated with a trusted SQL Server connection.<br />
&nbsp;错误源:&nbsp; <br />
&nbsp;<br />
&nbsp;BizTalk 主机名: BizTalkServerApplication<br />
&nbsp;Windows 服务名: BTSSvc$BizTalkServerApplication </font></p>
<p><font face="Verdana">
<hr />
</font></p>
<img src ="http://www.cnblogs.com/xuzhong/aggbug/1153071.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42097/" target="_blank">[新闻]微软CFO:仍对收购雅虎搜索业务感兴趣</a>]]></description></item><item><title>[BTS]6912,5641,5773,5410错误处理！</title><link>http://www.cnblogs.com/xuzhong/archive/2008/04/14/1152997.html</link><dc:creator>西煞魄工人</dc:creator><author>西煞魄工人</author><pubDate>Mon, 14 Apr 2008 08:57:00 GMT</pubDate><guid>http://www.cnblogs.com/xuzhong/archive/2008/04/14/1152997.html</guid><wfw:comment>http://www.cnblogs.com/xuzhong/comments/1152997.html</wfw:comment><comments>http://www.cnblogs.com/xuzhong/archive/2008/04/14/1152997.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/xuzhong/comments/commentRss/1152997.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xuzhong/services/trackbacks/1152997.html</trackback:ping><description><![CDATA[<br />
接到系统管理员报障：<br />
<br />
<hr />
<p><font face="Verdana">事件类型:&nbsp;错误<br />
事件来源:&nbsp;BizTalk Server 2006<br />
事件种类:&nbsp;BizTalk Server 2006 <br />
事件 ID:&nbsp;6912<br />
日期:&nbsp;&nbsp;2008-4-9<br />
事件:&nbsp;&nbsp;19:16:58<br />
用户:&nbsp;&nbsp;N/A<br />
计算机:&nbsp;GDEIAC-BIZ01<br />
描述:<br />
以下存储过程调用失败:&#8220; { call admsvr_ReceiveLocation_GetAllInApp( ?)}&#8221;。SQL Server 返回错误字符串:&#8220;[DBNETLIB][ConnectionRead (recv()).]<span style="background-color: yellow">一般性网络错误</span>。请检查网络文档。&#8221;。</font></p>
<p><font face="Verdana">
<hr />
<br />
<p>&nbsp;</p>
<p><font face="Verdana">事件类型:&nbsp;错误<br />
事件来源:&nbsp;BizTalk Server 2006<br />
事件种类:&nbsp;BizTalk Server 2006 <br />
事件 ID:&nbsp;5641<br />
日期:&nbsp;&nbsp;2008-4-9<br />
事件:&nbsp;&nbsp;19:16:58<br />
用户:&nbsp;&nbsp;N/A<br />
计算机:&nbsp;GDEIAC-BIZ01<br />
描述:<br />
消息引擎无法从数据库检索配置。详细信息:&#8220;<span style="background-color: yellow">连接失败</span>&#8221;。</font></p>
<p><font face="Verdana"><br />
<hr />
<br />
<br />
<p>&nbsp;</p>
<p><font face="Verdana">事件类型:&nbsp;警告<br />
事件来源:&nbsp;BizTalk Server 2006<br />
事件种类:&nbsp;BizTalk Server 2006 <br />
事件 ID:&nbsp;5773<br />
日期:&nbsp;&nbsp;2008-4-9<br />
事件:&nbsp;&nbsp;19:16:58<br />
用户:&nbsp;&nbsp;N/A<br />
计算机:&nbsp;GDEIAC-BIZ01<br />
描述:<br />
所有接收位置被暂时禁用，因为 MessageBox 数据库或配置<span style="background-color: yellow">数据库不可用</span>。当这些数据库可用时，接收位置将被自动启用。</font></p>
<p><font face="Verdana">
<hr />
<br />
<p>&nbsp;</p>
<p><font face="Verdana">事件类型:&nbsp;警告<br />
事件来源:&nbsp;BizTalk Server 2006<br />
事件种类:&nbsp;BizTalk Server 2006 <br />
事件 ID:&nbsp;5410<br />
日期:&nbsp;&nbsp;2008-4-9<br />
事件:&nbsp;&nbsp;19:16:58<br />
用户:&nbsp;&nbsp;N/A<br />
计算机:&nbsp;GDEIAC-BIZ01<br />
描述:<br />
出现错误，需要终止 BizTalk 服务。最常见的原因如下:<br />
&nbsp;<span style="background-color: yellow">1) 内存意外不足。</span><br />
&nbsp;或<br />
&nbsp;<span style="background-color: yellow">2) 无法连接到其中一个 BizTalk 数据库或该连接丢失。</span><br />
&nbsp;该服务将在 1 分钟内关闭并自动重新启动。如果该出错数据库仍然无法使用，将重复此过程。<br />
&nbsp;<br />
&nbsp;错误消息: [DBNETLIB][ConnectionRead (recv()).]一般性网络错误。请检查网络文档。<br />
&nbsp;错误源:&nbsp; <br />
&nbsp;<br />
&nbsp;BizTalk 主机名: BizTalkServerApplication<br />
&nbsp;Windows 服务名: BTSSvc$BizTalkServerApplication </font></p>
<p><font face="Verdana"><br />
<hr />
</font></p>
<p><br />
</font>初步分析，是由于网络引起的！可能是数据库重启，或都网络闪断引起！<br />
</font>正在与管理员联系...<br />
<br />
</font>&nbsp;</p>
 <img src ="http://www.cnblogs.com/xuzhong/aggbug/1152997.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42097/" target="_blank">[新闻]微软CFO:仍对收购雅虎搜索业务感兴趣</a>]]></description></item><item><title>[BTS]5719, 5753错误处理？</title><link>http://www.cnblogs.com/xuzhong/archive/2008/03/31/1130988.html</link><dc:creator>西煞魄工人</dc:creator><author>西煞魄工人</author><pubDate>Mon, 31 Mar 2008 04:44:00 GMT</pubDate><guid>http://www.cnblogs.com/xuzhong/archive/2008/03/31/1130988.html</guid><wfw:comment>http://www.cnblogs.com/xuzhong/comments/1130988.html</wfw:comment><comments>http://www.cnblogs.com/xuzhong/archive/2008/03/31/1130988.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/xuzhong/comments/commentRss/1130988.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xuzhong/services/trackbacks/1130988.html</trackback:ping><description><![CDATA[<br />
<img alt="" src="http://www.cnblogs.com/Emoticons/qface/055243970.gif" />&nbsp;又是奇怪的错误！<br />
<br />
在生产环境下安装BTS组件，部署不使用VS2005进行部署，而是直接使用BizTalk Admin工具进行！<br />
<br />
<img height="477" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/ERROR_5719_03.JPG" width="803" border="0" /><br />
<br />
<hr />
<br />
开始测试。<br />
<br />
当接收到指定的消息后，BTS就报错！<br />
<br />
<hr />
<p><font face="Verdana">事件类型:&nbsp;错误<br />
事件来源:&nbsp;BizTalk Server 2006<br />
事件种类:&nbsp;BizTalk Server 2006 <br />
事件 ID:&nbsp;5719<br />
日期:&nbsp;&nbsp;2008-3-31<br />
事件:&nbsp;&nbsp;11:46:29<br />
用户:&nbsp;&nbsp;N/A<br />
计算机:&nbsp;GDEIAC-BIZ01<br />
描述:<br />
执行接收管道时出错:&#8220;Microsoft.BizTalk.DefaultPipelines.XMLReceive, Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&#8221;，源:&#8220;XML 拆装器&#8221;，接收端口:&#8220;R_OA_NS_MSG&#8221;，URI:&#8220;FORMATNAME:DIRECT=TCP:10.16.25.81\PRIVATE$\NS_MESSAGE&#8221;，原因: 无法从程序集 &lt;EIAC.OA.NotificationSystem.Schemas, Version=1.0.0.0, Culture=neutral, PublicKeyToken=faf62f0e1206ebb8&gt; 加载文档规范 &lt;EIAC.OA.NotificationSystem.Schemas.NotificationData_XML&gt;。请验证已部署此文档规范的架构并且该架构位于全局程序集缓存中。 </font></p>
<p><font face="Verdana"><br />
<br />
<hr />
<br />
<p>&nbsp;</p>
<p><font face="Verdana">事件类型:&nbsp;错误<br />
事件来源:&nbsp;BizTalk Server 2006<br />
事件种类:&nbsp;BizTalk Server 2006 <br />
事件 ID:&nbsp;5753<br />
日期:&nbsp;&nbsp;2008-3-31<br />
事件:&nbsp;&nbsp;11:46:29<br />
用户:&nbsp;&nbsp;N/A<br />
计算机:&nbsp;GDEIAC-BIZ01<br />
描述:<br />
接收位置&#8220;R_OA_NS_MSMQ_Message&#8221;(URI 为&#8220;FORMATNAME:DIRECT=TCP:10.16.25.81\PRIVATE$\NS_MESSAGE&#8221;)上的适配器&#8220;MSMQ&#8221;接收的消息已挂起。<br />
&nbsp;错误详细信息: 执行接收管道时出错:&#8220;Microsoft.BizTalk.DefaultPipelines.XMLReceive, Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&#8221;，源:&#8220;XML 拆装器&#8221;，接收端口:&#8220;R_OA_NS_MSG&#8221;，URI:&#8220;FORMATNAME:DIRECT=TCP:10.16.25.81\PRIVATE$\NS_MESSAGE&#8221;，原因: 无法从程序集 &lt;EIAC.OA.NotificationSystem.Schemas, Version=1.0.0.0, Culture=neutral, PublicKeyToken=faf62f0e1206ebb8&gt; 加载文档规范 &lt;EIAC.OA.NotificationSystem.Schemas.NotificationData_XML&gt;。请验证已部署此文档规范的架构并且该架构位于全局程序集缓存中。&nbsp;&nbsp; <br />
&nbsp;消息 ID:&nbsp; {1403920C-8604-4B05-AFBA-7372E4B2220C}<br />
&nbsp;实例 ID: {E461A125-C380-497C-9152-CB60EC744B88}</font></p>
<p><font face="Verdana"><br />
</font>
<hr />
<br />
查询GAC<br />
<br />
<img height="162" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_ERROR/ERROR_5719_01.JPG" width="871" border="0" /><br />
<br />
<br />
检查Assembly目录<br />
<br />
<img height="234" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_ERROR/ERROR_5719_02.JPG" width="912" border="0" /><br />
<br />
<br />
<img alt="" src="http://www.cnblogs.com/Emoticons/qface/055243623.gif" />&nbsp;都很正常呀！！！！奇怪了！！<br />
<br />
<br />
<hr />
<br />
<br />
解决：<br />
<br />
重启了一下服务器，上现的现象就没有了！非常奇怪！找不到一个很好的解释。<br />
<br />
<img alt="" src="http://www.cnblogs.com/Emoticons/qface/055243873.gif" /><br />
<br />
<br />
自己的猜测：<br />
<br />
由于我为这个流程单独创建了一个Host Instance，而Receive Adapter仍然用的是BizTalkApplicationHost，而这个默认的Host也需要Restart一下，才能加载到新注册的Dll 。<br />
<br />
<img height="346" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/ERROR_5719_04.JPG" width="707" border="0" /><br />
<br />
<br />
<br />
</font>
<p>&nbsp;</p><img src ="http://www.cnblogs.com/xuzhong/aggbug/1130988.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42095/" target="_blank">[新闻]SQL Server2008十月亮相 标榜智能数据平台</a>]]></description></item><item><title>[BTS]5740,10034错误处理？</title><link>http://www.cnblogs.com/xuzhong/archive/2008/03/04/1090131.html</link><dc:creator>西煞魄工人</dc:creator><author>西煞魄工人</author><pubDate>Tue, 04 Mar 2008 05:58:00 GMT</pubDate><guid>http://www.cnblogs.com/xuzhong/archive/2008/03/04/1090131.html</guid><wfw:comment>http://www.cnblogs.com/xuzhong/comments/1090131.html</wfw:comment><comments>http://www.cnblogs.com/xuzhong/archive/2008/03/04/1090131.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/xuzhong/comments/commentRss/1090131.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xuzhong/services/trackbacks/1090131.html</trackback:ping><description><![CDATA[<p><font face="Verdana"><font face="Verdana"><br />
<br />
<img alt="" src="http://www.cnblogs.com/Emoticons/qface/055243512.gif" />&nbsp;这又是什么错？<br />
<br />
事件类型:&nbsp;警告<br />
事件来源:&nbsp;BizTalk Server 2006<br />
事件种类:&nbsp;BizTalk Server 2006 <br />
事件 ID:&nbsp;5740<br />
日期:&nbsp;&nbsp;2008-3-4<br />
事件:&nbsp;&nbsp;13:46:51<br />
用户:&nbsp;&nbsp;N/A<br />
计算机:&nbsp;EIAC-TEMP5<br />
描述:<br />
适配器&#8220;SQL&#8221;返回一条错误消息。详细信息为&#8220;HRESULT="0x80040e14" Description="SQLOLEDB Error Description: Ambiguous update, unique identifier required&nbsp; Transaction aborted "<br />
&nbsp;﻿&lt;Root xmlns:ns00="urn:schemas-microsoft-com:xml-updategram"&gt;&lt;?MSSQLError HResult="0x80040e14" Source="Microsoft OLE DB Provider for SQL Server" Description="SQLOLEDB Error Description: Ambiguous update, unique identifier required&nbsp; Transaction aborted "?&gt;&lt;/Root&gt;&#8221;。<br />
</font><br />
<br />
<hr />
<br />
<br />
<br />
事件类型:&nbsp;错误<br />
事件来源:&nbsp;XLANG/s<br />
事件种类:&nbsp;无<br />
事件 ID:&nbsp;10034<br />
日期:&nbsp;&nbsp;2008-3-4<br />
事件:&nbsp;&nbsp;13:46:52<br />
用户:&nbsp;&nbsp;N/A<br />
计算机:&nbsp;EIAC-TEMP5<br />
描述:<br />
未捕获的异常(请参阅下面的&#8220;内部异常&#8221;)已经挂起服务&#8220;EIAC.OA.NotificationSystem.Orchestrations.Main(a44769cf-20b3-668b-e434-e1b03b6f84c2)&#8221;的一个实例。<br />
在管理性地恢复或终止该服务实例前，它将保持挂起状态。<br />
如果恢复了该服务实例，它将从上次持续的状态继续，这可能再次引发同样的异常。<br />
实例 ID: d9c408b3-57ab-48dd-937c-80dd864c1580<br />
形状名称: <br />
形状 ID: <br />
引发异常的位置: 段 -1，进程 -1<br />
内部异常: 处理消息时出错，有关详细信息，请参阅详细资料部分 <br />
消息 ID: {2F367584-1D89-4551-A76A-1223E5BB2F4E}<br />
实例 ID: {FA895E7E-1DBA-4293-A0F5-E6DFD753BB3A}<br />
错误说明: HRESULT="0x80040e14" Description="SQLOLEDB Error Description: Ambiguous update, unique identifier required&nbsp; Transaction aborted "<br />
&nbsp;﻿&lt;Root xmlns:ns00="urn:schemas-microsoft-com:xml-updategram"&gt;&lt;?MSSQLError HResult="0x80040e14" Source="Microsoft OLE DB Provider for SQL Server" Description="SQLOLEDB Error Description: Ambiguous update, unique identifier required&nbsp; Transaction aborted "?&gt;&lt;/Root&gt;</font>
<p>&nbsp;</p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
异常类型: XlangSoapException<br />
源: Microsoft.XLANGs.BizTalk.Engine<br />
目标站点: Void VerifyTransport(Microsoft.XLANGs.Core.Envelope, Int32, Microsoft.XLANGs.Core.Context)<br />
下面是一个堆栈跟踪，用于标识发生异常的位置</font></p>
<p><font face="Verdana">&nbsp;&nbsp; 在 Microsoft.BizTalk.XLANGs.BTXEngine.BTXPortBase.VerifyTransport(Envelope env, Int32 operationId, Context ctx)<br />
&nbsp;&nbsp; 在 Microsoft.XLANGs.Core.Subscription.Receive(Segment s, Context ctx, Envelope&amp; env, Boolean topOnly)<br />
&nbsp;&nbsp; 在 Microsoft.XLANGs.Core.PortBase.GetMessageId(Subscription subscription, Segment currentSegment, Context cxt, Envelope&amp; env, CachedObject location)<br />
&nbsp;&nbsp; 在 EIAC.OA.NotificationSystem.Orchestrations.Main.segment17(StopConditions stopOn)<br />
&nbsp;&nbsp; 在 Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s, StopConditions stopCond, Exception&amp; exp)</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp; <br />
<hr />
</font></p>
<br />
这几次发现，5470, 5474, 10034 这样的错误，经常会同时出现。10034就不用去管它了。<br />
<br />
5470，又是报sqladapter有问题，难道它这么脆弱吗？<br />
<br />
测试现象，跟前面的流程一样，主要问题出在当流程有并发执行updategram的update操作时，就会报上面的错误。注意，是并发执行，当并发数&gt;3时，就会引起错误。这是为什么呢？<br />
<br />
总之，我还解释不了，但，与以往项目对比发现，主要区别就是定义的数据表ID字段没有设置成PK，改过来，问题就解决了！<br />
<br />
<img src="http://www.cnblogs.com/Emoticons/qface/055243970.gif"  alt="" />&nbsp;折磨了我一下午，问题就是一个PK。<br />
<img src ="http://www.cnblogs.com/xuzhong/aggbug/1090131.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42091/" target="_blank">[新闻]淘宝将与阿里妈妈合并 大淘宝战略启动</a>]]></description></item><item><title>[BTS]使用BizTalk开发应用系统，就是这么简单！</title><link>http://www.cnblogs.com/xuzhong/archive/2008/02/28/1085365.html</link><dc:creator>西煞魄工人</dc:creator><author>西煞魄工人</author><pubDate>Thu, 28 Feb 2008 12:36:00 GMT</pubDate><guid>http://www.cnblogs.com/xuzhong/archive/2008/02/28/1085365.html</guid><wfw:comment>http://www.cnblogs.com/xuzhong/comments/1085365.html</wfw:comment><comments>http://www.cnblogs.com/xuzhong/archive/2008/02/28/1085365.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/xuzhong/comments/commentRss/1085365.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xuzhong/services/trackbacks/1085365.html</trackback:ping><description><![CDATA[<br />
<br />
<font style="font-size: 24pt" face="Verdana"><strong>使用BizTalk开发应用系统</strong></font><br />
<br />
<img alt="" src="http://www.cnblogs.com/Emoticons/qface/055243803.gif" />&nbsp;此文献给那些知道BizTalk，但还不知道它能做什么的朋友们！<br />
<br />
<br />
<br />
&nbsp;&nbsp;&nbsp; 项目中要完成一个消息服务中心程序，主要完成接收各个系统发过来的消息，根据不同的消息内容，按特定的方式将提醒消息发送出去。发送方式主要有：email, 短信, 即时消息。<br />
现有资源：SMTP服器，短信网管接口程序，OCS消息转发接口程序。<br />
<br />
&nbsp;&nbsp;&nbsp; 看来，三个发送发式的代码都已经完成了。就差这个消息服务中心了！<br />
<br />
&nbsp;&nbsp;&nbsp; 想一想，还是用BizTalk吧。开始画图了！！！！....<br />
<br />
<br />
<br />
所做的工作：<br />
在sqlserver上创建了几个表，为了记录消息日志，同时写了对应的几个Insert存储过程。<br />
定义各系统可以传给我什么样的消息！schema. (xsd)<br />
发EMail，直接用BizTalk的SMTP Adapter。<br />
发OC即时消息，直接用MSMQ Adapter，将消息发到它的接收MSMQ中。<br />
发短信，也用MSMQ Adapter，把消息发到短信服务程序的MSMQ中。<br />
中间定义几个消息。<br />
中间定义几个变量。<br />
使用Sql Adapter生成调用使用的消息。<br />
做几个Mapping。<br />
写几行为了显示在Event日志中的C#代码及几个Helper文件。<br />
按需求，画流程图吧！<br />
最后，进行编译、部署、测试。<br />
<br />
一切OK !<br />
<br />
<img alt="" src="http://www.cnblogs.com/Emoticons/qface/055242240.gif" /><br />
<br />
解决方案：<br />
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/MyWork/NotificationSystem_sln.jpg" border="0" /><br />
<br />
<br />
实际流程图：<br />
<img height="1680" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/MyWork/NotificationService.jpg" width="1363" border="0" /><br />
<br />
运行时对流程执行的监控：<br />
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/MyWork/NotificationSystem_hat.jpg" border="0" /><br />
<br />
<br />
<br />
<strong>BizTalk代表的概念！</strong><br />
<br />
<br />
EAI：我用一个简单的流程图，把三个系统（三种消息发送方式）集成在一起了！<br />
SOA：我有一个接收端口，我可以配置这个接收端口从File, FTP，SQL，.... 只要我能访问到的地方读取、监听数据。为你提供转发提醒消息的服务！<br />
ESB：以后，我有更多的流程了，我可以把它们都串起来，完成一件更庞大的工程！<br />
<br />
<br />
<br />
<strong>我们的学习团队！<br />
</strong><br />
BizTalk Group MSN群 （MSN:<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#103;&#114;&#111;&#117;&#112;&#51;&#51;&#48;&#50;&#50;&#64;&#120;&#105;&#97;&#111;&#105;&#46;&#99;&#111;&#109;">group33022@xiaoi.com</a>&nbsp;）<br />
欢迎加入BizTalk Group组织，我们一起提高并进步！<br />
<br />
<img src="http://www.cnblogs.com/Emoticons/qface/055243929.gif"  alt="" />
<img src ="http://www.cnblogs.com/xuzhong/aggbug/1085365.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42090/" target="_blank">[新闻]电脑报借盛大进入网游市场</a>]]></description></item><item><title>[BTS]5740, 5743错误如何处理？</title><link>http://www.cnblogs.com/xuzhong/archive/2008/02/28/1085258.html</link><dc:creator>西煞魄工人</dc:creator><author>西煞魄工人</author><pubDate>Thu, 28 Feb 2008 10:43:00 GMT</pubDate><guid>http://www.cnblogs.com/xuzhong/archive/2008/02/28/1085258.html</guid><wfw:comment>http://www.cnblogs.com/xuzhong/comments/1085258.html</wfw:comment><comments>http://www.cnblogs.com/xuzhong/archive/2008/02/28/1085258.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/xuzhong/comments/commentRss/1085258.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xuzhong/services/trackbacks/1085258.html</trackback:ping><description><![CDATA[<p><font face="Verdana"><br />
<img alt="" src="http://www.cnblogs.com/Emoticons/qface/055243512.gif" /><br />
<br />
Event Type:&nbsp;Warning<br />
Event Source:&nbsp;BizTalk Server 2006<br />
Event Category:&nbsp;BizTalk Server 2006 <br />
Event ID:&nbsp;5740<br />
Date:&nbsp;&nbsp;2/28/2008<br />
Time:&nbsp;&nbsp;6:33:04 PM<br />
User:&nbsp;&nbsp;N/A<br />
Computer:&nbsp;LABS<br />
Description:<br />
The adapter "SQL" raised an error message. Details "HRESULT="0x80040e14" Description="SQLOLEDB Error Description: Ambiguous update, unique identifier required&nbsp; Transaction aborted "<br />
&nbsp;﻿&lt;Root xmlns:ns00="urn:schemas-microsoft-com:xml-updategram"&gt;&lt;?MSSQLError HResult="0x80040e14" Source="Microsoft OLE DB Provider for SQL Server" Description="SQLOLEDB Error Description: <span style="background-color: yellow">Ambiguous update, unique identifier required&nbsp; Transaction aborted </span>"?&gt;&lt;/Root&gt;".</font></p>
<p><font face="Verdana">For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.</font></p>
<p><font face="Verdana"></font>&nbsp;</p>
<font face="Verdana">
<p><br />
Event Type:&nbsp;Warning<br />
Event Source:&nbsp;BizTalk Server 2006<br />
Event Category:&nbsp;BizTalk Server 2006 <br />
Event ID:&nbsp;5743<br />
Date:&nbsp;&nbsp;2/28/2008<br />
Time:&nbsp;&nbsp;6:33:04 PM<br />
User:&nbsp;&nbsp;N/A<br />
Computer:&nbsp;LABS<br />
Description:<br />
The adapter failed to transmit message going to send port "UpdateSMGPLog" with URL "SQL://labs/NotificationSystem/". <span style="background-color: yellow">It will be retransmitted after the retry interval specified for this Send Port. </span>Details:"HRESULT="0x80040e14" Description="SQLOLEDB Error Description: Ambiguous update, unique identifier required&nbsp; Transaction aborted "<br />
&nbsp;﻿&lt;Root xmlns:ns00="urn:schemas-microsoft-com:xml-updategram"&gt;&lt;?MSSQLError HResult="0x80040e14" Source="Microsoft OLE DB Provider for SQL Server" Description="SQLOLEDB Error Description: Ambiguous update, unique identifier required&nbsp; Transaction aborted "?&gt;&lt;/Root&gt;".</p>
<p>For more information, see Help and Support Center at <a href="http://go.microsoft.com/fwlink/events.asp">http://go.microsoft.com/fwlink/events.asp</a>.<br />
<br />
<hr />
</font>
<p>通过在流程中转出关键几个Message的Xml，发现,　于用Update的消息，数据不全。<br />
<br />
<font face="Verdana">&lt;ns0:UpdateOCSLogRequest xmlns:ns0="http://EIAC.OA.NotificationSystem.UpdateOCSLog"&gt;<br />
&lt;ns0:sync&gt;<br />
&lt;ns0:<span style="background-color: yellow">before</span>&gt;&lt;ns0:OCSMessageLog&gt;&lt;/ns0:OCSMessageLog&gt;&lt;/ns0:before&gt;<br />
&lt;ns0:<span style="background-color: yellow">after</span>&gt;&lt;ns0:OCSMessageLog StateID="1"&gt;&lt;/ns0:OCSMessageLog&gt;&lt;/ns0:after&gt;<br />
&lt;/ns0:sync&gt;<br />
&lt;/ns0:UpdateOCSLogRequest&gt;<br />
<br />
没有Before条件，这就相当于你的sql语句少东西！<br />
update table set StateID=1 where &lt;??????&gt; 人家不知道去更新谁！<br />
<br />
找到错误原因后，把对应的流程代码再进行了一下整理。确定再测试时，这个before已经有数据了。<br />
<br />
<hr />
</font>
<p>&nbsp;</p>
<br />
<img alt="" src="http://www.cnblogs.com/Emoticons/qface/055611161.gif" />&nbsp; 问题又被解决了！<br />
<br />
<a href="http://www.cnblogs.com/xuzhong/">西煞魄工人</a>
<img src ="http://www.cnblogs.com/xuzhong/aggbug/1085258.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42090/" target="_blank">[新闻]电脑报借盛大进入网游市场</a>]]></description></item><item><title>[BTS]10022错误如何处理？</title><link>http://www.cnblogs.com/xuzhong/archive/2008/02/28/1085219.html</link><dc:creator>西煞魄工人</dc:creator><author>西煞魄工人</author><pubDate>Thu, 28 Feb 2008 09:56:00 GMT</pubDate><guid>http://www.cnblogs.com/xuzhong/archive/2008/02/28/1085219.html</guid><wfw:comment>http://www.cnblogs.com/xuzhong/comments/1085219.html</wfw:comment><comments>http://www.cnblogs.com/xuzhong/archive/2008/02/28/1085219.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/xuzhong/comments/commentRss/1085219.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xuzhong/services/trackbacks/1085219.html</trackback:ping><description><![CDATA[<br />
<img src="http://www.cnblogs.com/Emoticons/qface/055243970.gif"  alt="" />就差提交了，结果点错了，没存就关了！还得重写！！！！ <br />
<br />
<br />
&nbsp;&nbsp;&nbsp; 今日，流程继续开发，把原来的流程增加更多的日志、状态。方便以后查询消息处理结果。但，流程复杂了，问题也就多多了。<br />
<br />
<hr />
<br />
<img src="http://www.cnblogs.com/Emoticons/qface/055243873.gif"  alt="" /><br />
<p><font face="Verdana">Event Type:&nbsp;Error<br />
Event Source:&nbsp;XLANG/s<br />
Event Category:&nbsp;None<br />
Event ID:&nbsp;<span style="background-color: yellow">10022</span><br />
Date:&nbsp;&nbsp;2/28/2008<br />
Time:&nbsp;&nbsp;5:03:26 PM<br />
User:&nbsp;&nbsp;N/A<br />
Computer:&nbsp;LABS<br />
Description:<br />
Uncaught exception (see the 'inner exception' below) has suspended an instance of service 'EIAC.OA.NotificationSystem.Orchestrations.Main(a44769cf-20b3-668b-e434-e1b03b6f84c2)'.<br />
The service instance will remain suspended until administratively resumed or terminated. <br />
If resumed the instance will continue from its last persisted state and may re-throw the same unexpected exception.<br />
InstanceId: 7f7a5fc9-882c-41d4-abf1-4098dcf66126<br />
Shape name: Construct msgUpdateOCSLog<br />
ShapeId: 869f1e47-bfc2-46bf-b425-a85cbcc46b06<br />
Exception thrown from: segment 6, progress 2<br />
Inner exception: A failure occurred while evaluating the distinguished field sync.after.OCSMessageLog.StateID against the message part data. The message part data does not contain at least one of the nodes specified by the XPath expression (listed below) that corresponds to the distinguished field. <span style="background-color: yellow">The cause for this error may be that the message part data has not been initialized or that the message part data does not conform to the message part schema. </span>Ensure that the message part data is initialized correctly. XPath expression: /*[local-name()='UpdateOCSLogRequest' and namespace-uri()='http://EIAC.OA.NotificationSystem.UpdateOCSLog']/*[local-name()='sync' and namespace-uri()='http://EIAC.OA.NotificationSystem.UpdateOCSLog']/*[local-name()='after' and namespace-uri()='http://EIAC.OA.NotificationSystem.UpdateOCSLog']/*[local-name()='OCSMessageLog' and namespace-uri()='http://EIAC.OA.NotificationSystem.UpdateOCSLog']/@*[local-name()='StateID' and namespace-uri()='']<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
Exception type: XPathUpdateException<br />
Source: Microsoft.XLANGs.Engine<br />
Target Site: Void SetDistinguishedField(System.String, System.Object)<br />
The following is a stack trace that identifies the location where the exception occured</font></p>
<p><font face="Verdana">&nbsp;&nbsp; at Microsoft.XLANGs.Core.XSDPart.SetDistinguishedField(String dottedPath, Object val)<br />
&nbsp;&nbsp; at EIAC.OA.NotificationSystem.Orchestrations.Main.segment6(StopConditions stopOn)<br />
&nbsp;&nbsp; at Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s, StopConditions stopCond, Exception&amp; exp)</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></p>
<p><font face="Verdana">For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.<br />
<br />
<br />
<hr />
<br />
<br />
仔细检查一下错误中提到的消息，它的初始化如下<br />
<br />
<img height="388" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_ERROR/ERROR_10022_01.jpg" width="559" border="0" /><br />
<br />
后面有一赋值操作<br />
<br />
<font face="Verdana">msgUpdateOCSLogRequest.parameters.sync.after.OCSMessageLog.StateID = m_strStateID;</font><br />
<br />
通过ErrorLog，错误大至就是发生在这里。<br />
<br />
<hr />
<br />
<img src="http://www.cnblogs.com/Emoticons/qface/055243929.gif"  alt="" /><br />
<br />
&nbsp;&nbsp;&nbsp; 分析一下原因，大至是由于在Mapping中没有对StateID字段赋值，造成它在xml中是不存在的，所以，后面的赋值操作中，用属性去访问时会报错的。如同一个类的成员变量还没有赋值，就去调用这个成员变量的方法一样。<br />
<br />
<hr />
<br />
找一个最简单的方法：<br />
<br />
<img height="389" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_ERROR/ERROR_10022_02.jpg" width="559" border="0" /><br />
<br />
<hr />
<br />
<img src="http://www.cnblogs.com/Emoticons/qface/055243188.gif"  alt="" /><br />
<br />
&nbsp;&nbsp;&nbsp; 以后，在构造有属性的消息时，把这些性都赋上个初值，也为以后调用时创建便利。</font></p>
<img src ="http://www.cnblogs.com/xuzhong/aggbug/1085219.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42090/" target="_blank">[新闻]电脑报借盛大进入网游市场</a>]]></description></item><item><title>[BTS]10008错误如何处理？</title><link>http://www.cnblogs.com/xuzhong/archive/2008/02/21/1076908.html</link><dc:creator>西煞魄工人</dc:creator><author>西煞魄工人</author><pubDate>Thu, 21 Feb 2008 14:41:00 GMT</pubDate><guid>http://www.cnblogs.com/xuzhong/archive/2008/02/21/1076908.html</guid><wfw:comment>http://www.cnblogs.com/xuzhong/comments/1076908.html</wfw:comment><comments>http://www.cnblogs.com/xuzhong/archive/2008/02/21/1076908.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/xuzhong/comments/commentRss/1076908.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xuzhong/services/trackbacks/1076908.html</trackback:ping><description><![CDATA[今日写了一个流程<br />
<br />
<img height="1036" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_ERROR/ERROR_10008.jpg" width="1024" border="0" /><br />
<br />
错误提示如下<br />
<br />
<hr />
<br />
<p><font face="Verdana">Event Type:&nbsp;Error<br />
Event Source:&nbsp;XLANG/s<br />
Event Category:&nbsp;None<br />
Event ID:&nbsp;<span style="color: red">10008</span><br />
Date:&nbsp;&nbsp;2/21/2008<br />
Time:&nbsp;&nbsp;9:45:27 PM<br />
User:&nbsp;&nbsp;N/A<br />
Computer:&nbsp;LABS<br />
Description:<br />
Uncaught exception (see the 'inner exception' below) has suspended an instance of service 'EIAC.OA.NotificationSystem.Orchestrations.Main(a44769cf-20b3-668b-e434-e1b03b6f84c2)'.<br />
The service instance will remain suspended until administratively resumed or terminated. <br />
If resumed the instance will continue from its last persisted state and may re-throw the same unexpected exception.<br />
InstanceId: ea3c1bab-8383-4bb5-993a-85a7bf05dc66<br />
Shape name: RequestCreateEMailLog<br />
ShapeId: d76938c8-3bb5-408a-9ac5-e0e762bb489b<br />
Exception thrown from: segment 1, progress 37<br />
Inner exception: <span style="color: red">Exception occurred when persisting state to the database.<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
Exception type: <span style="color: red">PersistenceException</span><br />
Source: <span style="color: red">Microsoft.XLANGs.BizTalk.Engine</span><br />
Target Site: <span style="color: red">Void Commit()</span><br />
The following is a stack trace that identifies the location where the exception occured</font></p>
<p><font face="Verdana">&nbsp;&nbsp; at Microsoft.BizTalk.XLANGs.BTXEngine.BTXXlangStore.Commit()<br />
&nbsp;&nbsp; at Microsoft.XLANGs.Core.Service.Persist(Boolean dehydrate, Context ctx, Boolean idleRequired, Boolean finalPersist, Boolean bypassCommit, Boolean terminate)<br />
&nbsp;&nbsp; at Microsoft.XLANGs.Core.ServiceContext.PendingCommit(Boolean ignore, XMessage msg)<br />
&nbsp;&nbsp; at Microsoft.XLANGs.Core.ExceptionHandlingContext.PendingCommit(Boolean ignoreCommit, XMessage msg)<br />
&nbsp;&nbsp; at Microsoft.BizTalk.XLANGs.BTXEngine.BTXPortBase.SendMessage(Int32 iOperation, XLANGMessage msg, Correlation[] initCorrelations, Correlation[] followCorrelations, SubscriptionWrapper&amp; subscriptionWrapper, Context cxt, Segment seg, ActivityFlags flags)<br />
&nbsp;&nbsp; at Microsoft.XLANGs.Core.PortBase.SendMessage(Int32 iOperation, XLANGMessage msg, Correlation[] initCorrelations, Correlation[] followCorrelations, SubscriptionWrapper&amp; subscriptionWrapper, Context cxt, Segment seg)<br />
&nbsp;&nbsp; at EIAC.OA.NotificationSystem.Orchestrations.Main.segment1(StopConditions stopOn)<br />
&nbsp;&nbsp; at Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s, StopConditions stopCond, Exception&amp; exp)<br />
Additional error information:</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: red; background-color: yellow">A batch item failed persistence Item-ID 7a083b87-980c-4888-8cbc-35b14cef2bc8 OperationType MAIO_CommitBatch Status -1061151998 ErrorInfo The published message could not be routed because no subscribers were found. .<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
Exception type: PersistenceItemException<br />
Additional error information:</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: red; background-color: yellow">Failed to publish (send) a message in the batch. This is usually because there is no one expecting to receive this message.&nbsp; The error was The published message could not be routed because no subscribers were found.&nbsp; with status -1061151998.<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
Exception type: PublishMessageException</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></p>
<p><font face="Verdana">For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.<br />
<hr />
<br />
正在研究它出错的原因<br />
<img height="100" alt="" src="http://www.cnblogs.com/Emoticons/face/042.gif" width="100" border="0" /><br />
<br />
<br />
<br />
<br />
问题找到了，从上面的错误信息中可以看到，是由于没有消息的订阅者，这是为什么呢。原来，开发中错误的使用了Direct方式配置流程中的SendPort<br />
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_ERROR/ERROR_10008_01.jpg" border="0" /><br />
</font>
<p>我真是太大意了，这也能搞错。(当时看也没看就这么选上了，配置部署时，也没发现少了一个绑定端口)<br />
<br />
<strong>Direct绑定是Orchestration之间，通过这种把流程中的send / receive进行直接绑定，实现消息在Orchestration中的传递。<br />
</strong><br />
把端口重新绑定了一下，问题解决了。<br />
<br />
<img src="http://www.cnblogs.com/Emoticons/others/cool002.jpg"  alt="" /><br />
<br />
自勉：吃一堑，长一智不。</p>
<img src ="http://www.cnblogs.com/xuzhong/aggbug/1076908.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42079/" target="_blank">[新闻]Chrome开发团队曝光 多人出身微软网景火狐</a>]]></description></item><item><title>[BTS]WSS+InfoPath+BizTalk 案例</title><link>http://www.cnblogs.com/xuzhong/archive/2008/01/29/1057873.html</link><dc:creator>西煞魄工人</dc:creator><author>西煞魄工人</author><pubDate>Tue, 29 Jan 2008 10:11:00 GMT</pubDate><guid>http://www.cnblogs.com/xuzhong/archive/2008/01/29/1057873.html</guid><wfw:comment>http://www.cnblogs.com/xuzhong/comments/1057873.html</wfw:comment><comments>http://www.cnblogs.com/xuzhong/archive/2008/01/29/1057873.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnblogs.com/xuzhong/comments/commentRss/1057873.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xuzhong/services/trackbacks/1057873.html</trackback:ping><description><![CDATA[<span style="font-size: 24pt"><br />
[BTS]WSS+InfoPath+BizTalk 案例</span><br />
<br />
<h1>一.目的</h1>
&nbsp; &nbsp; &nbsp; 通过本文的学习，将带你进入BizTalk与WSS进行整合，完成一次简单的工作流程开发过程。了解BizTalk流程开发的基本过程，了解WSS+InfoPath的应用，了解InfoPath的使用方法，熟悉BizTalk WSS Adapter的使用方法。<br />
<br />
<h1>二.背景</h1>
<h2>1.名词解释</h2>
<strong><span style="font-size: 14pt">WSS<br />
</span></strong>&nbsp; &nbsp; Windows SharePoint Services 是一个用来创建能够实现信息共享和文档协作的Web站点的引擎，从而有助于提高个人和团队的生产力。它是Microsoft Windows Server&#8482; 2003中所提供的信息工作者体系结构的重要组成部分, 为Microsoft Office System和其他的桌面应用程序提供了附加的功能，并能够作为应用程序开发的平台。<br />
<strong><span style="font-size: 14pt"><br />
InfoPath</span></strong><br />
&nbsp; &nbsp; InfoPath 2003—Office System 中的新产品—是一个功能强大的程序，它使团队和公司能够通过丰富、动态的表单，高效地收集他们所需的信息。因为 InfoPath 支持使用任何客户定义架构的行业标准的可扩展标记语言 (XML)，所以可以在整个企业内和在业务进程之间轻松重用收集到的信息。XML 支持使 InfoPath 用户可以在公司间和业务进程间共享信息，以获得更大的业务影响。<br />
<br />
<strong><span style="font-size: 14pt">BizTalk</span></strong><br />
&nbsp; &nbsp; Schema, Pipeline, Adapter, Orchestration, Mapping, Rule, BAM<br />
<br />
<h2>2.运行环境</h2>
<strong>Server : <br />
</strong>&nbsp; &nbsp; windows 2003 server sp2 , sql server 2005, BizTalk 2006 , IIS , WSS2.0, Office 2003<br />
<br />
<strong>Client :</strong><br />
&nbsp; &nbsp; Windows XP , Office 2003<br />
<br />
<h1>三.需求分析</h1>
<h2>1.处理流程</h2>
&nbsp; &nbsp; &nbsp; 如果非常详细的写，可以写一份《软件需求说明书》了，这里只把最关键的流程图放在这里。<br />
<br />
<img title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WorkFlow.png" /><br />
<br />
<h2>2.数据定义</h2>
采购订单：订单号，填写人，采购产品名称，采购数量，单价，备注，时间<br />
查看生产计划：订单号，产品名称，数量，备注<br />
完成的订单：订单号，填写人，采购产品名称，采购数量，单价，总价，备注<br />
取货表单：订单号，填写人，采购产品名称，采购数量，单价，备注，填写时间，完成时间<br />
<br />
<h2>3.规则定义</h2>
如果订单中产品数量大于50件时，需要通知生产厂家进行生产后，将生产后的产品直接发给销售代理。<br />
<h2>4.要求</h2>
全部数据保存在WSS的文档库中即可。<br />
<br />
<h1>四.程序开发</h1>
<p>很多BizTalk初学者与我当初一样，不知如何下手，其实，biztalk开发与一般的程序开发基本一样，只是使用的工具不同而已。</p>
<p>与程序开发一样，首先要明确用户需求，从用户需求中找到可以流程化的东西。然后确认用户现有系统中可以提供的接口有哪些，这也是为EAI做准备，缺的接口就找人或自己开发好。biztalk是基于消息的，所以，要根据需求中确定的数据定义来定义流程中要使用到的消息体(schema)，以及明确消息之间的关系(map)。根据与各接口对接的方式，选择不同的adapter进行连接。根据业务流程的定义，就可以很快的把Orchestration画好。最后几步当然是部署、测试。</p>
<h2>1.消息定义</h2>
<p>注意：如果为了后面用到数据有效果验证，以及InfoPath自动生成控件，请为每一个Field设置正确的数据类型。</p>
<p>客户订单<br />
<img title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_01.JPG" /></p>
<p>生产计划（用state标记生产结束）<br />
<img title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_02.JPG" /></p>
<p>取货单<br />
<img title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_03.JPG" /></p>
<h2>2. 升级属性</h2>
<p>目的：.................................</p>
<p>创建Order的属性定义<br />
<img title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_04.JPG" /></p>
<p>属性定义（取关键性字段）<br />
<img title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_05.JPG" /></p>
<p>升级消息中对应的字段<br />
<img title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_06.JPG" /></p>
<p><img id="IMG1" title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_07.JPG" />&nbsp;</p>
<p><img id="Img2" title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_08.JPG" />&nbsp;</p>
<p>其他几个消息也按同样规则定义好相应的属性。</p>
<h2>3. 在WSS上建好对应的文档库</h2>
<p><img id="Img3" title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_09.JPG" />&nbsp;</p>
<p><img id="Img4" title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_10.JPG" />&nbsp;</p>
<p><img id="Img5" title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_11.JPG" />&nbsp;</p>
<p><img id="Img6" title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_12.JPG" />&nbsp;</p>
<h2>4. 使用InfoPath定制表单</h2>
<p><img id="Img7" title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_13.JPG" />&nbsp;</p>
<p><img id="Img8" title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_14.JPG" />&nbsp;</p>
<p>点击保存后，选择发布</p>
<p><img id="Img9" title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_15.JPG" />&nbsp;</p>
<p><img id="Img10" title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_16.JPG" />&nbsp;</p>
<p><img id="Img11" title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_17.JPG" />&nbsp;</p>
<p><img id="Img12" title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_18.JPG" />&nbsp;</p>
<p><img id="Img13" title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_19.JPG" />&nbsp;</p>
<p><img id="Img14" title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_20.JPG" />&nbsp;</p>
<p>最完点击完成。</p>
<p>重复上面的步骤，完成其它两个Form表单的设计及发部。</p>
<p><img id="Img15" title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_21.JPG" /> <img id="Img16" title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_22.JPG" /></p>
<h2>5. 开发流程</h2>
<p>根据前面的需求，定制Orchestration。<br />
<img id="Img17" title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_23.JPG" />&nbsp;</p>
<p>注意，这里用到了相关性概念（会在以后介绍），先按1,2,3顺序操作。<br />
<img id="Img18" title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_24.JPG" /></p>
<h2>6. 部署、配置</h2>
<p>RcvOrderPort 配置<br />
<img id="Img19" title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_25.JPG" /></p>
<p>SndProducePort 配置<br />
<img id="Img20" title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_26.JPG" /></p>
<p>RcvProduceResponsePort 配置<br />
<img id="Img22" title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_28.JPG" />&nbsp;</p>
<p>SndGoodsPort 配置<br />
<img id="Img23" title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_29.JPG" />&nbsp;</p>
<p>&nbsp;</p>
<h1>五. 测试</h1>
<p>新建一个订单</p>
<p><img id="Img21" title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_27.JPG" />&nbsp;</p>
<p>理论上可以按原流程设计走通。</p>
<p>但当前进行测试时发现流程中有逻辑上的问题；</p>
<p>1. 发送到Produce_Form中后，又有一接收端口从这里取数据，这个地方有点问题，觉得应该再增加一个Form用来存ProduceResponse，然后从这个FormList中取数据。</p>
<p>2. 由于定义的Produce_XML的FinishTime类型是xs:datetime，所以生成的InfoPath表单无法打开从SndProducePort发过来的xml，因为这时FinishTime无值。InfoPath会发出警告。</p>
<p>所以整合流程只走通了count &lt; 50 的那部分。</p>
<p>&nbsp;<img id="Img24" title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_30.JPG" /></p>
<p><img id="Img25" title="Biztalk,InfoPath,SPS" alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_WSS/WSSAdapter_31.JPG" />&nbsp;</p>
<h1>六. 总结</h1>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;本次实验虽然没有完全成功，但主要是为了介绍一下biztalk + infopath + sps 的一个开发方法，希望能从这个案例中明确使用biztalk进行开发的整体步骤。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 下一回会重点研究一下BAM在本流程中的应用，以及InfoPath的相关开技术。<br />
<br />
</p>
<img src ="http://www.cnblogs.com/xuzhong/aggbug/1057873.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42074/" target="_blank">[新闻]Chrome, 浏览器还重要吗</a>]]></description></item><item><title>BizTalk Group Day 北京!</title><link>http://www.cnblogs.com/xuzhong/archive/2007/12/20/1008012.html</link><dc:creator>西煞魄工人</dc:creator><author>西煞魄工人</author><pubDate>Thu, 20 Dec 2007 14:51:00 GMT</pubDate><guid>http://www.cnblogs.com/xuzhong/archive/2007/12/20/1008012.html</guid><wfw:comment>http://www.cnblogs.com/xuzhong/comments/1008012.html</wfw:comment><comments>http://www.cnblogs.com/xuzhong/archive/2007/12/20/1008012.html#Feedback</comments><slash:comments>15</slash:comments><wfw:commentRss>http://www.cnblogs.com/xuzhong/comments/commentRss/1008012.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xuzhong/services/trackbacks/1008012.html</trackback:ping><description><![CDATA[<strong><span style="font-size: 24pt"><strong>BizTalk Group Day</strong> </span></strong><br />
<br />
2007年12月20日,北京 <br />
<br />
BizTalk Group Day 北京站! 今天成功举行. <br />
<br />
报名人数:10人<br />
实际参加人数:8人 <br />
<br />
非常感谢大家的参与! 希望我们继续发扬BizTalk精神.<br />
<br />
地点:<br />
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Party20071220/Party_2007_12_20_01.jpg" width="600" border="0" />&nbsp;<br />
<br />
成员: <br />
由左向右顺序依次为<br />
北京<font face="Courier New">㊣</font><font face="Courier New">Apenni, 沈阳<font face="Courier New">㊣</font>魔幻天空, 北京<font face="Courier New">㊣</font>ESB, 上海<font face="Courier New">㊣</font>G.L, 上海<font face="Courier New">㊣</font>upzone, 北京<font face="Courier New">㊣</font>YK, 北京<font face="Courier New">㊣</font>deformity<br />
</font><img alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Party20071220/Party_2007_12_20_08.jpg" width="600" border="0" /> <br />
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Party20071220/Party_2007_12_20_09.jpg" width="600" border="0" /> <br />
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Party20071220/Party_2007_12_20_10.jpg" width="600" border="0" /> <br />
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Party20071220/Party_2007_12_20_11.jpg" width="600" border="0" /> <br />
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Party20071220/Party_2007_12_20_12.jpg" width="600" border="0" />&nbsp;<br />
<br />
总结:<br />
<br />
&nbsp;&nbsp;&nbsp; 只有一台DC(Dopod D600),效果太差! 下回要再专业一点!<br />
<img src ="http://www.cnblogs.com/xuzhong/aggbug/1008012.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42069/" target="_blank">[新闻]Chrome发布9小时市占超越1%</a>]]></description></item><item><title>[BTS]BizTalk2006 SqlAdapter UpdateGram的Update用法</title><link>http://www.cnblogs.com/xuzhong/archive/2007/11/06/950698.html</link><dc:creator>西煞魄工人</dc:creator><author>西煞魄工人</author><pubDate>Tue, 06 Nov 2007 02:24:00 GMT</pubDate><guid>http://www.cnblogs.com/xuzhong/archive/2007/11/06/950698.html</guid><wfw:comment>http://www.cnblogs.com/xuzhong/comments/950698.html</wfw:comment><comments>http://www.cnblogs.com/xuzhong/archive/2007/11/06/950698.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/xuzhong/comments/commentRss/950698.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xuzhong/services/trackbacks/950698.html</trackback:ping><description><![CDATA[<strong><span style="font-size: 16pt">使用UpdateGram更新表中的数据</span><br />
<br />
目录<br />
</strong>
<ul>
    <li>开发环境
    <li>开发目的
    <li>开发过程
    <li>总结
    <li>问题 </li>
</ul>
<p><strong><a href="#1">开发环境</a></strong><br />
</p>
<ul>
    <li><span style="font-size: 9pt">Windows2003 SP2</span>
    <li><span style="font-size: 9pt">SqlServer 2005</span>
    <li><span style="font-size: 9pt">BizTalik2006</span>
    <li><span style="font-size: 9pt">VisualStudio2005</span> </li>
</ul>
<p><strong><a href="#2">开发目的</a></strong></p>
<ul>
    <li>学习在SqlAdapter的UpdateGram中，使用Update用法
    <li>验证Update中特殊字符的赋值的方法 </li>
</ul>
<p><strong><a href="#3">开发过程</a></strong></p>
<ol>
    <li>新建项目后，点击"Add Generated Items"，启动生成向导。<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_01.JPG" /><br />
    <br />
    <li>选中"Add Adapter Metadata"的"Add Adapter Metadata"后，点击确定<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_02.JPG" /><br />
    <br />
    <li>选择已经注册了的Adapter，我这里只有Sql。然后配置要连接的数据库。<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_03.JPG" /><br />
    <br />
    <li>接下来要求您设置数据库连接字符串。<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_04.JPG" /><br />
    <br />
    <li>在弹出的数据库配置对话框中，配置数据连接方式。<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_05.JPG" /><br />
    <br />
    <li>配置好后，进行下一步。<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_06.JPG" /><br />
    <br />
    <li>配置生成的Schema的Namespace，端口类型，根节点。<br />
    Namespace：自己输入喜欢的名称<br />
    Port Type：我要用UpdateGram，所以用SendPort<br />
    Root Element Name：请求、响应的根节点<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_07.JPG" /><br />
    <br />
    <li>选择我期待已久的UpdateGram<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_08.JPG" /><br />
    <br />
    <li>选择我要实现的Update功能，要操作的表及字段（这些字段可以在后面的Schema中修改）<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_09.JPG" /><br />
    <br />
    <li>Finish了！<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_10.JPG" /><br />
    <br />
    <li>向导开始自动生成代码了<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_11.JPG" /><br />
    <br />
    <li>生成后，在项目中会多出下面两个文件（不用解译了吧）<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_12.JPG" /><br />
    <br />
    <li>打开流程文件，开始添加一个端口<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_13.JPG" /><br />
    <br />
    <li>启动了端口配置向导<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_14.JPG" /><br />
    <br />
    <li>输入端口名称<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_15.JPG" /><br />
    <br />
    <li>选择由向导自动生成的端口<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_16.JPG" /><br />
    <br />
    <li>配置端口的绑定信息<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_17.JPG" /><br />
    <br />
    <li>又Finish了<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_18.JPG" /><br />
    <br />
    <li>配置结束后的效果<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_19.JPG" /><br />
    <br />
    <li>直接在流程中添加接收、发送，然后与端口进行连接<br />
    添加后会自动生成对应要使用到的消息Message_1，Message_2（先不要改名，后面会用到）<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_20.JPG" /><br />
    <br />
    <li>当然，还要有一个流程的接收端口<br />
    配置一个接收端口（如果配置不用多讲了吧）<br />
    添加一个接收，然后与刚刚添加的接收端口做连接<br />
    把接收的Active属性设置为Tree（启用状态）<br />
    接收的消息为了简单，直接用20步时，自动生成的Message_1<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_21.JPG" /><br />
    <br />
    <li>添加物理发送端口<br />
    在BizTalk Explore中，添加一个发送端口<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_22.JPG" /><br />
    <br />
    <li>端口类型设置为发送请求并接收响应<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_23.JPG" /><br />
    <br />
    <li>设置发送端口名称<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_24.JPG" /><br />
    <br />
    <li>配置发送端口的地址<br />
    ConectionString：可以用配置向导自动生成<br />
    Namespace：在7中设置的Namespace<br />
    Response Root：在7中设置的Response Root Name<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_25.JPG" /><br />
    <br />
    <li>配置完成后的效果<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_26.JPG" /><br />
    <br />
    <li>另忘了还要设置发送端口的Pipeline，全部用Xml***的<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_27.JPG" /><br />
    <br />
    <li>打开项目中的Schema<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_28.JPG" /><br />
    <br />
    <li>这里发现，ID的位置有问题，不应该在After中，把ID移到了Before中<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_29.JPG" /><br />
    <br />
    至此，完成上面所有的操作后，启动BizTalk部署，并完成流程的绑定、启动过程（具体步骤略）。<br />
    <br />
    <li>生成一个Schema的实例，并做了一个Sample（XmlSpy的显示效果）如下<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_30.JPG" /><br />
    <br />
    <li>在目的表中，添加下面的数据<br />
    注意第一条，与30中的Before相对应<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_31.JPG" /><br />
    <br />
    <li>将30中的xml，发到流程的接收位置处<br />
    注：接收位置我配置了一个文件接收端口，这是为了测试方便。配置方法略。<br />
    观察表中的数据表发，发现数据已经按照要求，被更新了。<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_32.JPG" /><br />
    <br />
    <li>如果输入的Xml中，Before数据与表中数据对应不上，会报下面的错误<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_33.JPG" /><br />
    <br />
    事件类型: 警告<br />
    事件来源: BizTalk Server 2006<br />
    事件种类: BizTalk Server 2006 <br />
    事件 ID: 5740<br />
    日期: 2007-11-5<br />
    事件: 16:39:26<br />
    用户: N/A<br />
    计算机: BIZTALK001<br />
    描述:<br />
    The adapter "SQL" raised an error message. Details "HRESULT="0x80040e14" Description="SQLOLEDB Error Description: Empty update, no updatable rows found Transaction aborted " ﻿&lt;Root xmlns:ns00="urn:schemas-microsoft-com:xml-updategram"&gt;&lt;?MSSQLError HResult="0x80040e14" Source="Microsoft OLE DB Provider for SQL Server" Description="SQLOLEDB Error Description: Empty update, no updatable rows found Transaction aborted "?&gt;&lt;/Root&gt;". <br />
    <br />
    <li>错误2<br />
    <img title="BizTalk SqlAdapter UpdateGram" alt="BizTalk SqlAdapter UpdateGram" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Adapter_SqlUpdateGram/UpdateGram_34.JPG" /><br />
    <br />
    事件类型: 警告<br />
    事件来源: BizTalk Server 2006<br />
    事件种类: BizTalk Server 2006 <br />
    事件 ID: 5743<br />
    日期: 2007-11-5<br />
    事件: 16:39:26<br />
    用户: N/A<br />
    计算机: BIZTALK001<br />
    描述:<br />
    The adapter failed to transmit message going to send port "UpdateGram_Out" with URL "SQL://BIZTALK001/Test01/". It will be retransmitted after the retry interval specified for this Send Port. Details:"HRESULT="0x80040e14" Description="SQLOLEDB Error Description: Empty update, no updatable rows found Transaction aborted " &lt;Root xmlns:ns00="urn:schemas-microsoft-com:xml-updategram"&gt;&lt;?MSSQLError HResult="0x80040e14" Source="Microsoft OLE DB Provider for SQL Server" Description="SQLOLEDB Error Description: Empty update, no updatable rows found Transaction aborted "?&gt;&lt;/Root&gt;". </li>
</ol>
<p><strong><a href="#4">总结</a></strong></p>
<ul>
    <li>如果对BizTalk已经比较熟悉，全部过程不会超过30分钟
    <li>更新数据中包含的特殊字符，请用XML的转意字符串表求（如："'&amp;&gt;&lt;）
    <li>字段中的换行都被替换掉了（还需要继续研究）
    <li>如果没有After的定义，那么此操作将把该记录删除（实现Delete操作）
    <li>如果没有Before，只有After，就实现了Insert操作
    <li>Before中的字段不用全部显示出来（比如只有一个ID也可以）
    <li>Before中的字段如果要求为Null，那么也同样不用标记出来
    <li>此操作就象"update table set f1=v1, f2=v2, f3=v3,... where f1=v01 and f2=v02 and ..." </li>
</ul>
<p><strong><a href="#5">问题</a></strong></p>
<ul>
    <li>换行如何解决？
    <li>出现的两个错误，如何解决？
    <li>如何批量Update？ </li>
</ul>
<p>特此感谢<a href="http://chnking.cnblogs.com" target="_blank">Kent</a>在技术上的支持！</p>
<p><span style="font-size: 9pt">转载请注明作者及出处</span></p>
 <img src ="http://www.cnblogs.com/xuzhong/aggbug/950698.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42067/" target="_blank">[新闻]Windows 7目标启动时间:15秒</a>]]></description></item><item><title>[培训]UML学习笔记</title><link>http://www.cnblogs.com/xuzhong/archive/2007/08/03/841508.html</link><dc:creator>西煞魄工人</dc:creator><author>西煞魄工人</author><pubDate>Fri, 03 Aug 2007 04:12:00 GMT</pubDate><guid>http://www.cnblogs.com/xuzhong/archive/2007/08/03/841508.html</guid><wfw:comment>http://www.cnblogs.com/xuzhong/comments/841508.html</wfw:comment><comments>http://www.cnblogs.com/xuzhong/archive/2007/08/03/841508.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/xuzhong/comments/commentRss/841508.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xuzhong/services/trackbacks/841508.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;昨天听了一天的UML培训，重新学习了一下UML，虽然只有一天的培训时间，但由于一直都在关注UML，并在工作中用到过，所以听起来还是比较轻松的！<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UML的资料满www都有，这里就不细写了，没什么意义。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;把我听课时的一些体会与大家分享一下！有不对的地方请指正。<br><br>讲师用的ROSE<br>我用的UModel<br><br><img alt=我的UML学习笔记 src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/UML/XUZHONG_UML_1.jpg" border=0><br><img alt=我的UML学习笔记 src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/UML/XUZHONG_UML_2.jpg" border=0> <br><img alt=我的UML学习笔记 src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/UML/XUZHONG_UML_3.jpg" border=0> <br><img alt=我的UML学习笔记 src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/UML/XUZHONG_UML_4.jpg" border=0> <br><img alt=我的UML学习笔记 src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/UML/XUZHONG_UML_5.jpg" border=0> <br><img alt=我的UML学习笔记 src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/UML/XUZHONG_UML_6.jpg" border=0> <br><img alt=我的UML学习笔记 src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/UML/XUZHONG_UML_7.jpg" border=0> <br><img src ="http://www.cnblogs.com/xuzhong/aggbug/841508.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42064/" target="_blank">[新闻]两个字符就让Google Chrome完全崩溃</a>]]></description></item><item><title>向您推荐Groove BizTalk Workspace！</title><link>http://www.cnblogs.com/xuzhong/archive/2007/07/11/813958.html</link><dc:creator>西煞魄工人</dc:creator><author>西煞魄工人</author><pubDate>Wed, 11 Jul 2007 13:05:00 GMT</pubDate><guid>http://www.cnblogs.com/xuzhong/archive/2007/07/11/813958.html</guid><wfw:comment>http://www.cnblogs.com/xuzhong/comments/813958.html</wfw:comment><comments>http://www.cnblogs.com/xuzhong/archive/2007/07/11/813958.html#Feedback</comments><slash:comments>37</slash:comments><wfw:commentRss>http://www.cnblogs.com/xuzhong/comments/commentRss/813958.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xuzhong/services/trackbacks/813958.html</trackback:ping><description><![CDATA[<h1>什么是Groove</h1>
Office Groove 2007 是一个协作软件程序，适合用于处理从简单的文档协作到与业务过程集成的自定义解决方案的各种项目活动。 Office Groove 2007 的以下十大方式可帮助您和您的团队更高效地协作并提高交付产品的质量。<br><br>
<h1>为什么用Groove</h1>
1.资源共享，使用它可以很轻松地实现资源共享！<br>2.消息提醒，新增的文件、未阅读过的资料马上就可以知道！<br>3.脱机浏览，当您不能上网时，Groove中的资料照样能看！<br>4.文件同步，可以把多台PC上的文件进行自动同步！<br><br>
<h1>BizTalk Workspace内容介绍</h1>
<h2>1.共享</h2>
在这里，共享了我们多年来收集的各种文档、代码以及自己的一些小项目，只有靠大家的努力，才能不断的丰富！<br><img id=IMG1 title="BizTalk Groove" src="http://xuzhong.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Groove_WorkSpace/BizTalk_Groove_01.jpg"><br><br><br>
<h2>2.灌水区</h2>
<br>在这里，可以进行一些非技术性问题的讨论<br>&nbsp;<br><img title="BizTalk Groove" src="http://xuzhong.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Groove_WorkSpace/BizTalk_Groove_02.jpg"> <br><br><br><br>
<h2>3.问题区</h2>
<br>有关BizTalk方面的问题，都发表在这里，最后都进行一下分类，为以后进行查询提供便利条件。<br><img title="BizTalk Groove" src="http://xuzhong.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Groove_WorkSpace/BizTalk_Groove_03.jpg"> <br><br><br><br>
<h2>4.文章区</h2>
<br>网络的资源是丰富的，只有不断的收集、整理，才能在以后的工作中用到。<br><img title="BizTalk Groove" src="http://xuzhong.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Groove_WorkSpace/BizTalk_Groove_04.jpg">&nbsp;<br><br><br>
<h1>第一次使用时</h1>
先创建一个用户，基本步骤如下：<br><br><img title="BizTalk Groove" src="http://xuzhong.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Groove_WorkSpace/BizTalk_Groove_05.jpg"> <br><img title="BizTalk Groove" src="http://xuzhong.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Groove_WorkSpace/BizTalk_Groove_06.jpg"> <br><img title="BizTalk Groove" src="http://xuzhong.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Groove_WorkSpace/BizTalk_Groove_07.jpg"> <br><img src="http://xuzhong.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Groove_WorkSpace/BizTalk_Groove_08.jpg"> <br><img title="BizTalk Groove" src="http://xuzhong.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Groove_WorkSpace/BizTalk_Groove_09.jpg"> <br><br><br>完成这些步骤后，您就拥有了一个Groove帐号，同一个email可以注册很多个（但不推荐这么用）。<br><br>后面，您就可以创建自己的Workspace或Share directory了。<br><br><br>
<h1>有关Groove的一料资料</h1>
<br><a href="http://www.microsoft.com/china/office/preview/programs/groove/top10.mspx">Microsoft Office Groove 2007 十大优点</a> <br><a href="http://blog.sina.com.cn/u/53d38837010008hw">Office 2007 家族的新成员 Groove 2007</a><br><a href="http://www.uogoogle.com/article.asp?id=1340">Microsoft Office 2007 简体中文企业版+专业版--正式版</a><br><br><br><br>
<h1>邀请您加入</h1>
<br>如果您想加入我们的BizTalk Workspace，请将您注册用email留下，或者直接发邮件给我(xu.zhong#hotmail.com)也行。<br><br>之后，您将收到一封加入到BizTalk workspace 的申请信，附件中有一个 grv文件，双击打开后选择"接受"即可。<br><br>欢迎广大BizTalk Funs加入。<br>
  <img src ="http://www.cnblogs.com/xuzhong/aggbug/813958.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42062/" target="_blank">[新闻]Windows Live Messenger推出翻译机器人</a>]]></description></item><item><title>[BTS]在Mapping中使用Xslt</title><link>http://www.cnblogs.com/xuzhong/archive/2007/07/11/814617.html</link><dc:creator>西煞魄工人</dc:creator><author>西煞魄工人</author><pubDate>Wed, 11 Jul 2007 13:03:00 GMT</pubDate><guid>http://www.cnblogs.com/xuzhong/archive/2007/07/11/814617.html</guid><wfw:comment>http://www.cnblogs.com/xuzhong/comments/814617.html</wfw:comment><comments>http://www.cnblogs.com/xuzhong/archive/2007/07/11/814617.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/xuzhong/comments/commentRss/814617.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xuzhong/services/trackbacks/814617.html</trackback:ping><description><![CDATA[    BizTalk Mapping中Xslt的应用    <br />
    <h1>
        什么是XSLT</h1>
    在计算机科学中, XSLT是扩展样式表转换语言(Extensible Stylesheet Language Transformations)的简称，这是一种对XML文档进行转化的语言，XSLT中的T代表英语中的&#8220;转换&#8221;(transformation)。它是XSL(Extensible
    stylesheet language)规范的一部分。XSL规范的另外一部分是XSLF(F代表代表格式化对象Formatting Objects),又称XSL-FO或XSLFO。
    <br />
    <br />
    <h1>
        为什么要用XSLT</h1>
    我们已经知道，XML是一种电脑程序间交换原始数据的简单而标准的方法。它的成功并不在于它容易被人们书写和阅读，更重要的是，它从根本上解决了应用系统间的信息交换。因为XML满足了两个基本的需求：
    <br />
    <br />
    (1).将数据和表达形式分离。就象天气预报的信息可以显示在不同的设备上，电视，手机或者其它。
    <br />
    (2).在不同的应用之间传输数据。电子商务数据交换的与日俱增使得这种需求越来越紧迫。
    <br />
    &nbsp; &nbsp;
    <br />
    为了使数据便于人们的阅读理解，我们需要将信息显示出来或者打印出来，例如将数据变成一个HTML文件，一个PDF文件，甚至是一段声音；同样，为了使数据适合不同的应用程序，我们必须有能够将一种数据格式转换为另一种数据格式，比如需求格式可能是一个文本文件，一个SQL语句，一个HTTP信息，一定顺序的数据调用等。而XSLT就是我们用来实现这种转换功能的语言。将XML转换为HTML，是目前XSLT最主要的功能。
    <br />
    <br />
    在BizTalk中有Mapping，其实，它也是一种被编译了的Xslt，在Mapping中还可以使用更高级的一些功能。但有是，可能您的业务数据已经定义好了，并在先前已经定义好了xslt文件，来对数据进行转换，这时，就没有必须再去一点一点的去画线了，直接引用定义好的xslt就可以了。<br />
    <br />
    并且，对于Xslt很熟悉的开发人员来说，比使用Mapping更方便，更个性（自定义）化。<br />
    <br />
    <h1>
        XSLT开发工具 MapForce</h1>
    开发Xslt的工具很简单，记事本、XmlSpy、VS、etc。但我向大家强烈推荐使用Altova出品的MapForce，功能根相当强大。<br />
    主要功能，界面化的定义Xslt。另外，它可以完成下面几种应用场景：<br />
    1.XML - XML<br />
    2.XML - TEXT<br />
    3.DB - XML<br />
    4.DB - TEXT<br />
    5.TEXT - TEXT<br />
    它还集成了EDI、X12的数据定义。<br />
<br />
    EDI的定义<br />
<img alt="BizTalk Xslt Mapping" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Xslt_Mapping/Mapforce_01.jpg" border=0><br />
    <br />
    <br />
    XML-&gt;TEXT的定义<br />
<img alt="BizTalk Xslt Mapping" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Xslt_Mapping/Mapforce_02.jpg" border=0><br />
    <br />
    <br />
    <br />
    <h1>
        Mapping中使用XSLT</h1>
    下面举一个非常简单的例子<br />
    <br />
    <br />
    1. 定义输入消息<br />
<br />
<img alt="BizTalk Xslt Mapping" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Xslt_Mapping/XsltMapping_01.jpg" border=0><br />
    <br />
    2. 定义输出消息<br />
<br />
<img alt="BizTalk Xslt Mapping" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Xslt_Mapping/XsltMapping_02.jpg" border=0><br />
    <br />
    <br />
    3. 使用MapForce完成一个Mapping功能<br />
<br />
<img alt="BizTalk Xslt Mapping" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Xslt_Mapping/XsltMapping_03.jpg" border=0><br />
    <br />
    <br />
    4. 得到Xslt数据<br />
<br />
<img alt="BizTalk Xslt Mapping" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Xslt_Mapping/XsltMapping_04.jpg" border=0><br />
    <br />
    <br />
    5. 保存成Xslt文件，在BizTalk Mapping中会用到。<br />
<br />
<img alt="BizTalk Xslt Mapping" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Xslt_Mapping/XsltMapping_05.jpg" border=0><br />
    <br />
    <br />
    6. 定义Mapping，在Custom Xsl Path中输入前面定义的xslt文件。<br />
<br />
<img alt="BizTalk Xslt Mapping" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Xslt_Mapping/XsltMapping_06.jpg" border=0><br />
    <br />
    7. 保存，测试，可以得到2中的输出消息。<br />
    <br />
    <br />
    提示： 如果在Mapping中使用了xslt，那么，之前在Map中定义所有映射关系将不起作用了。<br />
<br />
<br /> <img src ="http://www.cnblogs.com/xuzhong/aggbug/814617.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42062/" target="_blank">[新闻]Windows Live Messenger推出翻译机器人</a>]]></description></item><item><title>[BTS]BizTalk学习之Functoid篇(ID Cross-References) </title><link>http://www.cnblogs.com/xuzhong/archive/2007/06/16/785331.html</link><dc:creator>西煞魄工人</dc:creator><author>西煞魄工人</author><pubDate>Fri, 15 Jun 2007 16:28:00 GMT</pubDate><guid>http://www.cnblogs.com/xuzhong/archive/2007/06/16/785331.html</guid><wfw:comment>http://www.cnblogs.com/xuzhong/comments/785331.html</wfw:comment><comments>http://www.cnblogs.com/xuzhong/archive/2007/06/16/785331.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/xuzhong/comments/commentRss/785331.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xuzhong/services/trackbacks/785331.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;早在三周前，就已经收集了所有有关Cross-Reference Functoid的资源，虽然现在看来，它并不是很难，但想真正的应用它，还是需要花费一些心思的研究一下，不过，托了三周时间，还是写完了<img height=20 src="http://www.cnblogs.com/Emoticons/QQ/24.gif" width=20 border=0>。<br><br><br><strong style="FONT-SIZE: 18pt">任务目标</strong><br><br>1.数据如何导入<br>2.使用Get Application ID Functoid<br>3.使用Get Common ID Functoid<br>4.测试Mapping<br>5.总结应该场景<br><br><br><strong style="FONT-SIZE: 18pt">一. 数据导入</strong></p>
<p>就象前面的《<a id=_30d219611877_HomePageDays_DaysList_ctl01_DayItem_DayList_ctl00_TitleUrl href="http://www.cnblogs.com/xuzhong/archive/2007/05/24/759092.html">[BTS]BizTalk学习之Functoid篇(Database Lookup) </a>》一样，Cross-Reference也是需要数据库表的，只不过，它的数据定义有自己的规则，并且数据是保存在BizTalkMgmtDB中，表以xref_开头。<br><br><strong>定义Application Type数据</strong><br><br>ApplicationType：应用类型，可以理解成应用程序名或系统名。<br>我是程序员，我把它当成类名(Class MyClass)<br>这个名称必须是唯一的，不能重复。<br>下面是一个AppType的定义文件。<br><br><img alt="BizTalk Functoid ID Cross-References" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_IDCrossReference/CrossReferenceFunctoid_01.jpg" border=0><br><br><br><br><strong>定义AppInstance数据</strong><br><br>instance：应用实例，一个应用的实例名，也必须是唯一的。<br>type：就是前面我们定义的应用名称<br>我理解成一个类的实例(MyClass c1 = new MyClass())<br>数据定义文件如下：<br><br><img alt="BizTalk Functoid ID Cross-References" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_IDCrossReference/CrossReferenceFunctoid_02.jpg" border=0>&nbsp;<br><br><br><strong>定义关联</strong><br><br>name：关联的名称<br>(没想好怎么说)<br><br><img alt="BizTalk Functoid ID Cross-References" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_IDCrossReference/CrossReferenceFunctoid_03.jpg" border=0>&nbsp;<br><br><br><strong>定义具体的数据</strong><br><br>commonID：通用ID号<br>appID：应用ID号<br>我理解成类中的一个索引。<br>在后面，我们需要这需ID，来相互转换。<br>数据定义文件如下：<br><img alt="BizTalk Functoid ID Cross-References" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_IDCrossReference/CrossReferenceFunctoid_04.jpg" border=0>&nbsp;<br><br><br><strong>定义导入数据文件</strong><br><br>内容比较简单，对应相应的文件路径就可以了。<br><br><img alt="BizTalk Functoid ID Cross-References" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_IDCrossReference/CrossReferenceFunctoid_05.jpg" border=0><br>&nbsp;<br><br><strong>执行导入指令</strong><br><br>BTS提供了BTSXRefImport.exe工具。<br><br><img alt="BizTalk Functoid ID Cross-References" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_IDCrossReference/CrossReferenceFunctoid_06.jpg" border=0>&nbsp;<br><br>导入后，数据可以在BTSMgmtDB中找到。我简单使用了一个视图，显示它们的关系和数据。<br><br><img alt="BizTalk Functoid ID Cross-References" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_IDCrossReference/CrossReferenceFunctoid_07.jpg" border=0><br>&nbsp;<br><br><strong style="FONT-SIZE: 18pt">二 开始定义Schema和Mapping<br></strong><br>定义输入Schema。<br><br><img alt="BizTalk Functoid ID Cross-References" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_IDCrossReference/CrossReferenceFunctoid_08.jpg" border=0>&nbsp;<br><br>输出的Schema<br><img alt="BizTalk Functoid ID Cross-References" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_IDCrossReference/CrossReferenceFunctoid_09.jpg" border=0>&nbsp;<br><br>创建一个Mapping文件，托入一个Get Application ID Functoid。<br><br><img height=333 alt="" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_IDCrossReference/CrossReferenceFunctoid_091.jpg" width=706 border=0><br><br>Functoid中的赋值<br><br><img alt="BizTalk Functoid ID Cross-References" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_IDCrossReference/CrossReferenceFunctoid_10.jpg" border=0>&nbsp;<br><br>使用先前网友给我提的意思，直接用Mapping中的Test功能来测试。<br><br><img alt="BizTalk Functoid ID Cross-References" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_IDCrossReference/CrossReferenceFunctoid_11.jpg" border=0>&nbsp;<br><br>定义一个输入消息实例<br><br><img alt="BizTalk Functoid ID Cross-References" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_IDCrossReference/CrossReferenceFunctoid_12.jpg" border=0>&nbsp;<br><br>执行测试后执行结果如下：<br><br><img alt="BizTalk Functoid ID Cross-References" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_IDCrossReference/CrossReferenceFunctoid_13.jpg" border=0>&nbsp;<br><br>如果我用数据库查询的方式显示一下，就是下面的样子。<br><br><img alt="BizTalk Functoid ID Cross-References" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_IDCrossReference/CrossReferenceFunctoid_14.jpg" border=0><br>&nbsp;<br>Get Application ID 就是取上面视图中appID的值，而Get Common ID就是取commonID的值 。<br><br>下面列举了三次执行结果。为了直观一些，我都放在一起了。<br><img alt="BizTalk Functoid ID Cross-References" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_IDCrossReference/CrossReferenceFunctoid_15.jpg" border=0><br>&nbsp;<br><br>Get Common ID 测试， 与Get Application ID的方式差不多，这里，只需要修改一下输入数据， 修改Mapping中的functoid，这里就不再详细说明了。<br>看看图就懂了。<br><br><img alt="BizTalk Functoid ID Cross-References" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_IDCrossReference/CrossReferenceFunctoid_16.jpg" border=0> <br><img alt="BizTalk Functoid ID Cross-References" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_IDCrossReference/CrossReferenceFunctoid_17.jpg" border=0> <br><img alt="BizTalk Functoid ID Cross-References" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_IDCrossReference/CrossReferenceFunctoid_18.jpg" border=0>&nbsp;<br><br>测试结果如下，相当于是Get Application ID的反操作。<br><img alt="BizTalk Functoid ID Cross-References" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_IDCrossReference/CrossReferenceFunctoid_19.jpg" border=0> <br></p>
<p style="FONT-SIZE: 18pt"><strong>总结</strong></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cross-Reference适合应用于一个消息中某节点的值，在不同应用程序或系统中的显示值不一至时的映射中。<br>比如都是表示优先级的节点，可能在App1中用1,2,3,4,5表示；在App2中用最高，高，一般，低，极低；<br>当你要从App1的消息映射成App2的消息时，用Cross-Reference是最适合的了。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 经过测试，直接修改数据库中的记录后，新的数据可以直接被Mapping中使用。<br><br><br><strong style="FONT-SIZE: 18pt">感谢</strong><br><br>网友&nbsp;<a href="http://www.cnblogs.com/upzone" target=_blank>upzone</a> 的 <a href="http://www.cnblogs.com/upzone/archive/2007/06/08/776933.html" target=_blank>《Cross Reference Functoid 》</a><br><br><br></p>
<img src ="http://www.cnblogs.com/xuzhong/aggbug/785331.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42058/" target="_blank">[新闻]Google Chrome浏览器隐藏命令大揭秘</a>]]></description></item><item><title>[BTS]2004-2007公司EAI系统结构示意图</title><link>http://www.cnblogs.com/xuzhong/archive/2007/06/05/771929.html</link><dc:creator>西煞魄工人</dc:creator><author>西煞魄工人</author><pubDate>Tue, 05 Jun 2007 03:50:00 GMT</pubDate><guid>http://www.cnblogs.com/xuzhong/archive/2007/06/05/771929.html</guid><wfw:comment>http://www.cnblogs.com/xuzhong/comments/771929.html</wfw:comment><comments>http://www.cnblogs.com/xuzhong/archive/2007/06/05/771929.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/xuzhong/comments/commentRss/771929.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xuzhong/services/trackbacks/771929.html</trackback:ping><description><![CDATA[这几天正好跟系统管理员整理了一下现有系统的EAI情况，自己用Visio画了一个示意图。<br>请大家鉴赏一下，多提意见！！！<br>&nbsp; <img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/53270/o_All_Orchestration_xuzhong.jpg" border=0><br>&nbsp;<br>
<img src ="http://www.cnblogs.com/xuzhong/aggbug/771929.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42054/" target="_blank">[新闻]2008年9月4日科技博客精选</a>]]></description></item><item><title>[BTS]BizTalk学习之Functoid篇(Database Lookup) </title><link>http://www.cnblogs.com/xuzhong/archive/2007/05/24/759092.html</link><dc:creator>西煞魄工人</dc:creator><author>西煞魄工人</author><pubDate>Thu, 24 May 2007 14:59:00 GMT</pubDate><guid>http://www.cnblogs.com/xuzhong/archive/2007/05/24/759092.html</guid><wfw:comment>http://www.cnblogs.com/xuzhong/comments/759092.html</wfw:comment><comments>http://www.cnblogs.com/xuzhong/archive/2007/05/24/759092.html#Feedback</comments><slash:comments>14</slash:comments><wfw:commentRss>http://www.cnblogs.com/xuzhong/comments/commentRss/759092.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xuzhong/services/trackbacks/759092.html</trackback:ping><description><![CDATA[开发程序，避免不了经常要访问数据库，这里，想最常用的当然是"select * from SomeTable where ID=***"了。<br>这么常用，BizTalk当然也要提供一个可配置的开发手段给我们了！！它就是Database Lookup Functoid。<br><br><br>这个用例主要是输入用户名，查询数据库，得到该用户的其他数据。<br><img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_DatabaseLookup/DatabaseLookupFunctoid_01.jpg" border=0><br>Fegend-1 输入数据<br><br><br><br><img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_DatabaseLookup/DatabaseLookupFunctoid_02.jpg" border=0><br>Fegend-2 数据库表<br><br><br><br><img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_DatabaseLookup/DatabaseLookupFunctoid_03.jpg" border=0><br>Fegend-3 输出数据<br><br>这里略掉了输入、输出Schema的定义过程，直接来到Map的定义。<br>向Map中添加Database Lookup Functoid，Value Extractor Functoid，Error Review Functoid三个必用的Functoid。<br><img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_DatabaseLookup/DatabaseLookupFunctoid_04.jpg" border=0><br>Fegend-4 创建的Map<br><br><br><br>Database Lookup Functoid有四个输入参数<br>1.Value<br>2.Connection String<br>3.TableName<br>4.ColumnName<br>它这里类似完成了如下的代码<br>Connection conn&nbsp;= new Connection(<strong>ConnectionString</strong>);<br>Command cmd = new Command("select top 1 * from <strong>TableName</strong> where <strong>ColumnName</strong>=<strong>Value</strong>",conn)<br><img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_DatabaseLookup/DatabaseLookupFunctoid_05.jpg" border=0><br>Fegend-5 Database Lookup中的配置<br><br><br>Database Lookup Functoid执行完查询数据库后，会得到一个ADO的Record。<br>这里必须用Value Extractor Functoid来读取Record的数据。<br>当然于下面的代码<br>string value = Reader["Name"].ToString();<br><img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_DatabaseLookup/DatabaseLookupFunctoid_06.jpg" border=0><br>Fegend-6 Value Extractor的配置<br><br><br>其中用到了Error Review,它主要是用来捕获Database Lookup Functoid运行时产生的错误。<br><img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_DatabaseLookup/DatabaseLookupFunctoid_07.jpg" border=0><br>Fegend-7 捕获异常<br><br><br><br>你会发现，为啥要在Database Lookup Functoid中设置ConnectionString，这样以后改起来不是很麻烦。当然有方法，可以使用UDL文件！<br>创建一个UDL文件，并双击它进行配置。<br><img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_DatabaseLookup/DatabaseLookupFunctoid_08.jpg" border=0><br>Fegend-8 UDL文件<br><br><br><img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_DatabaseLookup/DatabaseLookupFunctoid_09.jpg" border=0><br>Fegend-9 配置数据源<br><br><br>这样就可以直接用<br>File Name=c:\..........\*.UDL<br>文件来设置ConnectionString了。不过，它的使用会带来一些性能上的问题，因为每次连接数据库，都要去读文件。<br><img src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_DatabaseLookup/DatabaseLookupFunctoid_10.jpg" border=0><br>Fegend-10 修改ConnectionString<br><br><br>直到今天，才完完整整做了一个Database Lookup例程，用起来还真挺方便！<br><br>
<img src ="http://www.cnblogs.com/xuzhong/aggbug/759092.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42049/" target="_blank">[新闻]关于Chrome的V8的一些东西</a>]]></description></item><item><title>[BTS]BizTalk学习之Functoid篇(Table Looping)</title><link>http://www.cnblogs.com/xuzhong/archive/2007/05/23/757861.html</link><dc:creator>西煞魄工人</dc:creator><author>西煞魄工人</author><pubDate>Wed, 23 May 2007 15:57:00 GMT</pubDate><guid>http://www.cnblogs.com/xuzhong/archive/2007/05/23/757861.html</guid><wfw:comment>http://www.cnblogs.com/xuzhong/comments/757861.html</wfw:comment><comments>http://www.cnblogs.com/xuzhong/archive/2007/05/23/757861.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/xuzhong/comments/commentRss/757861.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xuzhong/services/trackbacks/757861.html</trackback:ping><description><![CDATA[<strong>前言</strong><br>还记得2004年刚开始用BizTalk时，对Functoid的了解少之又少。只会用一些简单的Functoid。现在有时间，要好好对Functoid研究一下。<br><br><strong>目的</strong><br>1.了解Table Looping的应用场景<br>2.如果使用Table Looping<br>3.用BizTalk Admin Console测试Map<br><br><strong>应用场景</strong><br>当你源数据是一个类似平面数据结构，而目的数据是分组重复数据时就可以用到Table Looping Functoid了。<br>更形象的说，就是它可以把CSV文件转换成Excel文件一样。<br>如Fegend-1表示源数据，Fegend-2表示目的数据。<a href="http://xuzhong.cnblogs.com/"><br><br><img alt="Table Looping" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_TableLooping/TableLoopFunctoid00.jpg" border=0></a><br>Legend-1<br><br><a href="http://xuzhong.cnblogs.com/"><img alt="Table Looping" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_TableLooping/TableLoopFunctoid01.jpg" border=0></a><br>Legent-2<br><br><strong>使用Table Looping Functoid</strong><br>由于例子本身非常简单，这里的Fegend-3显示了设计Mapping的最后结果。其中主要用到了Table Looping和Table Extractor这两个Functoid。<br><a href="http://xuzhong.cnblogs.com/"><img alt="Table Looping" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_TableLooping/TableLoopFunctoid02.jpg" border=0></a><br>Fegend-3<br><br>Table Looping的输入设置。<br><a href="http://xuzhong.cnblogs.com/"><img alt="Table Looping" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_TableLooping/TableLoopFunctoid03.jpg" border=0></a><br>Fegend-4<br><br>配置Table Looping中的Table Looping Grid，它主要用来将所有输入数据，组织成一个表。<br><a href="http://xuzhong.cnblogs.com/"><img alt="Table Looping" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_TableLooping/TableLoopFunctoid04.jpg" border=0></a><br>Fegend-5<br><br>如果你用了Table Looping，那基本上都会用上Table Extractor，它主要完成设置从Table Looping的Grid中读取哪一列的数据。<br><a href="http://xuzhong.cnblogs.com/"><img alt="Table Looping" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_TableLooping/TableLoopFunctoid05.jpg" border=0></a><br>Fegend-6<br><br><strong>测试</strong><br>测试Map时有一个很方便的方法，就是直接用ReceivePort和SendPort。方法如下<br>1.创建一个接收端口(Receive Port)<br><a href="http://xuzhong.cnblogs.com/"><img alt="Table Looping" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_TableLooping/TableLoopFunctoid06.jpg" border=0></a><br>Fegend-7<br><br>2.对应增加一个接收位置。(注意Receive pipeline的设置)<br><a href="http://xuzhong.cnblogs.com/"><img alt="Table Looping" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_TableLooping/TableLoopFunctoid07.jpg" border=0></a><br>Fegend-8<br><br>3.创建一个发送端口中<br><a href="http://xuzhong.cnblogs.com/"><img alt="Table Looping" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_TableLooping/TableLoopFunctoid08.jpg" border=0></a><br>Fegend-9<br><br>4.在发送端口的Outbound Maps中直接设置maps。<br><a href="http://xuzhong.cnblogs.com/"><img alt="Table Looping" src="http://www.cnblogs.com/images/cnblogs_com/xuzhong/BizTalk_Samples/Functoid_TableLooping/TableLoopFunctoid09.jpg" border=0></a><br>Fegend-10<br><br>5.完成了上面的设置后，直接就可以用File Adapter对上面的Map进行测试了。非常方便。<br><br><br>
<img src ="http://www.cnblogs.com/xuzhong/aggbug/757861.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42036/" target="_blank">[新闻]丁磊：互联网现在没有冬天 进入不惑期</a>]]></description></item><item><title>[BTS][收藏]BizTalk Server 2006 R2 Forum</title><link>http://www.cnblogs.com/xuzhong/archive/2007/05/13/745018.html</link><dc:creator>西煞魄工人</dc:creator><author>西煞魄工人</author><pubDate>Sun, 13 May 2007 14:51:00 GMT</pubDate><guid>http://www.cnblogs.com/xuzhong/archive/2007/05/13/745018.html</guid><wfw:comment>http://www.cnblogs.com/xuzhong/comments/745018.html</wfw:comment><comments>http://www.cnblogs.com/xuzhong/archive/2007/05/13/745018.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/xuzhong/comments/commentRss/745018.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xuzhong/services/trackbacks/745018.html</trackback:ping><description><![CDATA[BTSR2都出Beta2了，可是到现在也没时间去认识他的真面目。<br>收藏MSDN的Forums。<br><a href="http://forums.microsoft.com/MSDN/default.aspx?ForumGroupID=398&amp;SiteID=1">http://forums.microsoft.com/MSDN/default.aspx?ForumGroupID=398&amp;SiteID=1</a><br>
<img src ="http://www.cnblogs.com/xuzhong/aggbug/745018.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42035/" target="_blank">[新闻]王雷雷彻底告别TOM 转投空中网任CEO</a>]]></description></item><item><title>[BTS][收藏]如何通过BizTalk Server 2006 Exam (70-235)</title><link>http://www.cnblogs.com/xuzhong/archive/2007/05/13/744534.html</link><dc:creator>西煞魄工人</dc:creator><author>西煞魄工人</author><pubDate>Sun, 13 May 2007 02:56:00 GMT</pubDate><guid>http://www.cnblogs.com/xuzhong/archive/2007/05/13/744534.html</guid><wfw:comment>http://www.cnblogs.com/xuzhong/comments/744534.html</wfw:comment><comments>http://www.cnblogs.com/xuzhong/archive/2007/05/13/744534.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/xuzhong/comments/commentRss/744534.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/xuzhong/services/trackbacks/744534.html</trackback:ping><description><![CDATA[从去年就打算通过这门测试，考查一下自己的BTS水平，可是本科学习、英语、工作上的压力一直让我没有精力去认识完成，总是处于一次知识积累的过程。<br>今天从<a href="http://www.biztalk247.com/">www.biztalk247.com</a>看到了一篇&#8220;前辈&#8221;如何通过这门考试的Blog，非常有趣。<br>基本知道如何去学习，从什么开始。<br><br>收藏！！没事就去看看。<br><br><a href="http://www.biztalk247.com/v1/articles/exam70235.aspx" target=_blank>BizTalk Server 2006 Exam (70-235) Preparation Diary</a>
<img src ="http://www.cnblogs.com/xuzhong/aggbug/744534.html?type=1" width = "1" height = 