【问题标题】:BizTalk - Delete without a schemaBizTalk - 删除没有架构
【发布时间】:2015-12-10 15:29:42
【问题描述】:
  • 我正在将一个包含 200 多条记录的文件导入到主表中。
  • BizTalk 包只为一个来源提供服务,其他包为其他来源提供服务
  • 我正在为所有 SQL CRUD 使用强类型存储过程
  • 文件中的所有记录都来自同一来源
  • 文件不包含源名称或源 ID
  • 我想从包硬编码值中确定来源
  • Master 表包含来自多个来源的记录
  • 导入前:从源中删除主表中的现有记录
  • 与文件导入不同,删除语句只发生一次

    DELETE FROM Master WHERE SourceID = @SourceID

文件导入有效,但如何对删除源 ID 进行硬编码?

【问题讨论】:

  • 有点困惑,你能解释一下吗? 1. 你能在你的 BizTalk orch 中获取 sourceId 吗?每次收到文件时都要运行删除语句吗?

标签: biztalk biztalk-2013r2


【解决方案1】:

在您的删除转换中(就在发送形状上方),您可以为传出消息设置 SourcID 属性。然后,您可以使用此 SourceID 填充消息上下文。然后可以在您的删除语句中使用此 sourceID。

【讨论】:

  • 你有示例链接吗?
【解决方案2】:

如果我理解正确,您想在插入新记录之前删除 SourceID 的所有现有记录吗?

如果是这样,您需要访问编排的入站消息上的 SourceID 值。

为此,请使用property promotion

您可以这样做:

  1. 在接收端口上配​​置的管道组件内,以便当消息到达编排时该属性可用,或者,
  2. inside the orchestration,这将要求您将 InsertCSV 消息的构造形状移动到删除构造形状上方,并在构造形状内提升属性。

在这些选项中,第一个可能是最好的选项,因为理想情况下应该在消息分解期间完成分配属性。

或者,您可以在 Expression 形状中使用 xpath() call 来使用 xpath 查询消息,然后像这样检索值。这样您就可以避免考虑房地产促销。

但是,尽管实施起来更快,但这种方法并不是最佳实践,因为它会使您的编排对消息架构的变化非常敏感。

【讨论】:

    猜你喜欢
    • 2013-08-20
    • 1970-01-01
    • 2012-10-26
    • 1970-01-01
    • 2014-04-16
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多