问题标签 [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 回答
526 浏览

csv - 通过 BizTalk 平面文件反汇编程序处理文件时,带有逗号值的 csv 数据会引发错误

我将在 BizTalk 中选择一个 csv 文件,经过一些处理后,我想用两个或更多不同的系统对其进行更新。

为了获取 csv 文件,我使用默认值Flatfile Disassembler来破坏它并在生成模式的帮助下将其构造为 XML。我可以使用一些一致的数据成功地做到这一点,但是如果我使用带有逗号的数据(分隔符除外),BizTalk 会失败!

在不使用自定义管道组件的情况下,还有其他方法可以做到这一点吗?期望在平面文件反汇编器组件中进行简单配置!

0 投票
1 回答
936 浏览

c# - 如何在自定义管道中解压缩 gzip 文件

我尝试创建一个自定义 BizTalk 2013 R2(接收或发送)管道,该管道可以将包含一些 txt 文件的 xxx.GZ 文件解压缩到发送端口。

这是我到目前为止所尝试的:

PS。我使用了 .Net 的 IO GZip 类。

  1. 创建一个 BTS 应用程序,配置接收位置和发送端口。

  2. 接收位置使用我创建的自定义管道,这是我尝试的自定义管道的代码:

    /li>

此代码似乎无法按我的意愿工作。只需发送 GZ 文件而不将其解压缩到发送端口。我在接收位置端口中使用实现的管道。以下是它的工作原理:当 BizTalk 在其接收位置接收到 GZ 打包文件时,它只是将文件发送到订阅此接收位置的发送端口。管道似乎对 GZ 流没有任何作用。它应该做的是解压GZ文件并将所有解压后的文件发送到发送端口,这指向一个需要放置解压文件的文件夹。

我试图在没有运气的情况下进行谷歌搜索,并且现有的样本似乎对我不起作用。

所以任何人都可以帮助我或告诉我在我的代码中做错了什么。我只想实现一个 C# 自定义 BizTalk 2013 R2(接收或发送)管道,该管道可以将包含一些 txt 文件的接收到的 GZ 文件解压缩到发送端口(指向文件夹)?

更新:

由于 Dissambler 版本不起作用,我创建了一个解码版本。

这是管道中的解码代码:

如何获取 GZip 文件中每个文件的正确文件名?所以当消息被发送到发送端口时,它应该用正确的文件名写入文件。

0 投票
1 回答
2308 浏览

angular - Angular 2:设置和删除自定义管道?

我创建了三个自定义管道来从服务器(ASC、DESC 和默认)订购数据,它们工作得很好,我希望这三个管道处于活动状态或不处于活动状态,具体取决于用户的交互。

问题是,例如可以用变量更改自定义管道吗?

这是我的代码...

0 投票
1 回答
2012 浏览

c# - BizTalk 自定义管道组件 - 您选择了无效的管道组件程序集

我正在创建一个类库。在成功构建该类库后,我将该 DLL 放置到 BizTalk Server 的管道组件文件夹中,并将该 DLL 添加到 GAC 文件夹中。

现在我试图将其作为自定义管道组件引用到另一个我正在创建自定义管道的项目中。但是当我尝试添加该 DLL 时,它会引发异常

您选择了无效的管道组件装配。如果您从 UNC 路径加载程序集,请检查程序集的安全设置

我已经有一些与此异常相关的可用解决方案,例如

  • 首先,检查您的管道组件类是否是公共的。
  • 此外,请确保您从自定义管道组件引用的任何程序集都在 GAC 或管道组件文件夹中(如果这是您放置自定义管道组件程序集的位置)。
  • 检查缺少的依赖项,它们都必须放在 GAC 或 Pipeline Components 文件夹中

但仍然无法解决问题。

0 投票
0 回答
640 浏览

biztalk - BizTalk 自定义管道组件不加载重写的属性

我有一个自定义 BizTalk 2013 R2 管道组件,它定义了几个设计时属性。出于某种原因,BizTalk 将加载在 VS 管道设计器中设置的设计时属性值,但它会忽略在 BizTalk 管理控制台中设置的运行时值。我的组件实现了 IPersistPropertyBag 并且我已经验证它没有抛出任何异常。

在调试管道(附加到独立主机实例)时,我注意到 BizTalk 仅在管道实例化时调用 Load 方法。这只会加载 VS 设计器值,并且 BizTalk 应该在调用 Execute 之前再次调用 Load 方法。不幸的是,这并没有发生。

[编辑]我做了更多调试,发现这似乎只发生在双向接收端口的发送管道上。接收管道按预期加载设计时和运行时属性。

这是我的代码示例:

读/写属性包辅助方法:

0 投票
0 回答
687 浏览

c# - MemoryCache.Default 在来自两个不同类的方法调用上被实例化为两个不同的实例

我希望有人可以帮助我弄清楚为什么 C# 的 MemoryCache 没有按预期的方式工作。

我有一个包含公共静态类的 dll 库。这个静态类具有从默认内存缓存中添加/获取字符串的功能。这是一个dll。这是代码:

然后我有另一个类(非静态)调用使用 CacheHelper 类向/从缓存中添加/获取项目。这是另一个dll。此 dll 在运行时按顺序使用两次(序列 1 和 2)。如果有帮助,这是一个 BizTalk 管道组件。当第一次执行这个类时,我可以看到对象被添加到序列 1 的“默认”内存缓存中;但是,当此类在序列 2 中时,“默认”内存缓存变为空。奇怪的是,如果我再次运行该类,我可以看到先前的消息仍在序列 1 的缓存中,但序列 2 再次出现一个空缓存。看起来该静态类被两个不同的实例实例化了两次“默认”内存缓存。这是因为 BizTalk 会为每个管道分别加载组件吗?如果是这种情况,如何使用 MemoryCache.Default 实现公共缓存?

0 投票
2 回答
416 浏览

ssis - SSIS 自定义组件:具有任何 IsSorted 属性和输出元数据

我有一个工作正常的自定义同步组件,我使用它。
最近,我从排序组件(或IsSorted=true 源组件)向它发送了一些排序数据,但是由于没有IsSorted=true属性 ,我无法将输出用作合并连接的输入。

所以我必须再次对数据进行排序,这会大大降低包的性能。

此外,在设计期间,对于我的输出,我不能有任何与输入相同的元数据。

我猜当我的组件是同步的,所以它可能被排序为它的输入,如果不是,如何使组件输出数据排序!
我真的很想知道是否有任何聪明的解决方案来解决有关自定义管道组件的详细问题。

0 投票
1 回答
287 浏览

c# - 在 BizTalk 发送端口中生成两条消息(来自一条输入消息)

我想在管道组件中创建两条消息,并将其传递到 Assemble 阶段,它将通过 BTAHL7 Microsoft Accelerator。

管道组件将放置在发送管道的“预组装”阶段。

这是将返回消息的代码。

出于测试目的,我将这两个添加pInMsg到一个数组中,并循环访问该数组以将其添加到队列中。然后,将消息分开返回。

但是,虽然队列有 2 个值,但在管道的其他部分(Assemble 和 Encode)中,它只返回一条消息。

为什么这样做?我怎样才能让它返回两条消息?

0 投票
2 回答
547 浏览

biztalk - 动态 FTP 文件夹管道

我正在尝试动态设置 FTP 位置的输出文件夹。分配,我需要为每个客户创建一个单独的文件夹来存储 Excel 文件和/或 XML 文件。

我试过的

  • 创建了一个自定义管道组件以将所有必需的属性设置为 FTP 发送端口。
  • 尝试将相同的管道连接到动态发送端口
  • 为了测试,尝试了编排中的代码。

我注意到了什么:

当我通过 FTP 发送端口发送时,自定义管道属性不会覆盖这些属性。

当我通过动态发送时,我总是收到以下错误

传输消息时遇到故障

即使我尝试将属性设置到 Orchestration 中,我也会遇到同样的错误。

此外,当我尝试通过动态发送端口发送时,我注意到管道组件没有被触及。

执行自定义管道组件的代码部分

编辑:

在尝试了很多之后,这次更新。当我尝试通过静态发送端口动态发送时,我仍然遇到同样的问题。当我尝试通过动态发送端口动态发送时,我遇到了不同的错误:

内部异常:分配给属性“Microsoft.XLANGs.BaseTypes.Address”的值无效:“FTP URI”。

我不知道解决此问题的最佳解决方案是什么。我还可以将所有内容写入帮助程序类,然后尝试通过 C# 代码发送。但我想使用 BizTalk 的力量,并希望能够在必要时启用 en 禁用端口。这是主要原因。我不害怕编写自定义管道组件或其他东西,所以如果有人可以提供帮助。请

编排的消息分配代码

编辑2:

当我将消息分配更改为以下代码时,我可以将文件发送到动态文件夹。我现在遇到的唯一问题:当文件夹已经存在时,我遇到了失败。

有谁知道只有当文件夹不存在时我才需要使用什么 FTP 命令来创建文件夹?我尝试了以下命令

MDK -p /Pricat/AccountNumber;
MDK /Pricat/AccountNumber;
如果不存在 "/Pricat/AccountNumber" MDK /Pricat/AccountNumber

在编排中更改了消息分配的代码

0 投票
1 回答
284 浏览

biztalk - 在将 EDI 消息发送到 BizTalk Server 中的目标时处理重音字符

我有一个要求,我需要硬编码(强制)一个带有重音字符的值('AH La Kélisére'),将其映射到 EDI 模式中的一个字段,然后使用生成的消息将生成的消息发送到 URI(动态发送端口) AS2 运输。我在发送端口中使用了默认管道“AS2EdiSend”,但出现以下错误:

执行发送管道失败:……</p>

我需要按原样发送值。如何做到这一点?