やりたいこと

基礎#3で作成したGoogleスプレッドシートを検索し、3体全てのポケモンの名前を、1つのメッセージで、Slackに送信しようと思います。

以下、見出し等の[数字]の数字は、モジュールの番号と対応しています。

Googleスプレッドシートを検索[1]

Googleスプレッドシートには、ポケモンが3体しかいないので、「Filter」はかけないで、全ての行を検索します。

実行後は、行毎にBundleに分かれ、それぞれのBundleに「name」や「height」等のカラム名とその値が出力されています。

Array aggregator[2]

Bundleが分かれているままだと、それぞれの内容をSlackでメッセージを送る場合も、それぞれを別で送る必要が生じます。

そこで、配列をBundleに分割する「Iterator」とは逆で、複数のBundleを配列に統合する「Flow Control」の「Array aggregator」モジュールを使います。

配列に統合するに当たり必要な「name (B)」を選択すると、「name (B)」をキー、それぞれのポケモンの名前を値とするコレクションを要素とした配列が出力されます。

変数を定義[4]

「Tools」の「Set variable」モジュールでは、配列の要素がコレクションだと扱いづらいので、それぞれのポケモンの名前だけを抜き出して要素とした新しい配列を作り、変数に入れます。

map関数を使うと、コレクションを要素とする配列と、抜き出したい値のキーを指定することで、抜き出したい値のみからなる配列を作ることができます。

本来、抜き出したい値のキーは「name (B)」なのですが、キーの間に半角スペースがあるからなのか、[4]には、キーが「1」として送られてきているので、map関数のキーには「1」を指定します。

Slackでメッセージを送信[3]

Slackの「Create a message」モジュールでは、join関数を使い、配列を1つのテキストの変換することで、1つのメッセージに含めて、メッセージを送信できるようになりました。

以上、Aggregatorと変数の定義、Functionについてのご紹介でした。