IsFlag () не возвращает значение False, если элемент данных флага пуст

В Blue Prism v5 есть функция IsFlag (), которую можно использовать для оценки того, имеет ли элемент данных тип Flag. Обычно в случае, например, Число, функция IsNumber () вернет False, если элемент данных пуст.

В моем случае (элемент данных флага) функция IsFlag () не возвращает значение False при выполнении этого выражения на этапе принятия решения.

Может ли кто-нибудь объяснить мне, почему и дать возможное решение для этого?

Решение, которое я уже получил от кого-то другого: - Оценить, установлен ли флаг в True - Поместить этап принятия решения в блок - Добавить этап восстановления / возобновления и установить значение False (как значение по умолчанию), прежде чем фактически оценивать условие, которое вы хотите оценить .


person Arne Uten    schedule 13.05.2019    source источник


Ответы (1)


IsFlag () работает иначе, чем вы думаете - он оценивает переменную не по ее типу, а по строке, которую вы ей передаете.

Если вы предоставляете ему текстовую переменную с надписью «Notflag», то, поскольку это не «истина» или «ложь», функция возвращает «ложь».

Если вы предоставляете функцию с флагом True, то сначала он изменяется на текст «True», затем он оценивается и фактически является флагом.

Наконец, если вы предоставляете эту функцию с пустым флагом, то сначала она заменяется пустой строкой "", которая, конечно, не является флагом. То же самое происходит с пустым номером, датой и т. Д.

Думаю, твое решение отличное. Вы также можете поэкспериментировать с использованием приведенных ниже кодов, чтобы в вашей студии было меньше коробок.

Trim([Flag])=""

or

[Flag] = True OR
[Flag] = False OR
Trim([Flag])=""
person Andrzej Kaczor    schedule 13.05.2019
comment
Спасибо за Ваш ответ! Теперь мне ясно, как Blue Prism оценивает функцию IsFlag (). Я реализовал предложенное решение, о котором упоминал в своем вопросе, и пока оно работает. - person Arne Uten; 13.05.2019