在Blue Prism v5中,有一个函数IsFlag()可用于评估数据项是否为Flag类型。通常情况下一个数字,如果数据项为空,则函数IsNumber()将返回False。
在我的情况(一个标志数据项)中,在决策阶段执行此表达式时,函数IsFlag()不会返回False。
有人可以向我解释原因并为此提供解决方案吗?
我已经从别人那里得到的解决方案: -评估Flag是否设置为True -将决策阶段放在块中 -在实际评估要评估的条件之前,添加“恢复/恢复”阶段并将其值设置为False(作为“默认”值)。
答案 0 :(得分:2)
IsFlag()的工作方式与您想象的不同-它不会根据变量的类型来评估变量,但会评估传递给它的字符串。
如果要为其提供文字变量“ Notflag”,则由于它不是“ true”或“ false”,因此该函数将返回“ false”。
如果要为函数提供标志True,则首先将其更改为文本“ True”,然后对其进行评估,实际上它是标志。
最后,如果要提供带有空标志的此功能,则首先将其更改为空字符串“”,这当然不是标志。空数字,日期等也会发生同样的情况。
我认为您的解决方案很棒。您还可以尝试使用以下代码,以使工作室中的盒子更少。
Trim([Flag])=""
或
[Flag] = True OR
[Flag] = False OR
Trim([Flag])=""