Синяя призма, расчет, замена, номер экстракта - PullRequest
0 голосов
/ 29 апреля 2018

Мне нужно извлечь числа из текста на этапе расчета в Blue Prism. Текст «Пожалуйста, обратите внимание на ваш номер заказа: 123» Число «123» меняется каждый раз в каждом случае, каждый раз, когда размещается новый заказ. Мне нужно извлечь номер из конца этого и в элемент данных. Я сейчас использую:

Справа («Пожалуйста, обратите внимание на ссылку заказа:», «3»), и она не работает.

Любой совет будет принят с благодарностью.

Ответы [ 6 ]

0 голосов
/ 09 февраля 2019

Использование Replace ():

Trim(Replace(AllTextInElement, "Please take note of your order reference:", ""))

Использование Regex в блоке кода:

ExtractedNumbers = Regex.Match(AllTextInElement, "\d+")
0 голосов
/ 24 января 2019

Я только что закончил курс «Разработчик 1» для BluePrism и выполнил ту же самую тренировку. Я использовал эту строку:

ToNumber (Заменить ([Сохранить номер заказа], «Пожалуйста, обратите внимание на ваш номер заказа:", ""))

Он удалил текст из строки, заменив его ничем (""), а затем создал число из данных, оставленных в строке. И вуаля, у вас есть ваш номер заказа.

0 голосов
/ 05 ноября 2018

Вы можете использовать приведенное ниже утверждение в синей призме. Этап расчета

Trim(Mid([Data2], InStr([Data2], ":")+1, Len([Data2])-2))
0 голосов
/ 11 мая 2018

Итак, у вас есть уникальный идентификатор ":" перед значением, которое вы хотите вернуть, вы можете использовать его в своих интересах.

1) используйте функцию InStr, чтобы найти положение, где находится этот уникальный символ в строке.

2) Используйте функцию «Влево», чтобы вернуть символы вплоть до уникального символа.

3) из этого мы можем затем использовать функцию замены, чтобы обнулить только что возвращаемый текст, оставив только желаемое значение.

4) патрон с функцией обрезки (хорошая уборка и чистота данных)

Я показал, что я сделал ниже (используя [Data1] в качестве строкового значения), это было независимо от того, какое сообщение вы получили до этого значения, если у вас есть уникальный символ, оно всегда будет возвращать значение (я понимаю, что я мог бы просто сказать это в двух словах (это делает его динамичным))

Trim(Replace([Data1], Left([Data1], InStr([Data1], ":")), ""))

надеюсь, это поможет :)

0 голосов
/ 03 мая 2018

Вы можете использовать шаг вычисления в Blue Prism для достижения этой цели, и вы почти все поняли правильно.

Я предполагаю, что у вас есть вся строка, включая номер заказа, загруженная в dataitem. Давайте назовем это dataitem [orderReference]

Right([orderReference],3) даст вам последние три символа в строке (которые будут числами).

Это работает, только если ссылка на заказ всегда состоит из трех цифр. Со временем ссылки на заказ, вероятно, увеличатся до четырех или пяти цифр, и вы все равно получите только последние три.

Чтобы учесть это, вы можете использовать Len([orderReference]), чтобы получить длину всей строки. Вычтите 42 из длины (перед цифрами 42 знака - я полагаю, после пробела есть пробел: в противном случае это будет 41).

Просто используйте это число вместо 3 в функции Right.

Right([orderReference],Len([orderReference])-42)
0 голосов
/ 01 мая 2018
        string test = "Please take note of your order reference: 123";
        string digits = new String(test.Where(Char.IsDigit).ToArray());
        Console.WriteLine(digits);

** Вы можете достичь этого, используя этап кода, я использовал C #. вместо вывода вывода на консоль загрузите его в элемент данных **

...