Power automate pdf変換 sharepoint

ましゅまろで質問をいただいて作成した掲題のフローを一部改良しました。

前回の投稿で「添付ファイルID」でファイルの実体が取得できるという解説をしました

この章です。
「ポイント1:メールに添付されたファイルの実体は「添付ファイルの取得」アクションで取得できる」
wataruf.hatenablog.com

ポイントになる部分を転記します。

[転記ここから]

「新しいメールが届いたとき 」トリガーの出力には添付ファイルの情報が含まれています。このトリガーが出力する情報には添付ファイルの実体は含まれていませんが、添付ファイルのIDが含まれています。

Power automate pdf変換 sharepoint

添付ファイルIDを「Office 365 Outlook」>「添付ファイルの取得」アクションに渡すと添付ファイルの実体を得ることができます。

Power automate pdf変換 sharepoint

Power automate pdf変換 sharepoint

[転記ここまで]

補足します。
「添付ファイルの取得」アクションに対して添付ファイルのIDを渡すための事前準備として、簡易版JSON Dictionary を使った配列を作成しています。
このフローでは簡易版JSON Dictionary の手動で作成する配列のKeyとして「新しいメールが届いたとき 」トリガーの「ContentType」プロパティを使っています。

Power automate pdf変換 sharepoint

Power automate pdf変換 sharepoint

Power automate pdf変換 sharepoint

Power automate pdf変換 sharepoint

配列のKeyに「ContentType」プロパティを使っていることが今回修正が必要になったポイントです。

公開したフローの要修正点の気付き

公開したフローについて質問者のかたからこんな連絡をもらいました。

Power automate pdf変換 sharepoint

重要なのは以下の部分です。

テストデータで動かしたところ、CSVファイルのファイルタイプが application/octet-stream になっていてエラーとなっていました。


CSVファイルの「ContentType」プロパティが "text/csv" ではなく "application/octet-stream" であったためフローが期待通り動かなかったようです。

これで解決、、かと思いきや

改良したフローをDMで質問者のかたにお渡ししました。これで解決、、かと思いきや。

Power automate pdf変換 sharepoint

入力元のCSVがShift-JISであり、フローがその中身のテキストを認識できないという事態がおきているようです。

入力元のCSVがShift-JISで当然SPOはUTF-8なので現在仮にサクラエディタでUTF-8に変換してテストしております。
Power automateで何か手がないか調べてみたのですがなさそうな感じでした。何か手がありましたら....


すみません。私もそれを仕事で調査中です。まだ解決方法がわかっていないです。
(´・ω・`)

Power automate pdf変換 sharepoint

全部を解決できなくて心残りがありますが、少しでも助けになったのであれば幸いです。
(´・ω・`)

残った課題。Shift-JIS形式のCSVを読み取る方法については別途調査結果を公開したいと思います

このブログを書いている時点でまだ未解決の状況です。
解決方法しっているかた、情報いただけると助かります。

可能であればPower Automateのフローに閉じた方法で解決したいです。

おいしみさんが挫折したとなると望みは薄いかも。(´・ω・`)

僕は挫折しました(∵)

— おいしみ (@ksgiksg) August 10, 2022

今回の質問回答としてはこれで終了です。

今回は以上です。

Power automate pdf変換 sharepoint

SharePoint のドキュメント ライブラリ 上にあるファイルに対して、ファイル名を変更する方法をお話したいと思います。

One Drive では、ファイル名を変更するためのアクションが用意されていますが、SharePoint 用としては用意されていないため、『SharePoint に HTTP 要求を送信します』というアクションを利用して、ファイル名の変更を実行します!

今回は、ドキュメント ライブラリ上に『ファイルが作成されたとき』をトリガーとして、フローを作成します。必要に応じて、トリガーを変更して作成してください。

フローの全体像

Power automate pdf変換 sharepoint

フローの作成手順

①.トリガーに「ファイルが作成されたとき(プロパティのみ)」を利用します。

Power automate pdf変換 sharepoint
項目設定値
サイトのアドレス 任意のサイト
ライブラリ名 任意のライブラリ
フォルダー 任意のフォルダー

②.1つ目のアクションに、「パスによるファイル メタデータの取得」を利用します。

Power automate pdf変換 sharepoint
項目設定値
サイトのアドレス 任意のサイト
ファイル パス /[ファイルが作成されたとき(プロパティ)- 完全パス]

/@{triggerOutputs()?[‘body/{FullPath}’]}

(₌・ω・₌).oO(ファイルパスの頭に『/(スラッシュ)』を忘れないように!)

③.2つ目のアクションに、「SharePoint に HTTP 要求を送信します」を利用します。

Power automate pdf変換 sharepoint
▲アクション名を『SharePoint に HTTP要求 を送信します – GetMetadataType』に変更しています
項目設定値
サイトのアドレス 任意のサイト
方法 Get
URI _api/web/lists/GetByTitle(‘【任意のライブラリ名】’)/items([パスによるファイルメタデータの取得 – Id])

_api/web/lists/GetByTitle(‘【任意のライブラリ名】’)/items(@{outputs(‘パスによるファイルメタデータの取得’)?[‘body/ItemId’]})

④.フローを一度保存して、一度フローを実行します。
※③のアクションの結果を取得して、次のアクションの設定に利用していきます。

⑤.フローの実行履歴を開き、『SharePoint にHTTP 要求を送信します – GetMetadataType』の出力の body をコピーします。

Power automate pdf変換 sharepoint

⑥.3つ目のアクションに、『JSON の解析』を利用します。

Power automate pdf変換 sharepoint
項目設定値
コンテンツ [ SharePoint にHTTP要求を送信します – GetMetadataType – body]

@{body(‘SharePoint_にHTTP要求を送信します_-_GetMetadataType’)}

スキーマ 次の手順で、サンプルから生成します。

⑦.『JSON の解析』アクションの [サンプルから生成] をクリックして、手順⑥でコピーした出力結果を貼り付けて、[完了] をクリックします。

Power automate pdf変換 sharepoint

⑧.4つ目のアクションに、『SharePoint にHTTP 要求を送信します』を利用して、ファイルの名前変更を行います。

Power automate pdf変換 sharepoint
項目設定値
サイトのアドレス 任意のサイト
方法 POST
URI _api/web/lists/GetByTitle(‘【任意のライブラリ名】’)/items([ パスによるファイルメタデータの取得 – Id])

_api/web/lists/GetByTitle(‘【任意のライブラリ名】’)/items(@{outputs(‘パスによるファイルメタデータの取得’)?[‘body/ItemId’]})

ヘッダー 下表を参照
ボディ {
‘__metadata’: {
‘type’: ‘[JSON の解析 – type]’
},
‘FileLeafRef’: ‘【拡張子付きの任意のファイル名】’
}

{
‘_metadata’: { ‘type’: ‘@{body(‘JSONの解析’)?[‘d’]?[‘__metadata’]?[‘type’]}’
},
‘FileLeafRef’: ‘【拡張子付きの任意のファイル名】’
}

(₌’・ω・)oO(ファイル名が重複するとエラーが発生するため、一意の名前になるようにしてください)
項目設定値
Content-Type application/json;odata=verbose
If-Match *
X-HTTP-Method MERGE
▲ヘッダーの内容

以上、SharePoint 上のファイル名を変更する方法でした!
HTTP 要求 アクション、まだまだ理解が浅く苦手ですが、使いこなしたらできることがとっても広がりそう😊