#1. やりたいこと
私は日々業務の記録のために、OneNoteにメモを残しています。
その日何やったかすぐ忘れるので。
これまでは、ページのテンプレートを用意しておいて、毎日テンプレートをコピペして使っていました。
タイトルの年月日部分を手入力していたのでたまに日付を間違うし、
ページをコピペすることを忘れて前日のページに書き込んじゃったり、グダグダでした。
なので、これくらいPower Automateで自動化しようと固く決意した矢先、
IT弱者の私は意外と躓いたので、ここに記録しておきます。
ざっくり実現したいことの要素は以下 3 点です。
1.毎日自動でOneNoteのページを作成する
2.タイトルに当日の年月日を入力する
3.ページ本文中に、テンプレート文章を入力する
※失敗例から記載していくので、結果的にどうやって実現したか、については「試行 その3」をご参照ください
#2. 試行 その1
Power Automate のアクションに、丁度「セクションにページを作成」があったので、
なるほどこれねと思い作成してみました。
”ページコンテンツ” 項目でページの内容を指定する、、、
はずなんだけど、タイトルってどうやって指定したら、、、
タイトルが無いのと、 「"」 てなんだろう。「"」 て。
とりあえずの初回チャレンジとしては、実現したいことの 1 と 3 までは何とかできそう。
実現したいことその 2 の、タイトルに年月日を入力する方法は継続要検討。
#3. 試行 その2
Power Automate アクションに、「作成」があるなら「更新」もあるはず!
であれば、更新のアクションで、タイトルを付けられればよいのではと。
探してみるとやはりありました 「ページのコンテンツの更新(プレビュー)」
これで目的達成できるはず!
上の「更新 ターゲット - 1」項目に、”ページのタイトル” の動的コンテンツを指定。
「更新 コンテンツ - 1」項目に、いい感じに当日の年月日を指定できれば、実現できそう。
「更新 アクション- 1」「更新 場所 - 1」項目の指定の仕方が正しいか不安ですが、とりあえず実行してみます。
**「更新対象が見つかんないよ」**って怒られています。
「更新 ターゲット - 1」項目で、動的コンテンツとして「ページのタイトル」を指定したつもりでしたが、、、
実行結果の [入力] - [更新] 内容を見てみると、下の通り 「”target”: "" 」と値が何も入ってきていないので、
これだと、"判断するための情報が無いので、どのページを更新するのか特定できませんよ" ってことですかねきっと。
確かに、「ページの作成」アクションで実際作成されたページのタイトルはブランクだったし、
出力結果も、下の通りタイトルに値は何もないし。
入ってくる情報が無いから、ページの特定はできないのはしょうがないのか。
ここからどうしたらいいか分からん、、、
とりあえず、「ページのコンテンツの更新」アクションで、タイトルに年月日を入力する試みは諦めます。。。
#4. 試行 その3
で、調べると、そもそも「セクションにページを作成」アクションでページタイトルが指定できないことはMSの公式ページにちゃんと書いてありました。
Title:Known Issues and Limitations
https://docs.microsoft.com/ja-jp/connectors/onenote/#update-page-content
”The connector currently does not support an explicit input parameter Page Title for the Create Page actions. This is a limitation arising from the OneNote API implementation. However, the title can be specified as a part of the Page Content in HTML by using the tags.”
意訳:今はページタイトルはサポートしてないから、タイトル作りたかったら、 HTML 使ってね。
つまりは、下の通りここから HTML でどうこうする必要がありますよと。なるほど。
HTML詳しくないのですが、「ページ コンテンツを取得」アクションで取得できるページ情報を参考にしつつ、
下の <title></title> の間に値を入れられればやりたいことができそう。
なので、下の通りとりあえず上の [出力] - [body] の内容をほぼほぼまるコピして、
「セクションにページを作成」アクションの中にぶち込んでやりました。
加えて、title 部分に 「@{convertFromUtc(utcNow(),'Tokyo Standard Time','yyyyMMdd')}」を書いて、
いい感じに日付が入るようにしてみました。
(書き方が汚いのはすみません、HTMLについてちゃんと調べたりしていないので、完全にてきとーです)
んー、、、惜しい!
ページ本文中にゴミが残っていますが、タイトルには想定通り年月日が入ったし、
本文中にテンプレの文言も入ってるし。
自分で使うだけだし目的は達成できたことにしましょう! 笑
さようなら