こんにちは。
Slackのワークフローとgoogleのスプレッドシート(お前Sheetsっていうんか)で課題管理システム作っていて、困ったことがあったので、その事象と回避策をメモがてら残す。
やりたかったこと
- slackWFでフォームを記入
- 記入した内容をスプレッドシートに追加
- そのタイムスタンプを使って色々
- botによる投稿への返信
- シート上で課題の追加時間と終了時間から対応にかかった時間を出す。
etc….
メッセージのタイムスタンプをシートに書き込もうとしたら文字列になった。
タイトル通り。
スプシのセルに日付を書き込み、セルをクリックすると画像のようにカレンダーが出てきて日付を選択できる。
これはスプレッドシートの中で日付型として扱われていると認識している。
ところがワークフローから追加をすると
画像だとわからないが、文字列として扱われている。というかスプシはこの形式をサポートしてない。これだとgasで列の内容を取得したときに日付として扱ってくれない。(今思えばgasで日付に変換しても良かったな)
セルの表示形式を変更してもうんともすんとも言わないので困った。
ワークフローから追記するときに 数式を指定した
date型の日付を表示する列とは別に、unixタイムスタンプを記入する用の列を作成。
Slackのワークフローから列追加するステップの内容は以下の通りにする
追加する数式は以下。INDEXの引数は任意の列にしてください。
=DATE(1970,1,1) + INDEX(D:D, ROW())/86400
見事日付に。
Slackのワークフローの入力欄って普通のテキストも入力できるんだね。今まで変数代入してたから気が付かなかった。
感想
まさかこんなところで躓くとは。といった感じ。(ほんと2日ぐらい試行錯誤してた)
WFとスプシの連携は非エンジニアにも優しいかと思いきや思わぬ落とし穴だなと思った。こ~~~れなんとかしてくれませんかねslackさん。