BizTalk - 没有架构的删除

时间:2015-12-10 15:29:43

标签: biztalk biztalk-2013r2

  • 我正在将包含200多条记录的文件导入主表。
  • BizTalk包仅服务一个源,其他包服务其他源
  • 我对所有SQL CRUD使用强类型存储过程
  • 文件中的所有记录来自同一来源
  • 该文件不包含源名称或来源ID
  • 我想从包硬编码值确定来源
  • 主表包含来自多个来源的记录
  • 导入前:从源
  • 中删除Master表中的现有记录
  • 与文件导入不同,删除语句只发生一次

    DELETE FROM Master WHERE SourceID = @SourceID

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

enter image description here

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

如果是这样,您需要将入站消息中的SourceID值访问到业务流程中。

为此,请使用property promotion

你可以这样做:

  1. 在接收端口上配​​置的pipline组件内部,以便在消息到达业务流程时该属性可用,或者,
  2. inside the orchestration,它将要求您在删除构造形状上方移动InsertCSV消息的构造形状,并在构造形状内提升属性。
  3. 在这些选项中,第一个可能是最佳选择,因为理想情况下应在消息分解期间完成分配属性。

    或者,您可以使用表达式形状中的xpath() call来使用xpath查询消息,并检索该值。这样您就可以避免考虑房产促销。

    但是,虽然实施起来更快,但这种方法并不是最佳做法,因为它使您的业务流程对消息模式的更改非常敏感。