Error handling BizTalk 2016中针对内容错误的错误处理

Error handling BizTalk 2016中针对内容错误的错误处理,error-handling,biztalk,biztalk-2016,Error Handling,Biztalk,Biztalk 2016,我们正在开发两个系统之间的接口,公开一组REST接口 在用户端,从业务流程到用户应用程序的API调用可能会导致内容错误(例如,未在用户端定义字典值)。因为使用者没有公开所有字典API,所以我们必须将这种情况上报给ops团队,ops团队可以包含缺少的字典值并重新触发消息 问题是,我们的Biztalk开发人员说,实际上不可能重新触发已发送到出站队列的消息 真的是这样吗?如何重新触发已离开业务流程并发送到出站队列的消息?在整个过程中,这实际上取决于您如何设计解决方案。您几乎没有选择: 当从BizTal

我们正在开发两个系统之间的接口,公开一组REST接口

在用户端,从业务流程到用户应用程序的API调用可能会导致内容错误(例如,未在用户端定义字典值)。因为使用者没有公开所有字典API,所以我们必须将这种情况上报给ops团队,ops团队可以包含缺少的字典值并重新触发消息

问题是,我们的Biztalk开发人员说,实际上不可能重新触发已发送到出站队列的消息


真的是这样吗?如何重新触发已离开业务流程并发送到出站队列的消息?

在整个过程中,这实际上取决于您如何设计解决方案。您几乎没有选择:

  • 当从BizTalk以自动方式将错误升级到ops team Association时,您可以使用原始消息启动一个新的业务流程实例,该实例使用关联I'd等待包含丢失数据的重新触发请求,然后在提交请求后,它可以合并并处理这两个请求。这种方法将保持一个长时间运行的实例,这取决于从ops团队获得响应所需的时间
  • 另一个选项是在升级到数据库或其他地方之前保存消息,然后在重新触发工作流时使用一些相关id检索消息。这有点类似于第一个选项,除了在这种情况下,您管理从自定义存储保存和检索消息,而BizTalk将消息保留在spool中,需要更多的开发人员工作,但如果您的此类实例数量非常多,您可能需要这样做
  • 如果可能的话,让ops团队再次提交完整的请求,并提供缺失的数据。这样,您就不需要在BizTalk中维护状态

  • 根据您的具体需求和设计限制,可能还有其他选择。希望这能给你一个好的开始。这当然是可以做到的。

    从你的问题,不清楚谁是消费者和API提供者,你能解释得多一点,我们有具体的:应用程序A,提供者,中间的BizTalk,作为中间件,以及应用C作为一个消费者。BizTalk从中获取数据元素并将其传输到C。当传输的属性之一不在内部应用程序字典中时,C可能会引发内容错误。