ブラウザーからフローを実行したときのエラーページをカスタマイズしてみる

# はじめに
URL実行設定したフローをブラウザーから実行したときに、たまに以下のようなページが表示されることがあります。
![url_error03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180292/5461ef6c-7252-3d7f-7190-a54ebc212e61.png)
![url_error04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180292/039da6a9-015e-a2cc-82da-cc0984548c1b.png)

フロー実行中にエラーになったときはブラウザーに返すページをエラー処理フローなどで作り込むことができますが、フローのタイムアウトやコンパイルエラーが発生しているときにはこのページが表示されることがあります。
今回はこのエラーページをカスタマイズしてみます。

# 環境
+ OS: Windows10
+ Java:1.8.0.311
+ ASTERIA Warp : 2106 (Standard)

# 準備１ ~テンプレートファイルの作成~
[ASTERIA Warp Developer Network Slack](https://aug.asteria.jp/adn-slack/)にある過去資料によると、
![url_error01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180292/d280c2ed-5f27-7d74-3598-9e8df69e3cac.png)

以下ファイルをもとに表示されているようです。

+ [DATA_DIR]/system/htdocs/errorpage.vm

最近のバージョンではこのファイルが見当たらなくなっていますが、同じ場所にファイルを配置すれば読み込んでくれるようです。

![url_error07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180292/8ba7c2cd-2000-52d5-bf41-edb1356f482f.png)

ADN Slackにある過去資料を参考に以下のようなファイルを置いてみました。

```html:errorpage.vm
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=$charset">
<title>$title</title>
</head>
<body>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="100%" height="100%">
<p align="center"><img border="0" src="/FlowService/images/2021AdventCal.jpg" width="158" height="81"></p>
<p align="center"><font size="2">絵心なくてスミマセン m(__)m</font></p>
<p align="center"><b><font size="5" face="Arial, Helvetica, sans-serif" color="#330099">$title</font></b></p>
<p align="center">$message</p>
</td>
</tr>
</table>
</center>
</div>
</body>
</html
```

もともと配置されていたテンプレートファイルにはメッセージやタイトルなどがVelocityで埋め込まれているようですが、これに関するドキュメントは公開されていないようです。
今回はロゴの画像を入れ替えて固定文字を追加してみました。

# 準備２ ~画像ファイルの作成~

画像ファイルは[DATA_DIR]/system/htdocs/image フォルダーに置いておくとよいようです。
絵心なくてすみませんが、適当にフローのアイコンで作った画像ファイルを置いておきました。
![url_error05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180292/06a97f56-a87a-136f-08cb-de863d4e388c.png)

![url_error06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180292/c461f67b-dc50-a324-5f3a-3aeea352eb84.png)


# 動作確認
1.以下２つのフローを作成

+ RDBコネクションを指定していないRDBGetコンポーネントを配置したフロー
![url_error08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180292/943896eb-ad7e-5d9e-c2f6-25ecd5c653bb.png)

+ フローのタイムアウトプロパティより長いスリープ時間を指定したSleepコンポーネントを配置したフロー
![url_error11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180292/4b071d9c-e3dd-5028-5048-7e446a57dcad.png)

2.そのフローにURL実行設定を設定してブラウザから実行
![url_error12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180292/d43974d9-5d14-a636-f23d-8199cd38c833.png)

ブラウザーに表示されるエラーページの画像がかわりました！
![url_error14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180292/0db439df-5488-7219-fc97-24467d6599e0.png)
![url_error15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/180292/57db038c-5abe-1271-8597-fbb17ccbf9b7.png)

# おわりに
エラーページのカスタマイズはページの表示だけですが自己責任の範疇になると思います。ファイルを削除すれば、もとのエラーページの表示に戻るようです。

フロー実行時のエラーはエラー処理フローでハンドリングするのがよいと思いますが、フローのタイムアウトなどで表示されるエラーページのロゴなどをかえたいといったときに参考になれば幸いです。