SSIS For循环不会中断

时间:2019-10-25 14:31:26

标签: ssis

我有一个SSIS程序包,我试图在其中使用For Loop来检查条件(Web服务响应)。我在SSIS的EvalExpression中有一个条件,并且正在循环内的数据流任务内的EvalExpression中设置变量之一。我还记录了表达式以及表达式中的变量,当EvalExpression设置为false时,循环继续进行。有人可以解释为什么吗?或者如何在每次迭代中获得真正的EvalExpression。

这是我的EvalExpression

(@[User::statusMessageLoop] == 1 && @[User::statusMessageLoopCheck] == 1)

变量User :: statusMessageLoopCheck在循环的每次迭代中设置,当我希望它脱离循环时,将其设置为0。

我希望下面的图片有助于解释我的情况,并感谢大家的投入。

for loop properties

conditions under where i want the loop to keep going

break out of the loop when these condition are true

1 个答案:

答案 0 :(得分:0)

我假设您正在正确地将XML读入列,并且您知道该怎么做。

  1. 添加脚本组件,然后选择“转换”
  2. 将您的变量(我称我为isTrue)添加为可读写
  3. 选择您的列作为输入内容阅读
  4. 输入脚本
  5. 添加以下代码来设置变量

    Variables.isTrue = Row.isTrue == true ? 1 : 0;
    

这是基本的逻辑,否则就是逻辑。

这是使用SSIS继承工具设置变量的方式。

如果这不起作用,也许您应该检查以确保您正确读取XML。

编辑:

您需要一个临时变量来保存测试结果,然后可以在执行后设置Package Variable。这是代码的屏幕截图:

enter image description here

很抱歉。我和你一起学习了这一课。通常,我通常完全在C#中处理所有XML和JSON。

请注意,布尔测试也在行处理之外进行声明。

这假设您也只有一行处理。