Interactive Forms
Automation360 では、Interactive Formsというフォーム作成機能があります。
この機能を使うことで、通常だと、メッセージボックス程度しか持たないAttended型のボットに対して、
実行者とボット間で様々なデータの双方向でのやり取りが可能となります。
活用例としては、
- ボット実行時に、そのボットで利用するデータを指定する
- ボット実行時に、そのボットの挙動を変えるパラメータを指定する
- 様々なタスクボットのランチャーとして
- 処理中データを確認し、次のアクションを指示する
といったケースで活用できます。
フォームビルダ
テキストボックスやボタンだけでなく、ロカールPC上のファイルの選択や、画像/PDFを表示するコンポーネントがあり、
Automation360 のボット開発と同じく、ドラッグ&ドロップで配置、パラメータを指定する形となっています。
ユーザーインターフェースに日本語を使う場合の注意
フォーム上利用されるフォントが、デフォルトでは英語用の物となっていますので、
下記の様に、「System default」を選択してください。
トリガーループ
作成したフォームは、「Interactive Forms」パッケージのDisplayアクション等を利用して表示しますが、
ユーザー等のアクションを待つために、「トリガーループ」パッケージを利用します。
フォーム上の操作だけでなく、メールの着信や新規ファイル作成、ショートカットキーなどもトリガーとすることも出来ます。
メール配信用ボット
Interactive Formsを利用し、メール配信用のボットを作成してみました。
ここまで行くと、ボットなのか、アプリケーションなのか分からない位ですけど・・・
メール配信用ボットで実装する機能
まず、どんな機能を持たせるのかを考えます。
とりあえずは、下記の様な感じにしてみることにします。
- エクセルに含まれる、会社名、氏名、メールアドレスを使ったメール配信
- エクセルファイルのGUIを使った選択
- フォーム上で、件名と本文が編集できる事
- 会社名と氏名については、本文の中でタグを埋め込み、送信時に変換されること。
- エクセルテンプレートファイルの表示
メール配信用ボット フォーム
日本語使えない人が使うことも想定し、日英併記にしてみました。
会社名と受取人名のボタンは、押すと本文にタグが追加される想定です。
メール配信用ボット ボット側処理
全体像。
一番右側のトリガーループ - ハンドラーの中身が実際のメール送信処理です。
ハンドラー処理、左側三つ。
一番左は、閉じるボタンの処理なので、単にBreakが入っています。
その横二つは、会社名と受取人名のタグ追加ボタン。フォーム上の本文にタグを追加する処理を入れてます。それぞれ1アクションで完了。
その右は、テンプレートのエクセルファイルを開く処理。
テンプレートファイルは依存関係ファイルとしてControl Roomに入れたものをエクセルで開いています。
これも1アクションで完了。
配信先ファイルの選択。
これも、フォーム上にあるコントロールの値を取ってくるだけです。
このファイルを選択したよというメッセージボックス入れても、2アクション。非常に簡単。
そして、メインの処理部分です。
まず、フォームから件名と本文を持ってきています。
そして、IFを利用し、エクセルファイルが選択されてなければメッセージを出して完了。
エクセルが指定されていれば、ファイルを開いてループ処理しています。
ループの冒頭は、エクセルのデータを使って、本文に含まれるタグを置き換えています。
テンプレートを開くときには「Excelの高度な操作」を使っていましたが、ここでは「Excelの基本操作。」 何故かというと、テンプレートはエクセルアプリでテンプレートを表示したいから。(そうしないと名前を付けて保存ができない。) 逆に、実際の送信時は、別にエクセルアプリを開く必要ないですし、高度な操作も不要なので基本で。
メール送信アクションのプロパティーもこんな感じでいたってシンプル。
もちろん、このアクションを変更して、SMTPやEWS接続にすれば、メール送信者のアドレスを指定することも可能。
メール配信用ボット 実行イメージ
実行するとこのようなフォームが表示されますので、必要な情報を入力します。
送信前の内容確認。
ここで、実際に送信するのか、戻るのかを表示する別のフォームを入れてもよいかもしれませんね・・・
着信したメール
まとめ
非常に簡単にBotにユーザーインターフェースを付けることが出来ます。
Attended型のBotでできる幅が広がりますので、是非試して頂ければと思います。