新しい組織へ異動して最初に驚いたのは、全員が手作業を甘んじて受け入れる文化でした(;´・ω・)
たとえば、Microsoft TEAMSのチャンネルに当日のやり取りをするためのスレッドを作成するために、特定の人が毎朝作成する運用をしていました。
ダメじゃないんですが自分の中に凝り固まっている定石から真逆なのでかなり戸惑っています。とはいえこういうのって機械に自動的にやらせたほうが良いと思うんですよね…。
と思いながら組んでみましたが、なるほど日付形式は知らないとできないよな~と思うので残しておこうと思います。
どうして手作業よりもプログラムがいいの?
個人的に手作業を厭う理由は2つあります(挙げ始めるとキリがないですが真っ先に思いつくのが2つ)。
1つは、手作業は誰かの犠牲の上に成立します。
今回のケースは単純作業なので、この運用をしている人が急に休んだとしても他の人がカバーしてくれるでしょう。
ですが、これがもっと大きい仕事だったら、これがもっと複雑で替えが効かない仕事だったとしたら、運用者へかかる精神的&肉体的負担は周囲の想像以上に大きくなります。
そして運用者の犠牲の上に成り立つ運用は必ず限界(終焉)を迎えます(←まさに前組織を終焉させたヤツ(;´・ω・)
2つめは無駄な時間の発生です。
仮に今回の単純な誰でもできる作業が1日に2分かかったとします。
これを積み上げると、1か月20日で40分、年間12か月で480分=8時間=1人日にもなります。
は?1年でたった1人日ならえーやん?と思われるかもしれませんが、こういった作業が存在する部署って次から次にそのような作業が出てきます(;´・ω・)
なので1つずつ解いていくことで結果として簡単に工数を確保していくことができます( *´艸`)
今回の場合、前任の管理職がコレ(毎日スレッドを作る運用)をやっているというビックリ組織でして…(;・∀・)
普通のエンジニアの1人日を確保するよりもずっと大きな1人日を確保することができました(*^^)v
Microsoft TEAMSのチャネルに日付入りのスレッドを毎日立てる
今回は、こんなスレッドを毎日自動的に立てるFlowを作成します。
Microsoft PowerAutomateを開き、スケジュールフローを新規に作成します。
フロー名、開始日と開始時刻、繰り返し間隔を設定します。
新しいステップ(アクションを追加)を選び、Datetimeの「タイムゾーンの変換」を作成します。
Base Timeの関数(fx)を開き「utcNow()」を追加、Source TimeZoneは「UTC」、Destination TimeZoneは「(UTC+09:00) Osaka, Sapporo, Tokyo」
を選択します。
さらに新しいステップ(アクションを追加)を選び、Microsoft Teamsの「チャットやチャネルにカードを投稿する」を作成します。
今回はチャネルに件名のあるスレッドを投稿しますので、投稿者をユーザー、投稿先をChannelを選び、TeamとChannelを選択します。Messageには前ステップのデーターをそのまま引用しておきます。
件名を使用するには、投稿者はbotでは使えなくなりユーザーを使用する必要があります(2024.10現在)。
この状態で、まず仮テストを実施します。
スレッドが作成されました。
ここまでの作業で、スケジュールに沿ってこのスレッドが立つところまでできました。
日付の形式が"月/日/年"の形式となっているので、この後は日付を目的の形式に修正していきます。
PowerAutomateで出力する日付を好みの形式でTEAMSに投稿する
既定で登録されている形式で構わない場合は、ステップ「タイムゾーンの変換」のTime Unitから選択します。
今回作成したい形式"2024年xx月xx日(曜日)"や"xx/xx"の形式はこの一覧にないので、TEAMS投稿時に手を入れます。
「タイムゾーンの変換」で変換している日本時間をベースに、次の変数を組合わせて使用します。
・yyyy:年(西暦)
・MM:月
・dd:日
・ddd:曜日
本文は「月/日のスレッドです。」のとしたいので、関数の入力を開き"formatDateTime(body('タイム_ゾーンの変換'),'MM/dd')"を追加します。
それに続け"のスレッドです。"をベタで入力します。
続けてSubjectを修正します。
関数の入力を開き"formatDateTime(body('タイム_ゾーンの変換'),'yyyy年MM月dd日(ddd)','ja-jp')"を追加し、続けて"のスレッド"とベタで入力します。
3つ目の引数'ja-jp'をつけることで日本語で曜日を表示させています。
これをしないと、WedやFriなど英語表記されてしまいます。
ここまでの修正を終えて、改めてテストすると目的のスレッドが作成されるようになります(=゚ω゚)ノ
まとめ
この程度の作業であれば4~5分あれば作成できます。
これで毎日2分程度の作業が無くなるのですから、2日でモトがとれる作業とも言えます。
幸い、実務面はメンバーたちが自発的に対応する文化のある組織でしたので、僕のほうではこんな感じでちょっとずつ管理職の負荷を下げながら、本来やらないといけない仕事に取り組んでいこうと思います(;´・ω・)