ssis - SSIS For Loop 不会跳出循环
问题描述
我有一个 SSIS 包,我在其中尝试使用 For 循环来检查条件(Web 服务响应)。我在 SSIS 中的 EvalExpression 中有一个条件,并且我正在循环内的数据流任务中设置该 EvalExpression 中的变量之一。我还记录了表达式以及表达式中的变量,当 EvalExpression 变为 false 时,循环继续进行。有人可以解释为什么会这样吗?或者我怎样才能在每次迭代中获得真正的 EvalExpression。
这是我的评估表达式
(@[User::statusMessageLoop] == 1 && @[User::statusMessageLoopCheck] == 1)
变量 User::statusMessageLoopCheck 在循环的每次迭代中设置,当我希望它跳出循环时,我将其设置为 0。
我希望下面的图片有助于解释我的情况,并感谢大家的意见。
解决方案
我假设您正在正确地将 XML 读入列中,并且您知道如何做到这一点。
- 添加脚本组件并选择“转换”
- 添加你的变量(我叫我的isTrue)作为读写
- 选择您的列作为输入读取
- 输入脚本
添加以下代码以设置您的变量
Variables.isTrue = Row.isTrue == true ? 1 : 0;
这是基本的 if then else 逻辑。
这就是使用 SSIS 继承工具设置变量的方式。
如果这不起作用,也许您应该检查以确保您正在正确读取 XML。
编辑:
您需要一个临时变量来保存测试结果,然后您可以在执行后设置包变量。这是代码的屏幕截图:
为此表示歉意。我和你一起学到了这一课。我通常完全在 C# 中处理所有 XML 和 JSON。
请注意,布尔测试也是在行处理之外声明的。
这假设您也只有一行处理。
推荐阅读
- raspberry-pi - 树莓派 4(debian buster)中的 freeswitch mod_Port 音频问题
- azure-functions - Azure 函数未使用用户分配的标识在 Blob 存储中上传文件
- swift - 为按钮创建单向绑定
- ios - 如何在 TableVIew 中使用 Firestore 查询分页
- python - 从嵌套在嵌套在另一个字典中的列表中的字典中提取一个值...嵌套在另一个字典中
- r - 分组并查找所有数字变量的方法
- prometheus - Prometheus - 给定时间段内的多个平均 HTTP 请求率
- sql - 尝试将父表中的唯一值插入子表时,为什么会出现外键不匹配?
- javascript - 在两个 React 组件之间共享方法的最佳方式是什么?
- html - CSS - 子元素透视父元素