OneDriveのモジュールとトリガーにファイルに変更があったら -> 何かするを作ろうとし
てますがちょっとよくわからない挙動に当たったのでメモがてら記録しておきます。
Power Automate(クラウドフロー・DPA)での話です。 PADではないので悪しからず。
まずは通常の使い方から
動的コンテンツ(変数的なものだと思ってます。)のファイル名にファイル名が入ってきますが、以下のように<ファイル名>が更新されたよなどと入れておくと、例えばbook.xlsxを変更した場合、book.xlsxが更新されたよの文字列が送られてきます。
<ファイル名>のみで扱うとバグる?
特定のファイル名だったら何か処理をする、を実装する場合、以下のようにすると思います。
例えばbook.xlsxが変更された場合
ただこれだとfalseに行ってしまい、中身を確認するとYm9vay54bHN4といった文字列になっていました。
条件を<ファイル名>がYm9vay54bHN4だったらに変更してみたら...
まさかのtrue。
ということでbook.xlsxはYm9vay54bHN4という文字列に変換されてました。
回避策 - ○○を噛ませてxxで囲む
調べても有効な手段がなかったのですが(PADの方がでてきてしまって、Power Automateのクラウドフローのググラビリティ悪さ... )
こんな形で 変数を作成 し、
文字列として追加する際に動的コンテンツのファイル名をダブルクオーテーションで囲みます。
見出しに書いた○○は変数で、xxは""ですね。変数を噛ませて""で囲むことで回避できます。
条件式では作った変数を利用します。
すると なぜか分からんけど回避できます。
JavaScriptでx=1はNumberだけど${x}にすると文字列に変換されるような挙動だったり、エクセルで001を入れると1という表示になってしまうけど'001と入れると文字列で001になったりしますがその辺をイメージしてみたらうまくいきました。
成功するとこんな感じ
謎文字列ではなくちゃんとブック.xlsxという文字が変数に格納されていて、
条件はtrueに入ってました。
試した際のこの式の場合ブック.xlsxをいじるとtrue、他ファイルをいじるとfalseに分岐します。
まとめ
仕様がわからなくてつらみがある。回避したあとに以下の記事を見つけたけどx-ms-file-name-encodedというエンコード方式があるっぽいですね。。うーむ。。









