ore-omocha-tukuru
ore-omocha-tukuru
おもちゃ
2 posts
素人が作ったおもちゃの紹介と中身がどうなっているのか書きたくなったので書きました
Don't wanna be here? Send us removal request.
ore-omocha-tukuru · 2 years ago
Text
朝の4時に4種類のうちいずれかのメールを定期的に送信するフロー
おはよう!朝の4時になにしているんだい?ネタをやりたいかったので組みました。相変わらずPowrtAutomateで作ってます。
やってること ①毎日朝の4時にフローが起動します。 ②送りたいメールの内容を用意します。 ③rand関数でインデックスを用意します。 ④インデックスを文字列に変換します。 ⑤②で作ったデータ群の中から④で変換したインデックス番目の内容を引っ張りだします。 ⑥メールを送ります。
フローの全体図
Tumblr media
①トリガー
Tumblr media
どのタイミングでこのフローを起動させるのか設定する項目です。 毎日同じ時間に起動するタイプのトリガーなので、前回とはアイコンが変わってます(時計マークになってる)
毎日UTC(協定世界時/グリニッジ標準時間)の19時に起動します。 UTCの19時ってなにって話なんですけど、日本時間の朝4時です。 日本時間の4時と設定もできるけど、ただUTCと日本時間の時差が9時間あるので日本時間の9時より前だとUTC時間でまだ日付が変わってなくて…みたいな感じでなんか面倒なことになるかもしれない、ならないかもしれない…たしかめるのが面倒なので今回はそのままUTCで設定しました。 日本時間の朝9時5分以降にルーチンさせたいなら普通に日本時間で設定して問題ないです。 (5分以降というのは、PowerAutometeはMicrosoftの障害に巻きこまれて起動が遅れたりする場合があるので、それをなるべく回避するためです)
②変数を初期化する(メールの送信内容の設定)
Tumblr media Tumblr media
↑は関数を入力している部分です。関数って何って話なんですけど、1+1の【+】の部分みたいな存在です。Excelの関数と同じです。 SUM(A1:C1)でA1からC1の範囲の合計数を表示する、みたいなやつのSUMの部分が関数。
この項目で入力している式は utcNow('yyyy年MM月dd日HH時mm分') convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time','MM月dd日HH時mm分') ↑の2種類です。それぞれだいたい以下のような内容です。 utcNow() :UTC時間の現在時間を取得して年月日時分の形式で表示してくれっといった内容 convertTimeZone():utcNow()で取得した時間を日本時間(Tokyo Standard Time)に変換して月日時分で表示してくれといった内容
<br> メッセージの途中でちょこちょこはいるこれは改行コードです。メール送信(受信)時に改行されます。
今回、この変数はオブジェクト形式で作成されていますが、なぜ前回と同じ配列形式で記載しなかったかは、飲酒しながら思いつくままに作っているので正直覚えていないです。たぶんJSON形式で描きたかっただけだと思う。
③インデックス
Tumblr media
入力式: rand(0,4)   前回と同じrand関数でJSONのインデックスをランダムに決定させます。
④インデックスを文字列形式に変換します。
Tumblr media
入力式: string(variables('インデックス')) 配列のインデックスの場合は整数型で指定する必要がありますが、今回はオブジェクト変数の見出しを文字列で設定したので、インデックスの方も文字列に変更する必要があるっぽいです(うろ覚え)
Tumblr media
↑のメッセージ設定項目で見出し部分の数字を「”」(ダブルコーテーション)で囲ってます。これをすると、PowerAutomateの場合、これは文字列です。みたいな意味になります。なので、ここでこんなことしてるので④の工程が発生しているんだと思います。
そもそも④と③はひとつのアクションに圧縮できた。 string(rand(0,4))←こんな感じでひとつの式でまとめられたのに、無駄にアクション数を増やしてしまっている。 素人の手作り感あふれるフローとなっております。
⑤ ②で作ったメッセージ一覧の中から④で変換したインデックス番目の内容を引っ張りだします
Tumblr media
入力式: variables('メッセージ')?[outputs('作成')] ②で作ったメッセージ一覧の中から④で変換したインデックス番目の内容を引っ張りだしてます。
⑥メール送信
Tumblr media Tumblr media
出力の部分は⑤のひっぱってきたデータをここに表示します、マークです。 式で表すとoutputs('作成_2')
0 notes
ore-omocha-tukuru · 2 years ago
Text
博士がたまにいいねというフロー
まずこればMicrosoftが提供しているMicrosoft Power Automateというローコード開発ツールで作られています。 Microsoftアカウントを持っていれば (優良版と比べていろいろ制限あるけど) 無料で遊べます。
ローコード開発ツールというのはプログラマーじゃない人間でも比較的簡単にプログラムが組めるサービスの総称です。RPAとか言われたりもする。
--------------------------------------------------------------------------------
このフロー(プログラム)について
だいたいこんな感じで動いています。 ①手動でフロー(プログラム)を起動します。 ②rand関数で配列のインデックスをランダムに決めます。 ③博士に行ってほしいセリフを設定します。 ④配列変数にインデックスをくっつけて、終わり
フローの全体図
Tumblr media
①トリガー
Tumblr media
まずこのフローがどんなタイミングで起動するか決めます。 毎日●時●分に起動とか、●●ってタイトルのメールが届いた時に起動、とか色々選べるけど、今回は自分で起動ボタンを押したときにだけ起動するような設定になってます。
②rand関数の設定
Tumblr media Tumblr media
設定式↑
③の配列テスト変数の中に設定されている中身のうち、どの中身を引っ張り出すか決めるために使用します。
rand関数の最大値は結果の最大値+1した数じゃないといけないらしい。
https://learn.microsoft.com/ja-jp/azure/logic-apps/workflow-definition-language-functions-reference#rand
③配列変数にお好みの文字列を設定します。
Tumblr media
変数っていうのはデータを入れておく箱みたいな存在です。 配列は仕切りのある箱みたいなイメージの変数です。
配列タイプの変数にはインデックスっていう目印が自動的に用意されるので、インデックスをランダムに決めることで最終的に処理結果をランダムにしよう!って感じの処理をこのフローではやってます。
慣れるけど、PowerAutomete上で配列をアレイといったりArrayといったり表記のブレが凄い。配列に限らず日本語と英語がごちゃ混ぜで草。英語全然わからん。
④配列にインデックスをくっつけます。
Tumblr media Tumblr media
表示しきれなかった
式の全体図は↓です variables('配列テスト')?[variables('ランダム結果')]
配列テスト変数の中からランダム結果で出た番号の区画に収まってる中身を引っ張り出します。
最終的にこう、ランダムな結果が得られる↓
Tumblr media Tumblr media Tumblr media Tumblr media
0 notes