我有一个SSIS程序包,我试图在其中使用For Loop来检查条件(Web服务响应)。我在SSIS的EvalExpression中有一个条件,并且正在循环内的数据流任务内的EvalExpression中设置变量之一。我还记录了表达式以及表达式中的变量,当EvalExpression设置为false时,循环继续进行。有人可以解释为什么吗?或者如何在每次迭代中获得真正的EvalExpression。
这是我的EvalExpression
(@[User::statusMessageLoop] == 1 && @[User::statusMessageLoopCheck] == 1)
变量User :: statusMessageLoopCheck在循环的每次迭代中设置,当我希望它脱离循环时,将其设置为0。
我希望下面的图片有助于解释我的情况,并感谢大家的投入。
答案 0 :(得分:0)
我假设您正在正确地将XML读入列,并且您知道该怎么做。
添加以下代码来设置变量
Variables.isTrue = Row.isTrue == true ? 1 : 0;
这是基本的逻辑,否则就是逻辑。
这是使用SSIS继承工具设置变量的方式。
如果这不起作用,也许您应该检查以确保您正确读取XML。
编辑:
您需要一个临时变量来保存测试结果,然后可以在执行后设置Package Variable。这是代码的屏幕截图:
很抱歉。我和你一起学习了这一课。通常,我通常完全在C#中处理所有XML和JSON。
请注意,布尔测试也在行处理之外进行声明。
这假设您也只有一行处理。