ダイアログ入力された値を判別する方法、手段

studio

#1

基本的な質問で大変恐縮ではございますが、お力添えを頂けますと幸いです。

UiPath上でInput Dialog を表示し、
そこに入力された値が適切なら次のタスクへ、
不適切ならもう一度入力を促すというフローを考えています。

半角数字8桁(「20190110」等)であるかを確認する場合、
Excelを使えば確実なのですが、UiPath上だけで値を判断し条件分岐することは可能でしょうか。

以上、何卒よろしくお願い申し上げます。


#2

You can create a conditional loop, which will run until the value is desired value and you can have a input dialog in that loop

Thanks,
Prankur


#3

@saltyayumu さん

Match activityで指定できます :+1:
半角数字8桁だと下記表現ですね。

“[0-9]{8}”


#4

Thank you!!
I try that.


#5

ryoko様

ご回答ありがとうございます。
該当アクティビティと例のフローまでご教示いただき大変助かります!

当初の質問とはずれてしまい大変恐縮なのですがご存知でしたらお教えください…。
私が設定しているフロー上、
どうしても入力ダイアログで入力された数値8桁をString型の変数(作業日付)に格納したいのですが、
Flow Decision上のconditionではBoolean型を要求されてしまうため、
「式"作業日付"の処理中にコンパイルエラーが発生しました。
Option Strict On で’String’から’Boolean’への暗黙の型変換はできません。」となってしまいます。
ToString はよく利用するのですが、Boolean型へ変更する方法がわからず、
別の対処方法があればお教えいただけますと幸甚でございます。

お時間がある時で構いませんので、何卒宜しくお願い致します。


#6

ryokoさんの例のように
文字列の一致をチェックのプロパティは以下のようになっていると思います。

結果(result):<結果を入れる変数>
パターン(Pattern):"[0-9]{8}"
入力(input):作業日付

条件分岐で使用するのは結果の変数です。(ryokoさんの例ではboo)これは、Boolean型になっていると思われます。


#7

@saltyayumu さん

変数タイプも入れたフロー図に修正しました&Matchの設定画面です。
kyd_hasさんの推測通り、String変数tmpを入れて、Boolean変数booに結果を出力しています。

%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A34

試してみてください :grin:

@kyd_has さん
補足感謝です!:pray:


#8

@ryokoさん

お二方、お力添えを頂き誠にありがとうございます。
より詳細なご回答と画面キャプチャの添付、大変助かります。

再びとなり申し訳ございませんが、お教えください。
パターンの「"[0-9]{8}"」の意味をちゃんと理解できていなかったようで…、
「半角数字八文字」を言い換えた値だと思っておりましたが、
1文字以上8文字未満の場合はFalse、
8文字以上の場合はTrue、
NULLだった場合は下記エラーが表示されます。
%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A3
NULLの場合はまた別の分岐が必要なのかと考えたのですが、
9文字、10文字でもTrueとなるところはより細かい設定が必要なのでしょうか。
お時間がある時で構いませんので、
ご助力の程、何卒宜しくお願い致します。


#9

“[0-9]{8}”

は、0-9のどれかの文字が8文字続いているものが含まれるという意味になります。

その為、このパターンでは
1234567 NG
12345678 OK
123456789 OK
aaa12345678 OK
12345678bbb OK
aaa12345678bbb OK
等々となります。

なので、8文字数字縛りの場合
“^[0-9]{8}$”

となります。
※^は文頭、$は文末を意味します。

正規表現については、以下にもありますが、.netの正規表現を使用しているはずです。

ご参考まで。


#10

ご回答ありがとうございます!!
同様の質問があったのですね…見つけられませんでした。
頂いたフォーラムも参考にしたいと思います。

ご教示頂いた内容を理解し、想定通りの動作を確認しました。
作業日付(ダイアログで入力された値の変数)がNULLだった場合、
先ほどの添付エラーが表示されてしまうため、
NULLであった場合は…といった分岐を入れるべきかと考えています。
分岐条件はBoolean型である必要がありますが、変数はString型なので、このままでは使えないと思います。
変数の方を変えるか、IsMatchアクティビティの前に別のアクティビティを入れる等、
別の対処方法を考えてみます。

再びとなりますが、ご助力いただきありがとうございます!
大変助かりました。


#11

分岐条件ですが、

(String型変数名)<>""

で空白でなければTrue、空白ならFalseへBoolean分岐できます。
ゴール見えてきた感じですね、頑張ってください :laughing:


#12

ご回答ありがとうございます!
うっかりしてました…。
IsMatchアクティビティに入る前にご教示頂いた分岐を入れれば完璧ですね!
多大なご助力、本当に助かりました!


#13

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.