问题标签 [biztalk-2013]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wcf - 使用 BizTalk REST 适配器的 AddressFilter 不匹配 - 为什么?
我正在尝试使用 WCF-WebHttp 适配器的 BizTalk 2013 REST 功能。
我正在尝试模拟公开可用的 REST API 的行为 - Nordnet nExt API。特别是,我试图模拟登录功能的行为:对 /[version]/login?service=[service]&auth=[blob] 的空 POST 请求应该返回一个包含一堆参数的响应正文包括一个会话令牌(此时响应并不重要,因为我还没有实现它)
我已经执行了以下步骤:
- 设置具有相关接收位置的接收端口
- 将接收位置的适配器类型设置为 WCF-WebHttp
- 将端点地址设置为 /1/login/Service1.svc (目前我推迟进行任何 URL 重写并仅在 URL 中引用强制性 WCF 服务定义文件)
- 将 HTTP 方法和 URL 映射部分设置为:
- 将 URL 参数映射到一些相关的上下文属性
- 使用 BizTalk WCF 配置向导在 IIS 中创建与上述参数匹配的应用程序
使用本地机器上的PostMan将空 POST 提交到 http:// localhost
/1/login/Service1.svc?service=foo&auth=bar 会产生以下错误消息:
为什么?
我的预感是它与空的 POST 正文有关,因为有关来自普通 WCF 服务的类似消息的其他一些问题表明该消息应包含 WS-Addressing 'To' 字段。但是,这是 REST,而不是 SOAP,因此此属性不相关。与引用此错误消息的大多数其他问题不同,我无法控制服务定义,因为服务实例是由 BizTalk 通过自定义主机工厂创建的(这就是它做事的方式,与所有 BizTalk WCF 适配器相同) )
如何让 BizTalk-surfaced WCF 服务识别空 POST 正文是正确的并将其路由到正确的端点?
编辑#1:
一些进展。将 WebHttpBehaviour 应用到接收位置会阻止此错误消息出现,但会出现新的错误消息。现在对 POST 请求的响应是:
...这本身几乎完全没用。
深入WCF跟踪日志,实际问题其实是:
所以问题仍然存在:为什么?
编辑#2:
我下载并安装了WCF-WebHttpAdapter 示例代码,看看有什么不同 - 令人失望的是它没有包含 WebHttp 接收位置,但它确实促使我尝试更多的东西。我试图复制已经存在的 WSHttp 接收位置,以使该应用程序以 REST 方式工作,我发现:
- WebHttpBehaviour 似乎是一条红鲱鱼
- 删除查询参数并用简单的 /route/segments 替换它们似乎按预期工作 - 我现在收到服务故障和暂停消息,这表明消息正在通过 WCF 端点。
那么现在的问题是:WCF-WebHttp 适配器是否正确支持查询参数,或者此功能是否损坏?
biztalk - BizTalk 如何进行 EDI
我被要求创建一个系统,通过 AS2 EDI(以及在不久的将来从许多其他公司)接受公司的发票。通过一些研究,我得出的结论是,我需要一个 Biz Talk 服务器来翻译公司的发票,将其转换为 XML,然后将该 XML 发送到我们拥有的系统进行处理/验证。我完全不知道如何使所有这些工作。
我一直在从 Microsoft 的 BizTalk 教程和视频以及 Pluralsight 中学到一些东西。但是有些事情我根本就没有得到。其中之一是客户交互:他们应该如何知道要发送给我们的数据(我给他们什么文件?),或者我如何阅读他们发给我的列出他们的消息加密的文件。X12 或 EDIFACT 如何与这一切联系起来?
我有这个权利吗:我应该创建一个 X12 文档,其中包含处理他们的发票所需的字段(数据),然后我应该向他们发送这个 X12 文档并说“这里,把这个东西发给我们” ? 然后在我这边,从 X12 文档创建映射,验证编排,然后返回成功或失败?
我可以使用哪些资源来学习如何回答这些问题?初学者甚至去哪里学习 BizTalk Server?
我真的很感谢任何人的帮助。感谢您的阅读。
xml - 具有多个反汇编阶段的 Biztalk 自定义管道
我正在升级一个现有的解决方案,该解决方案目前以下列方式工作:
- 平面文件反汇编阶段接收平面文件并反汇编成 XML
- 验证阶段的通用自定义管道组件,接收反汇编的平面文件,解析/组/内联转换,然后将多个文件写入磁盘。
- 另一个接收位置拾取这些文件并相应地对其进行处理。
由于我不得不接触这个项目,理想情况下,我想让这个自定义管道组件成为一个拆卸的 PC,并使用 GetNext 方法返回现在分批的消息,而无需将它们写入磁盘。但是,在反汇编阶段完成之前,我无法从平面文件反汇编程序访问反汇编的 xml,但我无法将自定义反汇编阶段放入管道的验证部分。
我在这里误解了什么吗?如果不想从根本上改变这个过程,我是否坚持将文件写回磁盘?
biztalk - 在使用 Parallel Convoy Correlation 和消息丢失时防止脱水实例
我有一个编排,它被以平行形状传入的 2 种类型的消息中的 1 种激活。消息通过 ID 和状态关联,然后执行编排的其余部分(并且消息合并为 1)。
我想设计一种方法来防止在两条消息中的一条没有通过时发生编排的脱水实例。所以基本上,一条消息进来而另一条没有,编排实例在等待第二条消息时脱水。
如果这是串行车队,我一直在进行大量搜索,并找到了一些不错的方法,但事实并非如此,并且无法保证消息的顺序。
例如,这篇文章在串行车队方面很有帮助,但仍然不能满足我的要求。
我尝试对每个消息在其自己的分支上使用监听形状并在第三个分支上延迟,但了解到如果您通过监听激活,所有分支都必须激活,并且由于延迟形状无法激活编排,它会不编译。
有什么建议,还是我应该放弃并去建立一个单独的数据库,以便使用管道手动关联消息?
biztalk - 基于 BizTalk 业务流程映射中一个字段的值进行映射
我在 BizTalk 业务流程中从一条消息映射到另一条消息时遇到了一种情况,我无法跨越这种情况。场景如下:源模式有很多字段,目标模式有很多子元素,这些目标元素的子字段可以与源模式字段一一对应。
假设 Source Schema 具有如下字段:
和目标架构包含以下元素
现在根据值 SF1 我需要映射该值。如果 SF1 的值为“0”,那么我将分别映射 SF1、SF2、SF3、SF4 和 SF5 与 DEL1_F1、DEL1_F2、DEL1_F3、DEL1_F4、DEL1_F5,如果 SF1 的值为“1”,那么我将映射 SF1 , SF2 ,SF3 , SF4 和 SF5 与 DEL2_F1,DEL2_F2,DEL2_F3,DEL2_F4,DEL21_F5 如果 SF1 的值为 '3' 那么 SF1 , SF2 ,SF3 , SF4 和 SF5 的映射需要用 DEL3_F1,DEL3_F2 完成, DEL3_F3、DEL3_F4、DEL3_F5。
请建议我如何在 BizTalk 映射中实现这一点。
sharepoint - 无法使用 BizTalk SharePoint 适配器在 SharePoint Online 上进行身份验证
使用 BizTalk 2013 ("R1") 和 SharePoint Online 时出现以下问题:
我有一个静态发送端口配置为将数据添加到 SharePoint Online 环境中列表中的一个特定列表。
我使用用户名和密码进行了身份验证设置,并且我 100% 确定这是一个正确的用户名和密码。我可以毫无问题地通过浏览器使用相同的凭据登录。
仅供参考:使用的帐户是仅“Microsoft”帐户,因此也未列为组织(工作/学校)帐户。
每当我尝试向列表发送内容时,都会收到以下错误:
我在 BizTalk BTSNTSvc.exe 和 BTSNTSvc.exe.config 中启用了 WCF 和 WIF 跟踪,如下所示:
我得到 WCF 日志记录,但我没有任何 WIF 日志记录(如我所料)。
WCF 日志记录提供了以下关于通道故障的原因(从 WCF 跟踪查看器中提取):
如前所述:我 100% 确定这是正确的用户名和密码!我被困在这里,谁能帮助我或指出我正确的方向?
为什么我没有任何 WIF 日志记录?
问候,
c# - 带有命名空间前缀的 xml 的 XPath 表达式
给定以下xml:
我无法使用 BizTalks XPathMutatorStream 类查询 hl7:MCCI_IN000002UV01/hl7:versionCode/@code 属性,除非我更改了 xml 并删除了命名空间前缀。例如,xml 现在看起来像这样:
不幸的是,我无法更改 xml,所以我必须处理 ns0 前缀。
基本上,我通过传递一个流来创建一个 XMLReader 对象:
然后我用 XPathExpression 创建我的 XPathCollection:
我将 XPathCollection 和 XmlReader 实例传递给 BizTalk XPathMutatorStream 对象:
如果 xml 上没有命名空间前缀,这一切都可以正常工作,但只要有,我就永远不会得到任何匹配。我需要在命名空间管理器上或在实际的 xpath 语句中做些什么来获得匹配吗?
oracle - BizTalk WCF-自定义发送端口 oracle System.NullReferenceException
我有一个设置,其中包含 XML 结构中的“查询”的文件
然后,这应该由通过 WCF 自定义适配器将消息发送到 oracle 数据库的编排来获取
但是当我尝试时,我得到了这个相当非描述性的错误消息:
而现在我完全不知所措...
integration - 从 BizTalk 2013 SharePoint 适配器集成文档时将用户传递到 SharePoint 2013
我能够专门为集成创建一个用户,并在配置我的 WSS 发送端口时输入相应的凭据。这工作正常,但是,正如预期的那样,当我在 SharePoint 中查看文档时,文档上的“修改者”用户是集成用户。
有没有办法可以动态设置 SharePoint 中的修改字段?也就是实际发起集成的用户?(当适配器将文档发送到 SharePoint 时,我有可用的用户信息,我只是不确定如何告诉 SharePoint 将集成模拟为特定用户)。
wcf - BizTalk 中的 OperationContext.Current.OutgoingMessageProperties
必须将 OperationContext.Current.OutgoingMessageProperties 添加到传出 BizTalk 消息 如何在 BizTalk 中实现以下代码?