我正在尝试关注此博客,以使用BizTalk 2010将记录插入到oracle表中 http://biztalk2010changes.blogspot.co.nz/2011/04/insert-update-delete-select-operation.html 没有创建业务流程 我只使用OracleDBBinding合同类型client /(出站操作)创建了一个WCF自定义生成的项目。
我选择了表并选择了“插入”类别。 使用以下条目生成xsd
我生成了上述模式的一个实例,我的目标是将该实例用作包含要插入到我的oracle表中的内容的文件。我成功部署了应用程序,当BizTalk将获取文件时设置FilePort,基于BizTalk创建的绑定设置oracle端口(我遵循的步骤类似于我上面提供的链接。我还设置了过滤器应用程序来拾取文件和消息
但是,当文件放入目录时,它确实被拾取但是我收到了这个路由错误:
我收到了这个错误消息日志:
WcfSendPort_OracleDBBinding_ORASCHEMA_Table_ROTATION_REQ_Custom OracleDB的:// oracleServer / PollingId = TEST_00042 Microsoft.ServiceModel.Channels.Common.XmlReaderParsingException:找到名称空间为“http://Microsoft.LobServices.OracleDB/2007/03/ORASCHEMA/Table/ROTATION_REQ”的意外开始节点“ROTATION_REQRECORDINSERT”。
这是我的架构的摘录:
<?xml version="1.0" encoding="utf-16" ?>
- <xs:schema xmlns:b="http://schemas.microsoft.com/BizTalk/2003" xmlns:tns="http://Microsoft.LobServices.OracleDB/2007/03/ORASCHEMA/Table/ROTATION_REQ" elementFormDefault="qualified" targetNamespace="http://Microsoft.LobServices.OracleDB/2007/03/ORASCHEMA/Table/ROTATION_REQ" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
这是我尝试插入表格的样本的一个实例:
<ns0:ROTATION_REQRECORDINSERT xmlns:ns0="http://Microsoft.LobServices.OracleDB/2007/03/ORASCHEMA/Table/ROTATION_REQ">
<ns0:RotationID InlineValue="InlineValue_0">RotationID_0</ns0:RotationID>
<ns0:Year InlineValue="InlineValue_0">2015</ns0:Year>
<ns0:Class InlineValue="2015">T4</ns0:Class>
<ns0:Rotation InlineValue="InlineValue_0">Rotation_0</ns0:Rotation>
<ns0:From InlineValue="InlineValue_0">1999-05-31T13:20:00.000-05:00</ns0:From>
<ns0:To InlineValue="InlineValue_0">1999-05-31T13:20:00.000-05:00</ns0:To>
<ns0:NumberOfConsecutiveSession InlineValue="InlineValue_0">500</ns0:NumberOfConsecutiveSession>
<ns0:AmOrPM InlineValue="InlineValue_0">3</ns0:AmOrPM>
<ns0:DayOfWeek InlineValue="InlineValue_0">6</ns0:DayOfWeek>
</ns0:ROTATION_REQRECORDINSERT>
更新:消息的上下文:
答案 0 :(得分:1)
过了一会儿撞到墙上,我终于弄清楚了我需要做些什么才能让它起作用。这篇文章对于它所描述的内容是准确的,但是那些让我感到困惑的东西并没有给我带来麻烦。
我为自己或将来可能遇到同样情况的任何人更新了此内容。
由于缺乏指示,这些是我做错的事情:
1)我使用xxRECORDINSERT来创建不正确的消息。我应该使用Insert代替。它实际上是在样本中,但我忽略了它并让BizTalk自动生成它。插入应该已移动到文件的开头,以便BizTalk可以正确生成消息。这可能是BizTalk抱怨“意外启动节点”的原因。
2)我需要在插入记录后创建另一个端口来捕获BizTalk的响应,否则会导致我之前遇到的路由错误。
这些是我忽略的非常根本的错误。如果他们将来遇到同样的问题,希望能节省别人的时间。
答案 1 :(得分:0)
要解决路由错误,您需要查看邮件的上下文属性,并将其与活动订阅进行比较,并查看不匹配的内容。 您可以通过BizTalk Server管理控制台,BizTalk组,新查询,搜索等于订阅来查看订阅。