はじめに
本記事では、ASTERIA WarpのSlackDeleteを用いてSlackのメッセージを削除するフローと手順を解説します。今回は前回解説したSlackGetによってTimestampを取得することで、それを使用してメッセージを削除します。
SlackDeleteについて
Slackに投稿されたメッセージをタイムスタンプで指定して削除します。
SlackDeleteのプロパティ設定
SlackDeleteのプロパティにおいて設定した項目は以下の通りです。これらを設定することで、Slackに投稿されたメッセージを削除できます。ここで設定していない項目はデフォルトの値を使用しています。
- コネクションを使用:はい(コネクションを使用して接続する場合は必ず「はい」にします)
- コネクション名:使用するSlackコネクション名を入力します。(Slackその①で使用したコネクションを引き続き使用できます)

※SlackDeleteではメッセージのタイムスタンプで削除するメッセージを指定するのですが、SlackDeleteのプロパティではタイムスタンプを指定できません。今回はSlackDeleteより前のSlackGetで取得したタイムスタンプをストリームから取得する予定です。
今回使用するフローの解説
SlackDeleteを用いてSlackからメッセージを削除するため、下図のフローを作成しました。フローの実行後、Slackを確認すると指定したメッセージが削除されています。

削除対象のSlackに投稿されたメッセージ
今回は下図にある3件のメッセージを削除する想定で進めます。(Slackのメッセージはこの3件以外には存在しないものとして進めます)

SlackGet
SlackDeleteで削除するメッセージを指定するためのTimestampを取得します。Slackからプロパティで指定した範囲のメッセージを取得する際にTimestampも取得できるので、ここではプロパティで削除したいメッセージを取得するように設定します。
今回は10:53と11:00に投稿されたメッセージを取得したいので、プロパティを下図の通りに設定しました。

マッパー(SlackGetの後)
前のSlackGetで取得した値の中からTimestampを次のSlackDeleteにストリームで渡します。これでSlackDeleteで削除するメッセージを指定できます。
また、ここで条件付きレイヤーを使用することで、さらに削除するメッセージの絞り込みを行うことができます。このマッパーの前にRecordFilterを使用しても絞り込みを行えます。この件はフローの実行結果の後に解説します。

SlackDelete
「SlackDeleteのプロパティ」の画像にあるように、コネクションを使用する場合はSlackDeleteのプロパティで設定する項目は「コネクションを使用」と「(使用する)コネクション」だけです。(下のエラー処理は今回設定しません)
直前のマッパーから受け取ったTimestampを使用してSlackに投稿されたメッセージを削除します。
マッパー(SlackDeleteの後)
SlackDeleteから出力された「IsSuccess(メッセージ削除の成否)」と「Timestamp(削除したメッセージのタイムスタンプ)」をconcatでつなげて1行ごとに改行ながら出力します。IsSuccess,Timestampの順番で出力されます。

実行結果
フロー実行時の表示は下図のようになります。SlackDeleteの後のマッパーで設定していた通り、「IsSuccess,Timestamp」の形で出力されます。
IsSuccessがTrueになっているのでメッセージは3件とも削除に成功しており、この後Slackを確認したところ実際に指定したメッセージは削除されていました。

---------------------
SlackGetで取得したメッセージをRecordFilterや条件付きマッパーでさらに絞り込む方法
SlackGetで取得する日時や件数以外で絞り込みを行いたい場合、取得してからRecordFilterや条件付きマッパーで対象から外す手法で絞り込みを行えます。
例えば下図のように投稿された時間が同じメッセージで日時や件数での指定が難しい中央のメッセージ(SlackPost_HabukuMessage)だけを取得してSlackDeleteで削除できます。

絞り込みに使用するフローの解説
RecordFilterと最初のマッパーに条件付きレイヤーを追加しただけで、他は今回のフローと同じです。SlackGetで取得した後に、RecordFilterとマッパーの条件付きレイヤーで絞り込みを行っています。

RecordFilterとマッパー(SlackDeleteの前)の設定
条件式での絞り込みを行います。RecordFilterでは2、条件付きレイヤーでは1が含まれないメッセージをのみを処理対象にするように設定しているので、RecordFilterではSlackPost_NokosuMessage_2が、条件付きレイヤーではSlackPost_NokosuMessage_1が削除対象から外されます。


実行結果
実行結果から1件だけ削除されていることが確認できます。

また、Slackを確認しても中央のメッセージ(SlackPost_HabukuMessage)のみが削除されていることが確認できます。
