2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Automation360 - タスクボット間のデータの受け渡し

Last updated at Posted at 2020-10-09

タスクBotコマンドを利用した子ボット実行時のデータ受け渡し

ボットを開発するうえでメンテナンス性を高めるために、特定の処理を一つのタスクボットとして開発し、
それを他のタスクボットから呼び出すといった処理を良く実装するかと思います。
イメージとしてはこんな感じ。
image.png

どうやってデータを渡す?

ここで問題になってくるのが、どうやったら親タスクボットから子タスクボットにデータを渡せるのか。
そして、その逆に、子タスクボットからのデータを親タスクボットに戻すことが出来るのか。
ちょっと分かりづらいので、開発の流れをで書いていきます。

手順1. 子ボットで変数を作る。

まず、子ボットの中で変数を作ります。

変数名は何でもよいのですが、ここでは「Input変数」という名前で変数を作成し、「入力として使用」にチェックを入れました。
これが、親ボットからの入力を受ける変数となります。
image.png

次に、「Output変数」という名前の変数を作成し、「出力として使用」にチェックを入れました。
こうすることで、子ボットでこの変数に設定した値が親ボットへ戻されることになります。
image.png

子ボットとしては、親からの入力をメッセージボックスで表示し、文字列を「Output変数」に設定する単純なものを作りました。
image.png

手順2. 親ボットを作る

次に、親ボットから子ボットを呼び出す処理を作ります。

パラメータで子ボットを選択すると、子ボットの中で「入力として使用」にチェックを入れた変数が表示されますので、
ここで渡したい値を設定します。
image.png

そして、パラメータの一番下の部分で、ディクショナリ型の変数を作成して割り当てます。
子ボットからの戻りはこのディクショナリ型変数に入ります。
image.png

今回は、どの様に戻ってきているのかを確認しやすいよう、Bot StoreからダウンロードしたJavaFXパッケージを利用してディクショナリ変数の値を表示します。
image.png

手順3. 実行してみます。

親ボットを実行すると、子ボットが呼び出されメッセージボックスに親ボットで設定した値が表示されます。
image.png

そして、その次に、親ボットのJavaFXパッケージのDictionary Viewで子ボットから戻ってきた内容が表示されます。
Keyとして変数名、Valueとして子ボットで変数に設定した値が入っていることが確認できます。
image.png

まとめ

公式のドキュメントを見ても少し分かりづらい部分なのですが、

  • 子ボットの中で設定したインプット用変数に親ボットからの入力が渡る
  • 子ボットの中で設定したアウトプット用変数に親ボットに渡したいデータを設定する
  • 親ボットでは、ディクショナリ変数で子ボットからの戻りを受ける
    という形になります。
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?