【问题标题】:Send notifcation if expected message did not arrive in BizTalk发送预期消息未到达 BizTalk 的通知
【发布时间】:2012-11-07 20:22:00
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: biztalk edi


    【解决方案1】:

    简短的回答:不是。

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

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

    【讨论】:

    • 感谢您的信息。您基本上证实了我的想法,我最好在 BizTalk 之外执行此操作。
    【解决方案2】:

    一种不太优雅的解决方案是在您的截止时间之外设置一个次要文件接收位置,它有一个时间表窗口。

    失败场景:

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

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

    成功场景:

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

    初始化:

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

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

    1. 当您通过 FTP 接收文件时
    2. 预定的 FILE 接收位置,在截止时间后触发。

    【讨论】:

      猜你喜欢
      • 2017-10-04
      • 1970-01-01
      • 2013-03-30
      • 1970-01-01
      • 2019-08-29
      • 2014-01-19
      • 2021-02-03
      • 1970-01-01
      • 2017-08-28
      相关资源
      最近更新 更多