2

我有一个监视 FTP 位置的 BizTalk 接收端口。我希望文件每天至少到达该位置一次,并让 BizTalk 将其拾取并启动编排。这部分工作正常。

但是,有时发件人在一天中无法发送消息,在这种情况下,我希望发送一封电子邮件以通知用户有问题。

我可以在 BizTalk 之外解决这个问题,方法是创建一个日常作业,在我们的数据库中查找已处理的文件,并确保在任何一天至少有一个。但是,我更愿意使用已经到位的 BizTalk 解决方案来解决这个“符合”的问题,而不是部署一个单独的、不相关的作业,这会增加维护的麻烦。

BizTalk 中是否有任何功能可以让我在接收端口在给定时间范围内接收到某些内容时发送通知?

4

2 回答 2

2

简短的回答:不是。

您要实现的逻辑需要自定义版本的 FTP 适配器。取决于您卷起袖子进入 Adapter SDK 的舒适程度。

如果您想让您的解决方案保持“纯 BizTalk”,您可以使用绑定到存储过程的 SQL 接收位置来设置辅助业务流程。此存储过程定期执行并在过去(工作日)收到的“已处理文件”表中查找记录。如果没有找到,它会制造一条记录并通过 SQL 接收位置返回它。这将是您发送电子邮件通知的触发器。

于 2012-11-19T22:10:53.120 回答
0

一种不优雅的解决方案是在您的截止时间之外有一个带有计划窗口的辅助 FILE 接收位置。

失败场景:

在这个 FILE 接收位置,您有一个智能/虚拟消息,它符合与 FTP 接收相同的模式。聪明的部分是让消息中的一个字段告诉我们最后一次从 FTP 接收文件是什么时候。其余内容是虚拟的。

在您的编排中,您检查从哪里收到文件。如果它是辅助接收位置(使用上下文属性 BTS.ReceiveLocationName),您检查此虚拟/智能消息的日期字段,如果它在过去 24 小时内(或类似逻辑)发送一封电子邮件通知您没有收到文件来自上游 FTP 进程,并将虚拟消息(已接收)的副本保存回辅助 FILE 接收位置不变。

成功场景:

除了正常处理之外,您将虚拟/智能消息的副本保存到辅助 FILE 接收位置,日期时间字段反映您处理从 FTP 接收位置接收的文件的时间。

初始化:

您从辅助 FILE 接收位置中的虚拟/智能消息开始,该消息具有过去的日期时间字段值(假设我们从未从 FTP 收到文件)或昨天的日期(假设我们前一天从 FTP 成功收到文件。 )

概述:您的编排有两个触发点。

  1. 当您通过 FTP 接收文件时
  2. 一个预定的 FILE 接收位置,在截止时间之后触发。
于 2012-11-20T14:35:37.330 回答