问题标签 [custom-pipeline-component]

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.

0 投票
2 回答
1785 浏览

biztalk - BizTalk 归档管道组件注意事项

在我的场景中,我有一个管道,它 (1) 解密然后 (2) 在接收端口上反汇编一个平面文件。

我的要求是捕获文件,并将其放在 (1) 和 (2) 之间的本地文件共享中。

我最初的方法是在它们之间引入一个存档组件,但我遇到了这个问题。存档组件使用对存储的直接访问来转储文件。这本质上是一种糟糕的方法,根据 BizTalk 原则,这是发送端口/发送适配器的功能。因此,例如,如果归档目标是 FTP 主机,则归档组件是无用的。

于是想到了两个想法:

A)以某种方式配置归档组件以使用发送端口(如果可能的话)

B) 放弃归档组件的想法,只使用 BizTalk 的原生功能如下:

- 使用仅解密管道接收文件

- 使用发送端口将文件发送到临时本地存储

-订阅接收端口以将文件发送到存档

- 使用 Disassemble 管道从本地存储中提取文件(第二个接收端口)

- 使用编排处理来自第二个接收端口的文件。

选项 B) 有什么问题吗?

如果不是,那么即使使用存档组件又有什么意义呢?

0 投票
2 回答
344 浏览

biztalk - BizTalk 部署 - 绑定文件没有很好地导入自定义管道组件

当我部署我的应用程序时,我注意到一个非常奇怪的行为 - 并非所有绑定文件都按应有的方式导入,而其他文件则导入。

我正在使用一个自定义管道组件,它将一组属性提升到上下文中,其中一些在管道本身中定义,而另一些在 BTS 管理控制台中定义,因此我们可以在绑定文件中定义它们。

这对我们的一些应用程序来说很好,它们部署得很好,我们在绑定文件中配置的值在管理门户中可见,而其他应用程序没有显示相同的信息,奇怪的是,当我们生成失败应用程序的绑定文件,值在绑定文件中,但不可见,BTS 不使用。

我在不同的机器上有这种行为,有人知道发生了什么吗?

0 投票
1 回答
1229 浏览

biztalk - 自定义管道组件中的错误

一个 .txt 文件,格式如下

1115151651515950000055 00012913702613000000000003000 139C0000007000000 1215151651121510000054 00022913803603000000000009000 000279A0000009000 1315115950000065516515 00032813104643000000000007000 000399B0000003000 121515160003290003290000010000000003000

前 3 行是正文元素,但正文部分的行数未知(可能从 1 到无界)。正文部分没有标签标识符。文件中的最后一行始终是预告片。文件中的预告片将在解析之前删除,以便只解析记录。创建自定义管道组件以将标签添加到正文部分。但是当我将工具箱中的组件添加到接收 Piepline 时显示错误“IPersistPropertyBag 实现上的管道组件加载​​()失败”

管道组件的代码是,

}

0 投票
1 回答
120 浏览

warnings - 可以忽略管道中的警告吗?

在该项目中,我们将项目设置为将警告视为错误,但是在 BizTalk 项目上设置该选项时,我们注意到我们收到以下警告:

阶段“验证”有多个“X”组件。

根据设计,我们将 2 个相同的组件放在同一管道上。我们想知道是否可以在 c# 中禁用这些警告,您可以使用您的代码执行类似的操作#pragma warning disable 0649

是否有可能忽略管道中的这些警告?

0 投票
2 回答
1638 浏览

xml - 具有多个反汇编阶段的 Biztalk 自定义管道

我正在升级一个现有的解决方案,该解决方案目前以下列方式工作:

  • 平面文件反汇编阶段接收平面文件并反汇编成 XML
  • 验证阶段的通用自定义管道组件,接收反汇编的平面文件,解析/组/内联转换,然后将多个文件写入磁盘。
  • 另一个接收位置拾取这些文件并相应地对其进行处理。

由于我不得不接触这个项目,理想情况下,我想让这个自定义管道组件成为一个拆卸的 PC,并使用 GetNext 方法返回现在分批的消息,而无需将它们写入磁盘。但是,在反汇编阶段完成之前,我无法从平面文件反汇编程序访问反汇编的 xml,但我无法将自定义反汇编阶段放入管道的验证部分。

我在这里误解了什么吗?如果不想从根本上改变这个过程,我是否坚持将文件写回磁盘?

0 投票
2 回答
1470 浏览

biztalk - GAC 中的 BizTalk 自定义管道组件未更新

我最近开始使用这种方法进行管道组件开发,并且它对事物的开发部分非常有效。它甚至在组件/管道的第一次部署时工作得很好。

但是,现在的问题是,当我将更改部署到管道组件 DLL 时,我无法让它们更新。

就将程序集添加到 GAC 而言,我关注该帖子。然后我从 BizTalk 导出包含我的程序集的 MSI 并使用“覆盖”选项导入。我重新启动主机实例,重新启动 IIS(因为我的隔离主机正在使用该组件)但我对 dll 所做的更改没有发生在(在这种情况下)登台服务器上。

我检查了 MSIL 文件夹,文件夹和 dll 确实得到了更新日期修改,但是当我发送消息时我的更改没有发生。

有没有我错过的步骤?我是否必须增加组件本身的版本号?我增加了版本并重新部署了引用组件的管道,即使这样也不会启动更改。

0 投票
1 回答
1358 浏览

c# - 使用自定义管道将平面文件拆分为较小的文件(按行数)

我正在尝试为 BizTalk 2010 创建一个自定义管道组件,它将传入的平面文件拆分为多个较小的文件。我想将文件(可以说大约 30 000 行)拆分为每个大约 5000 行或更少的文件(可以说文件是否包含 33 000 行)。

我曾尝试使用Selvan 的自定义反汇编管道的绝佳示例,但无济于事。

我已经使用管道组件向导来生成管道骨架,但是对于如何继续对反汇编阶段进行编码和拆分大文件的任何提示或指示,我将非常高兴。我几乎是这种编码的新手。

有什么帮助吗?

0 投票
1 回答
1059 浏览

c# - %SourceFileName% 宏只能与 http://schemas.microsoft.com/BizTalk/2006/sftp-properties 命名空间一起使用

概述

我有一个自定义发送端口管道组件,它用特定的文件掩码格式替换发送管道上映射的文件的文件名。管道代码采用 ReceivedFileName 属性并对其应用转换。这个过程已经运行了一年多,但是在部署了新的模式和映射资源之后,管道已经停止工作。由于以下警告和错误,我现在没有创建任何文件。我希望有人可能有类似的经历,可以让我深入了解这个问题。

注意:地图和模式在不使用管道时有效(新旧)。对映射和架构工件的唯一更改是添加了 2 个 TypedPolling 架构、2 个 FlatFile 架构和 2 个映射。

这是我使用 SFTP 适配器时遇到的警告和错误

警告

适配器无法传输要发送端口“SEND_FileFormat_BSFTP”且 URL 为“SFTP://xxx.xxx.xxx.xxx:22/ToPartner/sftp/%SourceFileName%”的消息。它将在为此发送端口指定的重试间隔后重新传输。详细信息:“处理消息时发生意外故障。与异常关联的文本是“[SftpTransmitterEndpoint] 无法传输文件。内部异常:

%SourceFileName% 宏只能与 http://schemas.microsoft.com/BizTalk/2006/sftp-properties命名空间一起使用。. 更改任何发送端口传输属性可能需要重新启动主机,因为连接池可能仍有连接“。”。

错误

使用 URI “SFTP://xxx.xxx.xxx.xxx:22/ToPartner/sftp/%SourceFileName%”在发送端口“SEND_FileFormat_BSFTP”上发送到适配器“SFTP”的消息被挂起。错误详细信息:System.ArgumentException:名为“ http://schemas.microsoft.com/BizTalk/2003/file-properties#ReceivedFileName ”的属性不存在。


服务器堆栈跟踪:在Microsoft.BizTalk.Adapter.Sftp.SftpOutputChannel.BuildFileName(Message message) 在 Microsoft.BizTalk.Adapter.Sftp.SftpOutputChannel.Send(Message message) 的System.ServiceModel.Channels.MessageProperties.get_Item(String name) TimeSpan timeOut) 在 System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs) 在 System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink回复下沉)

在 [0] 处重新引发异常:
在 System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult 结果) 在 System.ServiceModel.Channels.ServiceChannel.EndCall(String System.ServiceModel.Channels.ServiceChannel.EndSend(IAsyncResult 结果)处的操作,Object[] 输出,IAsyncResult 结果)

在 [1] 处重新抛出异常:在 System.ServiceModel 的 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) 处的 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)。 Channels.IOutputChannel.EndSend(IAsyncResult 结果)在 Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.SendCallback(IAsyncResult 结果) MessageId:{055A8864-AB06-4849-ADC3-A5CB93016106} InstanceID:{FF1E3802-89CD-466C -B68E-2CF4EC662DF4}

这是我使用 Blogical SFTP 适配器时遇到的错误

方法:Blogical.Shared.Adapters.Sftp.SftpTransmitterEndpoint.ProcessMessage 错误:[SftpTransmitterEndpoint] 无法传输文件。内部异常:%SourceFileName% 宏只能与 http://schemas.microsoft.com/BizTalk/2006/sftp-properties命名空间一起使用。. 更改任何发送端口传输属性可能需要重新启动主机,因为连接池可能仍有连接

------------------------------ 信息:类型:Blogical.Shared.Adapters.Sftp.SftpException 目标:Microsoft.BizTalk.Message .Interop.IBaseMessage ProcessMessageInternal(Microsoft.BizTalk.Message.Interop.IBaseMessage, Blogical.Shared.Adapters.Sftp.ISftp) 消息:[SftpTransmitterEndpoint] 无法传输文件。内部异常:%SourceFileName% 宏只能与 http://schemas.microsoft.com/BizTalk/2006/sftp-properties一起使用命名空间。. 更改任何发送端口传输属性可能需要重新启动主机,因为连接池可能仍具有连接 Stacktrace: at Blogical.Shared.Adapters.Sftp.SftpTransmitterEndpoint.ProcessMessageInternal(IBaseMessage message, ISftp sftp) at Blogical.Shared.Adapters。 Sftp.SftpTransmitterEndpoint.ProcessMessage(IBaseMessage 消息)

------------------------------ 类型:System.Exception 目标:System.String ReplaceMacros(Microsoft.BizTalk.Message.Interop。 IBaseMessage, System.String) 消息:%SourceFileName% 宏只能与http://schemas.microsoft.com/BizTalk/2006/sftp-properties 命名空间一起使用。Stacktrace:在 Blogical.Shared.Adapters.Sftp.SftpTransmitProperties.ReplaceMacros(IBaseMessage 消息,字符串 uri) 在 Blogical.Shared.Adapters.Sftp.SftpTransmitterEndpoint.ProcessMessageInternal(IBaseMessage 消息,ISftp sftp)

我努力了:

  • 刷新管道、架构和地图工件
  • 使用 %MessageId%、%SourceFileName% 和 *.dat 作为我的 SFTP 文件名值
  • 停止发送端口,重新启动主机实例
  • 停止应用程序中的所有内容并重新启动所有主机实例
  • 重新获取工件
  • 使用文件适配器而不是 SFTP
0 投票
2 回答
655 浏览

biztalk - 工具箱中未显示 64 位自定义管道

我为 BizTalk 中的 Excel 到 XML 解码创建了一个 x64 自定义管道。我在 BizTalk 2013 的 Pipeline Components 文件夹中添加了 dll。但是当我尝试将其添加到 ToolBox 时,它没有显示出来。我需要 dll 为 64 位,因为我的 OLEDB 适配器是 64 位的,如果我使用 32 位,它会说提供程序未在本地计算机上注册。有什么解决方法吗?

0 投票
0 回答
96 浏览

biztalk - Excel 解码器管道

我创建了一个自定义管道,它将 Excel 文件解码为 XML 文件。这些 excel 文件有大量记录。Excel 文件也有标题。我使用OpenXML将 Excel 文件处理为 XML 文件。

我需要优化内存消耗。