问题标签 [biztalk]
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.
xsd - XML 文档中的节点
我设计了一个 xml 模式来解析传入的 xml 文档。接收位置从 2 个提要获取 xml 文档,其中一个在文档中拼错了一个节点,“Roookie”而不是“Rookie”,有没有办法让我现有的 xsd 解析这个文档?
c# - 如何使用 AppDomain 限制静态类的范围以进行线程安全使用?
我被一个架构不佳的解决方案所困扰。它不是线程安全的!
我在解决方案中有几个共享的类和成员,在开发过程中一切都很酷......
BizTalk 击沉了我的战舰。
我们正在使用自定义 BizTalk 适配器来调用我的程序集。适配器正在调用我的代码并并行运行,所以我假设它在同一个 AppDomain 下使用多个线程。
我想做的是让我的代码在它自己的 AppDomain 下运行,这样我遇到的共享问题就不会相互混淆。
我有一个非常简单的类,BizTalk 适配器正在实例化然后运行 Process() 方法。
我想在我的 Process() 方法中创建一个新的 AppDomain,因此每次 BizTalk 旋转另一个线程时,它都会有自己的静态类和方法版本。
BizTalkAdapter 代码:
这是 BizTalk 调用类:
仅供参考:Loader 类与 dataFile 类位于单独的 DLL 中。
任何帮助,将不胜感激。我将继续致力于使代码线程安全,但我觉得这可能是“简单”的答案。
如果有人有其他想法,请提出。
谢谢你,
基思
只是为了完整性。
我确实发现,如果我在“传输高级选项”对话框中将发送适配器标记为“有序交付”,我就能够避免我遇到的多线程问题。
我认为这是我的问题的另一个可能答案,但不一定是这个问题。
c# - 在 Biztalk 编排中创建新消息的最佳方式是什么?
我正在寻找基于预定义 XSD 模式创建新消息实例的最佳解决方案,以便在 Biztalk 业务流程中使用。
额外的投票用于带有清晰有效示例的答案或带有质量参考链接的答案。
biztalk - 将 Biztalk 2004 升级到 Biztalk 2006 R2
我有一个客户端运行在 Biztalk 2004(我编写的)上运行的 1/2 打左右的编排,他们使用它们与供应商交换 cXML 文档(主要是发送订单)。它有一个 ASP.NET 1.1 前端。它使用 SQL 适配器来存储解析的 cXML。我通过 HTTPS 获取并发送文档。
我的问题:升级到 Biztalk 2006 R2 是否像 MS 所说的那样直接?有什么建议或我应该注意的事情吗?
biztalk - BizTalk 同时接收期间发现意外数据错误
我有一个接收端口,其中两个 FILE 接收位置轮询同一个网络共享。接收位置之间的唯一区别是它们使用不同的文件掩码。它们都使用带有单个平面文件反汇编器组件的自定义管道。我有一个订阅接收端口的发送端口。(这只是我可以重现问题的最小设置)。
在处理一组文件(最大 1mb 大小)时,管道偶尔会抛出错误。仅当一次将多个文件复制到接收位置文件共享并且不定期发生时,才会发生这种情况。该错误通常为:
解析传入文档时出现错误:“查找时发现意外数据:'\r\n'当前正在解析的定义是GIRMFile。发生错误的流偏移量是491540。发生错误的行号是2446 . 发生错误的列是199。”。
检查所示行号处的挂起消息,始终有 512 字节的数据与传入消息不同。这 512 字节的数据始终与同时使用的其他输入文件之一的数据相匹配!或者在极少数情况下,不正确的 512 字节数据是来自同时使用但在管道处理之后的文件的数据(即暂停的平面文件具有 512 字节的 xml 块!)。这 512 个字节在挂起的消息中从未处于一致的位置。
认为 BizTalk 数据库以某种方式损坏,我将其删除并重新配置。成功处理了几百个文件后,问题又回来了。
这只发生在我们的测试盒(VMWare vm)上,所以我怀疑机器在某种程度上是问题所在。但是机器没有在其他进程中报告其他错误似乎很奇怪。
biztalk - BizTalk 循环仿函数
我有一个结构化的 XML 文件格式,需要映射到更扁平的 XML 格式。通常我会为此创建一个自定义 XSLT 文件并让 BizTalk 映射使用它。然而,我确实喜欢尽可能使用图形地图的想法——直接深入 XSLT 太容易了,但对于那些跟随你的人来说,要快速了解地图的作用就不是那么容易了!
我怀疑可以使用表循环函数和表提取器 functoid 来实现映射,但我已经尝试了几个小时但失败了:(
注意:我无法控制源 XSD - 这来自第三方。这里是:
...这是目标 XSD:
总而言之,我需要查看 Trips,从 Vehicle 中获取 VehicleRegistration,键入 VehicleId 并将数据复制到目标模式。
有谁知道是否/如何仅使用 functoids(或者可能是脚本 functoid 中的一个小脚本)来实现这一点?
非常感谢,罗布。
windows - Windows 命令行:不评估环境变量
我想将引用环境变量的原始文本提供给命令,而不是评估环境变量。
我需要这个来从命令行配置 BizTalk,例如:
BTSTask.exe AddResource -ApplicationName:App1 -Type:System.BizTalk:BizTalkAssembly -Overwrite -Source:..\Schemas\bin\development\App1.Schemas.dll -Destination:%BTAD_InstallDir%\App1.Schemas.dll
此命令将资源添加到 BizTalk 应用程序。我希望目标是 %BTAD_InstallDir%\App1.Schemas.dll,但目前它正在评估环境变量(没有)并使用 \App1.Schemas.dll。
在解析\执行此命令时是否可以转义或禁用此环境变量的评估?
我尝试用胡萝卜 (^) 转义第一个和两个百分比字符,但这并没有停止评估。
[编辑]当我在命令提示符下执行它时,它不会替换环境变量,但是当我将它作为脚本运行时它会替换,关于为什么这不同的任何想法?
biztalk - 绑定文件中的 BizTalk SOAP 端口密码
我继承了一个 BizTalk 2006 应用程序,该应用程序使用多个 SOAP 端口从第 3 方 Web 服务请求数据。Web 服务由“基本”身份验证 - 用户名/密码保护。在对应用程序进行了一些改进后,我将其部署到了一个集成测试服务器,该服务器可以访问第 3 方 Web 服务。BizTalk 应用程序无法检索数据,我很快意识到我忘记在 SOAP 发送端口上设置用户名/密码。我希望 BizTalk 应用程序的部署尽可能自动化,因为当它部署到实时服务器时我可能不在场。我打开绑定文件,找到问题 SOAP 发送端口的第一个并查找* BizTalk 用来替换密码的 - 除了它没有!似乎 SOAP 端口的密码设置为 NULL 而不是 *,请参阅此处了解更多详细信息:http: //msdn.microsoft.com/en-us/library/aa547319.aspx
我继续更新绑定,但是当我来测试时,在导入修改后的绑定文件后,我发现我遇到了和以前一样的问题。我已经仔细检查并可以确认绑定文件中现在存在正确的密码,但是,虽然 BizTalk 在导入过程中没有抱怨,但当我运行应用程序时,我得到以下异常:
详细信息:“ArgumentNullException:字符串引用未设置为字符串的实例。参数名称:s”。
如果我随后通过 BizTalk 管理控制台手动修改密码,一切正常。
是否有其他人对 SOAP 端口的绑定有类似的问题 - 有没有人有解决方案?
database - 跟踪从外部程序到 biztalk 和返回的消息
我有一个外部程序,它将从数据库中生成一个 xml 文档并将其传递给 BizTalk。是否可以创建事务 id 或其他东西(数据库中的消息 id),以便我可以跟踪 BizTalk 中的消息,并将 BizTalk 自定义管道中的信息存储到具有给定事务 id 的数据库中?
我想存储它是否失败,并且我有自定义管道可以捕获此信息以进行存储。我不想依赖 HAT 进行错误处理。
在 BizTalk 中跟踪从需要存储有关 BizTalk 处理信息的外部程序发送的消息的最佳方式是什么?任何链接/书籍提示也会有所帮助。谢谢!
architecture - 我们应该引入 BizTalk/ESB 吗?
我的公司即将实施一个新架构,我们在其中提出了 BizTalk(我们是一家微软商店)作为 SOA(请不要引用面向服务的歧义)环境中的企业服务总线 (ESB)。
我们的业务是通过我们的新订单捕获 GUI 接收订单,该 GUI 必须连接到我们的客户数据库、产品目录、订购系统和其他一些辅助系统,每个系统都将作为 WCF 服务公开,然后将订单传递给我们的订单管理和其他用于履行的下游系统,最后到我们的计费系统进行开发票。目前,每个系统都有自己的 GUI,并使用手动过程在它们之间传递信息,为了实现自动化和集成,自然的想法是引入 ESB 来连接它们。
我对 ESB 的一些基本原理是,总线会担心如何连接系统(每个系统都是不可知的,并且对任何其他系统一无所知)以及如何格式化/翻译信息。将来,很有可能将某些现有系统替换为我们公司家族中的新系统或系统。
这对我来说似乎很有意义,但我现在遇到了一些阻力,即为什么在点对点解决方案足够时引入它。
不幸的是,在公司历史上(在我任命之前),引入 BizTalk 的初步尝试失败了,但我相信它有一席之地并且我可以交付它。
我的问题可能不是关于 BizTalk,而是 ESB 在我所描述的场景中是否是一个好主意,什么时候引入 ESB 才有意义?