Copilot を活用した Power Automate Flow作成 #2

Copilot for Power Automate
この記事は約11分で読めます。

初めまして、私はPower Platformを利用して業務アプリの制作や支援を主に行っています。
最近PCに搭載されたモデルが発表され、世間の注目を集めているCopilot(副操縦士の意)は日々進化を遂げています。そこで、Copilot先生と共にステップバイステップでPower Automate Flowを作成する試みに挑戦し、その過程で得られるコツを紹介するBlogその後です。
前回の記事ではSharePointGroupsの取得まで完了しています。

ターゲット:一般事務など・開発初心者

おさらい

Copilotの制限事項など

Power Platform For Copilotは現段階でプレビュー版となっています。

公式ドキュメントから

  • 利用できるコネクタは最も標準的なものに限られます。
  • 言語は英語が推奨されています(日本語もある程度理解します)

今回の目標

今回は、SharePoint REST APIを使用してSharePoint Groupのメンバー一覧を取得するフローを敢えて構築することにします。トリガーを日本時間の毎日00:00に設定し、出力形式をExcelブックにします。

テンプレートは、Power Automateが効率的な構成を事前に用意した、多くの人に適するフローです。これを活用しない手はありません!基本的には、このテンプレートを自分の好みに合わせて修正し、独自の業務フローを作成するのが最も迅速な方法です。今回は、このPOINTを無視して目的の業務フローをCopilotが提示するコネクタを使って組み立ててみます。

完成を目指す

#ME:
What steps are required to output the results of an HTTP request to SharePoint to Excel?
和文:SharePoint への HTTP リクエストの結果を Excel に出力するにはどのような手順が必要ですか?

この結果を基にExcelに出力する手順を確認します。

#Copilot
To output the results of an HTTP request to SharePoint to Excel using Power Automate, you can follow these steps:

和訳:Power Automate を使用して SharePoint への HTTP 要求の結果を Excel に出力するには、次の手順を実行できます。

  1. Create a flow in Power Automate that triggers the HTTP request to SharePoint.
  2. Use the “Get items” action to retrieve the data from SharePoint.
  3. Add an action to create a new Excel file or update an existing Excel file with the retrieved data.
  4. Map the SharePoint data to the Excel file columns.
  5. Run the flow to export the SharePoint data to Excel.

ExcelBookの新規作成はうまく動作しない

Add an action to create a new Excel file or update an existing Excel file with the retrieved data.
和訳:新しい Excel ファイルを作成するか、取得したデータで既存の Excel ファイルを更新するアクションを追加します。

それでは、Excelブックの新規作成から始めてみましょう。

Power Automate内のCopilotでExcelBookへの出力がうまくいかない問題が発生しました。Power AutomateではExcelBookを新規に作成することに問題があります。

SharePoint – ファイルの作成コネクタ
ファイル作成結果

ファイル名は将来的にも使用するため、変数として定義しています。画像内のフローは既に完成しており、この記事のために適宜ターミナルを挿入しテスト実行を行っています。

Power Automateの標準コネクタを使用して作成されるファイルは、Excel形式のコンテンツを設定できないため、xlsx拡張子を指定しても、生成されたファイルにアクセスするとエラーが発生します。

テンプレートファイルを作成する

取得したデータで既存の Excel ファイルを更新するアクションを追加します

したがって、既存のExcelファイルを更新いたします。まず、SharePointにテンプレート用のフォルダを追加し、そのフォルダ内でExcelブックを作成して、ワークシートにテーブルを挿入します。このファイルをテンプレートとして使用し、出力用フォルダにコピーした後、取得した結果を追記していきます。

Power Automate内のCopilotはここから先、あまり助けにならないです。不毛なやり取りが続くため、ブラウザに付属するCopilotも利用しました。

テンプレートフォルダに作成したExcelブック

ファイルのコピーからファイル名変更までのフローは以下です。

ファイルのコピー → ファイル名変更のフロー

テンプレートファイルのコピー

「ファイルのコピー – SharePoint」コネクタを使用して、テンプレートフォルダから出力フォルダへテンプレートファイルをコピーします。
テンプレートファイルが存在するため、各プロパティはドロップダウンメニューから選択して設定することができます。

コピー元のファイルは確実に存在しているものを指定することをお勧めします。不確かなファイルを指定し、それが存在しない場合、後続のプロセスがすべて無効になってしまう可能性があります。

コピー後のファイルメタデータの取得

「Send an HTTP request to SharePoint」コネクタを使用します。

サイトのアドレス:
  コピー後のファイルが存在するサイトを選択する。
方法(Method):
  GETを選択
Url:

_api/web/lists/getbytitle('<ライブラリ名>')/items(<ItemID>)

ODate.typeの判定用JSON

Contentには「コピー後のファイルメタデータの取得」結果を指定します。

Schemaでは、取得結果をJSON形式で指定します。「サンプルのペイロードを使用して生成する」をクリックし、テスト実行による「コピー後のファイルメタデータの取得」の出力-BodyをC&Pします。

テスト実行した結果
出力-Bodyをペーストし反映済み
赤枠部分がOData.type

コピーしたファイルの名前変更

SharePointのコネクタでは「プロパティの取得」と「メタデータの取得」が可能ですが、「プロパティの更新」と「メタデータの更新」は提供されていません。
Power AutomateのCopilotに問い合わせてみます。

#ME:
What connectors are there to rename files?


#Copilot:
Some connectors in Microsoft Power Automate that can be used to rename files include “OneDrive for Business,” “SharePoint,” and “Azure Blob Storage.” These connectors allow you to automate the process of renaming files stored in these platforms.

和訳。ファイル名の変更に使用できる Microsoft Power Automate のコネクタには、「OneDrive for Business」、「SharePoint」、「Azure Blob Storage」などがあります。これらのコネクタを使用すると、これらのプラットフォームに保存されているファイルの名前を変更するプロセスを自動化できます。

対象はSharePointですので、さらに詳しく聞いてみます。

#ME:
How do I rename files in a SharePoint library?


#Copilot:
To rename files in a SharePoint library using Microsoft Power Automate, you can create a flow that includes actions to get files from the library, rename the files, and then update them back in the library. You can use actions like “Get file metadata” to retrieve the file, “Rename file” to change the file name, and “Update file properties” to save the renamed file back to the library. Customize the flow based on your specific requirements.

和訳:Microsoft Power Automate を使用して SharePoint ライブラリ内のファイルの名前を変更するには、ライブラリからファイルを取得し、ファイルの名前を変更して、それらをライブラリに更新するアクションを含むフローを作成できます。 「ファイルのメタデータの取得」などのアクションを使用してファイルを取得したり、「ファイルの名前を変更」してファイル名を変更したり、「ファイルのプロパティを更新」して名前を変更したファイルをライブラリに保存したりすることができます。特定の要件に基づいてフローをカスタマイズします。

指示されたアクションで「タイトル」は変更可能でしたが、「ファイル名」の変更はできませんでした。また、「ファイル名を変更する」に関するアクションは存在しませんでした。

困りました…



困った時は、[SharePoint REST API]を活用しましょう!「SharePoint」にHTTPリクエストを送信するコネクタです。では改めてCopilotにどのようなメソッド、ヘッダー、ボディを指定すればよいか尋ねます。

#ME:
What methods, headers, and body should I set when renaming a file using the Send an HTTP request toSharePoint connector?


#Copilot
When renaming a file using the “Send an HTTP request to SharePoint” connector in Power Automate, you would typically set the method to “POST,” the headers to include “Content-Type” as “application/json” and “X-HTTP-Method” as “MERGE,” and the body to include the new file name in a JSON format. Ensure the URL is correctly configured to target the specific file you want to rename in SharePoint.

和訳:Power Automate の “SharePoint に HTTP 要求を送信する” コネクタを使用してファイルの名前を変更する場合、通常はメソッドを “POST” に設定し、ヘッダーに “Content-Type” として “application/json” および “X-HTTP” を含めます。 「-Method」を「MERGE」とし、本文に新しいファイル名をJSON形式で含めます。 SharePoint で名前を変更する特定のファイルをターゲットにするように URL が正しく構成されていることを確認してください。

この先のやり取りは長いので割愛します。

つまり、POSTメソッドを使用して、ボディにJSON形式で新しいファイル名を指定するだけで良いということですね。その設定でファイル名を変更することができました。

厳密な型指定を行う設定

↑の設定ではOdata.Typeを厳密に指定しています。

Content-Type: Application/json;odata=verbose

ボディは、以下のように__metadataを含んだJSON形式になります。

{
"__metadata": {
    "type": "<コピー後のファイルメタデータの取得で取得したtype>"
},
"FileLeafRef": "<新しいファイル名.拡張子>"
}
簡素化した設定

また、↑のように型指定を省略してもファイル名の変更は可能です。

Content-Type: application/json

ボディは以下のようにシンプルになります。

{ "FileLeafRef": "<新しいファイル名.拡張子>" }

ただし、この設定は推奨できません。なぜなら、外部の干渉により他のライブラリやリストのファイル名が変更されるリスクがあるからです。厳密な型指定を用いることで、指定されたライブラリやリストのみに変更が適用されるように制限できます。したがって、厳密な型指定によるファイル名の変更を推奨します。

今回のまとめ

SharePointから取得したデータをExcelブックに書き込む準備ができました。
Copilotでは、ファイル操作に関する的確なアドバイスを提供することは現時点では難しいと感じています。

しかし、Edgeに組み込まれたCopilotを利用することで、先人の知恵を簡単に借りることができました。通常のブラウザ検索では内容が分かるまで開かなければなりませんが、Copilotに質問すると、関連性の高い情報が優先的に提示されるようです。

次回は、準備したExcelワークブックにデータを追加したり、ワークシートを追加したり、新しいテーブルを作成したりします。

この記事を書いた人

岩本敏彦

コメント

タイトルとURLをコピーしました