Формат строки Blue Prism / проверка

У меня проблема, когда мне нужно иметь некоторую обработку исключений для некоторых данных, которые я помещаю в отчет Excel. DataItem «Personal Identity Code» может быть недействительным; Он всегда должен состоять из 11 символов и иметь формат DDMMYYSNNNX, где DD = день, MM = месяц, YY = год, S = либо 'A', либо '-', NNN = число, X = буква или число Примеры: 310199 -111K, 011206A2222

Я хочу как-то проверить это / подтвердить формат, прежде чем он будет обработан из очереди (чтобы я мог выбросить Business Exception). Есть ли какой-нибудь умный способ это настроить? Я думал о регулярном выражении в сочетании с чем-то?

Изменить:

Вот как выглядит моя страница процесса с решением: введите описание изображения здесь


person Rubiano    schedule 03.04.2018    source источник


Ответы (1)


Чтобы подтвердить такой ввод, я бы сделал две проверки:

а) регулярное выражение, чтобы проверить, соответствует ли оно ожидаемому формату

Пример регулярного выражения может быть таким:

\d{6}[A-]\d{3}[\d,a-z,A-Z]

или более строгий:

^\d{6}[A-]\d{3}[\d,a-z,A-Z]$

B) проверьте, действительна ли дата в начале строки (например, не 30 февраля или 95-е число 25-го месяца).

Я бы попробовал использовать функцию MakeDate () на этапе расчета в сочетании с функциями Left () и Mid (). Если дата неверна, BluePrism выдаст ошибку «Невозможно преобразовать 3 предоставленных параметра в дату».

person Andrzej Kaczor    schedule 04.04.2018
comment
Это очень помогло, я использовал ^ \ d {6} [A -] \ d {3} [\ d, a-z, A-Z] $ на этапе расчета, а затем на этапе принятия решения, чтобы увидеть, совпадает ли он. Затем я проверяю даты на этапе нескольких вычислений и сохраняю их в 3 элементах данных. Затем я проверяю сохраненные элементы данных на этапе принятия решения с помощью этого IsDate ([Год] & - & [Месяц] & - & [День]), чтобы выбросить Business Exception или двигаться дальше :) - person Rubiano; 04.04.2018
comment
Обновил мой вопрос со страницей процесса - person Rubiano; 10.04.2018