(初心者向け)【UiPath】エラー解決へ向けたポイント・コツその①_エラーマーク前編


# 概要
ここでは、普段私がUiPathでワークフローを作成していて、エラーが発生してしまった際に、
解決していくまでに、見ているポイント等についてまとめていきます。

- エラーマークがついてるけど、どうしたらいいか分からない
- エラーメッセージが表示されたけど、何を言ってるか分からない
- このエラーどうしたら解決できるかわからない

っていう方に向けて、少しでもご参考になれば幸いです。

では、参りましょう！

**使用した環境**
下記の画像で使用している
 UiPath Studioは、コミュニティライセンスのバージョン2020.2.0-beta.108のものです。


#UiPath Studioでのエラーの表示形式について
UiPathで自動化に向けたワークフローを作成すると、1回は目にするであろうものが、
『エラー』だと思います。
ここでは、UiPath Studioで表示されるエラーメッセージの表示形式を下記の2種類に分けて考えています。

**<エラーの表示形式>**
**1.エラーマーク：**　
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614942/47eda393-9e9a-70b4-3775-b99af1af0b04.png)

**2.エラーメッセージウィンドウ：**　
　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614942/46f20929-fea7-b5b6-3e5d-73820e6b1926.png)

今回は上記のうちの1つ目、「エラーマーク」におけるエラーメッセージの確認方法や、
エラー要因を特定する際のポイントについて取り上げていきます。
※2つ目の「エラーメッセージウィンドウ」編について知りたい方は、以下のリンク先をご参照ください！
[エラー解決へ向けたポイント・コツその③_エラーメッセージウィンドウ編](https://qiita.com/chi_inamori/items/3ce005a936d3fa04cad6)


# エラーマークとは
![エラーマーク例](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614942/75a9415f-c03e-783b-0a39-5c10b63b5bd1.png "エラーマーク例")

今回取り上げる「エラーマーク」とは、青いビックリマーク(上記画像の赤枠部分)のことを指しています。

エラーマークは、ワークフロー作成中に見受けられるエラー表示です。
このマークが付いているままでは、ワークフローを実行することが出来ません。

また、このエラーマークが付くケースとしては、
ただ単にアクティビティの設定が間違っているといった「エラー」の意を表した場合だけでなく、
必須項目が設定されていないアクティビティがありますといった、「警告」の意を表している場合があります。

例えば、下記のようにフローチャート内にはアクティビティはあるが、どのアクティビティとも
StartNodeと接続されていない場合、
フローチャートにおいて実行するアクティビティ(処理)はStartNodeと接続する必要があるので、
「実行するアクティビティがない状態ですが、いいですか」といったニュアンス(＝「警告」の意のエラーマーク）
として表示されます。
![StartNodeと接続なしサンプル](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614942/052f5f11-6a4d-7a8a-e259-b287cac1fa95.png "StartNode接続なし例")



# エラーメッセージの確認
ここで、エラーマークのエラーメッセージの確認方法について確認しておきたいと思います。
このエラーマークが付く理由(エラーメッセージ)の確認は、
エラーマークにマウスのポインターを重ねる(ホバーする)ことで表示されます。

![IMG-StartNodeと接続なしMSG例](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614942/a83e04dd-3991-0299-fe4a-80b01d72a0a0.png "StartNode接続なしMSG")


上記を例に説明すると、
「フローチャート 'フローチャート'には、StartNodeがありません。」の部分がエラーメッセージとなります。
これを確認することで、なぜエラーマークが付いているのかといった理由を知れるわけです。

ここでは、StartNodeがない → 実行するアクティビティを接続していないから
とエラーマークが付いている理由を特定することが出来ます。

# エラー要因のある場所を特定する際のポイント
次に、エラー要因場所の特定方法について、まとめていきたいと思います。

「さっきのエラーマークが付いている場所にあるんじゃないの？」
と思われた方もいらっしゃるでしょう。

もちろん、エラーマークが示すアクティビティが、エラー発生の要因がある場合がほとんどですが、

以下のような「1つ以上の子に検証エラーまたは警告があります。」というエラーメッセージが表示される時、
マークが付いているそのアクティビティ自体が問題ではありません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614942/9c61745c-2a4d-ad2f-e9a7-583480431c85.png)


「1つ以上の子に検証エラーまたは警告があります。」というエラーメッセージ内容から
察することのできる方もいらっしゃると思いますが、このエラーは、

マークの付いたアクティビティ内にある中のアクティビティにエラーが発生している

という内容になります。

従って、上記のメッセージが出た場合は、

「**表示されているエラーマークの一番深い階層にあるエラーマークの部分を見つけ出すこと**」

がエラー解決へ向けたのコツの１つとなってきます。

上記のワークフローは、
とあるウェブサイトを開いて、PDFファイルのダウンロードを行う処理を行っているのですが、
そのワークフローを例に詳細に見ていきましょう。
(※WebからPDFを保存する流れをレコーディング機能を使用して作成しましたが、
今回の記事のため、一部アクティビティを手動で追加しエラーとなるように作成しました。）

先ほど、「フローチャート」のエラーマークのエラーメッセージは確認したので、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614942/666debe8-1968-2b5b-5360-93b8896d2b7f.png)　
フローチャートの中にある、
「Web」と記載された部分(以下、「Web」シーケンス)にあるエラーマークの内容を確認しましょう。

「Web」シーケンスをダブルクリックして、展開してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614942/f07b1d47-fc89-9d3b-4269-15927252198e.png)


すると、エラーマークは、この時点で3つ表示されてしまいました。
でも、「エラーがいっぱいだ、、」と焦る必要はありません。

それぞれのエラーマークにマウスを重ねて、エラーメッセージを確認してみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614942/6672d73b-238b-ae80-d9bc-5f61fd96539c.png)

3つのうち、上位の2つ(①、②)は、「1つ以上の子に検証エラーまたは警告があります。」という内容であるのに対し、
③は、全く内容の異なるエラーメッセージになっています。

「式"C:\TEMP\" + …(中略)…'Date'から'String'への暗黙の型変換はできません。」

簡単に言い換えると、
左辺値(Toの部分)はString(文字列)型の変数であるのに対し、右辺値がDate(=日付)型が混じっているため、
「代入できないよー」というメッセージ内容になっています。

したがって、この場合は、「Datetime.Now」の部分を「Datetime.Now.ToString」にして、
Date型になっていたところをString型になるように設定し直せば、エラーを解決することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614942/c829d4e2-df64-5df3-3955-3ee5b4567907.png)


以上のように、エラーマークがあっても「1つ以上の子に検証エラーまたは警告があります。」の場合は、
そのエラーマークが付いたそのアクティビティではなく、そのアクティビティ内部にあるアクティビティに
エラー要因があります。

なので、一番深い階層にあるエラーマークであるかをエラーメッセージをみて、確認することが大切です。

強いては、

エラーマークが複数個表示された状態になったら、
そのエラーマークのうち、一番深い階層となるエラーマークから確認していくことを意識すれば、
より早くエラーを解決できるようになると思います。



#<まとめ>
エラーマークが付いてしまっていたら、

・エラーマークにマウスを重ねて、エラーメッセージを確認する
・エラーマークがたくさんあったら、そのエラーマークの内の一番深い階層のエラーマークから確認していく

以上のことを意識するだけで、エラーマークが付いたときに解決する方法を見つけ出せるはずです◎

---
#最後に
確認すべきことは分かったけど、エラーメッセージの内容を見ても「わからない」と思っている方は、
次の「エラーマークのエラーメッセージのよくある例」を紹介した記事も
併せてご参照いただければなーと思います。
[(初心者向け)【UiPath】エラー解決へ向けたポイント・コツその②_エラーマーク後編](https://qiita.com/chi_inamori/private/7da36d8071e3e8c6ab4d)

最後までお付き合いいただきありがとうございました！